nfTlWNl rn Ѻq$³*%yNk9S maq.m>`iY v=78@?7 ~ CѶͫ\]*uQlf^ZL~`^ǥ_ 6E~/6._#1Iķխ}`[W">/m6NZDrjt(a_W Ѻq$³*%yNk9Sz 敊m恑6|5JI4h_XWIq,'<o:uIAF?\fGhc$i+t#6~F $z `1Ҳ\<%N\4XMZZWS*=dKK]ӓ$4˙S>cV9PD2[ FI;.=u!)yߝ^DDqE@hDž8C!N3NWd]_HX`,۾0jI5< q7i,ٮW"5e Ʌ ĢQ$3u>)h3jܮ 'gf\Ƶ tK&>HA] ˄@wөo ū@E&3 I]C63O3tQ%`ߌ;뱎0_C&A[lJs`}XF#JpSSkJb^ d_X) j.I`cIjbhˡ9դtFYD=b!f ĢQ$3X=iO!*rh `g{+=;.Ӱ#T,͞2nxӒvՕ_:ptˇ_;ra_ pjOkHiN>ލsX]–4XT ON"A~ )DqQ#nvBgAyҰ; 7Ȑ?+tPQ8F̨dh򀱫9>f&3 I]C63f v[k|yhHONHLG?|*IпA 4NT6h4R/NwR5LstZF-5q\ʓzos%D°J>:ى7[1hn8=͐2G0=B\c6fRK*ǛtQŏڄ&d:U"* 1JG|tI?>A> Nq&w|\嬱6fhvmJNNKɨ\G߾nnG;ͻFX}5-!G}˙d4mcghty*F8cP2en"!˙T(be5!E+Ml6K? JrH6rTݞvǠdIKts!:9v8f oWfϫ)ϲ=C&&dG))B 5Kpwug†NUjV(uaeUe|;uǏ3jg:~K cOUÈ|.-NH[3gmN1ia* ~NoYÌ@*x)ҙc 3oK`5b9& +t0?+.mN1ia* Ę3q OnncV9PD2[ FI;.=u!)yߝ^DDqE@hDž8C!N3NWd]_HX`,۾0jI5< q7i,ٮW"5e Ʌ ĢQ$3u>)h3jܮ 'gf\Ƶ tK&>HA] ˄@wөo ū@E&3 I]C63O3tQ%`ߌ;뱎0_C&A[lJs`}XF#JpSSkJb^ d_X) j.I`cIjbhˡ9դtFYD=b!f ĢQ$3X=iO!*rh `g{+ٗ?aiM.]φJ" ѥ>śnֱK跧HsHJu٫򉜘p77xQ`M#/I KȠI^"KdTSZ)nB%H_;b9.X#uBsUYW,:eNS9 )b'"o̵ngrWvgTj9m|rN1*DNN\Dk &&3 I]C63c٭M9*)֔L;=#BH^ulaE%>/DPx! *e7Ed9_zDԈָ X$o(U}E /Km2C '@Tb@DTClݘPC!k B. }o_} BLUl5^=Ō2[rt'dS6[8N57W'zzR9@owȢv>6p{>vq^K#Sg֙*U+ LAY3jg:~K cOUÈBGO[a-@` ɬd#&]J ɇ̮z2hL7E @@M1  Q9qYJ9♭mw 6 msL]`GcRrqduA!6X qJ.oH֍`>@:a7*QL=9zpZ ;}XҝaqYo9=InPԕ9`A4!f1ېGH"ttsӽN[JdSZwYBW1D鹇PE"}@[ꩪ%)L6Yca7@P*M핽/G}˙d4mcghty*ѕ8^c, ;is. %cZj`t}Lx}YsIwY8`XGصĨC4^"P ?!Hy{ѐ$ajN.IK8{A5HwT]vks`a nvS N*c-P^?//4ƅ,.ݨt00ʴHy{ѐ$ajN7zWunXVu 0FB1h`>A5YN*'T3|6Bq#f*"IgvO񕞾/VM$1Of2xyn՚om 㰈a[CHbs)@HHkc(L ;k^A.7"Y0+Qq@G hP|5[.ؾλ~lhf2 켶ДrΟf٨ɉ F|OTa駬)^f)in5-OWpRl)a>b2Ѐgh",m+2L1rOe[T(qP (ĜĿ,|]zҰp&ac<{?iuB8C{ {&cM)7ҡ/@4ă7D?̣]Mz=FH!wT#G~eO{r (,&Ju\.wvs}hO_o}ma(|$* Or can be an array of values * @param mixed $stdDev Standard Deviation as a float * Or can be an array of values * * @return array|float|string The result, or a string containing an error * If an array of numbers is passed as an argument, then the returned result will also be an array * with the same dimensions * * @TODO Try implementing P J Acklam's refinement algorithm for greater * accuracy if I can get my head round the mathematics * (as described at) http://home.online.no/~pjacklam/notes/invnorm/ */ public static function inverse($probability, $mean, $stdDev) { if (is_array($probability) || is_array($mean) || is_array($stdDev)) { return self::evaluateArrayArguments([self::class, __FUNCTION__], $probability, $mean, $stdDev); } try { $probability = DistributionValidations::validateProbability($probability); $mean = DistributionValidations::validateFloat($mean); $stdDev = DistributionValidations::validateFloat($stdDev); } catch (Exception $e) { return $e->getMessage(); } if ($stdDev <= 0) { return ExcelError::NAN(); } /** @var float */ $inverse = StandardNormal::inverse($probability); return exp($mean + $stdDev * $inverse); } }