From 66d33c0fb75ce010c5bc54b9f949f5faadda8ab0 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Mon, 27 Nov 2023 14:13:50 +0000 Subject: [PATCH 1/2] generalize parallelism to arbitrary num of samples, fix off by one error --- examples/more/00_example_template/example | Bin 23152 -> 23064 bytes examples/more/01_sample_from_cdf/example | Bin 27576 -> 27488 bytes examples/more/02_sample_from_cdf_beta/example | Bin 27520 -> 27432 bytes examples/more/03_ci_beta/example | Bin 27288 -> 23104 bytes examples/more/04_nuclear_war/example | Bin 27416 -> 27328 bytes examples/more/05_burn_10kg_fat/example | Bin 27376 -> 27288 bytes examples/more/06_nuclear_recovery/example | Bin 27664 -> 27576 bytes examples/more/07_algebra/example | Bin 27248 -> 27160 bytes .../more/08_algebra_and_conversion/example | Bin 27248 -> 27160 bytes examples/more/09_ergonomic_algebra/example | Bin 27248 -> 27160 bytes .../more/10_twitter_thread_example/example | Bin 27408 -> 27320 bytes .../11_billion_lognormals_paralell/example | Bin 27288 -> 23104 bytes .../more/12_time_to_botec_parallel/example | Bin 27448 -> 27360 bytes examples/more/13_parallelize_min/example | Bin 0 -> 27264 bytes examples/more/13_parallelize_min/example.c | 67 ++++++++++++++++++ examples/more/makefile | 3 + scratchpad/makefile | 2 +- scratchpad/scratchpad | Bin 21816 -> 22672 bytes scratchpad/scratchpad.c | 14 +++- squiggle_more.c | 33 +++++++-- 20 files changed, 110 insertions(+), 9 deletions(-) create mode 100755 examples/more/13_parallelize_min/example create mode 100644 examples/more/13_parallelize_min/example.c diff --git a/examples/more/00_example_template/example b/examples/more/00_example_template/example index 92e31166613a83f99293b2f867c99ad93e83f6a5..f2b1432e7d613f42b4322fa34cb47e659eded7d2 100755 GIT binary patch delta 4799 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 diff --git a/examples/more/01_sample_from_cdf/example b/examples/more/01_sample_from_cdf/example index aefd99d7494e728c7e7f596502f563a896d57a6e..4920d36df0aa4131594eb4daac327e4cbb407f21 100755 GIT binary patch delta 5569 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 delta 5801 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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..521640a38fa96fe03d2e7a70c05b79e635dd26fc 100755 GIT binary patch delta 5579 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 delta 6492 zcmZ`-3sh9sx!>gTsjP;59SIV+IBoc@9Pp+MsiAz=J`>2nasHLm}9RQUo9C#tsSB zHX}}p`EPqkZ(SF?wKZMs5<{BOuHF=qYD{`#z^EbCRx}bvV-jQZ%1t!q{`)-0k+gfQ zbH4q5|G)qJ`uF3U;g^}db4;%_fjNwR|Ka-pa)EtmAB4G$yHNU~i*_yJ>%u*3i=DLk7Pm$)G?VCHA z;A-eki|APBNEi;dMj0P$BTL$lr}N>)XEZq#=Oc{dU}co^IH{~91#o;;qQfJzKRECc z?AR<)F3WyV4k2scvssD0Mw#u5-5f@+CZ$w|jmj+9f_j>iNt5T8Ovr&`l_yBy`(<8N zFBZc-$SBL>b&^cS8vE#zBz#Y(6#8kFkf4eWSMj%0yj-WKol^015|yNkzZMBPu~PC8 z!pj9_AtQHI)K#c>IgUiWM#YQELGncERXnXkNi8Z~j4)ZzMtL7Tv|{=wX_u;iGJI6m zrQ&gJrqgpOUS7zeu2;p+nYJdRPsRHTDn-9aVN~%)RXmL|B@L)}vqB;csrU#LKdj=T zBtBh)Qz}KYs=%ma=?GI@lCoxQzFeY}14lLny>L~XXMrLp??23L8cm0Xz$5`C}Hc)qUpB(lT3xQY14@`H2n`~ zw6?MjreMsP%KR3ltclEz!D>s5G@zEx9ldQdOKq8RHx*XdR#`SYvLWz#UODXW{*i`oM6gV5}U>Byq zz1Re!1(m^P|5x%Ckpj-S&hR@%_MfTlfSQi(oKb9=2wbzot z7iXCpdY2Z)hMJ_I3*Nm$2~&J$G8~UfU=haRRwc4xDRVhBs~HJChSP;cqG*brOad-` zN$AleY|IC+FFu2@z$@|l;;%YrRpxMKa6V2H#+ouBCheP!!3_zy8fFFj$gz)&On|vb zE0_=9J4x%=m`|bCQ3TrLHlMd=n>ASci6Hn-1i$|778qasMa=k@47R zW-Jh5C>${cj-%YOB#!U-7gKpp@(bL(2b}+He&bm82*U?5-{bqd#$&-U|4DviLc{w* zoE#SB0;OLq-*}>&87}WxqVvwXUKUtCtP7M1JTuDq0y_jg;C(~q?{G%(ejL#N_Z5F{ zRC3^TT8)Vw(&KeT6$heRJZ7xrfk&-e;kiB5=3c&M4=L+@L&phcZ*xZT(y6k-OPx1L zn7e%U2_3JAbMoKb;?#8x;}+;zw}D&FZQ!2Z>R#_Y$>g57o{B4>xfxa`M?k03!gwIy zTo_t|TVb#p-g0I!B{1dO5&20hA-}(aN8YRS#rrP>e+|#1EQ>yXd@%f`ApD6QhruMw z1rNeRN~+#~8l1Q2(79kreTMxn8$c?s1{=82o(|t-BV!FD7+e3seGjc&dhU1w8Rin9?-5v z5L+0uK~(xJW*2BP+{`S<&sfCh#QeX*FEHN+lNlLICYUo9hQ2(BZO(xenX8yR(4Sey z#6O=^#MHr}te8yxsvLZ}X5*)4J~yr%Z8o|_aIL&`+xWzsxA4Hi7=4ZI0k1?rS5{nJ zFJ3Ri(6gcu8qzQh_9$Lx;IDV0N?NTof1%!jTVO1!#K%>0Rh<7ES6Q_h_fekrKkDQ$ z7<8NXo{$umxQTh41-ZliQ#9Q6o-yv#FAKy?qJ=mwTR))je`5LGtHysl zj9f{sAn%sq9vxhP`elCa0~#?*xxZj};r-6Z&yBwCVa#Dw&fGV1&ouMKt#9*z4yUQi zf0JiEYBp{e!M*n1aJ_o5O_^T*7N?6wsfqT)8eE4yjfteJ=TT=__n&pabyozTtngyz zCp1zEHt~;0J?LD65r{qe^y?tJ?ncwkjo!c%r z{hY4)GM4}7g}2 z=0DHPtt#{16S`m`{4l3|uwP%VRbID34!fD9D>_>no7(N$ zn(f;gTHCfXZMSdUzBR4GzG?H0&D%FOZfUYN?zV58HtJ|;Z)(`IJ=5OMxUIco^VTQj zn=1(JEZ@*+L1@D^2j3BdKEx@+0YvMVAY4T3L##o3?u;OuLOhCyH*PYH7=@^NR}fr? zyAU5mJbD)G5v}J0VGCl-c|mv%vF|-W_&H+1`{;+t7X@L8#j9lyGgb|b+1~`A0C5Ph z9B~S<9&y*-1)+oTm++E=7`!Y96NpwE(L0C*7y=%=;!YuUAr4{8|B=cc3c@YK@$2YE zi~es2!hXad#34l2N7zAa4)zQ)caR7ohU4A02Dg$-#BoF~B9D7>FX9m5IMmKhi!T@z z1T091cb0h5bYgY^KAyJ)!3_uJCztX#s_IK9y-0RY3*_xMib|q3`|%kidnN@edx?&ruANcL{_655x|P7}XF=x5m}oZ%TtVn+upsJnRk@b61*6)<`w0rkaue%@!O;nGGawd$IO~}zP zripS+{G>xsRa3wz}){7hX z8tQzT!M+juM`w8m)%zzQVPOn=b`tUzCd4~25ZkF0Z*a5A3_98j9md;!Bk@+PC z*M2Q$aDP9PGZb{s@*27r_I|F#6wzv-*T(l;Pj3Qc?E?C7yhs-85 zVemLt3Ikk>#z^YnIA`&7slV%FFB)Pd%Ah>#7>zw@M#^jOXO!|IN3GT1Y#%LFGm3q* z@*BeUkXA!ti1HsotyrsUGT@OXq%s=S5QLJ)$3?)zaP7?WV&PAT+=bJg( z*6xOglG50IIoK=Zp#BNEh`>(RGoigC2ZQf$Nj5V8Vlcq{s5Y*u?94NKeD)30BsYL?vysYhlkx~n5PlXHUVrGb)myIUC zv2^gPB5-38(|+W|?t+=O z*z9uGGO=jOa6G+~*YY{GTlkqulepI*ekR)tz#%?|8HO?RGqZO3laJQY4@{Y* ztUg6_Kn5is^JEXWxWpu$rkGnPmom|<6q9oBt(Ey+XehJf*2}}8?ESk@Yr?2C)r*Cu zUwh?JUGQSrI(V6nYWOQMW|q$1w2_#(Ci35mt}p)yZ^CVt_RfUYewvhnG!Yt>S(rjN zfbYlXyJ@3rIglV(Hc3EQWuC}O}<{) z+3m|=ZB734iRoS`)i(-0+X{o#_PTkVx><+VCTFZS7*6 eY|;jYY8UDU)=6fDP`FZ?ANFd4B*x;%C;mSMP3R&3 diff --git a/examples/more/04_nuclear_war/example b/examples/more/04_nuclear_war/example index bb6534bada4edc0f1b41f13dc66041b38c6b3303..522f037df559ddc2c8dbe0e7ecda4933163a006d 100755 GIT binary patch delta 5361 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%0DRmuKj}(5gBs_I$9;?RBaH`@JF+ zMq<-O+(t5|AVhX8Z1<`>Qed6i9!^!{ksO8Uv+!)jvf0Qx$7=7+RjhweKzK&&TSX19 zM*k*KZy;<|tyol8JMOw~k7`{+y>r}1F_-5|Vck?bx1hnIu?yx!>Mc~TVQ*VBNy6Qe zRroJ>A9((>W_3^hMDn^ z8s?&XO%GyCziV<^^w97U#T8V%*lk&>W}YZ|Xx(DBVTa1@pxuinSfaTkiedT=J)@~B zio2+|xn1u;wDUp@%~txb* zcFdk7h+#%ImyC^zt|3BtT+6+dXby@ZhTq~Qsl`L5TFjKU)J!*8Jcj6=canGMgnwpY z&va#E{j_fB3QII-%>0Bw(bE9(?0d@+$iA!|C+fOo6AXRx6k96oTQ(u?Y=hcj^m=2) F{{c|8xDfyV delta 5589 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 IhnQLaACbUsxBvhE delta 5457 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 diff --git a/examples/more/06_nuclear_recovery/example b/examples/more/06_nuclear_recovery/example index 92e14a0b8dbe9b44e7ab9c7d34312833fcfec389..0a8f64230c5b892cdc9b05d03b29ed0c5bbb2a3e 100755 GIT binary patch delta 5324 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 k6%I15T83v-Yt3CeP13XA!LsK2ZEv0zW@LL delta 5639 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 delta 5224 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 J=|*eD-vKSqWTXH9 diff --git a/examples/more/10_twitter_thread_example/example b/examples/more/10_twitter_thread_example/example index 0095d68d1882d66a3845efab1c80613b5237aefa..1960f0dff8c29af95b9ff34497081c45ecceb429 100755 GIT binary patch delta 5017 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 W=Icft4D&`h0_p79u#|}Pvi%46I828C delta 5320 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 EA9%Wy&;S4c diff --git a/examples/more/11_billion_lognormals_paralell/example b/examples/more/11_billion_lognormals_paralell/example index 81d03cddb59c518ae416fa7c5fb0276242283232..f46aaef4b75a713a06560a0f450a59ca9950b7e7 100755 GIT binary patch delta 6018 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 delta 6442 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 delta 5324 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 I(u&Ie2YUcf4gdfE literal 0 HcmV?d00001 diff --git a/examples/more/13_parallelize_min/example.c b/examples/more/13_parallelize_min/example.c new file mode 100644 index 0000000..cf1f9ea --- /dev/null +++ b/examples/more/13_parallelize_min/example.c @@ -0,0 +1,67 @@ +#include "../../../squiggle.h" +#include "../../../squiggle_more.h" +#include +#include + +int main() +{ + /* Question: can we parallelize this? + A = normal(5,2) + B = min(A) + B * 20 + */ + + /* Option 1: parallelize taking from n samples */ + // Question being asked: what is the distribution of sampling 1000 times and taking the min? + double sample_min_of_n(uint64_t* seed, int n){ + double min = sample_normal(5, 2, seed); + for(int i=0; i<(n-2); i++){ + double sample = sample_normal(5, 2, seed); + if(sample < min){ + min = sample; + } + } + return min; + } + double sampler_min_of_1000(uint64_t* seed) { + return sample_min_of_n(seed, 1000); + } + + int n_samples = 1000000, n_threads = 16; + double* results = malloc(n_samples * sizeof(double)); + parallel_sampler(sampler_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); + + /* Option 2: take the min from n samples cleverly using parallelism */ + // Question being asked: can we take the min of n samples cleverly? + double sample_n_parallel(int n){ + + int n_threads = 16; + int quotient = n / 16; + int remainder = n % 16; + + uint64_t seed = 1000; + double result_remainder = sample_min_of_n(&seed, remainder); + + double sample_min_of_quotient(uint64_t* seed) { + return sample_min_of_n(seed, quotient); + } + double* results_quotient = malloc(quotient * sizeof(double)); + parallel_sampler(sample_min_of_quotient, results_quotient, n_threads, quotient); + + double min = results_quotient[0]; + for(int i=1; i results_quotient[i]){ + min = results_quotient[i]; + } + } + if(min > result_remainder){ + min = result_remainder; + } + free(results_quotient); + return min; + } + printf("Minimum of 1M samples of normal(5,2): %f\n", sample_n_parallel(1000000)); + +} diff --git a/examples/more/makefile b/examples/more/makefile index c03f24e..a95dccc 100644 --- a/examples/more/makefile +++ b/examples/more/makefile @@ -48,6 +48,7 @@ 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) format-all: $(FORMATTER) 00_example_template/$(SRC) @@ -63,6 +64,7 @@ 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) run-all: 00_example_template/$(OUTPUT) @@ -78,6 +80,7 @@ run-all: 10_twitter_thread_example/$(OUTPUT) 11_billion_lognormals_paralell/$(OUTPUT) 12_time_to_botec_parallel/$(OUTPUT) + 13_parallelize_min/$(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..c575ecd5910c37708634c8eb614cb89f706fb3ac 100755 GIT binary patch literal 22672 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 Uf_4Hj+4z6Y$Ke74gP|z>4}69-{r~^~ delta 4306 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 V8e@uEsJd;Ay{*Ae{WQ2D@IL_5qNo4> diff --git a/scratchpad/scratchpad.c b/scratchpad/scratchpad.c index 055657d..ca8fe54 100644 --- a/scratchpad/scratchpad.c +++ b/scratchpad/scratchpad.c @@ -1,4 +1,5 @@ #include "../squiggle.h" +#include "../squiggle_more.h" #include #include #include @@ -16,7 +17,18 @@ int main() }*/ // Test division - printf("\n%d\n", 10 % 3); + // printf("\n%d\n", 10 % 3); + // + + int n_samples = 100, n_threads = 16; + double* results = malloc(n_samples * sizeof(double)); + double sampler_scratchpad(uint64_t* seed){ + return 1; + } + parallel_sampler(sampler_scratchpad, results, n_threads, n_samples); + for(int i=0; i Date: Mon, 27 Nov 2023 16:46:57 +0000 Subject: [PATCH 2/2] tweak parallelism example --- examples/more/00_example_template/example | Bin 23064 -> 23064 bytes examples/more/01_sample_from_cdf/example | Bin 27488 -> 27488 bytes examples/more/02_sample_from_cdf_beta/example | Bin 27432 -> 27432 bytes examples/more/03_ci_beta/example | Bin 23104 -> 27200 bytes examples/more/04_nuclear_war/example | Bin 27328 -> 27328 bytes examples/more/05_burn_10kg_fat/example | Bin 27288 -> 27288 bytes examples/more/06_nuclear_recovery/example | Bin 27576 -> 27576 bytes examples/more/07_algebra/example | Bin 27160 -> 27160 bytes .../more/08_algebra_and_conversion/example | Bin 27160 -> 27160 bytes examples/more/09_ergonomic_algebra/example | Bin 27160 -> 27160 bytes .../more/10_twitter_thread_example/example | Bin 27320 -> 27320 bytes .../11_billion_lognormals_paralell/example | Bin 23104 -> 27200 bytes .../more/12_time_to_botec_parallel/example | Bin 27360 -> 27360 bytes examples/more/13_parallelize_min/example | Bin 27264 -> 27328 bytes examples/more/13_parallelize_min/example.c | 26 ++++++++++-------- squiggle_more.c | 15 ++++++++-- 16 files changed, 27 insertions(+), 14 deletions(-) diff --git a/examples/more/00_example_template/example b/examples/more/00_example_template/example index f2b1432e7d613f42b4322fa34cb47e659eded7d2..1999f3a5bbf9ade87d6873a44fec6c8e6a48fb73 100755 GIT binary patch delta 1499 zcmYk6e@s(X6vy9fi@s{;D_Er{tVN!I#$a2Zg^sc9kt*+DaT?`^f4L1LBqRPvDsv0U z7To3wR^6`4`iD#0f|Ea%2z#1HvP7H;HN%9N{b0WYH?q~~l)-T5(7W$Nvh614e(pKv zo_p^(=e6-OBz}hUh{Sr*CCrVJG>v$ziG`1~grN~HNt^LKR{tf{O{0$N3`gIFx1Jt1 z-=B80gi=@TjqRv1+RTe2aY42qsIk-|#^LmdbW&@yuX>j(PFMw@HGNXD2L`AsZzWkz zEAn19rCE*3dArHtk8tB-ZM6Ue%+rs7GWw z?JZc=?vPGj)Wfnxjah!=PgM0m6}mH-G0vDe_}L@I*m=SovA{tS_h0t+Cl_(&8{bDa zt@Yp21}|X`lU%}i5&M$Ye`d^oZ7!xt4^JavAfk_{e@#X7NliLEpmhuoHKr1OzpC5X zacl*SP4*!w5}MlcX;^QQOCz0avgp6!zt$O+9ZjmV zyPKqz3wZ5QQd(HfPoBjY2(WiXWJ@Tq-`9~OYQq``a)psZ=RQH} zxFjkp@YSTkgJ-HkvwLpxlvYJLqq0-gZ)xOCljJ(Ui-LeMwd10gjQ+%!7P?N~TO*fg zSSJr)l3dRUQ_>R;l)6Z){1zIg)N1BVwzhmqOHEx_WV)Cno)aojIpC&J=hI4-(ajC+zW2x zIvz0s#=+ZQ0u)fxQq;o%HltfUa0Cp4&R-aN9<2YBu{Llf$=C_5-)3wW>;@-HLc1XT z&Y0bdi$EDX2bO}RchD?uzl#Tg-G4B44jci8z~m%jP7CZ)jMan9XxcHZ-(xHR9=wlp zQgAWY2sS@Jg5U^v1}yy>=cME!BP_;Y5N8>)EI=Tb1?JiAJRZSDr#mW5>xn)orj8g!Xvr|F&GvVul*_BemkI-C87DQt5d zHdol(G0R$8{-G4b=6iF2Vk_-fSYFSu0Or?ybCQa(j&r)%^ro zPE`ixP}LwgZjkjaFE$0T>8rJCtns;Tgnu->wUyX$zt(I0@Bi3eS7P-Q@;n8>XY8&! GW%>u9tr|-J delta 1416 zcmZ9Me@s(X6vy8!KWstzC}3J*rA11Bh_t2UM}tg?6>jmdvB(ci_6G}$NU{hlsM~_V z!hYlh%IfY+Sh7EGF>%Qj2R^d+#}YA4gbXq?i!s|2++cPNN6{%mV0YgKY)kf%cR%-j z&$;KEp7YZFVbVWL2DL<2V-eP$8fGAN-Qbpu)1cxfc4C-uY#je3lQq*x_dou2=VwdJ z`%dhMugvZ+Ul=Oe_ny)b5hH59Gz$U^#O+o362b}OIi)lG42d1o3BvJ&M`C>51!l?E zNnETn<1NjyR=JkZMq>Mral_iHc(cBVAY&|UcW0-!+Apux9Hb53OM&b=Y88I@t|Twe z?)gJhZnwqDlFigedy>*KVWV=jjXH0Bw6r4oY-aI`tH9Qfd6si3U!(8*&~Dl9;0J!QXwINOGa%SvfZ6L&!p@2XUR_&YL~HPMf)jibp4DpxtJrf#QpQaNgt> zkB&-mqs`hRzIp{2_J{_bEpt6!kI!c6k!)K%W2YS5AwnB&Nb=LHvC4q^79~?spkq`k zS_Im25?M#JUjE%9uV^Uyv(od|u?K2>DOCQ=PacYvE|dtrxFXtpRU4Z4iF3c_4qM2v z?K_Ko=tnF~Iilrl)lFy$J{D7+dF!M=aZ!pOcx(OgEpLrqe&Vh6qI)#3I~(#rDQgXF z(}p;E-hPn{#8iFYXx9h=>vJ6MEScu~2oZ$(8P0=XEBGncb&vBAFbGzuXC%H24ubRG z3@9K-)z6$KfnDgT0}O*c(D4iB^UYj1RbN1X;K(B9m%uPM0Sb>fH$_4R4}o2n(1+^zDd%J0z%t@QA@MWL8^JCx z2!_F7uxbTyqSEk-u$hHmUFAG78W%w`7+&MN6|86Jxw}XqdokBYrdV@s2ENeKxyIy? zyC@u;_~%K&rWfxeb|u%CHGn>5ZJOd$74KL7(bYs+H= z_13B?F(*9Eq2GlY9uCbkJp8eO3D#_AW9((ub~4XSy3)uIcGhJl{p^Ozf;tynmSXJ# z&R>D2`lvC(xX}pBy{>F%k(fvj+8dji8rcMGl~ua86Dw@e;-oVyE-dlHE@@uTx{S=&cQU zt)TXI2=!QVSBdmFhElqkMYDyU|{K zVfU6AeUL;%F@He@d7ZTtlt&IMan2S?5|x3N`Y2{BK1`_6R@@RvD7)viqijQ|k(iXM zQc*)bXCB}Ckj8!Gq(m|7FCg&pmtBUWD?g8QsC+>)m7{z@PZ69_D~wn@71xPRAqP&x rYUa%B&DtCtwW}4YLmR3shsScQUH9Lgr?aj=XUg61Fezl&P!l542O}uRCUYAIG7yFWLPJ1H1jGTlVB!2e+eG3e_k8ZYzn6RY z^&0J@(N5ZEph-bH>1jbegk~nSC-u(SRheeep`@U9`XBjL-8GBvt7G#|U4HaMU3h9& zYL$Mg*)YXQ2#X9pt{N@2Ve}I<)AFQ_H``xcbM7-|6Wze#})pTvncVOM>&*vdgk^oz>ncWlE*PpadLdzSR9f zwZ(Msgd#Z-SR~n`(W)+NvU#73p7+Y4DOTe^9_>2QqD}P&ag&#D98TK%k4w^6EdNp1|Jm>*$YId+2jDmyouwQ~dSOeziNi}Ku zQHW9qIf-Ruuo)A~TMlcS# zeiy>hpOB9GLR5ero?kd2EsT51#O{gI->kubo{e75Hx-UgYdnL^XmVe}iz1ciAMxhG z6z6@!;#KxE&1)Ze99m9~LWt&l2tA!sDTR7?nq;R(dA>A@+PET3#d~a)lAR@}l(R2F z%d!{M3PXFXPfGG{j|mH}f)|of5A2GO3Fn@mZn& zMOWg9-kP(&!voerDPtKU9?`^FBj=|6_@H* zmb$38E&=2>=1xj`_V=r8ps(psxRC06#iXMxJhxXC{Mb^idAN;c;J delta 1566 zcmZ9Me@s(X6vy9vwfGQdi_`#9X_Y!#WI~y4#c4+6QSQ@6#95^35@#^jEk-kkhAk=@ zHp82d$W@_({};&pp%TkQTPPw#Ve zBwEuqo)WU>Cq}CE-KK*!X*fp^Xf$oRZm~OOkRy75=P*f;G6iAR^iivAaT2?bH#3n!a=jT(fGabz2XO*14QCy6og%oYyMWZJnyN z+2yRYZasqxORed$%RL@2BD=C8sw=g)Yj0s=oY0y+Rr}l1RS{h@KuNC}-Q6i!9RiK) zLDo*m&-+LH*7QK4qWIsPzZv!AQ0;ex+_5_Lp+xwly+9k!N^$iD=SuN4_Cb+Lo`d&z zGaj`It&X=1H=(xWPixKtf3+H2_C}r{_}41hfWJ!7?)!s&oF0unvl;Rl)$<6)CdF4> z(|Hj|V|E>n#_nfy7L1?jW4Fvwq-w z3=Dxb*qcB%=g6>~9 zZ#LGya(>#p66bvzfs&9Id>M4#;k*fqfhWKOcn%Ex!TD9N3mgOK2pQk_LpXoW9(?@eA30vlxD6w-NShaPHb}6@Y0Ma^>OZaEE?J|Ogps2k2U->gwHTb zprMgSXt8awNP-iu-IyWfm2*iytCCj|A3H8T@2NzOJg^wUh}eXzTc6O{pfxd4mN9z> zmU%{9)Z!G+PqRqnDdW4kp(U6X9zpcfH{nqz-hhXaB4lBM(f@k3sca@`V|&VSNftX^ zRzN80D|3)~b`Q@EmLACP*spTF2>!+}>gmTlD1r9oxPlggacC!4MPMfBWv>QS&1grP z=RCGkFpSoBv!1|8(!#RKUleUWv-Ram$b0N?`Lj6Y^X1z`+b~-~^TeQmxyep!%13`= z>|L6hJ%p}T8{xKFoHaN+<50t}=CdA}N$S`w>X>~FH)4n3LoJ2k3X4>U*ABxcj+@2i zC>b-BTinfN*;05Q$#3yBPOY-E5R;iH%6#HxuPf!|O57#0?oHWXYOM%~i6VV{#epdx zySaK{_T=BEkzsO}PzcpMFIh!$f)xi3iE%&sHW(1^7U|Qg_7Y=j>)HWBeXaUSK+g*$ z5wcJBu6v(6^<=<}s5M>85a4}teJ7Fik2hqdlEv)ImV#-CqKT9U_+U#wj1#szyl~oN V1nhV#{9H0Eop7T17vT@Z{{VMZBijG~ diff --git a/examples/more/02_sample_from_cdf_beta/example b/examples/more/02_sample_from_cdf_beta/example index 521640a38fa96fe03d2e7a70c05b79e635dd26fc..97de4a42b05737570b8db1d9ae5e1e06dc25c9d4 100755 GIT binary patch delta 1610 zcmZ9MZBSHI7{~8f7PzpsFS5z5WV^;CAd}rK5XdNQUf^C@3=|a8F-$`~FiH+MI)j3P zHFLuqsbe!W!xYUp6V5bh-agQb1}X`bI;*4jhO&}PYg!R%H4S?DpC$XynK}1&pa1i+ z&pFSX?HwV#Bjlh+k~1=e*viPHGf7TTW%9IHX=ubp9PO`6oBxsOrZHz)UtjTl^~*!6 zyZ0=8KUD1o9jHyG%9x}%I33r6@x@K_yw}FA^cij2T)#j>_ zz#rPsAYz!!BlL@ii+%!M;9M-HTvzTR<3v!8sDIuK>XVx7zzMD61W`jO2@I&ZwGCy< zQ8v02S;4})Er%7oRVoN}wn}2)WZ+zs9Ex=p`tbS7^~N88-{{ zS>A<7nJ52MQ8?9diytW?*x4+(RQ!a}v;ms_KPbcrg8wpOPOuJV@`GVe zi4)ocJFc`2Lgh8aTEU6yjP-DP9F2fI-~=fAz?j{PhCm5C2o`|;n`nURKQh(;_WXo{ zfMM_y7>P3GiiduSv0AY1XU6t$`wnBn@vjO(`)??efFB0efprtO5iksX1^RzSA+QU) z2?~>pnG=x*J^_01y)=Pc^vI%lZhn70K2Rmm&LLsvVvCe0nQkv`J0^1%mJ_=f+eKw1 zl{C>6N;=s^w<&4FPCv$bBR!&|o1*9GxKd75(fK85+3grWHqXW4rTFl=|EKMR)<@qi zNtxrscrsuKs?}>cnQRryEU~Qf(6Z=fh}en26--C?O=F1AEP@LOW(=>Fo-Iiur|2&w z=|rWDQXknu)uo*Jhwm6ekLs+YY?is{L+g=CP%tIv}#EmSu`*{9AUJMm0U z@**V{10AMBOLsdl-sQa5Myq$NRgB$m6TGWvk(NsK(i+V(=N@7<@fg+WHoCXSu`CIF?KY3Zu$qncs>;D2Z-sH}2?*E*7 z&bjwYrhAZd50cOABx7KT@Nf)Fq2owldMM-3GGytbh`3@EkCy+Dn&R1vEmrU@$?VA%gmvR?Ih@bzqaPJM zNy_P=!VQF2YSC*X^F7z7ahuf}{LV)DX}qMZO{v$-`wa`UWv7gI!5LnJZvJAJ*R}R* z5zTCtou(nXmusCllk;KI%z9ZXKKcG%_e@pJb?iP2WF?1(8Pm*fw6{(-d#j3B*8w|R zlYLNYO!a}Fw;v&f88XW5t-YioWXR}5+~RMGPj;$pa&A;}tU9K}n`NICpS9->V^Q6) zs?RW&%f6^%WiK*3>u{-Z{=qI$l7OD*pIgqhbuf%TlUY|E4;o*nt4?xzdO8dqD1(OE!Wx)+mkC#Gp3iFp{q;f zN(Jx9&3Hr$9o~)HO^9~gc1*gfG#T+(yU<3ZQ8x#b2HpHasaJ4&T73Er$P0|X16-Ru z*=8Ltosmw1ne+C{xlcqvpyMmnwe=ihtcwW3$Z^JcK>PQM^@E{)#`eRh18l*%`0%nBvxB~>`tx@F zz}Sb}q)9=sF+;LfWC}hkk7DN2FH}F-NC#BEC=AfMYE51KZacKdGKgBJ^B!IT@yT+S4RS>$KHSdbMd} z2cCZF)a~R~>e2nAfX>nY6`+B&@*vsUj(%b@f{zovW`F50+X_HAD&bd#CYhh;>Z| zNX&9Y(g>Mnc^2*_p3#3TubhuXDA^@u3kdMS5u#e3y?8d0Os3|FqKri8BNs$Fv?7dX Z>9L~p(fu*1#Ac=^Dj&O88)Bb|{{n6J8xjBj diff --git a/examples/more/03_ci_beta/example b/examples/more/03_ci_beta/example index a0cde1ddf69726de311e636d308d4c84632397ee..acc44574106bf3ddecc74fdbc2dab5f98097dbc9 100755 GIT binary patch delta 3964 zcmZu!32;-#8Q%9~f$$;8w=7@6NLW6=2iO)Q4i=H|lOuy^3>b)ObA)jlhPW964uyz` z3qi4+61JToOi~EbCJfUSr=}ez4UK_tWLhqB#C5pKAqb_!n8aM&e*2^c57C`@|F{45 z|NHOtzuotGb_zWwg!Ng%{CBg@dW$SXE(#K3Koq9R>4^V7!^OH;uBPSb&wwpj&F)mYE`_lrrg$`;<15V#h)~)4BAI5 zAx$ct4^}BHDxP<)l+`L;StV{;r{YH_&b@X(*cre%R5OLJyOt)=sM zRq|bKj+EL;7eVpA_mDCFLd4#$t@F^%*sKw`*dv2cyD*ntjQvQ+p}sg9_8N!w?gO|&y8!*h)UeBh@@!di;9h2~ZkVXHVkOK)XYD|nmEiLheV5bqL97xVq zo1#$rvFSogCPq_mbifcD2ox2cNv9`O3!~}Qq+G}&NjZ@BlQt#VkQ#5U#>+ckcqytE z8Xsb>jsD)8DcI-jN;8_ zYlmB@H>CjFCn@QW$5MWjCR?ICR^x!7cDMfptPT2+Rb#4l6m_P$gbcbi^{*)zJVbP) z)nE94G0FEIWeP^^wUJ$QX}dH+T32#LjYdeOO}3W=Gd*ORIKnIsJAPO)HI9B$NTPJ~ zuORK2DDyBC;DbQ8+U(k3D>@S7PYuF)8BuSo)hWZsg-M({D>y28;*KF1KFj49po8XNz?AYsbS;M4`urvJ4m3#*z=qCSL|H5Ps?D;R! z_J)&sRe_`GTK&{;9AP^vZ22eXcubvESo6 zFa2=a;~Q`rcIyL>CH4o}-ktFGXyg5EZl zHExk)SaL|}XtrALGRzxfY?0frMc-ETt-G%&V#tYH%lzLDSR z7o-KpvJO^tSihEpqg5R%59s7WM`~L|+&HV8tmx!`lQ$l!n($!hH9jSqr>)s)l6>E~ zg`0~E>A&EMLZr55q}IJU|D_9zxhI^ZnR(V{K1JO>2w_MslaDp$EKf)2+%beWXS#i- zoHN|MJI)%X@4*bIV~hv%i=M29*Z`eBoxYRzTGy8F2CX7)g>A^+X`bPpT2nl}zRFoU z(PCS?kc@(mYvJ@S`OCci!;CdyD|AO0+XyrPJAw9NjGYE<1J(jJ_A+)5*bO9jjr_nk zpy@bccHlbTv%u~X@CVvYGPW4lc#5%gz-?bM_FJIzPsHK+X~yt<;w3|w!a9oby2YMaBk!4(v}EF5e;GYGC&z#y;oz6~=A>`>r95 z79C$_tR2`5>;~Gu#RRoDtJa}12*MAH#HCz&gRxv-AJ7GCxrvnl`ft*ih1q5a3zWyV z&ox}W0IjHw$J2C(ZYmr-r4j3?z8Lx4){Lit^H@KnaG!QO2N4eMu3RjTTkyD!&|%{; zyqz#*LFI+J_u=_R2zLXVAKZK(FL>?cPZt-q&BnWv^cL}}aJ{Y~LXMFFt`=MO3im_d z{`uf`f^!7?^Tl)UcSmH(Mi0n7>}`mVSkSN$wg)HZ;c*#a%PBfAZmf43cDEcBQm!|y z6)W_XSM)}wUPo{R5uQzbuuoUpmj~>8dJkYX^)vP|x1(^*h)ih)#}}9v&RM~20r$Gh z1g78s7x@jNo5v@K`KRe;n#0g(Q{(cIl8@QqBwYt zUMVUR$wg`|ULrPKqHh;xi#s`Fgj>*XB~PYH^kQ*_*>#z*Sv=;eddmV#i*If>%qo%;N>!<>3Y>+nkb zdO_1j-z&)!`>xVGB~!wPpE3GfSu9@V3t`k$T3cw(=Mf1}az*(jPY%#T`8vcEAs0&> z-CF7u>bo+YOB94U`iYo8t0#RbG<1cRof5oCxS+QT8iJ#^Ow9!98WKyC9|N^jgZZ~i zRx^r!JW+KbAu#s>P?BP$Y!uwsq z3!5W^ee}bbdErXBU{w7xON?c~h(UDFk+br`l@!4!=gcY&S2CkzGTk(*WJK^6&{ReH zA8VE>YOZ}`vsckM(1IK8m_|22YY28#P5U2f#%gMwJxQphb7Z**axU$kJxMn&;BBV! HYSRA)53t6T delta 3749 zcmZWr4Nz3q6@K?EE6WPI3;V;eEV~?ZS#6%hmYMVi(gFnfr z%ScVw;wI>6XA-AriDQ#CZ4;C@r9ZZ)jiqfggjmO+#rP9+HK-KDf4x2T?LK|3cjle% zp6{G{?zunj-rIYE^nOMeVUo>5=S09ZU!?#3vl|N#a{3ZR=!U)gC7D+v#pONwE z2qnsJln<~5i88~etU-#5zb)fUGTtBMt&tg&k64at zlJP8Asce$*taGWf$ara%n5|95CrHk${|=d9;v)mcy({CBWPGQL*U0!^$#|`d?~?J+ z-78vq7+;DX%RX78BBEE;AiC_Lp-;veWd8jNyWddnQrhQooUpyOnWz0i>)%vIL=QT{ zg7g^8N}t<3RhK~mb2v_G_j25It?e$-5GuNZ6(OV?V=(J>vr%YQeo_c7y;UU|W*jaApWaFeVXfYljTE^a`sA z!Qtjap}nX9mGFBHC=IW|*hiHw6+)LjJHd);q}3@`S>c@iLy`_bLl(+U4eLo+H1 z?Pc@XlvK>d-9M&Hjs!|Froy5$KQY0cv}q{6Oq+`GUfS+dBW{gtE%@_}X_qGrpvF=h zFv4#wlZg>dSTa%Gve-3f3Gcc|Da$I~2+s5@G|W%WCkEJ(K1B5JqBT7MH!`!w8z5kH zBe&0LNBNa?u}!oj`<%KlZSA4(3ph8}kErT0lzJ%6@RAgGGviNIJdQByL}xhvKBYqN znluER@=|j5OSXdwqUlc0tWuDP(3G{DsNq=F>;ydYFr4wK8g!GkkpzHAKSAl5yg9KR zPk{|7Xq@qK0(4C_CE;n|9`FS(3ZWV2Rq*xX*Awv1M0?V&RZ#8fA@QKe?n#`3WTaVP zJPc&JRd^`*Ldw<&-4my*Q6!1eReP9?^#TtqIaYp?0)C#eHBekt5xif$L|8fK3r!nh zKW9bov@du~XdS5)g3V4{(C0L-650(}E^)t9IR*E?d$;Zdy-ut4(<2Cp;T`AMz&{tZ z|EJkr>ZTokWd~e%1G4jj-UnPo>)(klSm2v=Z~d?rLl*ejF|PX`?tyl1z-es|w2jAv zP_xs4n|c2YN*gM)jYoaKRZd5P_O(OULm}G~E-_%c*J*C|ITL5~ZOv;96Jh07zTnO5 zzRJ+ECk4{)3vE8C(%LzpeGB$_R8>q*j1_B>%WhZBdbs{F%g-hRzpEfuwDuNE5&e>$ z7g~>~!iDE3t(Y|gfm~-vGS<2h)s_;5Eo%_RGp3iX7;kai*fcu8hCcK3lXDEFaF%Pi|(Q}s4 z|04Dx)*^Ocr+tY1h#b3}a0U&Cd5A8=PQ*gQ{%_GA(KAfxYltluC~ZURy-4X^#QIAZ zhv_4f;>#hx>8?;}#{0Jku>kQ5q7Tt=mC|~|PQ+%$U!$}GQ8z~E8AK1_4MhKSNTq>h5c?7T%=BB7jv|iU!8mw3*59Rc2Vy^B52EKD4p2D_JHW~fBsly<5^-lXAx=Xa zMf4(i9^%X(c0Gi~c~dO)I6=8=;=S?W)#SwLv-q_Q!Tx!Z%34lSD!;PWt<#L(CdT9Z zNrn0B!0!x(ON){Y#7_K{e*?CX%sG8%%0`tH=6(vlZ)3O-X2d0Wg&`I*6WGo2v#_cjOfZ98q@4W=Gy*7UI64ZHZb$OR5 zeN}85NkE6|wgWjfTvk|8PUL!!dtGEAy%Zql{EpJ+*?1KhMB`YdVZWUZzbdo|BQW4y zU~=KgJ`-&wAoifidljB5ozJVT!M4&leA_iRTsoUi9EFFa`Mh}y^2-|ewi|G~EK|*X zc|Wf27fhYP>&D@3Sth@H9Bkz#%ieKHYgp)Y8plfP8!rp4ADu_WVL`c#FT4qj<))my zcmjJ_j%6C%JG@t8ep@k5;|Rsg)3|mhy_&o?ClqT6TH~uV9YmpoedUw+&RZ~8UKZDf zdkg;O*LQcS@5F(*vNr#exFtAFT1x3Lo6eHJ!iLX^B?6qI682OE$inW-1*wEo!am*v z{)K-a{%*DZBuSIPMZHB(aCn--*+s^Ho|9hCPudM!eZHKD)D@hOlhTn}6`TpvkTa5h zDknYM5*lM{L?cuLyQw0ffO9^9v&e)d(N}XjAd7~j_=Qf zly*Wx0}59i-}}Ce9(}qmbM3GHP|py zmly3jiVk>Yb*@_4BA8{}>gUwb&Zy6a-K%FNMAzM11cQ$?M-f=oJhHippboX@3%Xz~ o>_$yW-UEY=HJt}6Yv&RV)QNI8$`@d8?OfHONMaWF-YWb50VS}A*#H0l diff --git a/examples/more/04_nuclear_war/example b/examples/more/04_nuclear_war/example index 522f037df559ddc2c8dbe0e7ecda4933163a006d..8feeb700a51e1d7ecd8efae7cbc1a3bf1fe6d4d7 100755 GIT binary patch delta 1545 zcmYk6Yitx%6vyYzE_4cEW(zBADXR?B7{D=x4=RfkwrGKZZCTzeDo!IJlu{c49?vbJ-sIlj-2ZvZ zx%bR&ypzN`$w7&vmQN9eMmb9(IjND|e}J8tKAF7D z`lfFpnprnvEg9M6d~ED6@67zcCOXpCx49d~>Bd7XT)vd9x~Lo1X!K@;8g;5{ob+)JRa=XISrb1JJ~Ge*wS|!VR(f!wR<__r|TaxbfXfb&G@E z0X@-zKA^aSBNF;qWoYxB8;V(I1nyzPiICAv|GXPA`gG;M2|ap(&=@7&I5p%(OuH7- zS{{rF`R=a!I$$)Y^FmDxs^mTCJ=YXaot0FnJw;=6s+-2l}gP~ zthP`|3#i%FRLp?^j;4@m_qA@!jar1RI_qgIjj87;X)ld6BqYTZz(X``5cFt^q(OdX zpT>g+OMMU4_3|T44K>xN8PxbqC$}mU*Jgex7*If?$0V!cDuC|0%1UOdg`eWH)sKtf zDiZE06Ypykq1gPq>4Kmw(~T~zTsQ7%Va<3@PGhrFl$VA)53vD~1((eOv&pD0io#@E zxn352YR*fgTI6Z>)SA`86kLX$MzCet`bK&h;2pgF`ZEB{$gRjYvbh~#jwlF`a{$%2 zr#}KDkrr|gdAI{01MTxV0k$Hmk-L$*kOz@c7eEWQp9knhHY59yRuaHr6NK!G05feu zqtJQ@U=bItVIjzR9@|DUlyWHYh>dH5HAR<7Rw zkcMFazXAl1^}PV~$jD91gKR}QhZms3?*K)^F#&QlQo4nSkk!Z!kxAs2$jBc6ZOFmf z0PYmDvtj-jnHJtt4)0(f#lfNCoP#sYbpJHc%GUVPGvlW)0`Khc7>^Iza8|Rue%B=H zEEdd7LD{iIERl1?uVjZNOBpD&;oQY~{8^-iJ@hXn&1`XCjHd;A;^7fE_)Aw~?rzjp z4k?1bBkNHsWU)Zj6N|7@ul>)$yS$%$6UZX%>_Q+*?C)X&fyv}emKn?;dzc<{q2ZOF z%j38V@bW)_{58DIHK_69@xisBma{{_F%#@p01EgaZ4-#>eqQE3)ez1$jLK#`!RLs? zyv1XP%7VquidHwy#Z-5^vvNBj{vO z$Y#;>%+1)$3QQ`zA-h-MEBH-PY-SsKk-Eruwt=S4+HB#M$O|c!9oxl#obkSGf$Wai zgL3w^VVaz~Ww<8Ki>54;KOnYhc9c%T?EjdTAq&U z$IBCBx4GhlBO}RiHmNFS1kK~;!1D9h@~UF=*jts8`rp6zg{rx!+5Sf^*=A<-KJjl_ CRyltF delta 1472 zcmZ9MacmQ17{r**n2MAM0|tXaK#GD4oH_)2eQrZdyyU*$-Sa)) zd+&YE<%~1jIK%s_Jk2tnO&%7J$-QY6X;XIe_=##~&W(9g2UcZ%g^cVg0CpF(o$BtFOvVWb+o?>v@-FB%WZbebzm@m zZ#kxFjc!+y{goql!g712>@J!t*d@DjyHxj#^5ffmok^}VoKm&lJ;$qKrNau3tFdjz ztac|;y57K3k68nB`d+}ESvgT%{#V;iW`6~W_H&ruwmYL}5x$wrl+L5pWbtL9aQUeC z(C?Nxu9GT;rX_agPSeJkx_`A7{28cIV=ForF&0=C)`kPMVePj-B!JyhVo$e1UaNW@ zVcV?9)uTH3`AiW{uQ^x|;Syt_CD7in@q3~uXRP}q(Z^s9Xn;nXs1&9xLqwZ#zwrm6 zb09lSGy%rJT+G*;A=(8-!F^yK*ay0XiTcg?vqTBd0LMXgp2(5HSj7lYaSH2Ti3>zE zrhu1=g56*bI0hQvMkIC`>;aRY>k83BQ@@G^ron#=4T1)^4UAtWI&SJe5?L*1;0BQl zcHbm=4cu}Ib-)CeJ$)Grw}~pIqX5_lx_&_+FbeJg$H33PEq92%1C22vS1MyZF*mq4 zkDVg&nsLaf4ij#ir8v)tO~HkEi4%BRQ+|BlduOdU&xzh(4v&g2f=-DIiIHFd?-Tcf zbNEg%TVCriu<4%1OU&gp*zk-0(;A^ohG$*xun5#o3$!~nXC3d+boX2 z(T}jorW`)$G92LymJ3Hew4}Hz&yi-F6}C_z-z7>yUjDh*6ms&U*nzP~^oFuLJ1^pE zzyk9yOHU>Z?e$58O%^j#&ljViIlMyL53Qcsvv~cR zmCK}QSH)9Re#vo7)K|4Y8?0K)`!UW>cVW>ulC<6sg-T&w1VPrB^&l{RY)E~BOgx-33bvSvSLE81<5ZN9gr2W(}XskOFl zo?;Q_m4*C$!NXM+1D}aSKazeSML4S0OA~(mpuw}vg8WKj5{Z0Lvx=`##HFa7$Qyu^tk%hoq#^7Sq`4kI!-Y)tTK0>s!MH1 zy8vku<5!6SC3iL*RrFT5IMCTDi|*6z^PP&ERi|3kpHagh*{+5ct-ecCr&-qb2lPhS zUT0}Mj?Hfv7()&OSUUrM;HcLKz85UHzv;ShrMZF5kesdRH#GJ~oh5g>Q4|C$R69g;d;*v{S zuuh!B!;|I3Az@V&d$T zNX&Ik`pgqx)2p?`RnN~~8T8gJu+ME=E9B#mT&45H-py^5-w`#T{OxCny1_267wnA^ z#X;A3qFT`YJ<$Nz1QwVCVGmdeM!`zZbAf0r*fdDg4#vUvLHkAI16K_ZeG3Ygh(?V4 zFp)h)XcKy|@T3TW^$O7{upJD6ec(>e6C>&|>?p($uovAI&3FMg6CC-Or~&M~Msxsd z`i1D4vHy)II~5oD9eF_E2GL=#35AGF>gssg*fM$mPesL#;( zt(OXOqNt10=$JCuYCy)Ek2%EMW%F|4XNZz!L&C_y3}FuOjb+nvD$fyB7-m(nn!J*z zV7U)-fbT8yJ3LSwhKiBQfoi}0KU)@T&D^GB1}{LFiyd;=O{dc((VvlwQeaDj2*@Hc!jSRZfkEt#?hEzEnQt6&`ZQ9kT@nYD9A`HM{8 z>&h3h?R7Bg$+SC=|jl-rg~Gg-?bPc4&7>?SX% zdJneKReshKu~jc&a9h3N7)*IJpBh5VZIj@Rd|tbi8t&$ wCzA78EQ5{l@j7Q(vwOm&nY-)#NYhg9OnV$2<%jBDNVk?vc;Fz>% delta 1405 zcmYk6e@s(X6vy9fffawWbg)q(*dkqQhgh27grJ#)M|-Nqy1;r(EO|w?^k}RQR^~|_G0m(-v>@{^YoBjs`9Fnf7)$%*?zdUvf#aJ` zewMYRv?na?cPlHkCgZ0mrlc%M;*o_N+Tye|sqA^}wWXi1`8_sC+V$ieOUjBvf?P{j zu2|yUW4N8Jb-Q=4`TL%pv+mWhbAK?hesObobF;4^s6MFN$ZIbtk!7QL6+!iiqTb@I zlOe7)I#X1|X{+PyY0tP|<7$PIdxsDFeP5NGnU=3l01IN(zY=lvB>&)YqrJ>aoyYXU z#r#lTRON?Ku=NyE)Iz1`{?2PMLKZ6Ri0d8n4!6tA&de~kY&*jvjZO!TtUi2~C>*qG z8&K3brz33HdK?*6S*)_t^(bJw?6kEj&ILu$-TAFC#%qTZ^)Gj{JW_CxvvW$MX~1N$ zOT7JkWF0X1==>d@#p;ij7yY~Qx?bO6uHFc;n-+TuN`&9SV%~bf6nijE6f7DQXY-x% z5azMW3DmLNV&AK~N#V{vEsOv0RVk6x8<$CvZ&Ogc=&KB>_k0yTbdN{!WXKy8_d~SJ z6tjB8q}- zpbMM(z*S%jTnC2E6V-uj7l>NGIQTJG_%q^x?~V|i25py!ru6kFk;5o8OHoYL7$wPd zh3Iv#3v2{Oz&0>6Ms!fu(SbfNiW@W~AOV;OnywNxfKjjqY`aEuRbT&3WJ|<>t|Ja; zyFqjWYy-!^IGB)>iv*Jhl!Oz31)%FDQ3cooZUy6i5cPu%BC#}=#e}ysolS{g=~5OK zJ4(|trq19b=*-+m!(>062JrNIKBGw{QyuTFPat?EdLD|FBiD}smJ)_L-?nj5W%!{u5(~MVofdgKJ+AiT3OUvjO!NRdhfb ztOziNX02Sy;8wHg7^Li~uXIDzEkkd<_FZT<%b5G)=~e4v8s%CIsZyU<|H>&QYZE$#dKL#5eUT=fz8AJW$D<`a_2Q0Kz%?lmGw# diff --git a/examples/more/06_nuclear_recovery/example b/examples/more/06_nuclear_recovery/example index 0a8f64230c5b892cdc9b05d03b29ed0c5bbb2a3e..e0c3992e68d3d72d1aba8d24cac76e523c04f3a4 100755 GIT binary patch delta 1632 zcmZ9MZERCj7{~AFHn?Td+uF`;Ahxms?SO1W&{bIArtNwzwlJV$RUy3TGUCEp2G%&8 zxS_il4VwqTGaP1LK9kF~Dr3$Xsq7+LdbxDI&JCJhc6fOf~g6PV{N_SMKQX+CF#e z?3C=wQXAfWU#rXb#AfaoCkQk-dj2@gnX}hU&T1z;J4iOo6@*Ps-jS>`%Glb%@#HA` zsBklB)f|&IknD*$!$!B(I^}2vStP#QW2O;X}(r>dnMX%9(= zQV|vL-`%)BsMfhlBF%Mf(bwhcX%4y_Ra9DYoF;4CE}AS|agXyVMOxDtQES|;Dyilm zs+}d-f^Lt#1vwC4ZH~Az{poj$8+1Zfo${umNp~+L-O*%SrzkmtI7IV1g3@qAl=+M^ zcVr{@LDc_n<8|Xm6C%yE?mVjgrjT1zlC#mc6a>tq4TnX2dLQSC|1!JgbI&wmt;g_@ zoO6V`(ldX{m62pAD-;BIv7(-pD-?A=j>+o73YwhS2zgP&`v?sX^<~<;X)8y6J10oS zR4DUe&re?#mE$kECe*wp6yP(s8pX=wP4)2;oVVcin@)0`0^7iDFxAa@xk(U8e&RfV zz2`J)0V((pOn?s9+dvPP0%w6b*aGIA;rug@f+@oe9y9D`kq3matC)_Nl=h&LzAklpLJgboj89I9?Rp1~YwZ#~wG-`NB0 zEA~TZEa_(FL-TX?q1(?swo}l9jvr&CWiOEyrk2enR@PNElWb>M;pfP1<`1uh@@053 ziQ!vdb|K;hdf&zfEy%x$&Q}__)>>SvaMKPfJ!t$CR!Vb8Evul;aYwFkzQORJmSWRf zi&&0j!tl}2eAY_sIU$Q@YnE&&{$PY`DQOrv*U~~Vs@ZpR63*IB!&$rWuCla)qmE`U zYcx)DZFTg`Oro>?1x0udwuQOGqj?ufCK6%(*fvOAu`s!!*(&A}c&%963&~%3fTXp* zDn}BsP9rbxB>BVt>PBhC_#QRcOm-p7zImmO?9y6a{qPC$I?JyvGV9ZZTy(aeI*eo= XLmLiHvs2YCm_30Z507SB{e|gYW^YBV delta 1533 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 B6k-4X delta 1404 zcmZ9MZA=tL7{_N0kvm>)@8m2PUpUKJ58pUa8lh^uI~H!v9t8CeYW<+qo_sKh2CO71 z7_{jIuOUuMATcd%OeBqIv70o0XcePXOyAI=H7asgwHIG1THD%+efnR}Ht8fgznTC1 z=b72($!>c;Z|~>bR&Hx>v(eTdojgBvIAv@$oMJ5D^SIODADjP6sapnJ*Kc(U7Pdsr z%s*ODad=1eTYHW+4jJ2%W;v{%Phm{NG8P-3WDZZ@6~+fI?dNGd*^F(S@KABQa!fAv zyvR%Bo1R_VX58>>;c4%`@O<%rv1ZoSN&J$WJFlt99|`FrRm;WN%i-9Z0rL_e{aRSR zFIw)_2)$l)=wUT`ooIE<@L)~o5mgkN@A%`1uBlU$Pfr5riIM9>LjOwaxl*4~T0m{b zt*|C;L0zJ2Pg$tt3=iu?;o>I^H#LMT3b!I|!P$cIty+^hB`TDS--=kh>K3s@pFJXq zhLnw`!}>ba9aT1*zzGW#r>1&F1GZ{vc57HoFYevxZAoyk_FP#1J+HSsR(MhHzHn^& zX{(aMMC%TmdfMuz{)c|WS@yWR`0s|>=KZD#{Z5GAQ*xSdMffrnh?bMq#Ni>LQ1O6N zylTlVj1ym=i_TMWcAGX9ZTnT3_Lsjp99uMbE@S=`A^oDiDy0ABkNA;25u2M1d3iYR zDbi+53>q7~`xM!kTDi}6(88EJ=G)rj_@1biGv@6hY6E>>7g%|Ys0VC5PgDuk{ea`a zPH+V5104wB>nBpdx(h@;Fb+mQ_m4z%;Oa|6dqH-YsN0+m5XHf6kR`Du=D0@WPQpQ8 zA=m>7&^Ji5%GBdT+rVzrtrv`gSHa<*h&g5hoc3-yy08 z>%dMh4xR#icM&H!7jJ~YBM6RrM6U7J2+jfHzYsNpm9i=@n|tK0Ko;+m9f6s=U7iSJ zO=|lN89*kUHx+}uc;1x{0yFcPk-xlWOAfFX&w>AGSD_u1{*uh8E@XLz8B5sRmb0mL zYcP$OyV9X~yjUqOy=LnFH3T{kV7T;e4BJ?IlN02 zpiju9T4tVh1?h#~Y-VH^YETEQaa3WWu{_YO%9u9U!Up8WTE)aTYBBwpL4aK_jL3}A z*LaV7y>v16$&S(m{FJ;<`ZDj6wz5r78p~$$-RN^|ZtU2AO7zNeWx11Fw}`6ESexwb zwRS6WVc3P$RWc)(#Sh9E!JMg&;Mrn&gxzadVz*Xe_}KKIrkY$6%$yjod-f)4cJDjm z{q~}klq!20PfC`0a3-&jM}om|%?Tp;pfc0wOr4%Av&(CEt+Ba$(>Pu$hnD7ZhjcE> z;=;&VrdTX@gYwnLd(h5Cf_$~%teVeZ3#~W~$yR*`{gLYXmf?Kkqne!@v*|0d&=;>f v!!?7y@pc+dmW|PTTdmi;F=MszNHhq;pV0pMUly#NZxewrhcGs;KV1 diff --git a/examples/more/10_twitter_thread_example/example b/examples/more/10_twitter_thread_example/example index 1960f0dff8c29af95b9ff34497081c45ecceb429..d29c37ce4fc5b8b297d311aab33b4982ecfc5eb5 100755 GIT binary patch delta 1595 zcmYk6ZERCj7{~8v3v?2CS2wo~1}p9&t$=NH$i^V9+iiP_9rDt#f+4)g7&;l4L1r>o zmI2{rD+~@8R6g*5#CwWImm-cJe7$dYTln zU9JWbap+IE*O8I$Wc(Z5t?zvH8#C!-i=V3>9o8QCqh<5yiVI=w3T?a{-B zjn$}%6x?6mu4;8kex#{RvHDK=x|>uby@JYXPSbde;-vAJ%N}rE5ti2^B3hN=tdOg| zz;0*Ac2#j1D=`NOQkx=*rJ!Szx6vSUMVGsyG_IVZq_Z?$m$1q?Dh|=KQ3^Mnu=@Gb zo_l^#JWyINxc*mhqzRFx8pT1in_+UhLeAMNE(HaJwDGvrP_A+wF1XCDdz8YzdO0`p zAjmmI(tUZ{Lw|WBKJ)#_lH^|y*1q?bg|&Wv)UOSe(fE{R$nzuaM`(c6SfbDNE|+%| z9Ufg4o*jKLZ%L^?Hr+X)>NP1BkL24E>`2judgBb|+i>~TPRBnc^(s( zv4IPm7lDG_2MhYW*>%fNEJIB%A9ic7tZ&IT?B2ZJ4~w0vE5v3bH*(J zo2z-4-{##q+;7Wo95Kt*Ld=!SPA8h22AfWUgz62n-ohNEF=FWJN~FP}r{A2l{X`0qbJErAF6K$*rX)9p;ii$|9brp>Dqpj82)Awp^O>Z*u-20w) z?>TeN%yysV-KTk%!V~wq+2gTaIC)NDRC%(BS|Ogpoo@e=<-ZiBZ8&*Jf0fFbKfSxk zHS^=)`kw3NI}b*!#<&NnG9`mCJu>M7Yn!Xg#phZ5FTBr_I#U_j`rIAWF@LY9%bw0> zh~3%Ew(BX@Wba0vv~9}MXrs03#c$(yw^%)|smUJ>nSWNS(AS(dB6Egh6(RGIVcybP z#;SC4v&Uf?p47E^Tk_0o#B?+4(Q{Ak`Te1(dD7K`M}dj4?|vlG&13qG3!5_oxfDGt zA1?L<)Mcjjh=p2?bHmIx3Lb8`s$t7~qYeA!_T`>z)0#Z#HM+Xtdp)w*jdzGl!cfAjX1M)J<+e87k_ z_9$v5)7#!g)*i)Ar|$SwXUYB2g1@%hko8T|&Cw9Qsb+3RiSSKYsJ9$dVvQq2p@Jc? z)aNN)j(Mydx0-osW~;QZn&@41+5>;35m`JshcW-kka@;m5i)=Ehy6G`Ju>$qRa&JbMz3(pdXgFt8K+2D}WO1FMIL#-x53g~Y>;zE*+kC!$)=afPT`>fn7adX*?I z0qbi->%p!Y*e9VFiARaz$H4&lKsH7c2CKnZ@Ceun`fd{K1G~VlKz57BF&-x%b`;I# zz2dW?6kad-ie~Zk;&xF=TJ;IUaZ*o*1Cw@Ky2vVaEzxkkll}?G$RS+v%+sFHdNDVi z(KM_t;!^s>rs5K>10nA-_IxCp^FPgiri+ncSH?a>X3BDOyW7?`!L9_8m`vOVty?%X zS4J{gCij5DXB&nil*I7uvQMDp3%@p%za~~|Gx#~ttmR}W=vM$y7O*>Z+JbiXn|6oa zuCR1Si_qYFF{owo260<+c~8NcC%qUlXRCY>E)cyX1q_*`16r+^8<@(YA{2OKay|N- z^*D-xqzAoj7Y70_^D^;AU@0FE1tkl4SZpbIiC2q{O6s7b1!vomuZrh`(-YnJ$wjoi zN^A_yNZW_zSIW)m?Cv!vG8xlUyaZ$7Krn^piDSXcjMkrtHc5|s{AG5f3{&}{j6v4~ z*Iko~?Ah%Jn%%c^oZp_`GQPqd<#7qZtIx8_4=z{Ch_?qZCy@chffxa!xPKb1*HMne}C44>lP$76g_b?SkCny G+WrRA#}oVj diff --git a/examples/more/11_billion_lognormals_paralell/example b/examples/more/11_billion_lognormals_paralell/example index f46aaef4b75a713a06560a0f450a59ca9950b7e7..aa06dd85d2f32aab4fd9644bacd3a50ffa73d111 100755 GIT binary patch delta 3938 zcmZu!3s6&68b0@i)PRtLcM?ESOn9m!R0OP4VuRdZP-;=Zs^DWCXSB+6@YS)#k-j3* zvYg#nhq1G?vyZN`Tj^qF>~>Xr)JL~=DT~&{7j?C!)paRim$BNj-?_=vYuqz)|L^?Y z|DXRn{&UZ{w`ZTw(=W8;2+Mw+d&y_F61gZyj6q!hMDS`E7bs=2e1KM6P*+gh?g^Mo zRYALH@uN5@26dv5k-j0s#fDt7L$2A2=^o*WIEO3f`4H(2v0ib07?<7^*Ct&2Ftgpf z`Ezkp_qVx~MV@<=HRpfRy+v~%!WRk}8ZPOI4@R|y@r@x~*ATQT{)&FCKFIUA1&1Eg z2UUDjkdkE}#QS)IXq90|)gVsAkE-}26<;0V$AIHWQA(|fSJsr<8dN+I=u`a3DwRR| zfF-0+#q+@`Ws{2MohxOVidR;N+ul_1k%}|#zfENr`@lfRE)^f6;yYEmUd6w!;teXk zOT~wFuWa4V`Eopb^szD(6g{d2p|s0}lPW$z<=hHhm5u(rZ0UBI}i!kLixe z9<0y;dYIW$=5*&7(*)maLJa9{LT($z-35IIn_I2_J50Y8re6%x&xGlx!}L$Xbl-t6 z;-fJAPht9R!}NE;^k0VQtzr6WkLvOER~{wo>#Jy8T$O$zA^Z9M9X2e{Zl6f^#T67} zreQ%_WA>(UC|$)+60dj(8EJzWi7-;DR^(7J+LS1@Xb*a+DLz#P52>}V&r7GprwU$L z7e6is6j`4)PiiiGiB~26wWesPrE~+7z#r~27FdDU$F(ndX=i+nFoAv+|ACN4Hz(L3 zf1R)n(vUa-@{rkVh}gJc*kE+qbi;-^?RU9!MdE%Tm!>7XBjnIelJX$o)t(%Kiaz?4ia~|Xkb4Rir+hhAS zyuibTMKJ@=(6@HLPIp_f1Uo%u$$-3WN!P;?c<%?s_@D~xG$F+f!_<@l!A4(9xhRaM zvr$(*p1=-neC>SGbLGw-JSUEECqp_p#E-tf64;!5a+^xO`wm(h z_xcB=|K9fchdqY9$34x*1*ugMoIR3X??c$TIEMlyXyq-rz5cIm{}x-Zw`Ge>=RD=? zYjN8WR!WAor=`{=n-#CX(hQZ^)|G}ehcVh|d{1Qu3K0Vhj4fVUM9Imm zj^=;d+WdDQ?h$onrtS? zf5Ri(T4_jsl`jgBTAr4gkLm&=Uo++@xkQumZBL&>*V{lKxoH}nN#jYx&Dm$6+yE3gab_>!>;z)oN-u&s}=lfW+EC~y!M zjkn4855}y(ZNSOEu71XV!8tD%<+D5`q$?kYxFO_X zT}MC4ZNV{@tL1Ylz$SnL4({Dhdvb_<*^D4Y9?6M5DPIj(7(($ zWDZ%erR2i@K?J#b+Wu@lmgC5?Z;7cAo$Ibx%5AC=k2b>p8BnSm>+zZ8%lzXjG((QV zCqVDICy7P}%`Jah!05{BAuTg!iY5nLHuIq9aM6s4jo>;eCUNDnihO1G%CL6eoQsvS zL*u0137zy~NkRkB^LxlWo{i21#WRS5*psp1<6|0mz|*;v$A#V9=2>ry6+WWx&d-lh zb_7N>Fu%xH7K#``2Yqruew4BcFv^7srbH>pZ=69p78FH>7SdEj2OetHDr%{HV9Tze w3!#N_T0Dn#Kx+tfRZRyTYQ}16shciT(}l9^fP8@t)J@kd4SHMX(wg-D0W}E1(EtDd delta 3745 zcmZWr4Ny~87Jl!AXh28;At4EYAQLqB2Vry@EhuP!hX$nz5?r^ol_H&Om2vQI$2N{s zONy~9cX!5R>@GUpt?P7mZE zKRr(i=-aW zFDUqg2qnpIl=rg%i3-DA#eftAKdj(Q3cf1Jj|Rs!MQ%O?FV~dWUQ_VcK)>wIH7X41 z5tiec6g*2-ZtE31n_O<26uev|W@}aO@v<|Uzg=M%Gh*Pl9SS~4!FMTmt%Bd9;B^Xq zpMsB`Udh_S_)~2X%UnLo=wWQ{S+XdSef7B^joVc?&scng|K6jI`o4&-_h_qlmzogsy<_yfw(d}da|Jtn(a#g8Gc7Tk1Zz`Zo7NCdy2hK5aACMkc>~w5fj2ee`1lR+U|>)BTtiBoJ^X0$ z)Y+3*hBr1c%rlxC%XMjRFL{INwo%=WavN1iQnh@?*ix?wq-nBE*rX!cC%@+}sjdh- zu3025@An2Lon!B3Mc}+Qa7Szz@QHzDhd$tSnCr#1)EuXDN~#^A>(p-^JPLRmHr-#2 z0}{hKe_-qWTHNxlW_ziNwjW`4TzD(kxdG1;uA=4dyf@(XPJguKiU%Rx-ZsQ_{lj&t z&Et328bsa7Z^dA(~5;(k8sf&I^?8 z0J?$ufZ|0;{|)Q``ha^dX$Tks4g-gQi3s9EC9{A#fK!2?%am3D-B&2B2d=+LDSID! zu2H%Z=(|p7FVhDoy({2*qPaz>9-rVwU_S6H&;vBz#>BuKz_%HHhtgJ{W{}deKsRsz zDE>&P8(&5Zc4s{>1l-T`2PhRV{6ECO2h#VD()WQO;69-H5v8ZqlQ01~10aThaX6Wc zcvBp}Ft8BleoAROaL-fHFnfa4hXUoX!h1$bUnd8;Q}MK)BYS6$^S7SIa+o>V*oUVX z&nCvBZgOKj+wh!4I9vu&GedUasmGqIV9WxoeybqVYH?kLo^n67|+s+WaS*IsR?`cbH<}FlM{J;bBX+Rj#aq(1Njn=dWD>slP$Dg zB@gFJ5qhta37$;h?sYQPler}S2BmLGVva+!q2Dd?CBD3U!bKIo# zWmW}M2CvPkV+-TF?14=jAjdrOO-}6h*yu13xDO`JZ8ENOuAsR?R+r8cTJMlAN@oa( zcggM20>L~;vddNqt@p^`vg`yWMu^z;Z;9B;u9Lu!&j|7j_yj?Y0n-z?kt#xiwd$jpmN0n&Z zEu(9+?Yv4&c9oA8x*m`d7a0&g-wbk|K+AfRE{m5 zHERU8tV*)G($6pG&Yqvf^OfXt!9=PS9N??E6ROVe7CBthTLKk_E1q0@#ppM1@-O!D z_EgSSpkyL_6=xhtM`=}YCZwTcWdAfy{-ak~RX9Oz_M50-whM7?vaq`R^_Ywd7{hZfW@M9My|}VGiGQ&|v!ys} z1>|8h4tgG$Q1cOw>}r-lS{IiIp*-@&;=_X3MY3zxf$OZD!ju!Wd2;$v?hqg1GD>E< zkxx>5e}L-&p9m?`eG0j^Zk;Qp7#DEzl7$y@x;Mg;g-iN)Pq*c#AB^GOB)b~&666zr ztoj>X(&tC#j-r{2U6Gd{p8{mLWW`Ssh%`1__tmO52`~Lyp_lg7n diff --git a/examples/more/12_time_to_botec_parallel/example b/examples/more/12_time_to_botec_parallel/example index ae9c70dfdd4294f4e8be2f83c9bebe84177c1220..8110f21117a7627b4ea68640ba583b10f6341bab 100755 GIT binary patch delta 1634 zcmZ9MdrTBZ9LIN#qwYbyJ$fjImV#xCTz%YKeDv^_9IW=p|o>#1@_=JZfQO|s@rRk_PPU6 zHbeyrZ&$afdX4N4*4N0Q@2s!8UX?Q|skG@k8js0&G`?ir9nLE?X;UJoZaH5?Poxed7ipAKjx-8tW+9R@?VI=Z(1ik#n3M2gNSVyFk}@+?GWUBHf&C z$DICvy?_z$0T=}xu+u)_Z*&R+-pU<{-` zbKYj^H#iqku>o)~h)d#crY^(7_#KHLL~e5au=ZC>0 z*beTy#kp$&>}*f*Owz|%inB-&J6k-1_}Nf#R<;*6?7)qUH@rom0bhhoD{(HVz&%eK zGntlS_?APVajt zxhHDRvz$${i-B~(T)hTb5*2@AEEE0)g84dBv$~`HUQ0jxwRFL>9flTViaM1vuvgW5 zBC=ho2j^~4b4iq)N8ikbRHxf|ne%yLIn8x;;{|x3?HJR{Tusmpu-TSGm*KZ_zw`wnu)?xMWH+lWn@bwm=VhCrWCvyv6@9)f4-r>T_I+$i zAV0eYMPF^^+HB8TZx@A33|*-C)9gqfi)>(L0=YTIe&Kwp=|k;a%Tl|z9K)#T^DE~E z7@^KdrS^h`RK@Py`-Ecm*G*VzZzL&E=B6`n)^ZxKHsVRKq2*5FU|PAAxk3>O^%+}3 zo2($aUOtCVma!s>G#l;}?^#GIYpM7Ek`fMBihRcV;RVF>JGJU7h`UxFLhp{;B3(xI z%e5qX{I_my&}@F}EW_dyC~H}hAP0;cuO!mR4W?9i(x`9L1|^nak}3 zOAi)|j5{>cWVTwLblK-lVN6Tq>@PI;=eFeXelsv*2cH=AFt+)j5vS|%XT-O~kMh%E zq<9P8Wybv*`NYyk9t2Cwn=`+%@^#|#(zdo>ZN#`+w_Izypr=auIG1bs44i%P*H% z0rhD^y~iT$N4aiP=#_UiT~krALQkS@+3~VdNwv*a*rYi(e66M8KChNq@aZk0rigRH z5#3np^ENrxAHWIooo>}vJX$cR`aDV9H>vX2>q>iuYmFy$;}8F_npF8YjrZ!Q)+07& z5z~^d;nX9xAe|WrI^Ch$HI@Ht`bFMvs%Bh|@Egve1g?m@oOxRNL0hKq3Q?r8Pkf;G z)SClDnGy(1rOu+QGL1E*e{)X#JGfF$El8Fy7F-cA&IRit#_z$}AiAfeX179KuKVwy zZMMvk%O)w@DLN)Z-(7gf!kFk^xVdfk8=^F4%+*V@5A=e)pmLH(M^fw*(aTsjoW}WJ z47>{_Ko{a2pbzW;E5HFT0lLl*y$3D?JHamSGZ{ZibRLYJBO0`@HkSU5$Yy1%_dE)L zu?rZRT=(H%(A!V66HI{nz+vzNs9Yu*0K33jQb&VaS;+sMr~!Amp_eCl+hj)qtp%y4*;aPk&p3_AlY~vlm2v6sO;^S~$e)*3? zD^ZcPIJ}LhUx<$iCf+Lg!bSXqxEIcwUH%i1DsK^TxVBqVhvyw@mBX9Ls&W)>%T^uA zo8y9xiuUn!jx@Jsi=Z}xE8;~h%X+0WP#%9(o*EOm*w%a z>0kDi1?}pt-3}>O7q$#5=G%31xy<`=#TO8_tlWdAzkY}(%=}etJpaL;uDrLj3S8K2 z$z_V@e)cF=%~zf~I+5=X!REk(+sar9ioMz#LYV{20sDjfiukMf346L~EG2DLuG?ez E7ooZo+yDRo diff --git a/examples/more/13_parallelize_min/example b/examples/more/13_parallelize_min/example index a6bce2c845403917d0f9054aebe2fb240fa14858..c43ae15c9fe792a8999036fb01c0342d6f0851cd 100755 GIT binary patch delta 5701 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 delta 5471 zcmZ8l3v^V~)xP&mCd>@U%!E8B!z@WsRSj8 zHsxWIX8tfXxUGijS_P|J_*Yvob}f*u5`<#Z>L2(8p^6XzxkV@t!Db0~`55j(h5meEGA17KBOs~u};C)g3N`lO8Sq9L$; zOM+|kt??Y!tIawJTq0Fl9EsN3dUsIB;-D@|LLzgYUUt!Hu)Dw}>lAQ+wu6-{34Chb zzDYkbK4;H1rO)BGVR>9eUx7WHZ$azL*&JtchdJ(B+t}|RU&BeeUA}mSeD)6c#2xaH zJLHe6X?fC~^`ZK`+?Xf1P^4b$yil`5?2a4f#}dV8*e3@1t70pCK52<8%e#Z6Htt=v zH!(K74yRj;{#A?~l-6dk=B2-|Zs{d>WG{=wE>?-LDWwxRPMU(@P?2Ik0Apca+px`^ z_!fG^SYlBWrrxdC!!*Lapcw1$InizWwbC8-dBkXyuV8n@yRzIGjrjajlbp9+GQesf zj<&eC!{-^cC53&ais%h--#LTyA|_Fm8IBHBMK58ASg5o!ljFK0OxIq)W z;)@fs?Mf5b{<`6}CE{JG7uyrW&I2`p{)M3hp@sXUH!!-j(B^&`&f&P$9_mR+t3Svb z7)zX^!1NN>kW=5D#c@}A;OOIMh%w_~2Gd5?q>A0fXIcB1{xxR#l+C??8QQNQ^j}x> zr@TVfQ!<5?S>#I1Drf=6wU0-9r%{1F90w<+`^9*yRJ1)jfOe`xUwy){-x?J%Dtr<%!Tet zBxK}{dI!BWcaSc*g8WTt%gE#ZM7VNT*2`jy`L!x3$Ia9R*uty4%<^3;J0Dhg2Z%4*rqYv zM^#z5{8#j7RyO}4y^!U$J)Q##PhC}wK9WNRvU~{=9LgH|g>Y9k zT_2lnxj$R!HqOZ=x7(2s|1BGgn`Ku$DP0?8ggwicO||Z^{1Iw%&vifNWrJ`vpw+lf zn#HaMyIpKhR=bym+%w`$(2-74foJ>}2WUkn-jYqMP;FBidII6cz z37*|J&(n9)(=7;-FVX+xyeiE8Cl&jm!lRkA$2XflO_p&B_%tf={fJ&0x7t*GL6&jZ z<-W1GR$i$2h6?lU<%w40O%&?S)7HH9cjIjMHwwv4x+|ZAb$CkhJ4WwtaNJ{K&^_gMG^ZfVnguy< zxGH)Md11VR9xa$BG@YYQ3bM@0@zO&t@d{ln*v0qKo8xyUY)aKfKb=aCOejuf4`Efz z_z^%^pOk-={xsnd-$k!YTqQWqP+H-`lu~G?=L;jF4xGjs?>|kK3TybEQ?O_e-Cs10 z4iveBRbSD`qSOhEUunTGwc0Kn{?<01CAEDxI3Et%9!k6?i7lw{J$6HKlgLw?Ii+8r z5OQST1yE#RmAZ8+ETjuq7t6L7`4O`wt)$h(GuMY62-SxoNWt}W;^Mzo#U`9Up5ZE@ zU$P9`d7)8^uJPHC$enm!QndFag7@X{)_+|`+RwE8aX%nI>KJ0-|Eu`S=WE<$0l8-{ zdzGbDu$9s9O|GKzeZDGMQZ?;*``Iu|mQ;1aZr}r27D(pbrj9_yVy24}?Ch@cB}^Mw zSKKM_;^IS9(eLsHs$-Lniu_6+cLCP`C14k@@rW$H%*Gvs9pDJ?Z@`jc zSU7O)aaoQ-7I%IQ`@pqd%5tNDTh9%ku@;2?q%8LWdx38Nj{*CEjo9?3jEAQ$0|#&p zgK?Mu7y+8jVgtYd;3;6&*Rq_6w|YR5;gLRn`{JlUwjcJxClca zb^%uc{r{BZ&A=VNSDE4^>>Rl4GA5?orFp!EhDtL~-z?2R?VaIBcYY$vc6diGJ~TGt zZ`&c7J0n*ZIYdv+$X!1f%o+Ucg7))FyWDDz2{WzE&4!TGvneiYZ8Nm<7OQ85)mdt_ zms(As(a=(UAZJ3~gP7oPQ40HIR1EIEJGd~oMsPpY^pH-tMsV*OmMi6PXmFy{BYa@7 znr4nx46gwdXiA^a zE8zlT3WDvVL*WeLWVA%O63!@%pw)%Iw`g;)#V-SQ1{`w=D~#&^Xa7Q$pHLXs0rr6F z_=0AarNzI2=C%{GqO3Cg2AUgiLcE%$2(;sLynK>ADJwTFK(mQl<@d(FjMk}BG{5|A z<1sXs(67pi;uCOA+D_AlXAuYpMYGyN(S?!yI zN^7wYvRLgQB`!#s+z52ufldR{S!MMswwjdBLOagcjXQY!BINww!{=mq8PkW&PN4z8 zs8mccdm{RuKPQ*Uk1z!h^Ho|+HE1?5gBZx7%TCQNg|OB6tfAEEiN%##{hN(pYw@P| zkhP?9RK2x_HyEix%!z*oqedipL@YJmK-2RNSvL0ZqwC_5^iQB|Y*rM0%l2fNP(3+G z3aA9$C#5)Pb+sFZd`oqa_cCm-g1exU0r-;@?UR>VK||F=NhR863j(B+Uh>X%CylVo zio!l-SSg{}*>mvFY@hAs=hME~OL;$q<|b3W5J$l|U46&qIC+;op*lpZ4fv#-Pu|*8 zgBjmV-daa`iDvr0wMKIzCYoDY&If5HlxgyeTa8r5e{rO zG&j}Y;QX{2QVB)pKAwJA^VC{xkPj%}(6*&gdR?KbSnJjofsY@hyNR0X90I;9pR6kk z=pUTA(i@tR9u1w}g$B>1;u;;VTO_oNqkAHS{NHGKWG0rjGvaXR{}j*%D91t>FckSu z1oYlw^47bBQvoWiFL(8@bBGerg7*>dkgF1V zH2yJ-58?xZl|B`?hqRR|xeA;X8SZISzZC!FP&M@}{Zcd3cE>h;tMN6OEA_nn2Rby* z;d)o=ZPMP_Rg zJyiRk!}Xay%A@wys=$5C)?ofl>uu`W{oq1FU;ZLTT;KG?i+QBF?MsT1^z5c1(kIyY zT87lIki0EL<}QuxqIoS-&3eWwp{*@bZ>3f}#rD!r%X%b==GG!}5I?b53DVZqsYx}O zq@$gNT8qZ$;nDFKH)Ss^wCFDZuKWC@2YEYrmlc`yf2BET-m results_quotient[i]){ - min = results_quotient[i]; + double min = results[0]; + for(int i=1; i results[i]){ + min = results[i]; } } if(min > result_remainder){ min = result_remainder; } - free(results_quotient); + free(results); return min; } - printf("Minimum of 1M samples of normal(5,2): %f\n", sample_n_parallel(1000000)); + printf("Minimum of 10M samples of normal(5,2): %f\n", sample_n_parallel(1000 * 1000)); } diff --git a/squiggle_more.c b/squiggle_more.c index 6f63de3..ad51b9c 100644 --- a/squiggle_more.c +++ b/squiggle_more.c @@ -326,14 +326,25 @@ void parallel_sampler(double (*sampler)(uint64_t* seed), double* results, int n_ int divisor_multiple = quotient * n_threads; uint64_t** seeds = malloc(n_threads * sizeof(uint64_t*)); + // printf("UINT64_MAX: %lu\n", UINT64_MAX); + srand(1); 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 + // Constraints: + // - xorshift can't start with 0 + // - the seeds should be reasonably separated and not correlated + *seeds[i] = (uint64_t) rand() * (UINT64_MAX / RAND_MAX); + // printf("#%ld: %lu\n",i, *seeds[i]); + + // Other initializations tried: + // *seeds[i] = 1 + i; + // *seeds[i] = (i + 0.5)*(UINT64_MAX/n_threads); + // *seeds[i] = (i + 0.5)*(UINT64_MAX/n_threads) + constant * i; } int i; #pragma omp parallel private(i) - { + { #pragma omp for for (i = 0; i < n_threads; i++) { int lower_bound_inclusive = i * quotient;