mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Fix provided implementation of erf and erfc functions.
This commit is contained in:
+3
-2
@@ -51,7 +51,7 @@ erf(double x)
|
||||
term *= xsqr/j;
|
||||
sum += term/(2*j+1);
|
||||
++j;
|
||||
} while (fabs(term)/sum > MATH_TOLERANCE);
|
||||
} while (fabs(term/sum) > MATH_TOLERANCE);
|
||||
return two_sqrtpi*sum;
|
||||
}
|
||||
|
||||
@@ -64,7 +64,8 @@ erfc(double x)
|
||||
double b = x;
|
||||
double c = x;
|
||||
double d = x*x+0.5;
|
||||
double q1, q2;
|
||||
double q1;
|
||||
double q2 = b/d;
|
||||
double n = 1.0;
|
||||
double t;
|
||||
if (fabs(x) < 2.2) {
|
||||
|
||||
+6
-2
@@ -110,8 +110,12 @@ if Object.const_defined?(:Math)
|
||||
check_float(Math.erf(1), 0.842700792949715)
|
||||
end
|
||||
|
||||
assert('Math.erfc 1') do
|
||||
check_float(Math.erfc(1), 0.157299207050285)
|
||||
assert('Math.erf -1') do
|
||||
check_float(Math.erf(-1), -0.8427007929497148)
|
||||
end
|
||||
|
||||
assert('Math.erfc -1') do
|
||||
check_float(Math.erfc(-1), 1.8427007929497148)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user