From 023c9f28acb0a8d0f348ddfb18ce441c2ac0fb0d Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Wed, 29 Nov 2023 22:24:42 +0000 Subject: [PATCH] reorg, refactor, recompile --- examples/core/00_example_template/example | Bin 21760 -> 21688 bytes examples/core/01_one_sample/example | Bin 22000 -> 21928 bytes examples/core/02_time_to_botec/example | Bin 22016 -> 21952 bytes examples/core/03_gcc_nested_function/example | Bin 22064 -> 21992 bytes examples/core/04_gamma_beta/example | Bin 21856 -> 21784 bytes examples/core/05_hundred_lognormals/example | Bin 21808 -> 21744 bytes examples/more/00_example_template/example | Bin 23152 -> 27296 bytes examples/more/01_sample_from_cdf/example | Bin 27576 -> 27584 bytes examples/more/02_sample_from_cdf_beta/example | Bin 27520 -> 27568 bytes examples/more/03_ci_beta/example | Bin 27288 -> 27336 bytes examples/more/04_nuclear_war/example | Bin 27416 -> 27416 bytes examples/more/05_burn_10kg_fat/example | Bin 27376 -> 27376 bytes examples/more/06_nuclear_recovery/example | Bin 27664 -> 27664 bytes examples/more/07_algebra/example | Bin 27248 -> 27296 bytes .../more/08_algebra_and_conversion/example | Bin 27248 -> 27296 bytes examples/more/09_ergonomic_algebra/example | Bin 27248 -> 27296 bytes .../more/10_twitter_thread_example/example | Bin 27408 -> 27448 bytes .../11_billion_lognormals_paralell/example | Bin 27288 -> 27336 bytes .../more/12_time_to_botec_parallel/example | Bin 27448 -> 27496 bytes squiggle.c | 14 +- squiggle_more.c | 227 +++++++++--------- squiggle_more.h | 46 ++-- 22 files changed, 141 insertions(+), 146 deletions(-) diff --git a/examples/core/00_example_template/example b/examples/core/00_example_template/example index 2e60ccc48490a9e4a8bbffba3c76116e130861a6..7dc8b29daca775a16fda482f422103f2c339b406 100755 GIT binary patch delta 1686 zcmYjReQZ-z6u4UE)-TLq|3Y(Zvi@K4hSh;s$n0CIeiq=k~oCPICJ@_jf+- zIp^Nj=x4O|Q+jwlo2qUt_|1IUMv`*c26kFx>PyqMeX$B!PE9@9j`YC0?8hutXWKgW z^U3N+=Dh}6K!gny^D=1NzY?yB;vhceK>SE=*mJ zJ`0`WbM8R1E04){;BA*m55R~kSKcQRV%-~MgiKgBWbVZs_G#D)Ze<>;lp(D6DTn73 zujR^Y%<%1PE$amUB`@OyQaBGhK7I!Jm3g!S#+1wS2z;OIHht_&8Vz5-t!!6z**_u> zE0we{#ve=)lBWrLZZ9i!LdYGNb2m%G*s6tB-Klt0@(!frR`OhiE_XP+8C~M5CgGmD zz*auV`HeS{P8eg1Z-!+#FVRbIJSUr;ik;1Qld7vz9L>4wnv7pa2`i&9^qV~ghUbNBT82}467Ts6=dkP8RV znl5Nvgl8wNF3kCy&f)tay|^-9Iv^{hXKHU0{>xWGxUPBnQAheV$G;Bw$8NMuW8{R^#9eyowKhuNS$PLanVT=$_(;#w> z{KdKGONihuA=il9t|UW9M}st;&Aw1&N`%Mab* zB6=9EhIa;f{g~uF*@nm4vB(5|Mnc{Z<)FN*^Uct*x|j{w;j7hUY{&zwY=;Ue~uZdg|1q4k0g*Y$DZY zN2Y#{Kx?^dXiuf1$Kh1Dten)dB%cntrf&W$jHCDUly_iC_iM-hP$8-E7{1ozFx(oy zS_5K%h$<@ux;3arMRe=K@Tw}CDs*c@tV6A0aJy2CRaPx!vFPI?X>>hoj1*_4W}if$ vMhA37nrRRC*B0B10WDh!dt)2da!P}+v39vBs%plkp`&&=yIchqYV-dC$EEK9 delta 1857 zcmZ8heQZ-z6uk2=e9T zM+g;=%@ZSnhLX$}(LaEyEP}ED2^cXfQHVy6ZX#4Ng^dvgj$F^}dnJaG-2Tq_osWC& zxwo(DGun25wigH$b2qmj;=~=IjuJD}!(^x0B|=KG!>R6BN4V3b$^+CU>K7 z^#(*-)4`rs?mar0kigTm;R}KJwc*==`apPezOu9E3#6Z#J?Xyk)_@^i5?z(&Pk*np zzLh^x924oi%-9HGON=o$C8P~;8lu?8SP;>T7(>6<&sa0s6^NS=TM*k3V~CxI;uXfa z5!(=dM(qBRv73nG8e?PeULtYEN)gEbV@(2?L4v683p90TiCQy+{F8Mbp|%^| z@Mr6eCF1t`vjZ1VGhAovd0rodZ_B5@6gfT;E}TonLAE2eA;BbCAr9n5;l5u=D@V;e z0M4>mX>X%S{(%)`Gj(TCEr=c}Yc)dibVYD@qKBs!ry@dspqe_OlV+Z#bQlJo+((x} zN2N;;J#e_PnBIiG%Jn{nN83t+HQ1FEdkON#hq4=OE?YFd7s6E~La7bDsj3!Ab3v$H zC%24KW0EH+!j5>27U-z9+eFf?eU6hCR|EU2C3%4s70FYxle1aDy{6YSub2fx)iY{$ zX=c+yrS@q2L9K=4;66cKBu*j*)#AzDL$J6;qF?hZ=xOMvk>sC}mH7iiNxp)9=)uTQ z9_dTRcg+t(v|W;|Iy63r-)b&ZDv*50QzW@U^F}mpNb}BxkRlluY2NPWD@vVUdhO-a zYnqq8uy#s09GzABz%27eQ|cZSqEqJdr_irJ4waabH|sG=8>fIVmidllvchFcH20 diff --git a/examples/core/01_one_sample/example b/examples/core/01_one_sample/example index d787733fa5d6393296428eb7ec235537d22a588f..c6e47e4384122d1d3d745185b4e041aaec8da32e 100755 GIT binary patch delta 1867 zcmYjSdu)?c6uodX{z$S_leFTeZ{?6~5d+xcn z?Zjbv@Gy;*3dv=A%6`?<7)ff>fS!6Z(F|!7jRmQnYDT0L8G(Jm_okZ1{Xfror187@ z*tG8x?^!;gNW{U+gm#J>#Vb<$#UM!}UKxGRG%Wgx9txLj)k$4UPT%B&&Upc%4wo>?1jigLu4nPWQPsp%?Ze5&dnrw7sdI*m zkngNhwWB6^1D?bWF_8VATplrkWM+@5L+~J zry!Un;k0`|sGWfB{0RLD?&L2Q6ywlX@DNqOruAWk5@j;Q;cv3C*65l0dCBVI*}|ABe&uDll*b0CH}$ks#3W(@@h+nKI%7HoCPpkmOpG(;Mbu3(7DWsr zjw+z9qF78~?H;U^)Mw(Ch>#+j)i}FhxT2&(jVDdf+=T;go%C=6`9Y5I;F?`HpTv`E z{>SY{dmVB)|KmPIyAynsM)L;r@P6{a_dSO*0P8DD%+2WO;xrEY!VoKV=LmdTX%VZ@ z8p1w4o$^Uu-g^h!tF+{=L(7X@oQFsPx#hz7tXy?)265vujNCe?sdA|X&`Ml{RaIrm z5j1rWsj@3?qUD7{RrWO|>|pp$#vYTm;D;+k?i_NwHGFVxA#&;~jBQOZQYp>I^&s~E zW+MtG&2@L=s?lu1xdDCskYC-XJb_j(Y_6_TXUMk%lU`$Nuy9xn?TZ4mH1^@5#Tm2| z#(aL-8=Jl46s5ahvhD-=66~pWQ8yf`_fP_3^;=NX(crOl@-E@%=lkN=hiJem6K43R zVJY>(hUDDomJGqL-y)uoz5Df2zEKIt4?G{e!atYsXPc@*{#Qu97$r7HFNj3f zECybEjFWRtq|*eFrlEYLQAVhQ(7p6ltQHS rH97+N6&`(Wg~X-N8f#g>s1R2}Yv_KBE+~0Vz@E@t;Y<^p4i*0k^~M>= delta 2059 zcmYjSeN0nV6uqfM?;_P_N+3bXbli`VJ8QlPN$z`+x z4kv#r1Vtz_XKKoy$(~z9?g{PYgxCfV9ag|z^9RD&r=Yhq32Uqot@f#`Ew{eVx~!<3 z1Ot|wxNNj)9UeGm_RuZhx8~9+XtFx!6xeCaF}!WT(zyFZw0ikii6ziy^$VBHkSS(q z8XwD%e=uX@yjU<})Gwh~%%PiLzvvTgKZ1K=mZc*ZOZjPwK*)%;Hc>zoKBh{5Nw!>C z4-0LXC|_rDBrQW-IP;MlvmQEa6B3G%!fIgh@C-O_%N2e!!Km#r&4NGecJ(p51H4w# z;6J<7w*LY5#DnVODu#DN2wm#u;7V}_zZjt+rNUu|_~_?xRdr9eY?M3cB3oVRLj&}r z%#D3wz=Hs2QYRS>+-Gd)i--t);=_O32XE^7)CYQ=S)Y&{&VSCB6u29$kWO_;AN(tI zvmhKDhWFF=30LldE+atSfv+>lh0Z&0Gvh5`{~hFJ!{?cWIkWNzDSE>fxKLE(3p^}Z zR1|n#C2e_mGSUm@O&par-ii+&yA`~e*^}^m#ln_sdF%P02u^N%| zGuDk5LL`WN1B^BBJ>qAG!-zW(b$>H<7}13oMyx}8j@XWqQJ9>SAEEJ4d{T&*DTSDUQPzlaOqjg*fY=%bi>E7sigP7^COiD#k8Mm-Q~;D(ZdXHG~Ii zLvlIv=UY?{m#*E>XAm>7Ey~6QyO~`!%XA3N14H_w5CUr0W7 zAsVnS9y9DMDWx4SRN}>7cWI*-N|Png6IbFXxHJSkrO8HoCX;NBc4H;{R%#KO6_qYa zwnl5Pm0Q)FinRqYyt(u!_`FVcx5D))|1QyZzbbsXLyi=!(goP&wTJ_XwFAEjd|Z@) z+~9dAg$l_s-+XOY^g0b(w;KZu`tyt7eweL>p)cHBvR diff --git a/examples/core/02_time_to_botec/example b/examples/core/02_time_to_botec/example index ec138993554c7190332f129336fe2510eb67417b..4ef534c4142d493af1e92fe462c6c1275509c9a4 100755 GIT binary patch delta 1762 zcmXw34NO~A6u$RCp=E=%PBNB>V-vid+t;4t^t<;v-#PEx zbKh&%Fb#c7`<77hcF7gh-YgQcy`ZIb)ljm$8w&bpHC0`bcjOWr6)x(s=O)^>WR^`& zcIeOF7%a(nb=g<%2X`l3&7j+%HPb-*VOQohK4VrMqrYpOWyhNj9TNdDmiB`5)!q|!>R0N zXfJ4TYJ>&@JehNh2H{?gC2i9^IrS}xr-DmdoZ^=-V;3}v+vx;^#7^NwJ^Y(fm}b5! zOY8IrX{tky(nszB=xwPL7*?BIut#*!L|H z!c!`Q92iI8bC6^#r2C=BXwG;Rh0(HExnvtO8Exqvq;MMe?5J-R_8N=mSr|4>2o@c@ zk!wghk5|ZtwOj|E7Qk=vq|9YvA0NRNrc&+bKa5@97t>&hGWt8rnqHyv(2-}LlfgrIhXi^Kq=J)l z3cfBlNS}r$3hVHO-YeWFoSA}9!76yrQemsPj}Z5IU(aQCv#;m2d!4&yzS-M*|4O8r zYD*TpuisEcF9zSVys#L;%GQ3z;XVBI!|Nn{R~S=LLh2)oIS^YBy@;Ag#zqibzc6+a zb&jiywemgU4#axI1BiaaV~Bl-1aE*`V@!wW_!a9R4j_6EBfnujVt$md-2z!lLf07^ z;KW~yg%SOTHxa{#nk0PC6k}GzF2ogxg%IXdXh-q3=M~z_e2=`4)3koJQlS0rYdor6Y3V+-K+^aF%6d zU%&_-9=BTbar6z)QdYP507lw4jfS59ap7pLA!kD*-i&Owr~hwkdt(nNfxG0WP-5TY<$ElRiI(E+U- zEsS@1msg@$P~a7*6&k#vnS?i!*K4jBI8NM?*e=~pRukT;f@xF6!f9Mr z@91XBP3bfK*`*c(XT*V#MA3al41~mih%q(`t3-Dwpbqp8KBgCUsbQ-#BVG)s2SG5; zC;OnqoI~2-ZF4(M?QqAOrTgLmrIY$r)o*qiNGE zmI6+po^-(mAzPa_Ew8;CJ`)ONl%h5=AI=K7WG?(A_{bsf*t2b-1v~jpH_vgC`W1;s z(Zge^j#{A0o=bFa%+&y_o9;WO$iKAwwZpFPL*Y812YA#s?b*Y#6 zK@$|D*>$hrtH8Q-(FFBrR{OHMEEg*^$c>CtMF~TCA#|rX$QlTyHD#PiW;w<>CTbao z)IMZ6hNx>uKLm#K${G7n5?KTMPf>b(M^u9;n#fN0DE$p`5R4givQ3(mv70BW z;bi9Ls3B(>m1Gc{(F&l9lu^iDqN@*Qp&lsg`h}<6D%JS$aa=ZzG8`Rn1fv=}c$8)#G<*rTO>6?gZfpKGn5$(T8dC*v z^dXms$c%A)IC{ZZVzQjZ2!0t+tHb9d93uEi>gRW21TP?JEQhst?-Sfoqw;W0_UtPL7y zsSwGKbfjWIJQ;#vZw={`@)zdu;hskR@nojx`>Q}ySfISTdFsEiyg8ec9I=f6;l>FWqua=%=RgKgIV@t*A@hCwN;Rm zs6R`N#(Fi#qS}i}Gz9Bv7Pupdm-)m>QwraqR21vuBN(W$3Oeizt1D=fcW@~u)5EZ6 zCHc|kJaCFup;}R9;=hnt?9FI~MpU*lrF)yA>Cccgv3hqYyg}isMjPY~T1=+q$)z=9IzlTHpU}X^C{Jb}=t`7Kh{br<1|eG+R5A xB`-7ttxY@0C=53h89UuF7sEEmxr7p)(}Jscj@ILoqt{?n^ISgnc{tFV`yX8VKu`bx diff --git a/examples/core/03_gcc_nested_function/example b/examples/core/03_gcc_nested_function/example index 961ece4bc4353513c065bf1b34fad5377aa51667..30d7ef78fbce0da304d9496782e0f0cb764810bf 100755 GIT binary patch delta 1770 zcmZWpeN0nV6uLi{5;1Z35f^b= zbU0mrvt?>D;}6YTbQ66>jfo2;`@@lC!;LI1*#>?PJ9XG~Itgm-&h2ae+DUGI_x{fB zoOjN-@3sFljh&+1WwflPd_+HHCP^DJgNat?E@i66OG=nFQr)n6BExW){bwKiu5)Xp|NXxB+7~bn-gd_|rbI#!j z8`YeHxsGW}w!&IR5u0s=eGaEVLSHQLSWRlO!g)tY&LfM^ufV6rbpOJbqm*uesRh5& zpW$ACL$?iYPz>xY;0Y*Q7 z9YrVT*WfDN&&;`Ss<;{NX|i}F>lg=jaSeRx@q2HV6B1Y&?)oLr67G5&cs0=VtR-~t z#bKnEG?hOOz5hTP+pLUxOjE(AYwPtL-z{E0yj0RT!nu|b5*g*(huDS~LUiBcydSaq z7UyxHyUlr_hwzaRBis;wU1)ONiXz+=AFShWQZVi1moRyBLqy9^-r$BhAEk zkMll3{KfeY;s9bC(LK(&F#{ijSb{i&I0rHEkn<+N$2s4CIFR7{5~2?$NMKLZH2Wbe zxl(*p_1XBf5K@B6kE-w;Nzj^>ocM+#Q0m z)ecPoj`12?uXfbEggfnh&etU$ptcb~ZY^?RG{Qt{Ymw_lZby<)OWBUxv-?ot&)0l{ zTQ`LL3pICeN8qr3zUBp-eVKC8zgdf~)EtP^gxC#_a-=4hi3qm>LAqTjubal`d5G43 zPQQh}>s@Tf1Ez)w)-OX{!^cARQ$q#C8wg6Y8|=YK7Pr8HV35UK&>QTq`&?>0=~55j z(@j{g4~iPC&=EA*FQ=F`kE%>JItW{WlKzjBcSwRGjq|D=rjG5YwCQdqkv9^V7$d3n zQ;-EkA&E|bDE@lI@61`)bRM(+Pg#e&D9nw2Qo_<#8b#g>XPKF9O2)sN(hWFOUAo+T zDc+dk8&o#|hAZR$Hx~}6mX>aQ4P`yz}ctHV6O!fuiSW%nhXNB%+ z?UQ?yQsA7_H;@H*yFZ`|gwH>wm-Z-Oz+q380?PByX_`-};j}4_ zWWgV%)%+J$SY*!Cta?c4sJ2zH+X_?^jmd9p9M$TooGQkxvT|Hx2YhB;$={v?y=5W) zu?R~oACM%NwB%~eK9Exf(pf502r0^NI%Zsc0FA=yq#VLRCx2dmhn5`8mI+yVNJwaB z_yyFy58dhc%KaGCW>vrzp@N?p2O{S47sjDbwDX6@!7Jt&j#+Rz?*37&UT!V*UGR%O z@-+M?I@LGEFjY&940tm67iIa@7+iXtFs|_alch!N*6A+=m^ue4>Y=wku>E z?9Q;M1!F9#cpHvoq}wd_SSq%vlV=%G#0XvH6$4z&uoH84W`li|fu-o{n5d;MQai$v$Xe_^+-3? z6;4UpZmA;L(7s$lO1JCNE$j`p;qnhqnoc;*H%Ms(;xfb*#O$k-h7p59lyZpvYm{~{ zA8|Wk58``>VZ@_|gNQnuziyaPCt?L+8DcMD9pd1hl(r-Ku2Z_1=U(K3H?RN_{Sit} zB6j>m>2J)xO{ppg8@NO1OhiATgcwC^Lv;OvjUe_SZfAUy(jLTYoMIF)h*$<|+y&w; zJVFuszN(b?0dkxZS1GP#a2%s5Ja~*|AvAmkxbASsiiWw)lOaLdN<6~-jcm)0s$@M31dOQp}LnsDdCtAmjW;|XW03Vh`fU*-%Q zEcYZM!ce7$>h@K+e zXNH9y5AVx{ZqG(Bm?gKE=$^f320TL$95rU6j_Wna@x;}ffHfXLybxD~bLD7a9zV0F z=4L$VN{6jA^SzUC*Z)K*1s;$+sz2UBVpuxlb)1#c`Q+k>-wYV35r_jEl0fFM-#K-t z)bry1lr8bfe*D8^mUtspBA*S%c_Vo%mJe}VcD#ecF+Pm*9d{(42j-Tyk^ttwd>knU9o;{Dg03D{m(5a4q56N_|S^_p(L^aybVQ~ yGWO-6;k9jT*hz*#-B_gG<(A0=wuiipls0 zO+b;eKV;L0i;K?0tggCWG7UyEmbs~OLz5YKsGD^%1?Hw~u)A~nUd@u-pz* zbI-l4e2DHkM7uMncW36Xu4xttjV6er*}8^EWz`UXjTD zpZM#%;duNS-CQFfp03!B43ItRM`$#;gr!N)Ynm-MlHjCi z9sLv*m}f_4O))lMsMGXVVOWw(ksDu~Fc@)H&b@3UBv>{DKJ)YRFpQZi>4#8|ut%7g z2tOsHMQ`~_3B4)tP_TXcJ^ebK^e|@gUCgN;j~s*geo7RSS6{d@Q9$AGoii zHi(!yE9!Ovrab|M#JPCDM-wXq+kI$HOt<79Z+N3k;61F5U5P6^r)FgW^rPnlTu)4+ z!w_Xn(VsM9g5`fINxuM>bxzD~q;Ow;7ptMs>JTc-&}F?sUxycxth!~UkgC}M+mkHT zp?f?M@6D+6F?c3K7;R<~3?wBBHWQ2_)g-@`Z-sm?L>ruO4=&kS=~k#oPNb^?Ym++#dIKiy9|-y}=u7p{e242d z81r-eXU0w=cKpJaj5v6cu_?snTa4N9QU*sEt46f^##jsDCd6)mEFeKN_9KyThq2EP z4gi$iHtJ__T-Av6k2vX+8RVYxXRnH8NSUGQ|F`AhX>9_Bp!W^ zFdVJdR?H-JzC`XcXk00pwP?8^(=|`C8?6?ob6GY0X!Sv>%lga}wB%nIYr+^lc=cn* z72IYlFT^NZB%Zw)xmK0ql~|Db0lCM}pG4TG-d?B2e;HDRGY_=~qcGumJZdYNm+wGH zUWt}>l3*uc+&wEGr;lsFTj-(Qz`nwwNa}@=;&R#+$SnDa(s~$QyqB(nouw(X8jh4^ z(;OHn-GNRom5EX}-yX*Z&i@kTC`mE%`hvN6-2tayaaQi2t5PrqH^ z=ktni)WC%$qSUCWa+<=1yRx3Ex(-#XhSc&RsaIW%sXK%_vmbVri;`be`{I;LtJF%5 z@l5nw=qtlGdX9!Y`MbvvzU#lC7(LB!#3MQ#_~LlgZgsD4T~3wnwkfe?3Xno*_lQ!R zs>-TbqpHn3r*4y~lE4K|g8&7Up1_XEWkNt+Dn|&%;^0)x0-ZNq3Gu>Y&D-=Sv@g$& jZ*wYK7-b=FYWY7D`#rE?q0aA7)J~wa3uyr?s&)Je9VipC delta 1920 zcmZWpeNa?Y6u8nLYKiV5w2#0E6b*|~n{;TbBsD&)3A9po z)WkhbgMTj3)&0|ve5RDMMoxAU?)7Y7L`#a}%e&^nE z&wX#(4$^^xv^9&i@6PVmoHml6orXA?t7!|DqqaaP^-@ib9FZQ_E1WltUs=1(SMi7z z)qFH)+je2qt~WN+2i^;7jGfk|CS+6>w_v<{&h>Y$l>3IhcNgi1)Ez@eD8O`ahFY2t z11W~OoSLZr6kG^tB8iQQ6M z$Qw|Ju0CI+@5CvcqlI^WSC>2?ZjXfJsmbA@FY*-pW1J`4w!<7#hH%CX%S~_57vL9D zhW6|O#zu9^RC#u2wpvZ$4fUfsJ+{m_gPjoR<^#x%UriT6YkV0kh0F2#gs-gdZbF*Y zF(H?3wenIpkq{kGYsHFZ;6lQibRW3QO~M*WP})B(OTCtmG&0MA(g)*Uv^XQjFs*aA zfhD-<%g|!Uq)s?saZnZXTBaD5nsExQK6#YbS4^SbS|R+N0E?{YTJPWT%7+qg<*5g+UWcw_m1q&?ee7L-;1~VdcV%M2o$Cj922F z>*X;@tAd0+>4*_lCMFBVjj$=PGPx*N6j#n=)!kCrLtdp1hWaEY3?~*x3>&bK_3(63 zj-lZ$V}o0Q8Z1#uU*3g=q$ZjHBS|)@2}CFF5a@@nH|2BTn;~$g`shn=HuZVB9&Bkf zLj4`23gJjvfir3(QM|+0WyEcW!-(o3 z#=^spAI8QI8%G(dLzED^pvjdrR)mp`kSMtOk_qVbFNzyY?#)d19qQ3SXgg z6dKquScyCQpk&+QAN_It{LtG(f8`rK|U;Fy% z4Nn#L%SsGC>V&{?^a_Q0G)xrSDk%!N=L7TCDx a5vA?WR5eR8Aj;X#;Aqt>x*0~QGXDiAEjoq( diff --git a/examples/core/05_hundred_lognormals/example b/examples/core/05_hundred_lognormals/example index 5aae3a0ffe678f6cd954069faf97880ac68ff0ef..0aa6c9d4a38b79344388aae63b6f04e6f8eab2e9 100755 GIT binary patch delta 1666 zcmZWoZA@EL7(VB+vbG!TrC+zVw3hD=*`Ni?8Y6*jEiGfnU|^UM$JkKFT!z66W@d&H zx1n1`d5xLbvS2blW;BizgF`o26lF1H_{D0n2uz%vK{tp*oRZ^vdvAXjPjc>a&htL+ zd!BR7Jr~}gchA%QT6uH5^H`)riI!_f;@{Pgg4U)su`B2WEfuKu9-GY?S3Wg z&A&eO{b+mjrf2_Gu3jDO0Lvo^MnLXB)zW(z2STC8H?!>bQ`niH8^YB z$L+9#-jt!ee}%C{{dU!ZcKF09npSn~U)1xyOtr+>?1V)9E6{Fwg1!fnrYf#B1svux zGz_EW4DF%6<q80;0~e3BgU^=3whqI`$$ZKDeCCzB^a?Epu55CuyK{faJA!Qj?Tdk&Nn#S0`#Qz(OsZT ztD!%^qiIdt)E%TsVJWR78}bS9K2q5?`~GPNo>@Qen?SVw!q^<*hf&7VcrDg>#yp5^h>eI7h}|41AfDeCJB~y*;vnKO z;xMA;4lan;w!l~_zLE%H8;I^4ItE_1KqIgn$IbA(TM!%3{2-c(w@e%y$36o??wp-g zwBDkG@K+-f*q=cz3+<7hE|t5g)u{t(2tFn~0`ep2M$a!SFiS94<$5Au17gwpC!cjR~ zEZ(G&&ay2`OLl1R%019r8l;}^`O*!ms0U`f0m_H-Hhw|5?}}k@(^|j`3vY)xabeymsWI%{SH|fx4j+>ND2KAsxZUn z0fShhFk@-5GQQ~@a3vsUI+dskG=VaAuQHods>U~d5_z832*35e_D(}6Akaan5*?Mk z4}6KrWKR5_^14#F2j8mH;#YnP`BWIo-|1;Z^>4|6caC5A6l&m?dk@GwwYpoyQq s2d>s0rNdBLSD4JZ5oBsr7hPVKu-h;Aqp*QnkZN%Kdzt=5GOiyY*V9K7Eu?0#cXaa zj!uoRH|(aLg#}P_RbfEY4HfFpt%d8DN)e^}q0%EVVUm`S05OO!P(FR9T z5zj`=sx+bzy^)|c_)Wjby+=xM+mv}<+^>ZtLS~{E)b_)#sb%Ca*ey9^8%)=AvgE{2I-n+3gfGg%HT)>?Mj31_TF$x2vj zn`>}CkV6ZdQYaj=B`0xCj93I;*j^zYf{@nES{(4KEz2-`Pj;QOtFGFJ9bF&XgWG92 z+B;}Ax&1I~^ON<^%zH=WFtYddgB2@~9=al3Y7cfluGlAgG<*Ne0yXB4L!P!;f!Fkz8uUwY@P~1DNi=Lba zPtNH}d9P^Q8`53Hc`}2;l+GZwjZi8OhUq|Dh?qA@X&qt+aRluhS14^m{VT)+h*892 zh)q{1{SvWbjM50=4B{B#!t0bWcqDCqP@0Ztzd@;A(#I)nVVN>!5QR=8@+K(lMGPSh zAYMkijM(%irQ;GmNvSRY3!SF432|Wz6NBFCA-&-B@?;PKDA&PuFYgesnPXV2y0TF? zfKLRDdp)H(Y$abY;kU;O;*ScGKf)FW7MIz z44(?Lb%3|HR`WheTj0&&rMe-MI&sc0?YD%RvjTc(E)_{Ae4=zgA_>80c{LHj`A>gK z*yIw3E&YgWgsuuV>4d(DLec`G6|Ig?7ViDn+KH)CvA_syujJV}8@yXNA5ZFZWi`G@ zRjXqvL-tmCnTIt<0aMUbWwUS$hu?;@)RU@)<5j$4t>Psp>D1}GBw6*ZE7ne!u38c} zq-Z0`&syE-h{6|T${EzjbtBI)PKK+KdG*}~&sX#0l#~H~+4z2P6g|zXy%iV=W{NrmOjqJiNbBuX~gks9pFJK9VlSSIWSYA&;kEaWZQa4?&5nS3I^# z`x@F6E1u%JVhw9(+qPrpmaUs#eX0a5)dc=ki+y2N?Fu&BvV0_gwV9!ze!gBkzYqlL p-ys8FZYVShUU_#Fr^59Ol#mXnZ(N`s6lLQ<=xSU*R>Ap3&p(^#8lC_E diff --git a/examples/more/00_example_template/example b/examples/more/00_example_template/example index 92e31166613a83f99293b2f867c99ad93e83f6a5..65013ada734451affdf5bf5a1d2768b9d82c57a9 100755 GIT binary patch delta 7842 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 delta 6877 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 diff --git a/examples/more/01_sample_from_cdf/example b/examples/more/01_sample_from_cdf/example index aefd99d7494e728c7e7f596502f563a896d57a6e..a4665c6a46f1e7827a2436375a5f9f4c90e12b90 100755 GIT binary patch delta 5674 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 G;{N~y8de7Y delta 4780 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 diff --git a/examples/more/02_sample_from_cdf_beta/example b/examples/more/02_sample_from_cdf_beta/example index ffb38833a6e98f19f36569b46f9b4949e7034167..8bd4d50dcb4d70169e14688126db404b632e5578 100755 GIT binary patch delta 7023 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 diff --git a/examples/more/03_ci_beta/example b/examples/more/03_ci_beta/example index f558a8437eb156aaa767a88919db4c72400784d3..337e12f7eb28a23d39263c56500029e1aff4754b 100755 GIT binary patch delta 6788 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 delta 5841 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 delta 4611 zcmZ`-4OmoF8b0U3z%ao4$j_Yt1_m4u6=6oe%;eb_{=B1PqEINPkn*FckYb__DaK|_ zhFPB$wfd;r&qKTICQ+vCu7cXGwQf?G($=$pnqJfVK~S{p?sx9J^(=l#C( zopZkPopaC7dXl!DqaNwj51}Qr4i@ivM2cy zq9Ive(Zr)bh0V2}y(3A2_p;EEb(mF|W{tefFgtSez(gold`2EWMrX&+=oTInGu#rkzv9ofQ7 z2n8*llD;WW@E#JnPKOH4LxQ(k=n_pnsZS#~yS;(l&clYdCblKl4Y9X{O@Z*dJvLbI z2Ks1l@b}R~sNoYiDH)#Um(l0pC*H1`b4!v246`+hli{5hOPK$vCk710T)UQWQJe0>xAqL$DssEb<7 zy_P83*4|KT*CqOF1IiQ8_IHpSofLQkwT3tsq(!;7J44VOoy5IA1YbqR(rqvtoit*z z9i!;%9x#}cnT4(dN6ZWw0_$V!x>JLS>+>Vg^_alJn786jgU}a~NJl|{)kEjP46B_# znm~x*sV3a60Yh2nc(lTWYR1DR>nQpxbXXI(4-(*%HCF#J8j4R{SDd~GezA$6^+;hr zaB%Uh>yR0n#P!F++}LmEESMA*9dzC%t2NayFU}ktFu=OvOpQt;#i47AFk1g)gBRjr zxgi_0#}&p-k~^6Sm|01eI1MujjpU}$Y6Y7uH!vAZ#4}gnG20juk4`RZkd3g9R;-3M zZEI)@#K%Wb+A%r)IgaMS$0OgM)1lV>ECsl2e~A0yB1}sx41@=i=F%!+N zvjAzaMgyVwh_Q5Tm0|5scbR)Go(~i|-ShC2*o2^NJcG;Fk;o%%XsE@_A}!yylnuamIhocBbJB+(>uO z3-CdD7NoH??pi;@5W|Yt&yMNt}6trZG9YcuwVUPEuyV&C$ zau>P1KNbru<6@AWRWSMv+f`BerekMjg|1^p@GkCMmxDs5+Ya^a0&uv6bvO!^s|T^d zxgP(Aic|i!xH@QN;qBkhXuk&va4vXD6Z5B%)P!=$aY<@JtU>HVZ0(k$47~G%&n2k_ z+Y`T#q#nc`#9_p?6Ov>`ee#!*v=OlcaXaG1FQs+T9u$U=IKm80Nm3tTE8-wxPmd%S z@k4C>whmT#=+>h)1vDz=7BgFV=EIR`Be}g|3-ND755+(H_{H!_zIWKW7wegZ>=e zvg==x6m;a>@ua^uk6iSk(*Xw{g#Q)Xb__wL~qBG--F zqpBTVN~8g~6x^jmHkP2baUbjS+9|>ETW2eBF5J1terC^heLHd!6?+HQi}s#i9bwLn zAlV7=dAz0%rL&Ng7pL*ZT`Y%+ys;XVAY0&tyl71kN}bT27wxV`iF_kTmFf^|>MTLZ zkjwZPCnpPXt5uGT#`0zmLi726V{_Y(I;=vNs1Q3uvb{_OXRBR23F`^_bXI%xogPW?? zvUN7Gt|A0X$=2m!^B6YUF2HF|b`Z;;ha2C4pnb4}6Vl<)2iMXkq5r{Ny0@ci z`V@}th4{h!awJ4~ zjQdoG)3DbF%vx8vLgKpRQp$b-&{eE zhy}A)rB(Py_IyhA{GIBdJ5^EEs5W<0zD^BWyvm1y>0zFRgBxo*t1ZRMk~0xOoxf^G zT(Y(d6P&Hi#SE7)t3Y5N=sE9V4?J5|0;<$bd{pz^zLQLM;k8Ic_$ zIfm**;=(p7y=)H7E7&q|zuXrNA$ z#$SnT8S7d~LC^QvnjK@d>pH`%J%JMLN0 zPLCE??a)yKd&ho`q?IRq-^ z@Rc?^pC-;ijODWN-6}=qf0<;i|HBs}&o;oJrn2u-wGesy0fay7*Rt{O(~5OPn`+%1 zuMAkJj{C04+f+VJr`)rsy7|9m-6vZ zcnzCK6tR^nv{u!oBF|Q`1um4{fQw~^;LzOEO!=P?F4vR-Pj=4y@u}leGs%jIrFBax zm(O3YuxkFo+LezksU!<(m)2D*uT+~WI=Fc~RM$|ud_~Qos`?2T@YVb`?>5uN!`ku! z!=h#XiJYE^dac|gQO?9fycRS&y;oa(d{50IE rP7Cr~)LL-X+-EAuQ5NLG1cvQ~ diff --git a/examples/more/05_burn_10kg_fat/example b/examples/more/05_burn_10kg_fat/example index 06d18ab87b24e0064a444a803df680c079dca597..c4f6f1f458ae15587d873d062c39f46398b092d5 100755 GIT binary patch delta 5304 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 delta 4510 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 delta 5854 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 diff --git a/examples/more/08_algebra_and_conversion/example b/examples/more/08_algebra_and_conversion/example index 1eee5c152f7a34930bb764bf5901396bbd2ff564..1346ed0c297772638a15cd10b3f628dce8242f98 100755 GIT binary patch delta 6759 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 diff --git a/examples/more/09_ergonomic_algebra/example b/examples/more/09_ergonomic_algebra/example index b5caca727f5329406b992225e628185c9f856946..fd75881b1babeacc9961eb4369b4c3af06f81cc4 100755 GIT binary patch delta 6781 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 delta 6052 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 KRoc96>i+}48{WzQ delta 5784 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 diff --git a/examples/more/12_time_to_botec_parallel/example b/examples/more/12_time_to_botec_parallel/example index 6598573a53eb0cd360784278f623989c860dc6b9..750df7e800edd53ef5521603e9afb701289c7d52 100755 GIT binary patch delta 7039 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 ac(Q5BeJMs~r2?>8I(*+`VFOu~CjK9o16L&g delta 6235 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 diff --git a/squiggle.c b/squiggle.c index f8a61ad..1d0224c 100644 --- a/squiggle.c +++ b/squiggle.c @@ -8,7 +8,7 @@ #define NORMAL90CONFIDENCE 1.6448536269514727 // Pseudo Random number generator -uint64_t xorshift32(uint32_t* seed) +static uint64_t xorshift32(uint32_t* seed) { // Algorithm "xor" from p. 4 of Marsaglia, "Xorshift RNGs" // See: @@ -24,7 +24,7 @@ uint64_t xorshift32(uint32_t* seed) return *seed = x; } -uint64_t xorshift64(uint64_t* seed) +static uint64_t xorshift64(uint64_t* seed) { // same as above, but for generating doubles instead of floats uint64_t x = *seed; @@ -196,16 +196,6 @@ double array_std(double* array, int length) return std; } -void array_print(double xs[], int n) -{ - printf("["); - for (int i = 0; i < n - 1; i++) { - printf("%f, ", xs[i]); - } - printf("%f", xs[n - 1]); - printf("]\n"); -} - // Mixture function double sample_mixture(double (*samplers[])(uint64_t*), double* weights, int n_dists, uint64_t* seed) { diff --git a/squiggle_more.c b/squiggle_more.c index 1a63f99..8b4c78f 100644 --- a/squiggle_more.c +++ b/squiggle_more.c @@ -7,37 +7,56 @@ #include #include "squiggle.h" -/* Math constants */ -#define PI 3.14159265358979323846 // M_PI in gcc gnu99 -#define NORMAL90CONFIDENCE 1.6448536269514727 +/* Parallel sampler */ +void parallel_sampler(double (*sampler)(uint64_t* seed), double* results, int n_threads, int n_samples){ + if((n_samples % n_threads) != 0){ + fprintf(stderr, "Number of samples isn't divisible by number of threads, aborting\n"); + exit(1); + } + uint64_t** seeds = malloc(n_threads * sizeof(uint64_t*)); + for (uint64_t i = 0; i < n_threads; i++) { + seeds[i] = malloc(sizeof(uint64_t)); + *seeds[i] = i + 1; // xorshift can't start with 0 + } -/* Some error niceties */ -// These won't be used until later -#define MAX_ERROR_LENGTH 500 -#define EXIT_ON_ERROR 0 -#define PROCESS_ERROR(error_msg) process_error(error_msg, EXIT_ON_ERROR, __FILE__, __LINE__) + int i; + #pragma omp parallel private(i) + { + #pragma omp for + for (i = 0; i < n_threads; i++) { + int lower_bound = i * (n_samples / n_threads); + int upper_bound = ((i+1) * (n_samples / n_threads)) - 1; + // printf("Lower bound: %d, upper bound: %d\n", lower_bound, upper_bound); + for (int j = lower_bound; j < upper_bound; j++) { + results[j] = sampler(seeds[i]); + } + } + } + + for (uint64_t i = 0; i < n_threads; i++) { + free(seeds[i]); + } + free(seeds); +} /* Get confidence intervals, given a sampler */ // Not in core yet because I'm not sure how much I like the struct // and the built-in 100k samples // to do: add n to function parameters and document + typedef struct ci_t { float low; float high; } ci; -typedef struct ci_searcher_t { - double num; - int remaining; -} ci_searcher; -void swp(int i, int j, double xs[]) +static void swp(int i, int j, double xs[]) { double tmp = xs[i]; xs[i] = xs[j]; xs[j] = tmp; } -int partition(int low, int high, double xs[], int length) +static int partition(int low, int high, double xs[], int length) { // To understand this function: // - see the note after gt variable definition @@ -56,8 +75,9 @@ int partition(int low, int high, double xs[], int length) return gt; } -double quickselect(int k, double xs[], int length) +static double quickselect(int k, double xs[], int length) { + // https://en.wikipedia.org/wiki/Quickselect int low = 0; int high = length - 1; for (;;) { @@ -75,37 +95,92 @@ double quickselect(int k, double xs[], int length) } } -ci get_90_confidence_interval(double (*sampler)(uint64_t*), uint64_t* seed) -{ - int n = 100 * 1000; - double* samples_array = malloc(n * sizeof(double)); +ci sampler_get_ci(double (*sampler)(uint64_t*), ci interval, int n, uint64_t* seed){ + double* xs = malloc(n * sizeof(double)); for (int i = 0; i < n; i++) { - samples_array[i] = sampler(seed); + xs[i] = sampler(seed); } - // 10% confidence interval: n/20, n - n/20 - ci_searcher low = {.x = samples_array[0], .remaining = n/20) }; - ci_searcher high = {.x = samples_array[0], .remaining = n-(n/20) }; - // test with finding the lowest - for(int j=1; i samples_array[i]){ - low.x = samples_array[i]; - } - } + int low_k = floor(interval.low * n); + int high_k = ceil(interval.high * n); ci result = { - .low = samples_array[5000], - .high = samples_array[94999], + .low = quickselect(low_k, xs, n), + .high = quickselect(high_k, xs, n), }; - free(samples_array); + free(xs); + return result; +} + +ci get_90_confidence_interval(double (*sampler)(uint64_t*), uint64_t* seed) +{ + return sampler_get_ci(sampler, (ci) {.low = 0.05, .high = 0.95}, 1000000, seed); +} + +/* Algebra manipulations */ +// here I discover named structs, +// which mean that I don't have to be typing +// struct blah all the time. + +#define NORMAL90CONFIDENCE 1.6448536269514727 + +typedef struct normal_params_t { + double mean; + double std; +} normal_params; + +normal_params algebra_sum_normals(normal_params a, normal_params b) +{ + normal_params result = { + .mean = a.mean + b.mean, + .std = sqrt((a.std * a.std) + (b.std * b.std)), + }; + return result; +} + +typedef struct lognormal_params_t { + double logmean; + double logstd; +} lognormal_params; + +lognormal_params algebra_product_lognormals(lognormal_params a, lognormal_params b) +{ + lognormal_params result = { + .logmean = a.logmean + b.logmean, + .logstd = sqrt((a.logstd * a.logstd) + (b.logstd * b.logstd)), + }; + return result; +} + +lognormal_params convert_ci_to_lognormal_params(ci x) +{ + double loghigh = logf(x.high); + double loglow = logf(x.low); + double logmean = (loghigh + loglow) / 2.0; + double logstd = (loghigh - loglow) / (2.0 * NORMAL90CONFIDENCE); + lognormal_params result = { .logmean = logmean, .logstd = logstd }; + return result; +} + +ci convert_lognormal_params_to_ci(lognormal_params y) +{ + double h = y.logstd * NORMAL90CONFIDENCE; + double loghigh = y.logmean + h; + double loglow = y.logmean - h; + ci result = { .low = exp(loglow), .high = exp(loghigh) }; return result; } /* Scaffolding to handle errors */ -// We are building towards sample from an arbitrary cdf +// We will sample from an arbitrary cdf // and that operation might fail // so we build some scaffolding here + +#define MAX_ERROR_LENGTH 500 +#define EXIT_ON_ERROR 0 +#define PROCESS_ERROR(error_msg) process_error(error_msg, EXIT_ON_ERROR, __FILE__, __LINE__) + struct box { int empty; double content; @@ -297,85 +372,15 @@ double sampler_cdf_danger(struct box cdf(double), uint64_t* seed) } } -/* Algebra manipulations */ -// here I discover named structs, -// which mean that I don't have to be typing -// struct blah all the time. -typedef struct normal_params_t { - double mean; - double std; -} normal_params; +/* array print: potentially useful for debugging */ -normal_params algebra_sum_normals(normal_params a, normal_params b) +void array_print(double xs[], int n) { - normal_params result = { - .mean = a.mean + b.mean, - .std = sqrt((a.std * a.std) + (b.std * b.std)), - }; - return result; -} - -typedef struct lognormal_params_t { - double logmean; - double logstd; -} lognormal_params; - -lognormal_params algebra_product_lognormals(lognormal_params a, lognormal_params b) -{ - lognormal_params result = { - .logmean = a.logmean + b.logmean, - .logstd = sqrt((a.logstd * a.logstd) + (b.logstd * b.logstd)), - }; - return result; -} - -lognormal_params convert_ci_to_lognormal_params(ci x) -{ - double loghigh = logf(x.high); - double loglow = logf(x.low); - double logmean = (loghigh + loglow) / 2.0; - double logstd = (loghigh - loglow) / (2.0 * NORMAL90CONFIDENCE); - lognormal_params result = { .logmean = logmean, .logstd = logstd }; - return result; -} - -ci convert_lognormal_params_to_ci(lognormal_params y) -{ - double h = y.logstd * NORMAL90CONFIDENCE; - double loghigh = y.logmean + h; - double loglow = y.logmean - h; - ci result = { .low = exp(loglow), .high = exp(loghigh) }; - return result; -} - -/* Parallel sampler */ -void parallel_sampler(double (*sampler)(uint64_t* seed), double* results, int n_threads, int n_samples){ - if((n_samples % n_threads) != 0){ - fprintf(stderr, "Number of samples isn't divisible by number of threads, aborting\n"); - exit(1); + printf("["); + for (int i = 0; i < n - 1; i++) { + printf("%f, ", xs[i]); } - uint64_t** seeds = malloc(n_threads * sizeof(uint64_t*)); - for (uint64_t i = 0; i < n_threads; i++) { - seeds[i] = malloc(sizeof(uint64_t)); - *seeds[i] = i + 1; // xorshift can't start with 0 - } - - int i; - #pragma omp parallel private(i) - { - #pragma omp for - for (i = 0; i < n_threads; i++) { - int lower_bound = i * (n_samples / n_threads); - int upper_bound = ((i+1) * (n_samples / n_threads)) - 1; - // printf("Lower bound: %d, upper bound: %d\n", lower_bound, upper_bound); - for (int j = lower_bound; j < upper_bound; j++) { - results[j] = sampler(seeds[i]); - } - } - } - - for (uint64_t i = 0; i < n_threads; i++) { - free(seeds[i]); - } - free(seeds); + printf("%f", xs[n - 1]); + printf("]\n"); } + diff --git a/squiggle_more.h b/squiggle_more.h index 70bb07c..f3b3f22 100644 --- a/squiggle_more.h +++ b/squiggle_more.h @@ -1,35 +1,17 @@ #ifndef SQUIGGLE_C_EXTRA #define SQUIGGLE_C_EXTRA -// Box -struct box { - int empty; - double content; - char* error_msg; -}; +/* Parallel sampling */ +void parallel_sampler(double (*sampler)(uint64_t* seed), double* results, int n_threads, int n_samples); -// Macros to handle errors -#define MAX_ERROR_LENGTH 500 -#define EXIT_ON_ERROR 0 -#define PROCESS_ERROR(error_msg) process_error(error_msg, EXIT_ON_ERROR, __FILE__, __LINE__) -struct box process_error(const char* error_msg, int should_exit, char* file, int line); - -// Inverse cdf -struct box inverse_cdf_double(double cdf(double), double p); -struct box inverse_cdf_box(struct box cdf_box(double), double p); - -// Samplers from cdf -struct box sampler_cdf_double(double cdf(double), uint64_t* seed); -struct box sampler_cdf_box(struct box cdf(double), uint64_t* seed); - -// Get 90% confidence interval +/* Get 90% confidence interval */ typedef struct ci_t { float low; float high; } ci; ci get_90_confidence_interval(double (*sampler)(uint64_t*), uint64_t* seed); -// small algebra manipulations +/* Algebra manipulations */ typedef struct normal_params_t { double mean; @@ -46,6 +28,24 @@ lognormal_params algebra_product_lognormals(lognormal_params a, lognormal_params lognormal_params convert_ci_to_lognormal_params(ci x); ci convert_lognormal_params_to_ci(lognormal_params y); -void parallel_sampler(double (*sampler)(uint64_t* seed), double* results, int n_threads, int n_samples); +/* Error handling */ +struct box { + int empty; + double content; + char* error_msg; +}; +#define MAX_ERROR_LENGTH 500 +#define EXIT_ON_ERROR 0 +#define PROCESS_ERROR(error_msg) process_error(error_msg, EXIT_ON_ERROR, __FILE__, __LINE__) +struct box process_error(const char* error_msg, int should_exit, char* file, int line); +void array_print(double* array, int length); + +/* Inverse cdf */ +struct box inverse_cdf_double(double cdf(double), double p); +struct box inverse_cdf_box(struct box cdf_box(double), double p); + +/* Samplers from cdf */ +struct box sampler_cdf_double(double cdf(double), uint64_t* seed); +struct box sampler_cdf_box(struct box cdf(double), uint64_t* seed); #endif