Skip to content

Instantly share code, notes, and snippets.

View mducle's full-sized avatar

Duc Le mducle

  • Science and Technology Facilities Council
  • Harwell, UK
View GitHub Profile
#!/bin/bash
args=()
for var; do
[[ $var != '-batch' ]] && args+=("$var")
done
tmpmfile=mlscript_$(mktemp -u XXXXXXXX)
echo "${args[@]}" > ${tmpmfile}.m
runner_path=/home/runner/work/_actions/matlab-actions/run-command/v2/dist/bin/glnxa64/
@mducle
mducle / sabug_cylaxis.diff
Created December 6, 2023 00:39
Mantid solid angle bug change cylinder axis patch.
diff --git a/Framework/Geometry/src/Objects/CSGObject.cpp b/Framework/Geometry/src/Objects/CSGObject.cpp
index 286d1d953f8..eda0fa258d5 100644
--- a/Framework/Geometry/src/Objects/CSGObject.cpp
+++ b/Framework/Geometry/src/Objects/CSGObject.cpp
@@ -307,8 +307,9 @@ double cylinderSolidAngle(const V3D &observer, const V3D &centre, const V3D &axi
// axis points up the +Z axis and then rotated into their final position
// Required rotation
- constexpr V3D initial_axis(0., 0., 1.0);
- const Quat transform(initial_axis, axis);
@mducle
mducle / gist:51fa7cc2094f9f0c1cf4b6775d879a09
Last active December 5, 2023 13:20
Advent of code 2023
echo $(sed s/[A-z]//g ~/Downloads/input | sed "s/\([0-9]\)/\1 /g" | awk '{print $1, $NF}'| sed "s/ //" | sed "s/$/+/") | sed "s/+$//"|bc
cp ~/Downloads/input tt && for ii in "one,o1e" "two,t2o" "three,t3e" "four,f4r" "five,f5e" "six,s6x" "seven,s7n" "eight,e8t" "nine,n9e"; do cm=$(echo $ii | awk -F, '{print "sed s/"$1"/"$2"/g tt > t2 && mv t2 tt"}'); echo $cm|bash
@mducle
mducle / cf_multisite_segfault.py
Created July 24, 2023 16:40
Mantid crystalfield multi-site segfault
# import mantid algorithms, numpy and matplotlib
from mantid.simpleapi import *
import matplotlib.pyplot as plt
import numpy as np
import sys, os
from CrystalField import CrystalField, PointCharge, ResolutionModel, CrystalFieldFit, Background, Function
from pychop.Instruments import Instrument
tb1 = {'B20': -0.2431330412981789, 'B22': -0.17569696468779034, 'IB22': 0.19648505887037993, 'B40': -0.000886093463241086, 'B42': -0.016200141304394847, 'IB42': 0.017849375647540782, 'B44': -0.0011331370797592647, 'IB44': -0.014528896930898594, 'B60': 5.487217052410268e-06, 'B62': 3.0859080066753127e-06, 'IB62': -3.1901616555494786e-06, 'B64': -2.3561324645561506e-06, 'IB64': 1.8508497796793596e-05, 'B66': 2.2094823318064904e-05, 'IB66': 1.273979589242308e-05}
@mducle
mducle / pace_neutrons_installer.exe
Created February 28, 2023 15:27
b85 encoded ctf for testing libpymcr
This file has been truncated, but you can view the full file.
O<Iru0{{R31ONa4|Nj60xBvhE00000KmY&$00000000000000000000000000000000000000002mt^94j;M>0JI6sA-Dld%^_51X>%ZOa&KpHVQnB|VQy}3bRc47AaZqXAZczOL{C#7ZEs{{E)5L|Bme*a00000g91gs$73s#$73s#$73s#s0S#L&0{N*s0S~S)nhA@s0S{Ra$_r#l?y16&SNW+l?yJChGQ#}l?yMD=3^_9s0S*N)?+J^$73p!U}Gzjp$jgO&tof-p$pWL#$zj!p$jRJ#$zj!QfXso$73s#000000000000000000000000000000P(=U$WQGO+06RTP0000000000@BktJ3jz)g0GJB^0A?Ei00000JQD=~01yBG0000$0RR9101yBG00IC21^@s6000001^@s6000000B|P&00aO406RTP0svrv000mG0000001yBG00000000mG0000001yBG00000000005C8xG0000000000)Z`8Tv;Y7A01yxWxG@(10ALRQM63V+000000000008l3Y=n?<`5K0XIQ~&?~000000000000000000000000000000a7qmT0096100000000000I&-Hcm)6e000000000000000000000000000000E_7vhbN~PV5SI%801yBG0GJB^00aO4000000000000000AOHYhE^=gHbYTDhphp7$0I&-H07wG>0GtZ|000000000000000KmY(hE@WYJVE_OCOi%y-000jF04e|g0OSq;000000000000000KmY*1E^uUFbYTDhM63V+0ALRQ0ImQ401giT000000000000000KmY(hE^>2nV*mgExG@(101yxW05TT<0K5+X000000000000000KmY(hE^=jTZ({%e=n?<`08l3Y02BZK0PZFL000000000000000KmY(j0000000000000000000000000000000000000000000000000000000000000000
@mducle
mducle / pace_neutrons_installer.zip
Created February 28, 2023 10:32
b85 encoded ctf for testing libpymcr
This file has been truncated, but you can view the full file.
P)h>@3IG5A008-eTUG!70000000000000;O8~|`(V`X1%Wp#9NZ*Fs6X>N0LVQg$=axYa>2>=6iOZ{U>RsCaicnbgl1oZ&`00d9~002-+0|W{H00000`GZ?l000000000000000ApjfzaA9L*Uv6b}baHQQb6;t0b97;BY-MsULvL<$Wo~qHFI7|t00VVP{bNa0{bO}_3jhHG^#K3?1W*6~08mQ<1PTBE0002_gIiVr00000000000000d02}~tVPj=qZe?|Ja&K;PUukZ0bYX04WpXb=Z*FvDZgg`mO<`kCQ!iCi2>=6iOZ{U>RsCaicnbgl1oZ&`00d9~002-+0|XQR000O8J-_8rMu2}0QH=lqw3Pt>EC3t;aA9L*Uv6b}baHQQb6;t0b97;BY-MsULvL<$Wo~qHFHK=%Pg5^*Wps6LRa6N81NHvnV0BCVV|927009K`0RR95Pyhe`>{@$xQ&qM<X&V}#a)R;*zKGI`Eskv}pzR%<No-SgB!N1Bc2r19X=$~O*d$WKYQ1T$9P&jwcVMn_M-&H~sen)_lrjRQJQ~zd>XQ!6C@Sdbq)65I0_xD*we~*AIY~?9{&nyDKF&wF&sux!-&%XEwf9~-;pq3L2U9stmCSKXNgT)N;L~#%$9bEs<M5dR9|9k{y~s4je6RTz^SL39YA9>SgE*bZh_ldKyl|ND+5{Ad2HQ9_e8x&_yWLgZ;F84>@it6kc+GocIz@?_!Zj&LyWQz>FLhoJFa0RPo0Jq!M<0!ZH!2R#URhr4D6by|@3wc?_@&7*oiw6-Wp%Yqmx4~1@B0j|K_%01^G$f{_T^<|_VR|Za)-<ADqWh0r~8oM^-q!Mq+yX__BmbkRkh16U|-4r!`qf3)5<3i+itI0`aqezrrcFoTUt{-1h4%c4Da!AGJO$vW!0rlCjuto<s_>p-U<bMk@mS(I)>WUD&ZZ_$n?l~?%EYqwae^PwH0;TQ2$k@F}#JzGCguU$}8;^_2@c@j>ik|3@=wfCy#)KX&|Z*r@*w(r0CEx9L^x
@mducle
mducle / test_R2021a.ctf
Last active February 5, 2023 23:56
b85 encoded ctf for testing libpymcr
This file has been truncated, but you can view the full file.
P)h>@6aWSQ2mrUDMOKD=C5$Kl001Tc001Wd003rla&K>RFD`9ibZlW_FHKBoZgfOtW?^+~bW>$?bZKs9b1rmvbW>Jv&M&Ae%1qBFQ7|$vv``4iNLBDnEXfGZFUl^~QSi)5*5l#=08mQ<1QY-U00;oLqD5ANmkZB60RRBz0ssIZ0001Hb8>HQbT2M#VRUR^VlQKFZf<2`bZ>Glb7gdNX>Mn8m6B0Q!!Q(u-}ftG-q&>cA|>sZiXco7HbEGB$g;SFrHSNb>*lZblD4ceE1IWpIrpA(zl4vEr6C99K|7n%QIb-ktaNK_H#vQsKMrr{xEOFyAz%rJ6{X6lbk-^voTucVL9Yzfg5N7jaGZsl?!C=Q5w?}{J4o<m#42frpbB&ba;r))by9@r{c8(pdy^xq8<z~H<a8UtN5)uHRY`S|IKN@nX*yzW&(m2n7-|baSgB|+Ab9vrotiD4Y*7APNCkIB$eqy;8c`HN@VGK5wVik`PBZ<9Tc#aFR2_ubtAbxG?jI)e$wE|Xvs@OO)%9o@b*vuOgkYHBBF`)!3i*QApyR@Oa*$FSdxG&^vle4RpmZy3@YTLQVjV1|KEu*K!0PS$JHP)hyyRF{&MaBGAAZ@+{R>b_0|XQR1^@^Ex1vQ>000000ssI200000ApigXW^;0HZ*(s%ZDDk5VPY?1a%Ew3X>V>WbZKp6b97;Ca038PO9KQH00saE0Jow=Rub~*^o{@k01E*C051Rl0A_P?Z*O!jE^T3SY++(AWN%|%bZ>8LVqtP$WN%}2ZDnqBb1q|dWM6VOE_iKhb&ov@!Y~v?_x_5I-BdS+v;}b!x8k0UR|&>Ec}bi4?<Il?(vJ6@bB8Ot`R>^S6di_!@5Gif2nMYS*M^U2*z9@NR<cL*2Sshg7?T$lo%Zk!C7<Bg8Vm{MB(yR&S(m1$|8zjgitM^DJ{Fkm@vM?p`bchq1tD9Z33FUw%36XLe?wV+FUb0H?FCRv0|XQR1^@^Ex1vQ>uBN|#K|==suSf>~GXMYpW^;0HZ*(s%ZDDk5VPY?
@mducle
mducle / test_R2020a.ctf
Last active February 5, 2023 23:56
b85 encoded ctf for testing libpymcr
This file has been truncated, but you can view the full file.
P)h>@6aWSQ2mr&PMOKD=C5$Kl001Tc001Wd003rla&K>RFD`9ibZlW_FHKBoZgfOtW?^+~bW>$?bZKs9b1rmvbW>Jv&M&Ae%1qBFQ7|$vv``4iNLBDnEXfGZFUl^~QSi)5*5l#=08mQ<1QY-U00;oXqD5ANmkZB60RRBz0ssIZ0001Hb8>HQbT2M#VRUR^VlQKFZf<2`bZ>Glb7gdNX>Mn8m6B0Q!!Q(u-}ftG-q&>cA|>sZiXco7HbEGB$g;SFrHSNb>*lZblD4ceE1IWpIrpA(zl4vEr6C99K|7n%QIb-ktaNK_H#vQsKMrr{xEOFyAz%rJ6{X6lbk-^voTucVL9Yzfg5N7jaGZsl?!C=Q5w?}{J4o<m#42frpbB&ba;r))by9@r{c8(pdy^xq8<z~H<a8UtN5)uHRY`S|IKN@nX*yzW&(m2n7-|baSgB|+Ab9vrotiD4Y*7APNCkIB$eqy;8c`HN@VGK5wVik`PBZ<9Tc#aFR2_ubtAbxG?jI)e$wE|Xvs@OO)%9o@b*vuOgkYHBBF`)!3i*QApyR@Oa*$FSdxG&^vle4RpmZy3@YTLQVjV1|KEu*K!0PS$JHP)hyyRF{&MaBGAAZ@+{R>b_0|XQR1^@^E!=go2000000ssI200000ApigXW^;0HZ*(s%ZDDk5VPY?1a%Ew3X>V>WbZKp6b97;Ca038PO9KQH00saE0K=k1Rub~*^o{@k01E*C051Rl0A_P?Z*O!jE^T3SY++(AWN%|%bZ>8LVqtP$WN%}2ZDnqBb1q|dWM6VOE_iKhb&ov@!Y~v?_x_5I-BdS+v;}b!x8k0UR|&>Ec}bi4?<Il?(vJ6@bB8Ot`R>^S6di_!@5Gif2nMYS*M^U2*z9@NR<cL*2Sshg7?T$lo%Zk!C7<Bg8Vm{MB(yR&S(m1$|8zjgitM^DJ{Fkm@vM?p`bchq1tD9Z33FUw%36XLe?wV+FUb0H?FCRv0|XQR1^@^E!=go2uBN|#K|==suSf>~GXMYpW^;0HZ*(s%ZDDk5VPY?
@mducle
mducle / gist:ce535a8190c63f83d0577f1c695ee0d9
Created January 17, 2023 11:42
easydiffractionapp_wine_error
Unhandled exception: unimplemented function ucrtbase.dll.cexp called in 64-bit code (0x0000007b01384d).
Register dump:
rip:000000007b01384d rsp:000000000010d7d0 rbp:0000000005325660 eflags:00000202 ( - -- I - - - )
rax:000000000010d7f0 rbx:0000000080000100 rcx:000000000010d7f0 rdx:000000000010d810
rsi:000000000010d8e0 rdi:000000000010d820 r8:0000000000000002 r9:000000000010d8d0 r10:000000000010daf0
r11:0000000000000007 r12:0000000000000000 r13:000000000010de10 r14:0000000000000010 r15:0000000000000010
Stack dump:
0x0000000010d7d0: 000000000010d7f0 0000000000000000
0x0000000010d7e0: 0000000038ffb820 0000000000000000
0x0000000010d7f0: 0000000180000100 0000000000000000
@mducle
mducle / unique_con.m
Created March 22, 2022 12:05
Heterogenous matlab container storing only unique objects and indexing to these
classdef unique_con < handle
properties(Access=private)
store_ = {};
hash_ = [];
idx_ = [];
end
methods
function obj = unique_con(varargin)
if numel(varargin) == 1 && iscell(varargin{1})
varargin = varargin{1};