From b1ca1c90973c74616932115cd2105ef9a1506c87 Mon Sep 17 00:00:00 2001 From: Kevin Keogh Date: Sun, 30 Jul 2017 18:03:07 -0400 Subject: [PATCH] Fix bug where too many simulations were being run --- build/opt-pricer | Bin 18816 -> 18816 bytes src/gbm_mc.c | 6 ++++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build/opt-pricer b/build/opt-pricer index 20f63a0948fdc5d9aa7414e5b09bf23b51076ac3..8507225aa5f8bb9f795482e35c3924c686924835 100755 GIT binary patch delta 2911 zcmb`Je@t7~702H-VKqODp8qMeur4>;gP1{&(TF92nJNNn} zOQroeOMahwzvtX@kMED;Hw0t|$jD-nXS*amp3$qP)7O=FXI=4&#<~J;k!zXf-za-} z|77mvdq3+LasSXewJkceBQj<>Y$l&TM#}4C5Z+ALLSBVSDGss?R#Og;_n;xwL8hQ5 zwVgD;rPLS5b*Q#XC_C(uq_WjNq+ocJ-PF79#bT7*)_c<=iLwv%;Ur}EE4h%G<|i|e z-Dws=3Zd2dD)|ZM*2Csyw_lEf`I90!Ly}Gtj8r~H!}%ZQIVJtZI>rmze_)fO zE~{e~2Gde7-VqqIdCkwDO2diGFl|#vBV4uB6AL)gUsB${tY~P!C#_j+yFBJKYg?j* zlIR7kuO%h$wp=_27t$+8C)`he))dWzu8hyg0yJgLkxJNTuQx^0p~HTNyaMmri|qC3 zV*HDqPK@#$j~~Y;ejPG4y7J4og<1=Hd~4Q@4}`TFTT9#{6Q0^wVY+UMu#I0PgIbf1 zva_moL{harv#NbdQML9mRcrFo@Dq>GV^>sdH&wN|y;M6Aq}IS0sx`?}>+7W2?rv3k z-bv@z6I8ZSWe3fa?UN~M^qA2nTV*{?l|7@VthJ1?TA#}H`Bm0HRaU!~vVkCF2RkVn zZ0N>O=seJi5&9{sL&vvAaJ{L9fmHV9nApYR<6L5)3DJXT0c}QzFvKCI49y8;c0nMr zD4;C~z%WNV>g+PMRTj~k1>cr%hjA`5f-;B-NB$Fz%R&id3p+RkG({j(CTz1lfrwu~ zqXGc`&UUsMlN}!tT4)%dG8hri#^R2h9P!-8g)%!K5SbRxW(1&{!^nLO+c1=4ug6pu zg)UN!3eV6w0%ws-9GY1mBqJ!B%@&9_1vEtf;7>W*;;G{LcB6))dj+(9fzXg}oE;Vb zKL=(^S!6^g+89D*v*QAh2_XXI;2A@EZg%xjT$~mnPZyT4i3#cgp{TIWt_wsYybKhR z7XWxGx4aII&;r%);^5iQ@hmN#_KU4+Si%FfjE5;oS;IPdjpKQm&~JYpi>cwql{>Lm zfSsod2L{+V*qK-0&qLF(xkDe~m7PxI_gY-;&TGdFlJY^@WOTC<)fY;tQEY93FQRe2XZFoQK~3$|J; ztzt~DLBY=DHEVF8>#J7f9QvrdqR5tNwCfi?0@4&wRBmQCO)$R(ptT~I=< zKu^IIQVpX8UrV0E0*j+B=)Z*3f_7WI=wg8~LRLVtql)|nMjd&?36qXC(gVrPEw1Oy zyr7mWbXgmDVu^j&N9Gp`cG%ltuha8%w(x4^sdzB;mNWX7R>kk-J=x-o4{8%X`!cTJ zEv&SbJfVsuvt&JNw^=eCwu2Tcyyx8PZFmfiUg(_MdRCNnoL~+&l&@jp5}Nb@J-&PI zL$0e}Yo^U99sA6B?7DF}wxf&H;m5RbU-kW%7(1))fezQEy2EI~CAYjF7`%dMEn<4t z(A7RAJJHsH?cgQU7f`eOD6U~Y_%2@+u6++qyIe{4Zt@gbu#m61inmsvA10jL+RiuG zZpAK!<;#=l(SL2Y&O^1kpz&j?Q@S;Y*7>;AEq;rf>ACe|F6!ynzxC&u=9>LAELPK0 z)2N2G{3_WgHPLV}=e_{@M}U2xdT;P0q4W0>^q)tj+`r#2=(`b%`B(nGUj<{D@vA=) zcjl4y@PFIxhm#K(VmA&9K9UrLB&9r2TvBLO_7Vxkm6yNWy&Q`zpt$f+ET&-H4B~R} z|C=B#1pgD5K+32uAbGtG;)YHm$FN2$Bm4gri;6<_jF2+ad z5cU?4893!FC1bGa-G+bgwn7IPf%3vER04(H%~5df5KnMdn&0$Nnwh^cZNNFk;g5x- ziPLzemmsldEBP&KFY*vSJXKUmrr~IjgY?3QqAW5Dr%;)I)uJcKB9w2x1JfoaD8<=> ze|P&amLyefj`InFdknT2>@wJA@HK-c4F1mG6@x1V?;Dgn@%T9gJ#pqrC5GTL7%A-LfvIFMv zxhL{b`Arg7ar?g*33~~WEJgpPZj&ColRi2qK}whUBeoqkO<1k&R=jS)7uHuQOUN>u zsysv80PofpYc#9MvGOx)nA tD@}Tk+X}SQRoWh86m`evHp7X!(&PvE;FQaH@9O{n delta 2938 zcmb_e`%_fc9lvK`$K|o?F1WgCVDHL`yC5%LEY-G4d3YGE8CxJ(3Mx#hV2#2ErjBS> zyu*Z(+pQ$uOb5rt!Erh=bvl~v53ymQ;49ep1GP;DoN1zI9j-wWVi`r#bo)JLZ;gLI znc;rE@AJ9ebIx~f7)Th%z(i8TDoOlRyft+(-Q|xfE`Lx6ENQK# zzUj-lH??a-{-7ol9W))Zkf)H5a+Dl}Qz&$W4(y;ZHFZ7w7Dy= zn3jU|BGBXTTRPE7Bj#2(=kSq3Fy*Ks>p)I_-FE?5QMEfDJ+wJ0yq1TyCUX=`LJQe` zm6X6`d;V#-mcE|!!?)?JCYKX-W_(E|p?={g*$#`GRVG&kY;$&zKfqs{dCtA*BL9%L z8LPbN4Pw6eAY?4^WQMqh+H!XX9@@5jBD`%VP4bA1@Z&}6P3H6{TeODsu*+1dv{S9V zP0C_+s z)p$t;lU!y%vF{2yJ|qHQSQynX2V7NQ+BxA+&kM)MsDS9W0JWb(yqq?HGMsfet0+@v zg`KCLvc${V1%OL{CJRt~2$YQ!35W&+Xh8ugIF`sg$ScfMgYkLc0-uR9hJMtL-+%yh zQ25kl4x(KnL&6dr7NDI&P}s<*(9|{#ysE;YNkHm(}n2ZakPcmk1h2Wkpa55(hxB98CzNLW~+{Q|TB z1SCBqG?j8NNDm9onNb0!#swUo-~miM$Dt@rdQy0_+X7Tw1dPlIh|UYpB&38{@Zr*8 zBwag>$7#Y~-F^FFkZ&ccoyP+A!sz9)L`utIiVUKDmNb5LgN^6WfR6Id>GlSb?DdM zzt0!2$Jy6$N5f^*yLnOT>iDXM_^WN3Knq{rfl+!G@-w$Pq_|)4BBO>xuRa0qW^P@4 zB$;zkzJSK86=W6kX1$pFAR#bFY~i!G0N<&O6EpXrj+j{~aGP@v1ZD3}eIn{* zPQ{DV8!qXObn(7ivs+8!NloIlZ(w_7khe8YSVhaME1$_t*6e3;$m)g*a<>1K1$Z9S zEB40AVn=a-QQT18L$i)9eYaR_oB1D*?8(YWbjVWQ16$wU@f35)6&PZ32T{g-)vNBs zV(ha1LwM2iLgkz2!j@Z)2n^jsS`$d`7KS=c*k$xJpd7l6_HndXkHl@Lhd$<5s@O&X`TcCi-}L7JBt#M(Cem)$**mo9LVQJ$lFD z-t>6m7J6si;YQtr`pn(gBX##c1*8wlA^Z+A6LoRip(?ucuk~H&`OB5r+42 z3(W&~(`VprZVtH$sd-*f1jTuUWC&XF+@u+L^LUkGXc>g-d7H>6I95FdU%sm+F+0d> zN}CM)iGkYW$a88|XK1Z5)?MKQIi`zysr(i2dA=KPtA9(PoK^Z>ZhZcP5(2LJPOm>qB7{llG=$+ze zLgwJk8s{>*BpJkvIsy_ThvWjsT4zGKG#GWPoi<_rpR7M>!f)9(OA5#={ITRTR%i+Q zg2*rxIE~-Iy``H>Qa1dlw19-8PfFdyBza)zhAQlQ%Z880Ow_;ev4yM#Pi0}!-14AU nXAT-FOB~M_WD6s%e6q4I`MJ;MTb1jR2L17r!RV5z)`b58gH#2l diff --git a/src/gbm_mc.c b/src/gbm_mc.c index 2e3df48..131fdac 100644 --- a/src/gbm_mc.c +++ b/src/gbm_mc.c @@ -101,6 +101,7 @@ void gbm(struct Option *opt) pthread_t *threads; struct Option *options; options = malloc(sizeof(struct Option) * NUM_THREADS); + opt->sims = opt->sims / NUM_THREADS; for(i=0; iexpiry_date; @@ -108,7 +109,6 @@ void gbm(struct Option *opt) } threads = malloc(sizeof(pthread_t) * NUM_THREADS); - opt->sims = opt->sims / NUM_THREADS; for(i=0; isims = 0; + for(i=0; ifv += result->fv / NUM_THREADS; opt->delta += result->delta / NUM_THREADS; @@ -130,4 +131,5 @@ void gbm(struct Option *opt) opt->rho += result->rho / NUM_THREADS; opt->sims += result->sims; } + }