Mercurial > hg > octave-nkf
comparison libcruft/slatec-fn/derf.f @ 14767:d213da1a16a6
Correct Fortran implementation of erf for small values (Bug #36364)
* derf.f: For small values approximation to erf should be 2*x/sqrt(pi),
not 2*x*x/sqrt(pi).
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Thu, 14 Jun 2012 08:35:05 -0700 |
parents | 30c606bec7a8 |
children |
comparison
equal
deleted
inserted
replaced
14766:877263efaacc | 14767:d213da1a16a6 |
---|---|
67 Y = ABS(X) | 67 Y = ABS(X) |
68 IF (Y.GT.1.D0) GO TO 20 | 68 IF (Y.GT.1.D0) GO TO 20 |
69 C | 69 C |
70 C ERF(X) = 1.0 - ERFC(X) FOR -1.0 .LE. X .LE. 1.0 | 70 C ERF(X) = 1.0 - ERFC(X) FOR -1.0 .LE. X .LE. 1.0 |
71 C | 71 C |
72 IF (Y.LE.SQEPS) DERF = 2.0D0*X*X/SQRTPI | 72 IF (Y.LE.SQEPS) DERF = 2.0D0*X/SQRTPI |
73 IF (Y.GT.SQEPS) DERF = X*(1.0D0 + DCSEVL (2.D0*X*X-1.D0, | 73 IF (Y.GT.SQEPS) DERF = X*(1.0D0 + DCSEVL (2.D0*X*X-1.D0, |
74 1 ERFCS, NTERF)) | 74 1 ERFCS, NTERF)) |
75 RETURN | 75 RETURN |
76 C | 76 C |
77 C ERF(X) = 1.0 - ERFC(X) FOR ABS(X) .GT. 1.0 | 77 C ERF(X) = 1.0 - ERFC(X) FOR ABS(X) .GT. 1.0 |