From 186b10cddf1ebb9f68e13be602ab29218ee83069 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Wed, 29 Nov 2023 23:08:36 +0000 Subject: [PATCH] more refactors; add another example --- examples/more/03_ci_beta/example | Bin 27408 -> 27408 bytes examples/more/03_ci_beta/example.c | 1 + examples/more/04_nuclear_war/example | Bin 27488 -> 27488 bytes examples/more/05_burn_10kg_fat/example | Bin 27440 -> 27440 bytes examples/more/06_nuclear_recovery/example | Bin 27736 -> 27736 bytes .../more/08_algebra_and_conversion/example | Bin 27360 -> 27360 bytes examples/more/09_ergonomic_algebra/example | Bin 27360 -> 27360 bytes .../11_billion_lognormals_paralell/example | Bin 27400 -> 27400 bytes .../more/12_time_to_botec_parallel/example | Bin 27568 -> 27568 bytes examples/more/13_parallelize_min/example | Bin 23143 -> 27464 bytes examples/more/13_parallelize_min/example.c | 4 ++-- .../more/14_check_confidence_interval/example | Bin 0 -> 27360 bytes .../14_check_confidence_interval/example.c | 21 ++++++++++++++++++ examples/more/makefile | 6 +++++ scratchpad/makefile | 2 +- scratchpad/scratchpad | Bin 21816 -> 26920 bytes scratchpad/scratchpad.c | 17 +++++++------- squiggle_more.h | 7 ++++-- 18 files changed, 45 insertions(+), 13 deletions(-) create mode 100755 examples/more/14_check_confidence_interval/example create mode 100644 examples/more/14_check_confidence_interval/example.c diff --git a/examples/more/03_ci_beta/example b/examples/more/03_ci_beta/example index 42c5ef3d857a0517fc181f4225e9ee6db51ea23c..655d4615778747ba223c49d5bd13ada7b1d0ec3f 100755 GIT binary patch delta 3245 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\n"); free(seed); } diff --git a/examples/more/04_nuclear_war/example b/examples/more/04_nuclear_war/example index 6e51fd6fbeb0b56287d51e64233b474ed1556f76..96f98a77c57d3faedde94c1440c776fffc73037b 100755 GIT binary patch delta 252 zcmaEGjq$-X#tj+FBDZAfRktbZYrbE)$>f>%mM>XvqtrInFgNgfzfAMs&->)rdEB$} zm`A6Jia;8F&O4vp6%0aE4E&lpD*W;e3~BuNGAbUOFLyC9FfjOZK1<`*P+g(Rz~Iq& z-?RBR2ft>FiUPl8%4Bz8O-6yqg~GvM0{a}C_!&O&3-YJ{2^STK7jAqE4Eq^@`gec` zk6u$t9R`LM4*&lD|HLm4q9Oq#c~pSHdO%@_I*?^Rn-0B@1}gICeE%YOvWkc*U+>@l o|I_sNgd8bRbDC6SIf>Hj004XR`*Z=?k delta 252 zcmaEGjq$-X#tj+FB5i`p6#OM+SAK}GyYJQ%_m1s6-@MH=%nkhB57RvO^Imy&9{21# z=F#b*B9X?Q^VFwz1%pr(1HYz<3ctJqLmGd+h>Az&%Uw(i3=BS<&(iocWLM}iFnDy{ z_iR4S!LJ#jqQI{iGud5OlTl)Fp>S}5#6AZneg>e?b%$U0@G&s#X9Vip0U|tlP3?6U z7+$#j`~SaF259OHu$;%i7YaZr1E5qI|N8@J{COXM^vN9{8$a_$v8Vuvb1wvenmjt+ qzlfYHC8EmG{P+L=&AuYe28?SbPjpddY}vfiC0vwo?PkF!e?b5n2wKws diff --git a/examples/more/05_burn_10kg_fat/example b/examples/more/05_burn_10kg_fat/example index 40efb9ac53780e7301f9f549ae06dda8d3d8bd4d..cd93c3f648c8abe84f2dbe995ff25764e6e3da58 100755 GIT binary patch delta 3019 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 delta 3495 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 RlM^&usJc$OFWuAZ_ix(mj4l8G diff --git a/examples/more/08_algebra_and_conversion/example b/examples/more/08_algebra_and_conversion/example index e34b096548118c2016ae0740f61c3c04433ed8c0..4fa2fd274b109065d699f65dd074a850cc6ad3ee 100755 GIT binary patch delta 3060 zcmZuzc~n%_8Gm>5;SAdh2n@qEEW^w&h=75Ljno-MXQtwDMZqOvf}(Z9Qw>@*jFK)B zCB=RwM^n?7p2nK47;0Q<6{03+QxD=6t;SZh^H8quM6mcvp}ntnKf~JQ@^e_lsvNV>JrwgxoR)* zeG|U8bxpq_nFVN<*2uQE9@AdeHFz3t+vj=oO9Gy~L3gclp5A^$P#wzqNs{E*Aou1; z(jf-5r>WQq83yNj^)cm^L`a>gDXdOI1Gdbf6-?XS{%}ytobz72VUb0P_j1+YD4b5f zaFNB(t8a)|ZqX{oO~Ms=VFe!R@Ij$9)g`c?8c(?5IjVF#eHHc#Ub`{8+dbD2c?xNP@IkUajQv69r+>}e`J55dzUcL^BwV0k?1^`?-2 z+_qfD1A4O$@ub5cg#CxAeethpbzBOYOIza7a@K;9R^(QA8cRnC(c{0qJkqnFbPOiS z)+d}RHCXafxq`05RkA-)Nqjc@DZLcGlo{znye0h6V{sH!a<79Ll1u~p*T0Hl2X1M-g&~$+PTT{gb(-$e$WF1fgt={Y;ZgjGD$!D^$3fgHhvtsHnSz{Am=qcOtR?ezX`@&O0Om5hK)tzE5D*YCt2BNbT-M$o>F?U#keI~lJx6+ zIGbMm%&7gCVTba5nvrZ{)2T5zlZ~Jq$>wM?G)m@wf)SJGRC0FY6N@meLOB#K^-r;} zT{I}=68k5GrzY$6WT{H|E)7miOxn>W9MR`!Ur|5hEtN2&uBGZ!Gh0i()JbXKstXzn zMwRW#*r&qBpiT{`Ur|qLSy)RZvS_65rsc-&xzG8{pQtu)(JBM_s6K5KyG{4flGw@C zNb^PwyGC0xK45ofMCKbTnT}_UXFsH*teKjR?~pUIly+y0*2do9+<#R0d#lE>M#KI@ z4OTOIlissViuvU&QFzI_VYtQHctopgAdStzswvO*z5ER5Zf#Y5@NaRWqFPHNX}=5Y zbuf70OW#4yE0>^D8(%q0@7S_*v+-fTeu~ZXsm;dj(jA+ZeLyAl6)_`VeqaAuRBiA= z<=N<X%?F3|xLe%FLwV*=?N*=!2=b8|E!6UdO0p&1ab zuJkz9s#$oQ{^3ZcQG?3aSJXUcHrl*r&`@@U?0IIkn>=|bQQHTKJym`p?!!h}mX};y z7bh5;bRznxUHx7dl*iZp=P0KLmH6br@i@K{?aD=J&zm*yZN%EwhYB7PFOUCEQpQp9V5`m=E7mf^kD)_@*R#LU$o$RBO6T&|M(mA|q*r4_wLhlW z1qo5(FfZ&X_us%*@)oTxn68n!>2g78c(+~+5yfIiF5JVM^tZx&5pRPGdT*w6LkeRJ zn3p%nkE27mDf{TikRE2I-7hRNByjjeVM;ovO7yufuH>sZ_ z`G9f2HlQ8oyv+G@nT7WIU4q)AFY$ObG+}sji^F71^O1+$)2G#+k0Y(IX zU>N`cUy5pA0JxLpjIyzn=%LGLf!6x^6QWS^w2$2Zi7@q#h!e*4^ka1@GO*T&Z6Dx__ujA?HCZY@yXyYTkW!)f){z_LoC zX?uq1Bn^VK7`JesV#OAEzcL>-Co4s^Hz7O8RF!Y)4CT-oG?!+E>?N90Wi&P0g0vFS zuEKGNXinNxWkj()tQv}c72Q=fr sI;m<#KHmNrZcR^IYuAh=5%`bis?FDFzY}!O(yH3e*veMd{P#5f1-7%^$p8QV delta 3063 zcmYjT3sh9c8NRb}br*qM5LlMi@>p1whr1dPJW9e=aCakCqM#rUr6yu33RaD^HA;ed zSd|9zCpo4~8*F{1X@bSmU}`P+HuV9<7}NMzQ;nDSLNxVJb^6U-?CG2{_xt95&CLJL z%&zZC=KGShL@~n#(=A;}s^o7e6w2&6MW>FGb`LXa!W(lwzIkEz=8eCOcz@IKqLq2y zrGC!Zmk$~xvp(9XHL|w$quMLFl~d=q^$Ysk9jdQ3e~v!wkPsblH(oa=ZPAi6M}O-E z`ek=>wk-=ow|+(E9Q}#_i(vcz&fw|pQWEayXIL!oKHaYm6=cDE_d2-)4p7{J{5<5f z7Ofh4oxD{IwQ@mcM*t!y_nvSrbo-U#CQ0ho8(@pC#e!+?WJ;2M9)#&e|Jv^Yavc4D zvInkW0}anfQi4+i=~S8!M95n6fj`331?tqDpg|Vpm8WyeRwsEH7`CHSK~G zc79adV{`T%tV3+N%fI~&4b}~Hr@O0H>>dfxFL(fQQppf2YCK>V(OI!yZzeu0#Wfcq z9`XB$l61Gl-JEw6#N90K6ENof;t1qwh2X0@7wfoBZ*D+r3BG=W{d<1122r`z@tKq_Cy*Q0>A$c=l%L}`P+1=i#81lSo$jRjWh|_zI4Qhps2_i_8K)rPSiZG(ecRlSq1&n zm>l@rL)A0KCOoOl7&JJ_28VgH&p4kQCr8vWO-vfiGbRP{`>N?Z>;Fv8T49<&8dK_! zk_VjY&G~f8n9rK2-ehHkw9#Z{Db!&~4I2zY_lRz_cvw~N4eB!$vsL7bw&-f^sexzG zg6NFFV{sFdU(pBAsq9la6zyR*$Pi;OHl;|C{*49{s$X9j{2@lzqWmFEjIpxkX;DlP zv(vjV<`6wJO4z^Eh=H^}CMD>)MHrVOAIccI3;RtJ8+)GpgC54l=(Z*MmGVW3kBf?a z_pWfn2{Wh(R95>1hPe4u9A{?psXlH>{KF*S5?UmT%DR+^kA;uHKQzRhCtqB_;8vI@ zizq!lBW&9p&U@GRZQ!C+?%ko9_+{)IU5bxpUG0zJ*K62m@+NL!7s#HpmJOxPk|wj+ z6qsD8*?N;4NqMv-xlpUQ$+`ES^4IqMXguR*F@$e&$@9IPvZft z@=NMZO=ravXMNTl3f;B$lo{XS5U&gVL#`x!=EV8h>%ZyEd24Yil;cqPuZ7Z1Ypuz; z$#^KRpKLw-#cE|2>4Me6-l4R#C82hh-_frKo~~ZGEF*oKmc*`8Pg)i`Lp&`>^BW^A zOt+BBR>NMTPi)SRAY8tFr#}4(B4!$4;Fe)xOJ)1SeOOM_SuxqO!i5Bdj>2*3Qmd(4yZnEZEDY#rb_;@fVy2;f6Py<~$A92OI}< zoZ-9-SpOC0i-Cr(Io~M8Si=!uCr|+1$F}+z~T#>7YO-9%m?he#Ch8w zX{F@*mh(pt7*P0e`0Z-A!g&+0{yP{5yvq4mV7J1#MaDvKRqBB)z$RcHuoXB9*Q^8B z3G4&Q4d-K_ zlLp1Hkc4vo-ik1cg)WU=FPtdXf@!Iz&?So>>~j=1VXS-~>=;!|aLJ;=eY9gjvRn(+ zK|K?ab#H^UpvYBJJz*FbTn^a>$!02ax#Ua~wu3gfhQ$?tNhtkvfK(TfFdK8@eUK_4 zcT*QE7K61uwGjE45Teb6#d^pUy6wu5kAT%umfJ2r0{b~tyXVQZI0_2&xUKR=uuOUk zb^xrNY#y_$fbF44o*daCjs|%>eJM7uu*_&`OY}QQnXne^8Y(Ad z?4(U)cG&ckiPiRk7n7;nZt@MRpq z07dyVE&%aOAU+DjXI?mf6$p9(je+QU@gJfk1gs@Sg##=s0aSblh)=(G0Fh2nk=V}& zbf`zK=_DNnh8;{mHrT)ole>haElOAz7{Ky7po+4AieA+H`~Tmg^Zkose}Q!K5e35o yv4_+2_~l!`KIWHqVAy;?c#b~55=fIPpFkUvC!Ybcz~*Y_R53=S%?~603jhEsQfLwY delta 332 zcmaEGmGQw<#tj+FB5RJHVc}kO^|eeB?~$9Uywe3(E^%(IVYc9}KhE%inSsHh^QgxT z28ITE1_lMkG!Oo~126td0)>HM3mh02emQ^Q7j#kK0LuWGJSs090Hr_i3*@M907(^< zG=7Z>KztL3j{@Pz`@epDkkh!0c0qC+`)5$sv3~BszEGj#gfC4}R4}dHN zYGF}%v3PQ=u(WnM3j+gK^$w_(IG~mnh5!El_vn28V&`8V-F!sB@IdV037ann&(Y`C d2dQ)A6KG@dA%wIkL>`)!I delta 84 zcmdmRopA#Y<;A!f8ZZlr52aw PlmNwy%rWm$% diff --git a/examples/more/13_parallelize_min/example b/examples/more/13_parallelize_min/example index 37cd51e9605ade354ae8dc9b6c39b01a1d426287..0a0e95e796106396f20178032955abe9af9ce512 100755 GIT binary patch delta 10160 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 ku`1CqK&1&Fp&67Per#_|RhJSup(n0FZuUk^lez delta 7242 zcmZ`;30PEDmVWO+K~*WWuvHZZ6q_O{6hu)I(JDnPA}Sge;s%Ipt_axCZWG8Dml{I` zJ$6FRXMb&H(ixLUPh;$KoFqmFF(K2*H0D!3rzZ;Xl#?^X9n@!X%qR(oV?q@WbHN`&^gyE0!j=m)8+e%JqIH~k?=Wi%>SR9*xL zWmT8T2h+>pDz4GMc3}`%@>RKI=1-{*qVi6a(st1r>EyajuIrphuZ#aPIwMC_4W^^n z*iba83={mEZyQ(8mEtHW9^{}?k|p^cjp4GSv==UuA*3|=g`R0g-~Gb<2|YK^cd+!c zkUMv3X4B@742KO`tSdGhL41}yC5GAQa7e0niB5;u#7sICYNL!$yBMO>NpMa`^lp3C{Ti>v*zLBPf*NYMz4u6Ec50A5EV^Azg?zEwpx=t8J4t-Lxo1@!zy@&ya z3q_pwDSW7~ke<{hH7)1phPYaTfLLg)8Xb(6gw>FSbvO-;yTCwvGX}F8y`eIeC z;TnHxwu&k6O;wutP`!&1mH^Ma6uiz+5B0@eDNrvjR6fb_c1|p0FKx^ zC_4ghzLFJLYXBbcKwA*n0`MkNfM8#Mz#M?@55QTTX{9{?w`w5hp#Yq3IEu6*0FPGn zGZoSuAc#=~%Cjc`k3G14Y=~~RWpL6Y#B6Ivqa^ouw|uDYQZ(f;k$|tt=~0soj<5_D zn^67jL_sho6$rvLbK-6AUt(7YDl@M95m5N0LHztcKBuFr%AE9^;!bi$$1dm_0!Oz*tW!vS zw~P{#f)>|Xy)F5LsCZj+lNlL5&=}+0sk=Wx4U9qVH77MQJ6)VY-=XM_iOi=rqT{6# z6X=uZgv?85A#4~i-@7IMO;+{#zHJ=r-I@OvF#cQjWZAz0oqnV{I)N-PX^-p-_xe8Y zcAkmw=6vAw^>{n|R;|{n^XByU!hIcDmn`Pqo#FJm)I@{V7p}rIF?PIkDV{dPrb!>i z)9+%}N(oa zTq=yC1p8j;KOFR~J;gZbj@o#;gEijm7#v>XK$BH>D9W)~`s_A6>)0r*vO_o3a7$I4 zZr4;Zuo?MB+@>eu(!=N7mSuC2nmf1! zQ!{q8tL7yU5;)9OC&kj>gPW%nm=~qdak^g>Omd|ff zw9rWJzj>YBPTG{P1S&8yIL)7nn0kHvnzt-EPvpUw&YhBU{0jX&FyXB(A-*ZWp3waz=DPvcbf?}gvU{H)2knLmSwN zZ;7~p3FmxXO-t&~0n_%=nf`$=R15M3+TdE7E`?-f^zlyU`HTVi@ zFnHCx{bd;Rwk%1jgRAv59Wab#B)r20s>}t`$mu9*i8zD(ip z`bo;mGZgee{m8enOzWLdv}e>~QbZpe8?{XOr50=|9WT zum6*4=0)9A=CxhQBGLO#0fu)FWNOWdZi>Wh3Jd20w(#y_Wh*g9RMib#*$%f{%z!ka zSJ6b`*s=OM6>AoMJO-v%V~cbN6RCSl$zQ9?8J+&S>KM*KI4?~P+px5#7irXsY(n*O z3+mXBe@rOq%#5R74Vxm}|Asn-B}!j?L%qYsjo5=#Ti|O<8(H96otEMCVOL;1+5H#3 zVcr)CcTPwv#If$baE7L243|32(AtayDfv3JWF)Rw52Xvg@xOBh;ocdMnk)$Kco2&B zS)g&qyb0xItUNVn8u-mPteQqyp^rX>9PZ9auUUpMMxqJkVURnOz$DB?-yt3Lbch2oeVtmMB z>;EkHKeFeXb=xI18D-1h? z-<}}sQ(*1DmV>f_<2hXDMP=}5dZr*Y?k=iMglQEhE9_muf-!79L;qP2n=%sBeTd#T zHY~5nC4Fr)=?e!5PR0WJ@GSKeB!;oqDt8|lr)GxjMYZlcJvucm>^)TXou@@p$Jx(=Q9-nplLJ!4AO{Vj=3n zI+L>klVf-r@D)M$5a8{=-vD02^rxCETcm|1r}VhV;xXx2yB^5zLSE10EM$+H^vn-_ zX72}CUc=mo8UKqknckf?##jJ$G*WxVP5OJ`WW#1u+i^kC;RR)c&Z@l_YcIkgtzT&) z*GyM#o08;$fV-hmv{!0eFO{O_G>%jIOxis&OLS7_%p`Fmot~L(b@3M>#6l_UlsqfR zTEgE3wUlqBIkRSqJ@oroNn#sy&Z?I10p$R$ckbD(bZT~vSWL#^J{Z1IY=c7boR|=U z&;x37G;4$49WW9i3=&Fc&YbCJcL2I(p$yd4)ExM3$Mr+-0YjT-fC<=uvMUf#>mfpv zpnc8>l!hRpWx0WfrXQnyir^bE*9j3~1?^izV6zaxCTO3Leu~=#&6_{P5uV~eM6HJ? z-(>=E`e<$*ot+!qgzGc*Y>Utlnfc-^enet1+V3jS~!j8W`79Hl$hG9+Ozz8qMz0jYEb z8bktYR5niLy^KFiFXgS%s4N8oo z%w{1wz*)ae-d5RX(Eb9)JGgU`xy?JkEwE+@vL=yrflZ8LPse=LR(g0XWie^f<5>T! z$2yi`C~eSYWgf>}qg1|LB|-zoJ4UL2Hp1N;zl;|;R+K{vbRWlC(-l~7gJE()rlVE3>=Jo;eQqla0SPN!3vfDpXT}GtUJ3*+u0GZH}3c z{#=jcG^fPYRHsNCg7%?NwJZovGaS8XyAL*Xr92N@$(BTwAI^_zs|pvf%ahJ>JL ztkpW;Ufjex*aVynG&sk%a{Xq$Cu&F5KPxzIEYSBQM)4Kq3GprE`7wJ|{vVXA(!&eq zoPs}`ig*42Zo$sLyw%LpUc1UA0e7-5@#1*ewa6yUV9&}5uI=Pg)FQQp<8^p_U}dUG zgiRdp8KwfKcmnx2-p&`Na;<>MzXDgj|2zJ|H9EM(Io#q=HjYP6K&t*bpu*ZoeV(`K zxf6YwF7DD@#|b+pv6fWdqGx zwut_^>=qp_U1i+3uD+qBwyH62G)*j9k=dYFsxPgsY%Cq`Dy^s$>gv~3R5mn}R@T?A zs~0r&M{?=CvLbWsTDN<8QQ_n%rMX$TSz{=-{Deg_fiBBeudZBuFl_k|@nCmFnJAXf z@XBnf6K@5qXmlgh0&U|NqS0J>tuout!_gi(T{+gEU0RwcxoYf#+mLoEYNy(&CcTSq zL$s^PM&Z>~LoxqiT};WT#-oL8jDrC*l2V#)z)N3YS$W#w(98hnk=Js8?@xpnVLMKc9*f|Q%Y@~QMu9u{+efDoJikQB>q2gN?un0 diff --git a/examples/more/13_parallelize_min/example.c b/examples/more/13_parallelize_min/example.c index 13adc11..00f28e1 100644 --- a/examples/more/13_parallelize_min/example.c +++ b/examples/more/13_parallelize_min/example.c @@ -29,7 +29,7 @@ int main() int n_samples = 1000000, n_threads = 16; double* results = malloc(n_samples * sizeof(double)); - sampler_parallel(sampler_result, results, n_threads, n_samples); + sampler_parallel(sample_min_of_1000, results, n_threads, n_samples); printf("Mean of the distribution of (taking the min of 1000 samples of a normal(5,2)): %f\n", array_mean(results, n_samples)); free(results); @@ -57,7 +57,7 @@ int main() } } if(min > result_remainder){ - min = results_remainder; + min = result_remainder; } free(results_quotient); return min; diff --git a/examples/more/14_check_confidence_interval/example b/examples/more/14_check_confidence_interval/example new file mode 100755 index 0000000000000000000000000000000000000000..edd76c31dc554b2ff38531760501807fb3951697 GIT binary patch literal 27360 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 F{{!zz8vp +#include + +int main() +{ + // set randomness seed + uint64_t* seed = malloc(sizeof(uint64_t)); + *seed = 1000; // xorshift can't start with a seed of 0 + + int n = 1000000; + double* xs = malloc(sizeof(double) * n); + for (int i = 0; i < n; i++) { + xs[i] = sample_to(10, 100, seed); + } + ci ci_90 = array_get_90_ci(xs, n); + printf("Recovering confidence interval of sample_to(10, 100):\n low: %f, high: %f\n", ci_90.low, ci_90.high); + + free(seed); +} diff --git a/examples/more/makefile b/examples/more/makefile index c03f24e..0ad04a8 100644 --- a/examples/more/makefile +++ b/examples/more/makefile @@ -48,6 +48,8 @@ all: $(CC) $(OPTIMIZED) $(DEBUG) 10_twitter_thread_example/$(SRC) $(DEPS) -o 10_twitter_thread_example/$(OUTPUT) $(CC) $(OPTIMIZED) $(DEBUG) 11_billion_lognormals_paralell/$(SRC) $(DEPS) -o 11_billion_lognormals_paralell/$(OUTPUT) $(CC) $(OPTIMIZED) $(DEBUG) 12_time_to_botec_parallel/$(SRC) $(DEPS) -o 12_time_to_botec_parallel/$(OUTPUT) + $(CC) $(OPTIMIZED) $(DEBUG) 13_parallelize_min/$(SRC) $(DEPS) -o 13_parallelize_min/$(OUTPUT) + $(CC) $(OPTIMIZED) $(DEBUG) 14_check_confidence_interval/$(SRC) $(DEPS) -o 14_check_confidence_interval/$(OUTPUT) format-all: $(FORMATTER) 00_example_template/$(SRC) @@ -63,6 +65,8 @@ format-all: $(FORMATTER) 10_twitter_thread_example/$(SRC) $(FORMATTER) 11_billion_lognormals_paralell/$(SRC) $(FORMATTER) 12_time_to_botec_parallel/$(SRC) + $(FORMATTER) 13_parallelize_min/$(SRC) + $(FORMATTER) 14_check_confidence_interval/$(SRC) run-all: 00_example_template/$(OUTPUT) @@ -78,6 +82,8 @@ run-all: 10_twitter_thread_example/$(OUTPUT) 11_billion_lognormals_paralell/$(OUTPUT) 12_time_to_botec_parallel/$(OUTPUT) + 13_parallelize_min/$(OUTPUT) + 14_check_confidence_interval/$(OUTPUT) ## make one DIR=06_nuclear_recovery one: $(DIR)/$(SRC) diff --git a/scratchpad/makefile b/scratchpad/makefile index a2aed9e..d515383 100644 --- a/scratchpad/makefile +++ b/scratchpad/makefile @@ -9,7 +9,7 @@ CC=gcc # CC=tcc # <= faster compilation # Main file -SRC=scratchpad.c ../squiggle.c +SRC=scratchpad.c ../squiggle.c ../squiggle_more.c OUTPUT=scratchpad ## Dependencies diff --git a/scratchpad/scratchpad b/scratchpad/scratchpad index 84baecacfda789d9cfd733c936b00726772d0423..e64435f81e722ae549059d01ada7c541f332c733 100755 GIT binary patch literal 26920 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 S#^YaJ&nf7B(VQ}h%KrgP{qfrX delta 4901 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 diff --git a/scratchpad/scratchpad.c b/scratchpad/scratchpad.c index 055657d..b2f057a 100644 --- a/scratchpad/scratchpad.c +++ b/scratchpad/scratchpad.c @@ -1,4 +1,5 @@ #include "../squiggle.h" +#include "../squiggle_more.h" #include #include #include @@ -9,14 +10,14 @@ int main() // set randomness seed uint64_t* seed = malloc(sizeof(uint64_t)); *seed = 1000; // xorshift can't start with a seed of 0 - /* - for (int i = 0; i < 100; i++) { - double draw = sample_unit_uniform(seed); - printf("%f\n", draw); - - }*/ - // Test division - printf("\n%d\n", 10 % 3); + + int n = 1000000; + double* xs = malloc(sizeof(double) * n); + for (int i = 0; i < n; i++) { + xs[i] = sample_to(10, 100, seed); + } + ci ci_90 = array_get_90_ci(xs, n); + printf("Recovering confidence interval of sample_to(10, 100):\n low: %f, high: %f\n", ci_90.low, ci_90.high); free(seed); } diff --git a/squiggle_more.h b/squiggle_more.h index 35670f3..06747c1 100644 --- a/squiggle_more.h +++ b/squiggle_more.h @@ -6,9 +6,12 @@ void sampler_parallel(double (*sampler)(uint64_t* seed), double* results, int n_ /* Get 90% confidence interval */ typedef struct ci_t { - float low; - float high; + double low; + double high; } ci; +ci array_get_ci(ci interval, double* xs, int n); +ci array_get_90_ci(double xs[], int n); +ci sampler_get_ci(ci interval, double (*sampler)(uint64_t*), int n, uint64_t* seed); ci sampler_get_90_ci(double (*sampler)(uint64_t*), int n, uint64_t* seed); /* Algebra manipulations */