From dd6bb53f1bf252880638f6d1c6155839f45d3d6a Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Fri, 12 Jan 2024 23:53:58 +0100 Subject: [PATCH] add more comments, undo loop unrolling. --- examples/more/00_example_template/example | Bin 27352 -> 27352 bytes examples/more/01_sample_from_cdf/example | Bin 27632 -> 27632 bytes examples/more/02_sample_from_cdf_beta/example | Bin 27616 -> 27616 bytes examples/more/03_ci_beta/example | Bin 27392 -> 27392 bytes examples/more/04_nuclear_war/example | Bin 27472 -> 27472 bytes examples/more/05_burn_10kg_fat/example | Bin 27432 -> 27432 bytes examples/more/06_nuclear_recovery/example | Bin 27720 -> 27720 bytes examples/more/07_algebra/example | Bin 27352 -> 27352 bytes .../more/08_algebra_and_conversion/example | Bin 27352 -> 27352 bytes examples/more/09_ergonomic_algebra/example | Bin 27352 -> 27352 bytes .../more/10_twitter_thread_example/example | Bin 27504 -> 27504 bytes .../11_billion_lognormals_paralell/example | Bin 27384 -> 27384 bytes .../more/12_time_to_botec_parallel/example | Bin 27552 -> 27552 bytes examples/more/13_parallelize_min/example | Bin 27448 -> 27448 bytes .../more/14_check_confidence_interval/example | Bin 27352 -> 27352 bytes makefile | 2 +- squiggle_more.c | 36 +++--------------- 17 files changed, 6 insertions(+), 32 deletions(-) diff --git a/examples/more/00_example_template/example b/examples/more/00_example_template/example index ccbfe41f5d227301d875d76b0f5086792e7bbf9a..044e1cae15dadfe3daf956d1c7e6f49e69400a05 100755 GIT binary patch delta 1756 zcmZWpdr(wm6#u^EwFt}IMIMWxEOLPh3%ejLh)Qvr1unW2BySNlYstw{31ez}C6aT) zJ5q&a=~zOswCOfro`cQyt4Wnl`c~ zbPHZ~Hbs!CPHCB_t;idO*%@Jap`kllpdqZ?tB%zQ3)Zkkrm+;FVvUCFPZh=Kv@lWI zJtCdWkR3adxiO?D4)ITi_&^YQWH+pd?Tg-m34#;2_A%pwljL)Ki*ezfAOHpzf|K6O*OVvugIE;#@;2!W5=pYl7P2{EU zO8h)J3Qh5m^fnxbulC)2Pf_HX5Xi;)n?qkDnI3Z)q z=Fo7XCnNbXyp%ATUWN4u$#ge-kuY1+6b9dNGvHc63xD>m%HdWg@g{_4@~^7A4x`T_ zAz$on7#NZ3@tiL;swoA?66bYW zDGHVqv)WO{;LSQ2?q_+!q%TlCT^wbqPLDFxx&y(g+Vb8}rXsWj4kpLg)=gJE20LrS z95-4HRxkfFS&OEpD~2!udzYWVW^Q>eP|LCq4tpIP$043jzXb7y9612BmfX-Y2Au1z zfoBu`5-r&T=PeQbPK;p3&{7z-Y@=tP*4jeT!7pW#<+PrVcY`rzJB5~$v5ql2>Tt*S zBUx&5N!P>R{`~3?@8SxXp(CXdcSV;vYg#n=u}o*sgDv$iErk22M+3eJde*HC4$TQq z60wK6EI%Snaz?tTT@Fe2k&Y0D#(9E`4X~qR8jUKjv$^!Trs97&SX&`)`vsg276EwMTv=0(;<7pQZ<-SbYVSn!Qh;t~Q40)2Z zL8etfS`vaLhr~nRd~SF|70N16qe75LBLr#HXgNmPU?MkMGjs>S^5)YOP?VQO*Fa<5 zTKq3~lxLM?LNpzL~ delta 1828 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 Ve)JdERBQC@vv?f!IfU98#lKL4j9UNz delta 1871 zcmZWpdrXs86u-CSQ6})U(uz2hho6>5p{iiG|grR0W?#@>v{;@B)_jm4j-E+=8 z=Nr682QSitDjIStf%v~$J`K%RXpbB2)Msg1bq_1@|Evx_-hZpp`IHjE{qP4p?+pmIws79}V3t0f21BWS>cmHayV;$| zhl;CPg_fsEv87un;&~!~-bmHZs^@LNqGvK+yLL^3=pGPUXQ}9FwF#^fPeYt$Uh@mG z?FHHXg6x9F`s6KpJej;DlMY((u9{Rl%oRNqe7w_B&Bq{HRA%xf(OYsx#YGeJ>~Nh` zp^G7b)7T$5tk*X6iJn}3qUbtp6RDQZR95gR(YlUTbK6oFW1{PnSX?TU2&KYuVMVL! z3^jN3mONvOi_RoOSmpp<{3LEeFJn%3kJH^Ry3a~Ea3#Jg#)Z`ty}GJMLd?ygH*G%> zl1pOjBo>WGpFn5A47wE_CzxqABqy#l?!Wz9Cb~~cZ{cD7wgtQrycM(aWdTm6O)z)1^vyKv=OS4riXYY5HiH6)8@f}Bt0Dm9Z3$_ z0+S6NYwS8ghPhf@B_e7h8{vc@PVpoHdJG0dzZTTVv5IdaV2WW9EJ|(^if_tc+&oDF zFj>xVMGno5Jbw-j_i5LSK`9u|4(~QuWf2C7Z;Yj`_xG0Mfw+_m`Zlagd6{aUIwd2f zwTH1a+`zARc_y!xLs=Dpp$J^!?{Yj^xRf%3UfpHPQtZ-T7-pz3CeRD;wK0{Bhs(wa znhe>d74#e&G^Ngty3QC{NX6rlq8F8B?dwMYioXfBPY;|MwW4?f}vc@y2& zqz~b`*{+L2z7*X(_P}XKNe3ZgW>m=baDTCN-@}TTTk$!1W;W8zP?=hj5`&V>p+hDC>A`*b+nx3Pm<5I3ucmP5^~sUbqB-(}dFuy588+5n|# zM;AXEH|FdKQs``m+wlcD!|vzHMb}+bnHQbP?Q;xqGzSdd-0bv*^}Ixg(;GN~;7>~m zf!AmMG^Yv`d#B(W_}l%3qgt6C_<#OhnST%Oly<|ibQ9eH+tXj6@qRiI9w2=L(kw~z zJ6L5&59+*xic8=#OQNo`3zK#|rL}2-cm6Y{dsy@)*TGdwEL{xDGI{9&6&BZk`o*F* zV=f+^&t&hrXgJnx!`#$=g?y(s!!r%rHP7L`fCK6t5po6hlV#|z8re&o2~Xu(NE>|X zt?vZ=Xq&6tQjU|O3M530)0vBC!*Omx%)Y}|8{*17#s(3a?lEQyBBUKL7tz$u*gC`p z#CpU*#Jz~w1B@L;B!g&&Xd7aT4<;mLgt11%2E=AW@_@0s!DKusM?#HBk%x?BBbNKl z&C6HP%g|zv0E=Bq5ACu~2p8~GiHNIFi7~-O`$Bpcj^n-?LPR~S12gVrP$(|Z72xkf zkDBtQ#np|&Spmnz$Voq=BwuE42#;AEuJTLOm|K7Z{o;fuCzil37Q;=71>q_SYT8iT z2vZz$6sle*a?Dg{``{zTdRh-p9Z9qe_i5nFQYk|FAulVA7C=?jtAYEm7H`1$%m`@D zGSPM)UARO+yL>r|b_O6^&oL@Am*pqQt)ldrdUZ73aqoHAobmvz)p Km(N|cR{0;V4Yt4l diff --git a/examples/more/02_sample_from_cdf_beta/example b/examples/more/02_sample_from_cdf_beta/example index 37932a25e6d5c6f2024a125610e27b8e162dd8de..da532b08239202089425ead56b9a74fe17a3c7bd 100755 GIT binary patch delta 1832 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 diff --git a/examples/more/03_ci_beta/example b/examples/more/03_ci_beta/example index ffefed03cd26d17ef0412df6003181cd9aa73327..e7da5bc36b4564896b2a76c730c716b8f82a8649 100755 GIT binary patch delta 1749 zcmZWpYfKbZ6ux(t$8Hg3mxt_Hlm!OZg;()DzA?bmqRRTrfMi)=NX=GLa*RrXYs2} zaedP&zVDiv$GHyHvvz8LFIhHL&37lT9r;Z@UKr=P&QiYXlnKI9ZT7R>E_R`dPUK;J zdoE5E@!cC(v$wmAHKChVyVz`AtU04$5<8JU)Thpwt>e4;3wavLy3`w34WIuOYhbpO z!>6eR{nn?l+|-oCByJ6gZSsLXbuP2^o-BKX8(!g0UN|e2!f@*ErY#u2i*ei>LL9xk z=xjkl>bfh-Cr~MocEM0u8vOzur#WZ~*wUM`_TTw$jTic*H*r$5?NLV_C)UXxVI1{P zzHcOqr+1meLL%LTlj#fTBs@+}pc}zpt_w@MEz8n6XfvliS8OC?lF>OMjPSKNjgG)Y zvxn}21j}|kV<2RT>4?ik#1PxxaNLqihv2%!Mh^p%k*w;P4RbAXpd@1_S3RbX7(GEk z2;msdutLm@zMuk+(BCyOA%)}IBW_bdN{}XA3!dc6;Yi((oLN9cXvlnCr5}U#%tfY= zn|OZA_)oYuUZBDxX*M$9n2Z61&M;igOrziLu)d;tBNll$pxtVrk6@oQM-_b&hOO(V z4VK#K>3Q(mauygzWf{{}u$oCmAHp^<=95zBjBl1QyD-VroSS6oA_t=txs`*HOjX=5 zFlMDVeKCqh?_v!Y(}$Lq)k(!Oxo8Hf;t~d6?aH6ASf6Btby>ABJk~n;059>lGVsDx z=^$Lsa>w1#_%-Ju3*8qR;agsK&Rk_eJ8DhP1)^Pl8%tpXk2sN zLaT|fPca{Dz!u|<6ezXD$T0@n=b~2_!wxEjWXDQumUhQHtr7j07U_Vm97pJ8sD0sR z#F?mP#ZE&~PP|pX5=yiDfH=b#$vS$yV&s8HLcC(=j|f2#k_A@h9M0c}fw$+%vdkp9 zl-+CC7QXAAX3cwwKlK0p9>sqj=}J9NHb0y0gAeDwNXK^WcCX{;hi@0B(;m2tV<%Ae5^RG~cZ~59=+Q6?21rBPN}aCJ3&g=szocT4iTM0=sp;|`TjYiNK*RI5Q#Qb~IPjU`(`5U!WnRr-L^ zYxs=et0Fq$3nZ-wr_=|QvU=Q0DBFZuX!$18@@~1CWtRdx6*)x#8ctvO5EvtXuHPheMbv-)3ud36c^ delta 1830 zcmZWpeN0nV6o0pTwMuy{Pzy}?kS8scQaY@YD6TISdn;v1L0@7#0F{k?O} z{oU6vKpF-}tDGphlNkT6+p8vpvdH6ivJIymA82~3`L;3k^gCaDSJi&PTNjYS$|7Rm zVtBUVa3aG{k1{UN8y7LGQh!PqhW+6;((efj%kZ(DcOjC~lMu+{Vxu1N?oPLj3#FA^ zyl*Ce`i251uA^WpXCf;2hU2Uuv~fOHUtQHi-4nd4hfr6Sl^6fO)fB5<)%o1)eQx$W zH?P7VXWac+qm5f;Ba<2Uu3hQ4SV0@Nae8NC9T$&o8erqnsHgP2oQ-3U+2QJuBgGWY zs_hRQ8Q0$)qm6l76m@l5DT(B40oyn^&3J=TvHMa*QKYVOw4{tL<;(bTzM{)@o|rF> zmOc?hHqOQ{e7*xh2ND(6Q)hybA|QJ(`3VhB0?ik7XSiLgkn! zp249pLM@z3N+Nq;Fv(2Tfl^nU`rhA9W7OR(WaA=h-#_&kyr*1rxF>Klg!*mWJ zSsCFXe63qXF2kU1KFNoNy7J)QQBf3fp;W(Ujv<<1rdX9_ED9R+Nu&!-=pCdM9_tUP zC$tPR&DLwQQT`O;75E}~Avp=YWFt8Y6Uhr@mGfXm9|Ok4hxp|qQW3*vm_TfmbzGAQ z)1lAbfy3SHx;ZI~+!jTLXP=akgJt3gU!i_jxi`+YpcpQQ(NUl-m7 zU#eYmL5=4s-gtJx8mvQTf(52%#Y&7Ip{4*{Htiw5!&%cIvJwi@cBS^J7-oAo#w_R2 zs$xyk?EY;iFTRbJxIM}q7WH%4=^jA|89-*hM`Iz7q*N``TIf<8y^Hz6p%mVRn^EhdgGK-v4%jkkuY zp{{ZH=6cB=^nd>m$$tmS6?TGUNgCM?RZCV9x!=~p0NNje#$q5Xz*}AlK6wojO;B%H ztT{J`ExKk%y@mH=J#o6HsmG{?)0PC13fC?3*WaCkqYTCT66(nu#>LYsIJy}(KGWAU z8~ZO`==5a%gkLefz~LUi`{;ha=ke~x`AFD;?)A>(8L0)~1Me$KKUAEs9+B>kyk!!o7&CDD6qaPC*o-f^cMbSvMo5A=V)_As#}UL~KD^hqwM5Vk_b`#Eo}w zUoi4b;MV}LVM-J`5GN4@#EsLU7#YHZGks_*3qi+yQQV2x=QXbSQbq>h*DM`54iB;t zac!v0=M<4P@1~sHfe3%)nq=xhNpScZ!M}`A zF|FQ&ybwZKAvwPSU+T`^flZNu9oSTDfgKg?E6_#{rTF(Sx>;bFWemVZ^sEH lY%q~lZ|(-HsKHxY5)vxYaPVq%s-kV_ELWTNlj`b#{{TP5rUw83 diff --git a/examples/more/04_nuclear_war/example b/examples/more/04_nuclear_war/example index 46690da7a926862e91cf51f3e6f3fd58c5ff121f..3022a5e2ffb177b513f95e24542234c1e3df6c38 100755 GIT binary patch delta 1760 zcmZWpYfKbZ6uxH{aH$KkJXY|@BCETAFs#U{ie)UqtSnI~PX(m00TbU=i`EAyl6FGJ zs>h`MP-7EgZBiq4Yl5~_C{nDN7Ms*+YpZ~*Lw!+DTCI9}X3-x_Cz<)qJ@=e*zwh32 zr|U9wU4~{81a`zS-_zj@ff7TwB`|3~``UPjS3F>^D=5T@$D;yIdpGZopl5IE3i`%8Prv|z0 zhEb-m1<@fwB(^*3;YPV>oPEpm>YcK3Uux(CxuM;L4rhYc*_3Th&xZaC%HNzugBfzu zTD#NJw8?HGw`|O|C&_C0*CrvVp4elZbId4<+|ZFFL%2QLxYllxr!TWd3XR2h%o!Q7 z{Tb)g)rmsXcAwPho!I3ZFU;-Z+@th(lzXz$sk!ip^NOvG0%X;?I)X7*tE{H%B|}@R zaejuBGHnAsh@A}EaBQ3l=3#zZP2#(^p3lijhn7c!*^NV6G94!D2=@ow0PGp6hc zO|vpKC~UFT5K=@!lohW}iH0u_5)$B76cZ*ImWE;GlrgwGVUINZrcUDK8Ro~BB)G5X z#2n=FDR3(t4ZZ!^tzOREYNH;KPc-RRXeWm^M_Y=s5;H-?`oyvDC+0Y`UDWCLh2i7GNw6Pn;vBYY6JW)k&3b z6uXj=Qy<;noDvJ|rU4l(i8L=E)4N4Z5k^d`=lwt(7Y|Fj8#VD^;^D#NqWTHpw7PB}U9 z-pCil?x2(!k)Tisyc~t+q1U?a3;Lq5YdSd!IitHQDITxa` z_2tX$tK^0|rX_Fde*gdb_v-$;#8+F7>(Y|oBRrfo6HGok4M(NVguPgl9uF6BYkFG1 zXICju#M9|<*0WbgW5ZL}k|L?IpLvu)Sxs1vPt&6z5u-B3&7Wzay);w&LRrlm3Sg{4 zDwisx%DyF(_@cuGg$a+P5|5hsc?@-Ev0J$;6}gp%QlX?gDWZa(kbAx-_NgvGd*8bw zV@&{BM%q5jdSa-nr~A@MU2CH&Y4&Gq9^K(m!m2+wuP0n}oAV=t&38HfoA3sqnRsN~ zL;5$2pm@Udgq9)B4~<}y5ld- zO{BKotG*g#1TP-Vae#t9}@Y4#ARa)jZIhKJ>sp$fa@ zWLSn)_e!{ijqZ5*MIWc{8~BSmhL(XjuK+`7POiU`RQh{ig-~2ex;7N&QXjV!i>@1@FNZmXft@li z+8hf@at%9t(#X8}+~0-KB_dTTDESd~Vr=OdV&7LPj$W1Y-}qV*sn^LuSJ@(p+*Kw* vJ+_rafCaCX)xtq6SRg{Pck6;EfO_wT3k5S+@pz3G*pe|^sm0q@Q)B!W__1?0 delta 1831 zcmZWpYfMx}6rNdLO9k%oDxk>o>hfMzK%f=Njp)wml1k*U$kUpFO{@|_MI)f?O6?YJ zq8@)V)ig9Ut*vdU-P)*01w_O))*!VMd<0OGOGP30qQ0i*E*O9GCcEF6bIyEo&dfK{ z-AlWB=}|59ycJ8F-z|qPEz$)1998qD^4^uIIh!9$=r)ZUZX5fw&Qb4@t)toStN*v! zs(FMk*?ZivA>g>5@8^^d;m3>glI-e}*)GW2AXOhjJ)le<7Ca@{+w3`_7hBsQwLf=Z z?Sn21$H4%41Jyx?Ud;Aj&7oprb=4kbAD3)hl-WA6C4L!4lY;M(wpZr)S7!Gsvk#u? z6Sp5|&JiZt*W?PpQDJCVs*ED6$ z9Qfc4Yt9#gnXNOM(Eu^WrB>9k%=My9XiDOoGuv5KQYMv3Wm36R(P2ABjXk5KFE|&% za|n?N%;1QbEf_{Qx7cr3?Dv?xOYwzkF?|s>+*T$B<^>UAY-4iT7BrM43g@l3X+$Z8 z%dzw6JMc8tNRuHkt~zPm$V`mcJC%4GENyz!m?_ES+-x7mt)Z;_raPl|gz#*l9Dy@& z8MFtU#)Z-}2#zmzzkQ2y#R&EB^E^vlCuCC4rTN2m@p^g$dg9G=4TL7_^$Q9l>UG36b<53?(Ge(;y^9X;%2d+=SVXo48+^GprUd+)7-rRl$5sEzARb&JN7> zPTS21rRyf=X1PgC$;C49gmI&HIwhs7fT*M_`aV=9&7qf|J}E2ms~enG3FE)v+Bu?5 zt;Fb$l}JL|1+|=EKe&=Kk2dTxEY~dX#X5}8V2Gu^z&C~zZ1$?5R&#d<@{-G`3`dhw z7WNNvj`Q+GEegg}tP*0*D4o+jFLiWjQYbw?DU^E;3TnUB?n$9I@B)MwqZfXrQ$4;Y zNX%(R%OdKOSwl`fG@Yy%!UW{D{*Gkr%Ge-mGM4&Vk?iCHJjK)MAF~fA>tV=f3Vh;& z=Q=R(@`N9vrPM&yf)LO77(vFsMyOcu5p{tZ3-;3uP?yq>G~rFiWRkF{LQVHIXV}0@02%Q8?lDj z#?Dl)=YAK4RPf|d>1@0A8`v}@*~a22B#M&=(fhR;Nidf7JmM6C7E zk^nT-#!{h-1%=dOdj)Eg`9x@#k5-LNVDv1=EJ))u3SYA~=nfcSDRegknm5vC&}5Fs zm;M<3?}Y2-Xk3Oae~U(dwA|#zuuC@wowZE^+FUE`bF9hT?usy!XVCawRW*j+2>vug zN4g!6`5qMK#}-u3O0XBy(Fvf1b=cR|LKCfl_CkY^Bs=F2{WOqM8iJdnBP)&54rgm< z_RshyAhO7SY##|crxJ|C6_~lV*g#vLy*LOjPk(V8 nZG*hk2HNfTaCJDPEsifs1TTC=k5wBy`!c6j?sJS*SG)WNc_*%Y diff --git a/examples/more/05_burn_10kg_fat/example b/examples/more/05_burn_10kg_fat/example index 58c1406df5bae5de07753eb8827ebc58ef03a165..39a9a794c73990f90c5dc15c63775322e7c15665 100755 GIT binary patch delta 1775 zcmZWpYfKbZ6ux&BWRb`00?UFZ4_TJyK0ud85M|O8X6+h5-trJ@3))mm3{~4G&{AwC zbRy>Xqe-oysj0Trlyn=TZBrJFf<{|u0kzl^mC8_2D5$XpoSs?aS0|bI?me&hzH`sa zi6MGoh<2%|?_fOfT!StxEn`CdxM4Ydd1rAU-FWk(X9HVP+@CDH@7kwwXlOiK3@%WA z5laX!23TB?Av&#g7bS%K=4aY3dIe_nuwoI|;}WO}cEm-7&2oZUup9jOt>?L(Ifm~U zQSrFfz~^xm8V0|`8A4Qi`%*(wc3lTAOmeNgly5yB4H-t0rMKN~$h6a`EX?1Zftyu) zd!r%2*}l&Zjb>hDH&}VG>Y|#BYC-mJ(6}U2!?#|@`Rq3gVQgC|bQ{C8 z??0F2x;ir(^}a`HT?dR9m$7T^%d%6r;}jn9La!79{_!`Wn=ybFbrs=+q`G<0)`APE z=xMx{jB4qgdHx(kvMQfV$!C)Atwj=%8n!UZWCH*4FTG-YvOjqDI6Q4i&N?k?i# zeKsnWNI$@ILMEMttKD-64;-7m`lE=&=~C|UW9P0 zFIjeoZA!>`B#H-vy_|24R0$hXa;OL$DG~HGoJ`4yc8y{K z*~v@zay&tWN~#X2aBR{Qh0g@|nvC=@SWWAguY!?BDx5MUBC+eH74#1HnH%XGw3s*3 zPhrHoB7OXhEMr=+K|RfCy$p41!Z~Sh-sZ3D`ls2dzG=25U_`6vEx$I+R_LyP!xC%j z3{oswyCDo?dT`}5Xrzd{o_e_SR7DpCVD0kDSgc2yh0iS2!L?ZH>?1tIpOgnL{3-1N ztuP195{;;i3L zz(TPBC|s#e5wL_ZF5e^0Q%1I_Zl@S<&Yuvc=sk$wQ6c>chgY7?ehUM~m&vlsM%k6O zR~Z`k)(Q2tcNDw#|Lq?u_6JB;+6HYlD?JXUZL685!*IZ6p&4LIUyaOOOHZa(;81#o z&#_^Qj2ebt(i3&x{f;7A=V+6S6W2a>3NyTDs)c}z7$$NUtQiqS#>LpqS&XXW#hg99 zgj91?Ts2oSUXHef37cUfpK)bQG3V$#Up4gawg6xDx_xD z(TrErpz(|THuo0O+=-)Dj#Hb91APp!0l%Or#1=`G!@LRUz;7@Y@fv>J9f)KC;}B~R ze?)X64j@K9kmU))7DTT_gjgS99%93kEH@$+%*gU6q8m};gZ@Xdyvm0JkxpFHDu&0h z+=P(F6LU$vW_-sZRgV*^q=FvDD<#*CoA;6JLPvA2asvK%&Vgl+M%V{PEjx~7PmmK-D z%cWhnK}GvqTh=#wA>1ysFj|)~g?NqO%@7T7yJCucD0M?($!1yrLdhOx#0E_1ZrTTL zm*%6eo>G1Il*yAs7G!lY1Y4)UM*LH%XGYAhxXg^%S!LI0CuqyNX#@0^>%&{j^JyMY zxU{1fC9MEx#b%7$QemMTaHv90qv6YnJ+upAHd(0KRk#T$b+{@jE&enPgnEl_U&ef; KK37kDz3M+p@q3y8 delta 1846 zcmZWpdrVVT7(eG0p~&O5Kq;sb(DEo!%EO{WalNzBTUY0cN6`v6Bj_?GCQM_dsH?_Y z@g|thEX!OLGMB|ACbHG%MrJD$bkT{+=hxXVd z>h|e`@M6?r@6^o$8`c6PBl{v{F-X8hVhM43=Oq4O}y}s^K?+&(`M!5>$nQA+WEfM=7ra0=WDYY zBGODd4mH{gvu$*w5dUj?J}&0+jrE2MXX7?QGP-${&5*;3?shesM6k2N)1k%|0glz$ zpE?R}eK^E7mKYLv&v`3P;|w-cy+O?vzHiX5d$MI&<~=|0D_3!DZWUL_RkeBAY3{W_ z_n0iRNj5^bQU|o9O=6RVWZ5b7IfVzj&>>M6PU}wg;I{Ijt}v01Tpur5s?m`0@5%C6 z+%zINpg%p0E`x}ST$&6;8MWE2!SNU`oR=o!V!@uj8wxqGQg#Rracd~=zZ1&SAvVcM zq(g8mV>Z185ymMr6*7#Kp zi;Bb?KUz+MMtb(L7R_K+3}FKHcKwXa{8A6>GOvoYVy`og@f3elUc7Kia>FCDUDv0< zbG>r=)d}B4OR9!NIf>y77{P|R8rYcgF>{B7(Hx-fz~0>L+1)H5n`1C&=|Zc9HIK4; z>rr3aX-;V_M%{`=0bO$n1E?X~&b$>U7cp;Ycp>_+EGh+#=bfhOU_<_yh?7yTnjMGS znffddTPSk*9`Pk*WSi@Aicw!i65e7r!dNkCM(=8NMXiqfM(X@<)IUCJ9{u|B`+40hZ8b>4F_kV z@0G$v*{T0>9wtiXFG1d%4s2LYYFU@;1zRSN)x}huPsn z8M;uh)hO_<5S#G!j372kvYar1kQTguR>Tp!*-ePa!zGYpLfIj4u;-@tHrUv z7st_WK~o$b%|$4m5qv^aNEUV#zfF(BWqf}MiS~556F7XYgZ1{sIv0*I{xK(USg{1h zsfWvU{iIfml%t1ij80w?tqw+aVl-p`#_aKlPMkd$=A(0%;%N13%xuB%K``-i7_|iN z@p(+#J@|tEfbNDU#|(M_-_ybEP&1MDp~f+dxYK$HDw%`b153u!y`G ztC=CVbsF4=M`e13m|^8f$< diff --git a/examples/more/06_nuclear_recovery/example b/examples/more/06_nuclear_recovery/example index c8d31d5642a429ca86aad7151a25d26f92ccb3c4..44ddb713fdbeb2249585c4a4746409ebb32666cc 100755 GIT binary patch delta 1802 zcmZWqYfKbZ6ux(t$5I}%3kxh(VU^*vJa$(EmI%t~DzkJ+weng)h?SsiO(YF!t@4OS z&4f&gJ^YZyMjI1RqbYG~OB)|hAJA$QO=_^(x)dKnRaihYX~5~31%Gvtx!<|xocrDL z-Fs%Ye~|VM(k>MZh)W{gC(fmzr3$U@WAj_P3cH?}@~(FNxwq3awftJHYmc&qq3dBd z^ecK18p00K7>L#msv=lII3f73>$SE;qxqN;!hCy!-V%I5vU?d}9kj zm6DwwLqU}59roksQzj;lh#$cUgN07OZo_;!1qTh4e#ah5k~j|2hPZ&hNJ1tUb;dO? zBqz|L@LsZ=I^j_A0nN>DLMEAp@K=bKk@^EHOIbwQVPi@v-2q>uEK;o0!q>_3;J1|a z755&>H9WjXdOedzNlu=7`%hdttcoZE#KIi(P*#B0HmoIM;d@DUtM&7lIg zQ{ScsU^+EdziAlHj~V*~_r?p9D;WyIO010Gx?Ij7aHhr6?a-7~pfH4DA!e9KOTx+$ zjOp}CC^y#8(=cGHqJ>~GrDt{wNfItAVpS82#)qw85`Pw3W_>~O?A8QR(Lcdd2DhnY zxn%N%wYti(wVh9tEyX;pa>lIJIxM@R}3b}rK zftPqe9ytDim;xKk`QaxSyw=0+Hy3;sEztz$%~1i-7(v4DOn6}4OPk^S#qD$yUM;RS z9uFa8M<~WJj-ge<7$=$ib=YFo?p&E$2<{BV_POogpI`?ChQQHuCpODWdUU|uATMX| zIIv5)6{;ZkYe{$DXXu=z+XvrdM5gdaB6rJAh_f|gx#k{+5d2{vAr8T}9>FU^JOK|g zzR%f?i6aXnNn&Db^8OWUE!X@^wdGUU@B4rMLD~Nt3l??v;7+EIc7k8lGI|_-&ot32 z*nzeM&SoXk>oAm+UVbyB~KgkKHssO08=;;k;w9H?3 zLxsnA3bV>NA@?#)HdrgH8?2QhD)hZ+u}LQSUu&sD$Sr5FMN91b9c!_jpRyKN`RQV0 zbf9~kBWXq!AsStymQa6C2kOt{O)DBbk0fc(hmbb>(pX_7E7m`%%kNH!Q)P~rE zc+Q`M5f2(}+3`}6^eE8t()IbucqMhg+Wau+U#+D)w5^T^vEn5W4&Q1evH;D0hgL%& zjvRF4Cr}gg;;4g>{CC4us3ie2Z=*%<{Pp|~s$#!Dij+Du+9;?;xZ@Lbdc3rmg2wzhOk;Yo%SWfy1< zP^Xa&fY}*|0lTwG;W5EUXIhloFv~&bc1S_B@(#5y?%YWUe6Zd~)vk{9SybUpcik?( W6NEoYC$<;^blI~DQP`Hv%KrdKs)Gao delta 1874 zcmZWqYfKbZ6ux&sSrnLA-dIJHk>|qhiojA)8C_%+*Hj}95d<44(8NaC(5fv$+VwTX zX)s6QqisqPlcx2BZep|#Ve5-Nf6J9Per*^ zwh4aH`tzduxtHYb^^$NM4x=$9%0qOlkmVyaOc&}ZD;gzvNOWGNlJk6)$gbjQgflE@ zeJQrR6gysu-B28xRR3v%O|aVNa0Z^WH3b)$QbUap=V+)EqEIb)*#xtslw8ttGYLkv zJ1^@o#E8fla-P~VZofMyHRK85lJjDgM1uvJSB;>TGByZ2w>_CLCOI!i#cRb9ajjS? zmYsKAqL!|Kk}<}(nKnYid^-fiP2;W%Fy@f|aL5lN`LcQvGUK{uIq`}mCFD*RA(mE2 zN#(-{QTtTJTJX|{`i}~!@pGsSisLP`1C;p6Wc>@HBwtj2xyM-c_9t~2qEgE2@(|t) zmE3)kB|6B>%p&SCn4MsyT~M4bo&E-!6G|uVxXYN@2|WpOd zqMc?yZQ>roi4a0Yxw??+i0F~DA0myjX$^?RBw7F)jk9&p!LT)P8XPn3UHo0YmP3CF z@kXkgy+_OIE7W-y*yW4PzG1Zz*LG#Q=CT~K#23bk-sUMUb+8|tNtyI5Xia*Bz70J| z3!;|vF;>A1{e)-R1YXO;9fX;PT*9wfI<=6I97FSAU2?8&N+2d;fm_M(n3<0$g}wvx zO*K@3W>XnW0^XdGw&f0ExGhi6W5IX}6Ko%aKW)`H!j-g*aHam$yhe9*#|T#x zVuUT`=v1>o(-^QI(Z`LFL*UgT<9ku`L`4%iVC>aDV=%Y68#>KvgH(=?vybo*&uNn+ z-&XxVwB&?*jC!@c_r(M6LrLY~b4!HpSb*oULqeg&@)2DRi|6j8?QnhWR?{xDycdXv zrS3qff-{YBJ8Q7I#51B6Tk+rNkLA&=HOszoWc(`)-Fg47mU=XcZzC|3*8Pm12Iu!rhsf0L`Nox^2G*lTbq@K>)f{p_- zu*op3j8p>EgsA`A-B7t(Opm!3$E zf;&BZ^1K`9dIHAM6GCmjBTeUXT9+y+*<%iQR8o>uJuI|F(c@5NoxbY09`AEEdKF8` zg2T9&Xu|=uTgz{}#zwiwf5k$FvS7Y|HCkYouVGKhkHtJuewL3Bji_Gbh<~oJP&rq- zHPGi&)-zo_kImBUO-M7gnJ|fvUhKVU#9{2@1Bhghu~x*a`;76E38_XD5IYbv5zP-6 z%R_8L+<-WYxDBys2=^iOK4k0>V(TNu%6-uPF=LI0O^Dz7kRZZ8VXRkEAVwiM{%_YO zOJcm}O<0)|1Z_)$=}Bl@8X6$t3lRxNxfezOnzM{X8m~~47^j37_k$X8D zljhTI7?4tEKg_Uiqggj`$CgicDpe&+e;`d~l*mg=s zNFZ)o2M-IvBAU&fSj3YtihUE-6)>yNgwa+O4(WI!EM9$%_5v+3(P6L@g`vS-RHoxC z@J&&21W6o^K_^ZyB3tc*MtE4XiAKSjYfRMaI=CjC>c~7-SMfDJx(~jtGWl9F#y29d Is!Ff_0M&=A!Tgx*+rhhN z7c_-z*OkQ(!lb~f?)xEwdczh<2zU4=dO`9D%IW8%VmQesP%Yf!BTdtS*e5#pxopjV z&_APL{i9ljYdyro+NcSNWBE`m>kQ}HavQps_&{hsOcLQ(YI?CYL zIFn)bV?}9bNamt;djvOhL0wz~*Lz1%T;iBZywAkb^2hL2+=zK6Ixxw2a6TcaeN3{C z;6(oUwxaZ+QX-GT?)W%535ViSX&?L^-Frl1Q0uANec>arB;#CyS`^q!7<8HN|;Q3>=(Pt$rxO3E{*|B2_v zJvfVd;{~dfbQ`e}flEB6mg4|1DNYj+3P+Nhn&A*EBo(Yy3oV3lYdU=aI<3ug$DZU` zO~ehTPfp8Re_c^9u7uZ3at0s1flK&7F7^8n&c{tJe*CA zu|M)K1_y6KpMDH?@p}1vZ!AtdSALbPplNRNS#;}7u`zgGt)UX`bz z+g3F1dF17dV^40l17|WBgZnm<|0%uaxQ%}Rm$Hklf;}mF=_!a$-I2TkEn9v6E^&%U)*g^Dqv?lmI5WI>>r;4`t?0ChNqHM^v0A7W zRtq)bBfqKDc^hnsi~Lt8cS(5**ZJRQcIMwu6caY>D0bvpMExyA=|ME(cQk^Sf?puba_JfHXX*48$YUF+1HNPn>67uK zU%Jx=;o3@@#^6@_51(83YKR`CMwiT?Si7aPmJWef+CuAqmbFj@+slelM`uOYX2ae_ z<-r)X$?C~Mo@m@Z%lE-wWnq}Xzubn|a>{?DW-wIrrcPvd{nvScSWuIiha`Imk7k@Y zX89qYm9-dKUumOy=&lT-`{7_^3r&IODjUsrudKqN_3p}5R|Dv$kke@MXIb7%%)Pm> GQTrd4Fmx0E delta 1881 zcmZWpYfKbZ6ux(P?Uu*v@>Z!r86Jx)y9+LlQk1DY?xt(i@>US66fjCG4T?ks>z2~V zW-I3KtJ>5it!OXmy`aLb#)s=~bt9P*y+Z+y-a)MCu2R`1z5~1hG%d;{({b zGeZBg7waGKVz`ck*f=BALQx!_>&F~Xd|Q287Zb+?`+3UjXL1GkI<6);-O|37=7pE$ zm6zrqIN}WLdmVXvW*(i$!o7B+;o=SEXyy}bj_rIj(#$K5H!)}BIW@O{U}dZQyc$bP z3Y@O+nKf&8^8@B6<|CPXAeYflKF_O}SF@~*yq4=ok!6|L&$883LZwh8tP!fu*w0b( zwR@E_vdk^WBSa{%!qWJ;+!qgI*(TnyiI16hUiuI=#t%l@@oNw3i;Xi74uX2M~AQjF^7FpQiFeb#^Er%dk)U#CXylxs@gT0KE%yXd_H4oJR!+NY054xg*PU z-1tS@JCD~Yoiv4ECjysrNoj|N^~v$7=@8hHY*qD!U?XM-H0WtOWEj%uo3O#qOsinT zP_3FC10f|f-8v@Am{`oKQ8M0q9hdl{WbtqT%IfMQS9xKQTN4-=tPEU!Ws<81^M*qy zv6ewMqeDqzOh2aEc&)U}lZ&RiD!MQLYnT6o#rma6pvJ0@E*&8!p5kXbrM#FpEZu}A zV_|qI^3w8KFFx^mXh|cZaM>8CIiPi)ci1TyH}0a@@PVnD9sob{juaDmwglsDmK3z= zIO7!8*^B}cjtfe0XP}Wo1zod=cTq$Dz2;S@m%!Bdnzcdhl7X$TDD^n)gGZ?+{DYA5 z6bpc3X%WdzETQP-dqhvm*sZzG<_w$+AjIbM@d=!rLaKnLY2RhHV&J`3QTT3sfXshAwDKkD+a_J3XqX^c6hJN(@@foH;gJ%-+I#$Nx~e z^C)bJoByv+W^?BF$D=|^t>SNZCB?smVnKXff(4()5mIE+Pb)J>!>*b1Tk782Z&d9y zw`DmJ6-!XOwTPy>vfP81ibxM7)AHf%x2)1e2PlvK;M)1Y!+hjVpiYZWSGZrh*WV z@QIJ4uU=-gBG=Rx8OnIY z&{!BTXCHdXkRh9bqSpnf-Cl;?+weJhlW}ynmj#(r1wrae4BU#|X85Hrn@XTzY4j=N zuuZfUj&)+Ep#W)(iYkPt)+!#lIV^m#@Vz_aq?hH>oR!w7c=gk zw}!PQh>@AV%9hN1!h diff --git a/examples/more/08_algebra_and_conversion/example b/examples/more/08_algebra_and_conversion/example index ee4b5fe378eaaf8b8ca37e61c40c84591918eac0..2b0f908f38daab4d0805ef9a8c887876e6df197e 100755 GIT binary patch delta 1833 zcmZWpeNa?Y6uR(LzE3d1)7>S&8IHHr--mZAlW zz33&(v9y00CY!NFn;h41q%vHLw1x~CH542CAbF@H0X1dd>%2w(sW9VNXn0uTK9mC4~L_5*?8Ig0sD> zR1DLciE1D^J|<#@7te_fZh^4*Jnx-l1n*6afNLET$6ILxG{@|yaSlxbrxkKu;v(4AGT5FFp>KJtC~kKO8{6XRgS#Et6QbDz_Z7t@-gb$< z3E~BL2Yi(%S<$Rw-F*bHx*6KM{dG&||iMV!3t*Xl!%oEQA zTRGPq`4}+Cxl{ss^0PD*s*`h#nqRSh?8EPHZ#+OXlQ#^Q3C||=sp%|(uH*zJC=6~T zJDHwPOe7U*EM{im2)t!UqiOJ^rGc&iTgnDH4(%!FS=o0K1p`Ys?If%BB*{9MwxCnIeV!Vsf$uG_Yqv)eW6FMMy z#rMeOm0eI|tqJYa6Vf$}=lHey5yWA+54_d_!*i&Y^KL&q<5HC5eu%b32AtOU`fa!b zdA2v{YUr^Yq^F@gbx(>NEw6^)W*I9{agLFzP(rdvcK=66h7-=!3(XI-TSX*QC+G{r zxf(G2)N?K=hzTOZCCxJ+_{x%<;8=D#=M{7ui&hkcjdiH`JSBQf)zACC{;;Ya$35jU zkda}dN5P%3k_tXK3$CI(2!_n1v=8{qEdS{tbleV2nMnpe6#3>^+LXads~)?=DM7My z!r9C?x($Xiql(?nU~^sQv|f;Mt8r1oSMxP|?bs*R)#TK-b9@7Cn2P8T2YMiQGvJ-vC#9v^9LB}fsXu8(B_9x5&Bmx4CVvXUkko{ z3~mB^{%YC+5`MSBwfsa{2(%!PE(deLI)e!>=aXMH3Bw4rJO@Yx;gRp4r5rV6d$4hH zu-0c4(0UopqBROj_gRHt8xXcw$jazF>ipp|iZ4TSq}~%(GN00V zFqdwi1jN#vIOeo$Cvxm6E1){?mW8KwT6{6&X-S>ffDjCxNSV|7Qbw`+iM|~I%B{$j zUH&t+MPJcPjWAFV9%=iJzXMBCc?i(T4d}V4(n{^nQ5lZc>eI@dbR)!7S!unes0vfG adn(rt2huB$U1tqw%$nP|(X*qjPV+DIi-KkV delta 1904 zcmZWp4NMeQ5Pt7KI8@j>-~<%m(B9Cc^%|p+7O0}O!3K<4sY}2QA7dMIJ9|J#(@k!_c{B6AH#7Ua z>$y#PZqsHh^*bF)JkM#jo)&3>|Kfe~F4^u(_Zd4UepXW+zNx^4RnZoz16MSk<;&{B`P#~g1|~ii zT-PXbUCt7eTeuqH^h?^N%v!=+ zbThAPKAA~nSG8OuL1u^RnieUB1Ws>%=}3RD?Fp;T=R=vRBa6{sKHICB*Ru3?c^y}m zq$mn=U16nbgfd}`P%f;!?7B*=H~Y(8D+(8xO^8t7fDdA3b6cJ$ic{=$iqDvMP0oX3 zF+D~X&YVexoneGn+n8iKgNE#StSGHGG$J2?L$NXRB(%g@X%!5_R$9*VPsEtmA-{u* zrFAcA(*>zqafr`xG?caX`7ru~i_9YOlYVf;rO}(v5*JRlK~G${PmHW6@>a+&Mf=r< z5;DZ;Y)jy6Q!JeWpPC%B8}6G9>g^$f40E-H8br)6Tc9?69-Rp%;?0_8v!E+JO4DM1 zUrn>YKjDy2`lnjO!&c&ry>gEGYGroxd0KFY9j?AX*%#LisZLEB`>Ii3!UaL)mi!|*RM1VQ_y|Shf?n%t)Jx`q z2*11l52gQGuyMf!+6;43F0Od(KS?%*7LpBd`%WSmUI4y|xt?k_OGv6J=n~?14_Lmn z%_;f!&LqSsO&dkUwD4;PE72di&w#;_$i`V)j#e3{$r|t0MC>g!C*_K`yj{m z2L7F>b_kqD`vQ#G5@-`drKb7Zx`&A?p*%I-@bE4+?RrIPZGyD)wNo5sl6fzDks3u; zKx=CFs+{RK+(gVTWm0AaE+(#J|9;#!DY;=T;vb>NDP`V^M#&aB#5;IL#Ze(&5XTCT zuoK;@oTgXmEabE9q_lI|b6K}Ed#X^Ep(tS;s(B+~)+0q}M$E-a)q}VW?<1K;$Z@>s zxrkke8xfPAD#|Xz2E;>%gNRLtxdV!F1(7_%eLl!Hs3;2&jl+s^3b6sP3z3W{%9sxc zBvoh_ebF(hDC-cb+?$ph(9nBuFeeDKIl=U6=vq1}K$w9k41b*(JOqTCW%LwC_}&k{ ztKkMq!0&m3&4+M@mX1NRV?JfzaJ)$y zL3G$@o4ea_z>7Az*Dv4WjqpdFMWer`Y7d`B_|p&_X>dp7`%>Bfrh>K92x37E%9$3{ zAji%^J57f6!Vqhl*|UdCwsaf^5Qv*~mT|wQWHehR{LSE3WI?v{qMvar`r=la1>MCV zVYx~F&CkZxR30PHlC_w*zQjV;!NHOcItX8u)X=>Uwc0`(+D5O_f Q{2J57nHt?&D=WSJ1rD07*8l(j diff --git a/examples/more/09_ergonomic_algebra/example b/examples/more/09_ergonomic_algebra/example index a508872d03563990629b5bce2b2de35040acb86c..8318b02d4bc179959a14c12d2bc50121da65d011 100755 GIT binary patch delta 1811 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 delta 1832 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 I)z)hM1-$ooLjV8( delta 1861 zcmZWpdrVVj6#u>g(kkV)Kv${=D3_N|S_Wlyi1uzkZ)Y(Wd4qtO045UMhOZ1k*D=?T zE||l%L|vwt`(x2fAk=XK9_&iQ`l zPW98NetKL^75#C<_w>8fv{)AQY3@q6U9Yb%E6;vBIC`w*lDp9_pP_AVIiyta zSqve(OBog8HiQnV)cYwR%=cGluggE!+`+is1C~vofsn^WhEH)$k29MM;x}}19n*e% z$DkjNdN?>(166^WWi5exYXsX=Thqon$2rFZ$~!tOocIT76O8&z&r7lUrFiwFcpb)A zee;3VY<6ij^_ualU1_K+<69fp1bb^E8;xe(FPk;;u8J->6Gbqy&2d4FDJD2ZZJn~2 zZ*3jpTMO85-f`Z-(=ayMuYr~G=1r`MX-N@9k$0Tq%hz%h+*+=ZtLk)g(bT@tisz!p zL}e4g724pd*!j$g`=V%f-myC$^3DswBIt>|9__%n@-EG39U-Y6-enR{5Y~)|;u#zo z5jMiPxH$R_jK!r=3oMMUP1*6+tdDn|7cx=FX?fCQ=3JGc%{h*vp?t^C9G;FbQ5GWn z0w?2_(moiAkDxgqPpF*pL=Z)RgG~vsir>QtnP5~V2kcLXrw%xqV54RTO5CU3t0iQT zY0~_Jh!OhD@Ll3!+5o+YdYS@a;$m6ME1*oA4_Qmvxug-PhT${BA3J4i15#aDwD}sa zInO(Wyu!76qG)rqNFjMxC0;Pj`2!!NgmMT;%A)m5q5b5*nd5 z#j074c47R^iz^PmLWJF*H|XX*SNZ0xd8meb!ydW;`V8e*~RrBtJ9TL>O!szj-V zF-$Uh8<1e!DNai6QdTj@pgy~E1WD8hA*p4^m-^I5#pz&QPUSbyo_b0qC}GvBr{*n3 z<4m??pia~3U6?~6%+H83HDkG{9=l7qSV@T86<|W}wITd-6AIIQ%-o5QqYIJxK8EAw zuv>V?eR*AzWDoei{h(xjfCUS6kdtntdtqDpa@o`X_7Vf1lryoJADTy9~)uz|x z92vmKDEP#*MDxQ9?9wq!n@pT5=egZE$-DF(xNKTPBVpVWvF5|MIL>DnRL;Ay8c~_u z!_gA7y!dHg_!Uln%CG9r==c*W_M-A`-+nm zyR6xWH*G}LUPVSWA`&EaH=+vH$cq>~DvIF&gjD0k)*-ebHX?cv+Y$3|<&PmAM?8n9 zdLW7eh#ti7IhfCjp9I9g2~qqNF@F;KM)V+t1(FbAd?boX1JQuE1JUTd`No$rdINUl z#M2Y-bxsVOf{QsTsU0-AE2$CI<;Kgxhv4JfI2jp+lew#?7pOH<7lbQVEN$H8;OGs( zauSB31v@AJy;Z9_h~7fU%Lhlx_+Yu@-Gbg>SZmeNWY}uWq=(>yH4X3Qu5~kwfIWPS zA_1eME~`;XqDSCcJ_b+gf&oye`3iQ-Iny3$hsLI8Q7(iXE)GNEk^1}t1xnBsX^B! zwTBO#J@N2tWHfY?Zl}k=TxOsi_r@|Ty3PG|`N%vP3#GLNMR&%`d)@ARwY7f#0oQS< AIRF3v diff --git a/examples/more/12_time_to_botec_parallel/example b/examples/more/12_time_to_botec_parallel/example index 71e3c17ad10b84b55c2fe03765973b9cbaf80e70..27e99fe5a0e3d28c1afe814e71a65c879221ad34 100755 GIT binary patch delta 1816 zcmZWqYfMyE5I$!YWRb_+h2|wYHHd>Y)x#_*h)81tXiQKk!o5njbdqwis(f_S5VV7%I(};{MDQ6`R2@gXU@!= zIcK}B(XMOsxQZ^Eh$W71BG%?ZOBC9*#=#T&22Z;#yg&Emdrf;ag`11^+jb}ysug#% z@PY5!s;g0iaDrEjZO%7Wqj`rC!hHJ+9Tr@?Gy52!2#TZQs1ll^7Y9CL`Ci_v^W@f_ zXZxNjxV{@o4(DpHMH^@!j7RIVO0GRb*OFD&!SN5-)&a`3o)3rom?XnMyIGfEruIx+ z-<*z*26)ZB;A*lXcCk--UmeSw6e z^m2m9j)J)So+O>aREby)+PE0H4zl7>s1e?Z+mKv8Id9|melYm!|f$K z^l$hq^^`{*>YUEZP`flBkw+JDvwV-}j2MGW>9q=8@t%ZO1=nl@M-t*B99eoIYYP%5 zLnTRK!p!pSmAVG5bxKvgUDmt)U;nYJpT=;-GWf`3q(|X`=_Q3Y3I|LEnht4cFVStV zB`twohQn#;Zk?mZWJX~uP49Q)cTBSNIc+hqLhhWEpXG$4ix8R~q3|Asob=$L58bhv zQ^;Dw3E6EpsbVYHDz`$VxK}#(BRd%(7f5H~C{Ik{QaWATi ztorA27UCw`H|ejcKs)(_Opwtd?h8R08x!MZyRDbUezwdwNsL0 zN9;g!SwM&#F$A$-T9TF`9!Inysvk(wYlyvwU5Mn7B>jeXV^)&PZpeQuNezg-h@ZL< zA7XqWNxiZHk*EkU+Ps##DX9&*^L!yLPfK~Q=lXlI9_Wk1pIJ#r1JvfNpg+Me9KVEr z@?vQRMC8X}nJxLN{OU24`Dd8mts)(mUK2O#%Z=)j5Ta|%CJ6ex`7ng-Etc6RZI%wuL(N37=66gqyQLxOSq9KrLiK6xJy5(is z17BJ4U2kAHTy50DR|%?>Wpu<=yK<)s!p*{?3XM(fMEo)k6+}&jYzK?oC>?^st83_5 zpe0QTy9u_JY{e}emE;FC#5wtf`E_Fof`!9-28E>oiwX=*t0Qz2)mR|eYEOpUrOD{8 zyA=PMfG;~2w9DkA);oc0$LwTk2h^4aAoJbw8f0ECHw1O*ofJC1<-|PG2oV)cv=c;fR*>kaNB>CSZ{w#@ns%Kre)T7V(| delta 1887 zcmZWqX-rgC6ux(cWkBK000SZ}qdZ_nmKnrhiC}p;z#SbTRyOw-jZ5mn57fE<>S*c< znFe!At%@loZMCtc=roP?hd|wpZO~e^(pKE+!*v8TSc|vk&0ze|m+-!G&-w1T=bZQ5 zq2)SlxlUVkG(6Z${78;yEDU9hBgFcpOPZMcOmd&2%zdg*;#YCiD;TDtc=U5%SW6S|q!A=;Q{?pd8MnqX$9`|jQbHxD7mZY%5afI{=dizIk(UPKhV}w2nqemfs+)l&l zSVH=QdgE?Hq@-8DU*pDV9>;(tHI2rCHFd0JUkntC8xAW|cS&#Vt5w`;d}xEjZ;f?z=waAg-OB?JA`d>%?!2qu%D1m68gR(+cQH*qoMt=QpPnnB4a`Um`ra zfM+{Iy;{kZ7_3AR#$8g&$%ofz$@FJ1rBBstjlw!IVSl=Xeg@~#v*%@>`^aYZM zAWeu%^I!^9EI%R!D#l_n+g+ZB@S%jbJi#Lo{7onqVB3TrCay(Q2s3PNm<%mh7C++Ad^1 zy9sUC7UQ;?*ra=a*4rgd(OZ|?$2{qWU?6*p=IKo^k~%(BUQOP1sju4pp{Pf8eU2HrBp7-|5jke73iMnvJ9wQDAT>4=6t9-R=7#i zP==a4j)L|5&3RBTAtr_MGDI8Rx{nbH@tU?EZhp+U53v<7D1;FG6V68<)*wzm>_l`S z+MaU07_l3%1<~}J^Q(yD1?P@XPy3%Ue?_F5h z5QK1h#zBptOI0C0xriE~CqD0<@=!{BaG+uV-3+vHokpJx8!Ff05zi}2;+qElH(3Yw z-O>;ooSv9qMpfMK8fze%zjQS9I3P8ux5Cz{49s`5>N@QNxwVEz+GDlX7>Ef`Cj|`o%5aB zeU)}!rJWk;ITS@)W5}taMJoUCl20}V*Nk6ZU8_BzxfIoLU{XKitW#GrbQj$5yFkBz zj>TVkRZpZ(`}=KFkk;duZV6wtNIu*4{Q-pR1I4rLIP$vp;xf6-u$L> zT;H6E?;BC`xc7z6A}lljev4rJ)qKk`wm!A8l@}(tri+wsI%kCB$T-Wz78{#lqf@Ie ze@`-QR`V^jY?Py=jy0m0SKC-CFP2`=Frkeo0uDwlUE<3(ozLK@KWkIhvKl^h3md>R z7eY^DfNtM2S+1-!GokxjiYr@TBr=#uzc0%U;kH9~$O{*xFz}ALZfw8+UepH$5E9?Z zi-|lgq`V1P?m?wQ+6->d5p)}vqT^`>ltovWcS-;Gc;UR1ikr;lr}e8iv0Szblc+KCe9_apvMh1X5wpV6WFTak@l70q;h0D|1}c-C z9s!4`O?OXE$P81jH!N{Q#9fAmrsZ@Hbg^;tLr9NZu4?j!wWg)8C-x9$x}$Iy?;&o4 zaE$$?!pnd*mjJtPzG-Yqx;8G$cClFrS&J<3R`4L_&qmq+>*CU=2(58JbQC(`(u~eA zJUwReCnSg0rx2n3NQ7fzE}@f zmJ0eYj93zqCPrl$)ACu(G^2B4E19UX($KukTiIQiW=i{~nR0ErucEeiV45k>9{{^G zJh57*Sadcv0Au=aOdEttv}1)rB044T(3LwkQ!lYe4uAJda$7W6*w5bm!1Q^m4~Pqj<4Kf?)4#LhadV9 z&)}+(vCJ?Z)MA5i-Dyf~QQM=%=K0kj+{69}hjj_-u~kkcggh6Bc1+WH`oK`a_ml_m z`O{vl$;ZWkK)a@8J5iH9x z6KYfbzLc%uoBq^PzpL2Y|8GC6*dHKYsT!J-tn@gXN_tWC*D$=FWTD9rk^Cav4{s)$ z=p|@NPWJeG7$ZZ6;c{}czUv06Y?`C>iJX}E%puJ1Vw@4QDPgLRVX&qI<=xfban54Y z23}0NiJLO6lq=)PCyLRw&|x!7$Uj_>LrgotVuu#mg{xeFU3kLfbHZ!^Ry>O4JV*4L zqC#qL9!q)M1AM)V-)3~F8V0bD54#akb5EAX5!>;>S=|Zg#1~qO*o#lP5s^HQa7avsWZEMh034RPZn<{`E}lI1SM#>cYEdSECDopGvR8ZazUZejmQ#-=_HxY&X%vIETX)yN2F`?e=gQ1xM`Z_;J5s z&!+9pur=vw+V6aAZG#)aXl{i{=Tuq{M-ZZl_>x{{ZoUVly--q6ff7y^>{N{;!OFrN zv>(1G%%&URQK2Dl$~>R7plMJ=@Z5Y!280zER3jF6p~#Hcn~Sc|cHoM8XbsR3Ltvw2 zKFuWwm%C7kl9mJUB^4OiR$`&8&{txhMz~S3lXgPxdJFA!zPBDJwK|0jj5l2YN2)BI P{mMz;=yzVJs#5<892tP+ delta 1847 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 delta 1823 zcmZWpdr(wm6#u@9z#_uk<!}c_(ykU_jlg+obUUc z+kKgKU#6`Z8aA3j#-351j+S#Vdqd2(56vB#KY!{<^XP?#n>*e&?DRDS?c?boFhtMO ztV<$n@KXQRyk|ssw`FZIbunR^S3af+}h6kdj&0`m)uodm1|4|V0 z_XRQ34e*g*p<4J^5DG$>ce>D0SG$XO?uhQQl)2jrMCBLMhI!q~ZBNC{r{cw@VmE{* zXKdQ%wF|j+8py+UHD{ypJo7dRMwhoqNI)|SvI|*Esyd_L;|W%Fy3cB`#IVTg91om% zSKl6D-V(vU+#Lms#t8PHMnS{!-V(I@woFA)nENzaQY}`A)#6gIrrmvpTDu0T9xDnT zZzn`7bwYdcR6hQuqPRTQT%Oy^b5^EsGr2p#jmOHQSbrQL);1>D0w~DYLyB?|4~@u9 z7)VK>uR?gLl_o%bYF%c5!+PQn>AYOP(k#Rh*tXcr=vx`$HHV;^Pa5ybrok zb7>cZ8>iD`FdCPJT#*$;PJ|uC{G+bb316 z{Q>zH>P~5!8d8j1;sxV5ZyjTlJO^f_=hIctkUow2VMls?0$f*=TK>*Ce6?NBs*N0s z#YRLv?FY4+Di};pq1B)@zrsbuU>{bH%qIE?95ZLrQ!r$1q`$+mj2hYuZ5i1)=lT@| z(@F#l(q)oR%NtM0Uya+QsM@7rzN&MWUmC%p)M+a&4)c|^WYb2g79G+NWBe$& z1g-qn0ey9F1&sDh!?q)h--$c9o)3qnp zdmSZt85CRMCWoL03&!5pL4#!rT?xaMJ@g7}&uY%B*AlWW3Z1rElxlg)2*14%$t4~a z)#6e_9gpnka(QkbfzHD$>tf`JWStS_j~uHRaTLC^9_IoPuzJ?<@FFyhSF?jPTW^-I zhDw$bh~qtDyVf?B6p8h7}naJ3*Fj_kxCC7v6*7` z^x%~4N3_KzN`;SIo)IQxbiyrLBKNolv^moj?VOC~*^5z2n3TU2m5C)B%thN1ijD9y z{t?SvQoa|zVq%%oa|JijGb)ydo` zg7pIUJwWUmR+MiM7mVQKh;4{5p(KiA-BXm@P&6QJK+N)uzVsrI5GfTMe}F?5*^WTQ*i&v)pc7FnXn>KLt;>5I6(;% zJM?k;(Oar|S!4poA~mXa19}Ib*`cRq*z1@>55OfyHr`M$TSKSAL6#I|#Hjr^%`()| z>BsOROTxF^WiQeKusR*V^*Cj)kA{1LKvP^nW#97RO_LD*SZLvNJu2Doxq&~9Xi1+h zu_TnzJ}{Nm&<607uIGpixUzLrhK*$ox*7as`Z#UISQ1Gc2XcTTcuHDq;cl6pBbhL{ zJQK6?%73M8psP4Zcfq9!ecXYGw6PPwR6EY5rZoVqtij0Tl@{6xyDRnB`Dc~u=|xCf jY@vO=g^RJJR$t|ktKqZ|^6D&Ma?bdhW#8Jmx}g66fj_1& diff --git a/makefile b/makefile index eddd664..3fcf7e0 100644 --- a/makefile +++ b/makefile @@ -24,7 +24,7 @@ lint: clang-tidy squiggle_more.c -- -lm profile: - OMP_NUM_THREADS=16 sudo perf record ./examples/more/12_time_to_botec_parallel/example + sudo perf record ./examples/more/12_time_to_botec_parallel/example sudo perf report rm perf.data diff --git a/squiggle_more.c b/squiggle_more.c index 3c29f18..22e16ab 100644 --- a/squiggle_more.c +++ b/squiggle_more.c @@ -64,42 +64,16 @@ void sampler_parallel(double (*sampler)(uint64_t* seed), double* results, int n_ { #pragma omp for for (i = 0; i < n_threads; i++) { - // Simple version - /* int quotient = n_samples / n_threads; int lower_bound_inclusive = i * quotient; int upper_bound_not_inclusive = ((i + 1) * quotient); // note the < in the for loop below, for (int j = lower_bound_inclusive; j < upper_bound_not_inclusive; j++) { results[j] = sampler(&(cache_box[i].seed)); - // Could also result in inefficient cache stuff, but hopefully not too often - } - */ - - // Version with loop unrolling - int quotient = n_samples / n_threads; - int lower_bound_inclusive = i * quotient; - int upper_bound_not_inclusive = ((i + 1) * quotient); // note the < in the for loop below, - int delta = quotient; - int eighth_of_deltas = delta/8; // why 8? a double in 8 bytes, 8 doubles is the size of a cache line - int k; - // to do: simplify these variables. Maybe divide by n_threads * 8 directly - for(int j=0; j