Skip to content

Commit ce427dd

Browse files
committed
fix normalCDF
1 parent ac6533c commit ce427dd

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

dub.sdl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ dependency "mir-core" version=">=1.1.106"
99

1010
buildType "unittest" {
1111
buildOptions "unittests" "debugMode" "debugInfo"
12-
versions "mir_bignum_test" "mir_ndslice_test" "mir_test"
12+
// versions "mir_bignum_test" "mir_ndslice_test" "mir_test"
1313
dflags "-lowmem"
1414
}
1515
buildType "unittest-dip1008" {

source/mir/math/func/normal.d

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ T normalCDF(T)(const T a)
9999
/* Multiply by exp(-x^2 / 2) */
100100
z = expx2(a, -1);
101101
y = y * sqrt(z);
102+
if (y != y)
103+
y = 0;
102104
if (x > 0)
103105
y = 1 - y;
104106
return y;
@@ -113,9 +115,16 @@ T normalCDF(T)(const T x, const T mean, const T stdDev)
113115
}
114116

115117
version(mir_test)
116-
@safe unittest
118+
@safe
119+
unittest
117120
{
118121
assert(fabs(normalCDF(1.0L) - (0.841344746068543))< 0.0000000000000005);
122+
assert(normalCDF(double.infinity) == 1);
123+
assert(normalCDF(100.0) == 1);
124+
assert(normalCDF(8.0) < 1);
125+
assert(normalCDF(-double.infinity) == 0);
126+
assert(normalCDF(-100.0) == 0);
127+
assert(normalCDF(-8.0) > 0);
119128
}
120129

121130
///

0 commit comments

Comments
 (0)