summaryrefslogtreecommitdiff
path: root/gnu/lib/libf2c/libF77/z_log.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/lib/libf2c/libF77/z_log.c')
-rw-r--r--gnu/lib/libf2c/libF77/z_log.c59
1 files changed, 0 insertions, 59 deletions
diff --git a/gnu/lib/libf2c/libF77/z_log.c b/gnu/lib/libf2c/libF77/z_log.c
deleted file mode 100644
index f56b12ed7e3..00000000000
--- a/gnu/lib/libf2c/libF77/z_log.c
+++ /dev/null
@@ -1,59 +0,0 @@
-#include "f2c.h"
-
-#undef abs
-#include "math.h"
-extern double f__cabs (double, double);
-void
-z_log (doublecomplex * r, doublecomplex * z)
-{
- double s, s0, t, t2, u, v;
- double zi = z->i, zr = z->r;
-
- r->i = atan2 (zi, zr);
-#ifdef Pre20000310
- r->r = log (f__cabs (zr, zi));
-#else
- if (zi < 0)
- zi = -zi;
- if (zr < 0)
- zr = -zr;
- if (zr < zi)
- {
- t = zi;
- zi = zr;
- zr = t;
- }
- t = zi / zr;
- s = zr * sqrt (1 + t * t);
- /* now s = f__cabs(zi,zr), and zr = |zr| >= |zi| = zi */
- if ((t = s - 1) < 0)
- t = -t;
- if (t > .01)
- r->r = log (s);
- else
- {
-
-#ifdef Comment
-
- log (1 + x) = x - x ^ 2 / 2 + x ^ 3 / 3 - x ^ 4 / 4 + -...
- = x (1 - x / 2 + x ^ 2 / 3 - +...)
- [sqrt (y ^ 2 + z ^ 2) - 1] *[sqrt (y ^ 2 + z ^ 2) + 1] =
- y ^ 2 + z ^ 2 - 1, so sqrt (y ^ 2 + z ^ 2) - 1 =
- (y ^ 2 + z ^ 2 - 1) /[sqrt (y ^ 2 + z ^ 2) + 1]
-#endif /*Comment */
- t = ((zr * zr - 1.) + zi * zi) / (s + 1);
- t2 = t * t;
- s = 1. - 0.5 * t;
- u = v = 1;
- do
- {
- s0 = s;
- u *= t2;
- v += 2;
- s += u / v - t * u / (v + 1);
- }
- while (s > s0);
- r->r = s * t;
- }
-#endif
-}