BSD 4_1c_2 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Sun, 7 Nov 1982 09:46:11 +0000 (01:46 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Sun, 7 Nov 1982 09:46:11 +0000 (01:46 -0800)
Work on file usr/src/usr.lib/libF77/READ_ME
Work on file usr/src/usr.lib/libF77/abort_.c
Work on file usr/src/usr.lib/libF77/besj1_.c
Work on file usr/src/usr.lib/libF77/besj0_.c
Work on file usr/src/usr.lib/libF77/besjn_.c
Work on file usr/src/usr.lib/libF77/bit.c
Work on file usr/src/usr.lib/libF77/besyn_.c
Work on file usr/src/usr.lib/libF77/besy1_.c
Work on file usr/src/usr.lib/libF77/besy0_.c
Work on file usr/src/usr.lib/libF77/c_abs.c
Work on file usr/src/usr.lib/libF77/c_div.c
Work on file usr/src/usr.lib/libF77/c_exp.c
Work on file usr/src/usr.lib/libF77/c_cos.c
Work on file usr/src/usr.lib/libF77/c_log.c
Work on file usr/src/usr.lib/libF77/c_sin.c
Work on file usr/src/usr.lib/libF77/d_abs.c
Work on file usr/src/usr.lib/libF77/cabs.c
Work on file usr/src/usr.lib/libF77/c_sqrt.c
Work on file usr/src/usr.lib/libF77/complex
Work on file usr/src/usr.lib/libF77/d_asin.c
Work on file usr/src/usr.lib/libF77/d_acos.c
Work on file usr/src/usr.lib/libF77/d_atan.c
Work on file usr/src/usr.lib/libF77/d_cnjg.c
Work on file usr/src/usr.lib/libF77/d_atn2.c
Work on file usr/src/usr.lib/libF77/d_cos.c
Work on file usr/src/usr.lib/libF77/d_cosh.c
Work on file usr/src/usr.lib/libF77/d_exp.c
Work on file usr/src/usr.lib/libF77/d_int.c
Work on file usr/src/usr.lib/libF77/d_imag.c
Work on file usr/src/usr.lib/libF77/d_dim.c
Work on file usr/src/usr.lib/libF77/d_lg10.c
Work on file usr/src/usr.lib/libF77/d_log.c
Work on file usr/src/usr.lib/libF77/d_mod.c
Work on file usr/src/usr.lib/libF77/d_nint.c
Work on file usr/src/usr.lib/libF77/d_sin.c
Work on file usr/src/usr.lib/libF77/d_prod.c
Work on file usr/src/usr.lib/libF77/d_sign.c
Work on file usr/src/usr.lib/libF77/d_sqrt.c
Work on file usr/src/usr.lib/libF77/d_sinh.c
Work on file usr/src/usr.lib/libF77/d_tanh.c
Work on file usr/src/usr.lib/libF77/d_tan.c
Work on file usr/src/usr.lib/libF77/dbesj0_.c
Work on file usr/src/usr.lib/libF77/dbesjn_.c
Work on file usr/src/usr.lib/libF77/dbesj1_.c
Work on file usr/src/usr.lib/libF77/dbesy0_.c
Work on file usr/src/usr.lib/libF77/dbesy1_.c
Work on file usr/src/usr.lib/libF77/dbesyn_.c
Work on file usr/src/usr.lib/libF77/derf_.c
Work on file usr/src/usr.lib/libF77/derfc_.c
Work on file usr/src/usr.lib/libF77/ef1asc_.c
Work on file usr/src/usr.lib/libF77/ef1cmc_.c
Work on file usr/src/usr.lib/libF77/erf_.c
Work on file usr/src/usr.lib/libF77/erfc_.c
Work on file usr/src/usr.lib/libF77/h_abs.c
Work on file usr/src/usr.lib/libF77/exit_.c
Work on file usr/src/usr.lib/libF77/h_dim.c
Work on file usr/src/usr.lib/libF77/h_indx.c
Work on file usr/src/usr.lib/libF77/h_dnnt.c
Work on file usr/src/usr.lib/libF77/h_len.c
Work on file usr/src/usr.lib/libF77/h_mod.c
Work on file usr/src/usr.lib/libF77/h_nint.c
Work on file usr/src/usr.lib/libF77/h_sign.c
Work on file usr/src/usr.lib/libF77/hl_ge.c
Work on file usr/src/usr.lib/libF77/hl_le.c
Work on file usr/src/usr.lib/libF77/hl_gt.c
Work on file usr/src/usr.lib/libF77/hl_lt.c
Work on file usr/src/usr.lib/libF77/i_abs.c
Work on file usr/src/usr.lib/libF77/i_dnnt.c
Work on file usr/src/usr.lib/libF77/i_dim.c
Work on file usr/src/usr.lib/libF77/i_len.c
Work on file usr/src/usr.lib/libF77/i_indx.c
Work on file usr/src/usr.lib/libF77/i_mod.c
Work on file usr/src/usr.lib/libF77/i_nint.c
Work on file usr/src/usr.lib/libF77/i_sign.c
Work on file usr/src/usr.lib/libF77/index
Work on file usr/src/usr.lib/libF77/l_gt.c
Work on file usr/src/usr.lib/libF77/l_ge.c
Work on file usr/src/usr.lib/libF77/l_lt.c
Work on file usr/src/usr.lib/libF77/l_le.c
Work on file usr/src/usr.lib/libF77/long_.c
Work on file usr/src/usr.lib/libF77/mkindx.c
Work on file usr/src/usr.lib/libF77/opcodes.h
Work on file usr/src/usr.lib/libF77/pow_dd.c
Work on file usr/src/usr.lib/libF77/pow_ci.c
Work on file usr/src/usr.lib/libF77/pow_di.c
Work on file usr/src/usr.lib/libF77/pow_hh.c
Work on file usr/src/usr.lib/libF77/pow_zi.c
Work on file usr/src/usr.lib/libF77/pow_ii.c
Work on file usr/src/usr.lib/libF77/pow_ri.c
Work on file usr/src/usr.lib/libF77/pow_zz.c
Work on file usr/src/usr.lib/libF77/r_abs.c
Work on file usr/src/usr.lib/libF77/r_acos.c
Work on file usr/src/usr.lib/libF77/r_atan.c
Work on file usr/src/usr.lib/libF77/r_atn2.c
Work on file usr/src/usr.lib/libF77/r_asin.c
Work on file usr/src/usr.lib/libF77/r_cnjg.c
Work on file usr/src/usr.lib/libF77/r_cosh.c
Work on file usr/src/usr.lib/libF77/r_dim.c
Work on file usr/src/usr.lib/libF77/r_cos.c
Work on file usr/src/usr.lib/libF77/r_imag.c
Work on file usr/src/usr.lib/libF77/r_lg10.c
Work on file usr/src/usr.lib/libF77/r_int.c
Work on file usr/src/usr.lib/libF77/r_exp.c
Work on file usr/src/usr.lib/libF77/r_log.c
Work on file usr/src/usr.lib/libF77/r_mod.c
Work on file usr/src/usr.lib/libF77/r_nint.c
Work on file usr/src/usr.lib/libF77/r_sin.c
Work on file usr/src/usr.lib/libF77/r_sign.c
Work on file usr/src/usr.lib/libF77/r_tan.c
Work on file usr/src/usr.lib/libF77/r_tanh.c
Work on file usr/src/usr.lib/libF77/r_sqrt.c
Work on file usr/src/usr.lib/libF77/r_sinh.c
Work on file usr/src/usr.lib/libF77/rand_.c

Synthesized-from: CSRG/cd1/4.1c.2

113 files changed:
usr/src/usr.lib/libF77/READ_ME [new file with mode: 0644]
usr/src/usr.lib/libF77/abort_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/besj0_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/besj1_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/besjn_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/besy0_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/besy1_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/besyn_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/bit.c [new file with mode: 0644]
usr/src/usr.lib/libF77/c_abs.c [new file with mode: 0644]
usr/src/usr.lib/libF77/c_cos.c [new file with mode: 0644]
usr/src/usr.lib/libF77/c_div.c [new file with mode: 0644]
usr/src/usr.lib/libF77/c_exp.c [new file with mode: 0644]
usr/src/usr.lib/libF77/c_log.c [new file with mode: 0644]
usr/src/usr.lib/libF77/c_sin.c [new file with mode: 0644]
usr/src/usr.lib/libF77/c_sqrt.c [new file with mode: 0644]
usr/src/usr.lib/libF77/cabs.c [new file with mode: 0644]
usr/src/usr.lib/libF77/complex [new file with mode: 0644]
usr/src/usr.lib/libF77/d_abs.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_acos.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_asin.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_atan.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_atn2.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_cnjg.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_cos.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_cosh.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_dim.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_exp.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_imag.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_int.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_lg10.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_log.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_mod.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_nint.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_prod.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_sign.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_sin.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_sinh.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_sqrt.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_tan.c [new file with mode: 0644]
usr/src/usr.lib/libF77/d_tanh.c [new file with mode: 0644]
usr/src/usr.lib/libF77/dbesj0_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/dbesj1_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/dbesjn_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/dbesy0_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/dbesy1_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/dbesyn_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/derf_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/derfc_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/ef1asc_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/ef1cmc_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/erf_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/erfc_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/exit_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/h_abs.c [new file with mode: 0644]
usr/src/usr.lib/libF77/h_dim.c [new file with mode: 0644]
usr/src/usr.lib/libF77/h_dnnt.c [new file with mode: 0644]
usr/src/usr.lib/libF77/h_indx.c [new file with mode: 0644]
usr/src/usr.lib/libF77/h_len.c [new file with mode: 0644]
usr/src/usr.lib/libF77/h_mod.c [new file with mode: 0644]
usr/src/usr.lib/libF77/h_nint.c [new file with mode: 0644]
usr/src/usr.lib/libF77/h_sign.c [new file with mode: 0644]
usr/src/usr.lib/libF77/hl_ge.c [new file with mode: 0644]
usr/src/usr.lib/libF77/hl_gt.c [new file with mode: 0644]
usr/src/usr.lib/libF77/hl_le.c [new file with mode: 0644]
usr/src/usr.lib/libF77/hl_lt.c [new file with mode: 0644]
usr/src/usr.lib/libF77/i_abs.c [new file with mode: 0644]
usr/src/usr.lib/libF77/i_dim.c [new file with mode: 0644]
usr/src/usr.lib/libF77/i_dnnt.c [new file with mode: 0644]
usr/src/usr.lib/libF77/i_indx.c [new file with mode: 0644]
usr/src/usr.lib/libF77/i_len.c [new file with mode: 0644]
usr/src/usr.lib/libF77/i_mod.c [new file with mode: 0644]
usr/src/usr.lib/libF77/i_nint.c [new file with mode: 0644]
usr/src/usr.lib/libF77/i_sign.c [new file with mode: 0644]
usr/src/usr.lib/libF77/index [new file with mode: 0644]
usr/src/usr.lib/libF77/l_ge.c [new file with mode: 0644]
usr/src/usr.lib/libF77/l_gt.c [new file with mode: 0644]
usr/src/usr.lib/libF77/l_le.c [new file with mode: 0644]
usr/src/usr.lib/libF77/l_lt.c [new file with mode: 0644]
usr/src/usr.lib/libF77/long_.c [new file with mode: 0644]
usr/src/usr.lib/libF77/mkindx.c [new file with mode: 0644]
usr/src/usr.lib/libF77/opcodes.h [new file with mode: 0644]
usr/src/usr.lib/libF77/pow_ci.c [new file with mode: 0644]
usr/src/usr.lib/libF77/pow_dd.c [new file with mode: 0644]
usr/src/usr.lib/libF77/pow_di.c [new file with mode: 0644]
usr/src/usr.lib/libF77/pow_hh.c [new file with mode: 0644]
usr/src/usr.lib/libF77/pow_ii.c [new file with mode: 0644]
usr/src/usr.lib/libF77/pow_ri.c [new file with mode: 0644]
usr/src/usr.lib/libF77/pow_zi.c [new file with mode: 0644]
usr/src/usr.lib/libF77/pow_zz.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_abs.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_acos.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_asin.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_atan.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_atn2.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_cnjg.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_cos.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_cosh.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_dim.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_exp.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_imag.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_int.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_lg10.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_log.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_mod.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_nint.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_sign.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_sin.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_sinh.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_sqrt.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_tan.c [new file with mode: 0644]
usr/src/usr.lib/libF77/r_tanh.c [new file with mode: 0644]
usr/src/usr.lib/libF77/rand_.c [new file with mode: 0644]

diff --git a/usr/src/usr.lib/libF77/READ_ME b/usr/src/usr.lib/libF77/READ_ME
new file mode 100644 (file)
index 0000000..0a3c84a
--- /dev/null
@@ -0,0 +1,25 @@
+
+
+
+               Unix f77 Math Function Library
+                       February, 1981
+
+This is the library providing interface to the C math library, libm.a
+or libnm.a.(*) In addition there are functions for complex and double
+complex arguments and short int arguments. There are also utility functions
+to enable floating overflow/integer underflow trapping, and to return
+numerical range for this machine. Finally there are also the string
+functions required by ANSI plus a few additions.
+
+Install these sources in parallel with the other f77 libraries. Then:
+       make libF77.a
+       make install
+       cd man
+       make install
+
+
+
+
+
+* This will eventually be a standalone math lib and will include argument
+  range checking, etc.
diff --git a/usr/src/usr.lib/libF77/abort_.c b/usr/src/usr.lib/libF77/abort_.c
new file mode 100644 (file)
index 0000000..bce8640
--- /dev/null
@@ -0,0 +1,23 @@
+#include <stdio.h>
+
+#ifdef PDP11
+abort_()
+{
+       fprintf(stderr, "Fortran abort routine called\n");
+       f_exit();
+       _cleanup();
+       abort();
+}
+#else
+abort_(msg,len)
+char *msg; int len;
+{
+       fprintf(stderr, "abort: ");
+       if (nargs()) while (len-- > 0) fputc(*msg++, stderr);
+       else fprintf(stderr, "called");
+       fputc('\n', stderr);
+       f_exit();
+       _cleanup();
+       abort();
+}
+#endif
diff --git a/usr/src/usr.lib/libF77/besj0_.c b/usr/src/usr.lib/libF77/besj0_.c
new file mode 100644 (file)
index 0000000..eed36b8
--- /dev/null
@@ -0,0 +1,7 @@
+double j0();
+
+float besj0_(x)
+float *x;
+{
+       return((float)j0((double)*x));
+}
diff --git a/usr/src/usr.lib/libF77/besj1_.c b/usr/src/usr.lib/libF77/besj1_.c
new file mode 100644 (file)
index 0000000..e67a2e1
--- /dev/null
@@ -0,0 +1,7 @@
+double j1();
+
+float besj1_(x)
+float *x;
+{
+       return((float)j1((double)*x));
+}
diff --git a/usr/src/usr.lib/libF77/besjn_.c b/usr/src/usr.lib/libF77/besjn_.c
new file mode 100644 (file)
index 0000000..0cfd71f
--- /dev/null
@@ -0,0 +1,7 @@
+double jn();
+
+float besjn_(n, x)
+long *n; float *x;
+{
+       return((float)jn((int)*n, (double)*x));
+}
diff --git a/usr/src/usr.lib/libF77/besy0_.c b/usr/src/usr.lib/libF77/besy0_.c
new file mode 100644 (file)
index 0000000..58f7d84
--- /dev/null
@@ -0,0 +1,7 @@
+double y0();
+
+float besy0_(x)
+float *x;
+{
+       return((float)y0((double)*x));
+}
diff --git a/usr/src/usr.lib/libF77/besy1_.c b/usr/src/usr.lib/libF77/besy1_.c
new file mode 100644 (file)
index 0000000..adde6ca
--- /dev/null
@@ -0,0 +1,7 @@
+double y1();
+
+float besy1_(x)
+float *x;
+{
+       return((float)y1((double)*x));
+}
diff --git a/usr/src/usr.lib/libF77/besyn_.c b/usr/src/usr.lib/libF77/besyn_.c
new file mode 100644 (file)
index 0000000..d99358a
--- /dev/null
@@ -0,0 +1,7 @@
+double yn();
+
+float besyn_(n, x)
+long *n; float *x;
+{
+       return((float)yn((int)*n, (double)*x));
+}
diff --git a/usr/src/usr.lib/libF77/bit.c b/usr/src/usr.lib/libF77/bit.c
new file mode 100644 (file)
index 0000000..1413a64
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+char id_bit[] = "%W%";
+ *
+ * bit set, clear, test routines
+ *
+ * calling sequences:
+ *     logical l, bit, state
+ *     call bis (bitnum, word)
+ *     call bic (bitnum, word)
+ *     call setbit (bitnum, word, state)
+ *     l = bit (bitnum, word)
+ * where:
+ *     bis(bic) sets(clears) bitnum in word
+ *     setbit sets bitnum in word to 1 if state is .true.
+ *     bit tests bitnum in word and returns a logical (t/f) value
+ */
+
+long bis_(n, w)
+long *n, *w;
+{
+       if (*n >= 0 && *n <= 31)
+               *w |= (1L << (*n));
+}
+
+long bic_(n, w)
+long *n, *w;
+{
+       if (*n >= 0 && *n <= 31)
+               *w &= ~(1L << (*n));
+}
+
+long bit_(n, w)
+long *n, *w;
+{
+       if (*n < 0 || *n > 31)
+               return(0);
+       return((*w & (1L << (*n))) != 0);
+}
+
+setbit_(n, w, s)
+long *n, *w, *s;
+{
+       if (*s)
+               bis_(n, w);
+       else
+               bic_(n, w);
+}
diff --git a/usr/src/usr.lib/libF77/c_abs.c b/usr/src/usr.lib/libF77/c_abs.c
new file mode 100644 (file)
index 0000000..79cfa80
--- /dev/null
@@ -0,0 +1,9 @@
+#include "complex"
+
+float c_abs(z)
+complex *z;
+{
+double cabs();
+
+return( cabs( z->real, z->imag ) );
+}
diff --git a/usr/src/usr.lib/libF77/c_cos.c b/usr/src/usr.lib/libF77/c_cos.c
new file mode 100644 (file)
index 0000000..5927542
--- /dev/null
@@ -0,0 +1,10 @@
+#include "complex"
+
+c_cos(r, z)
+complex *r, *z;
+{
+double sin(), cos(), sinh(), cosh();
+
+r->real = cos(z->real) * cosh(z->imag);
+r->imag = - sin(z->real) * sinh(z->imag);
+}
diff --git a/usr/src/usr.lib/libF77/c_div.c b/usr/src/usr.lib/libF77/c_div.c
new file mode 100644 (file)
index 0000000..59f8886
--- /dev/null
@@ -0,0 +1,31 @@
+#include "complex"
+
+c_div(c, a, b)
+complex *a, *b, *c;
+{
+double ratio, den;
+double abr, abi;
+
+if( (abr = b->real) < 0.)
+       abr = - abr;
+if( (abi = b->imag) < 0.)
+       abi = - abi;
+if( abr <= abi )
+       {
+       if(abi == 0)
+               abort(); /* fatal("complex division by zero"); */
+       ratio = b->real / b->imag ;
+       den = b->imag * (1 + ratio*ratio);
+       c->real = (a->real*ratio + a->imag) / den;
+       c->imag = (a->imag*ratio - a->real) / den;
+       }
+
+else
+       {
+       ratio = b->imag / b->real ;
+       den = b->real * (1 + ratio*ratio);
+       c->real = (a->real + a->imag*ratio) / den;
+       c->imag = (a->imag - a->real*ratio) / den;
+       }
+
+}
diff --git a/usr/src/usr.lib/libF77/c_exp.c b/usr/src/usr.lib/libF77/c_exp.c
new file mode 100644 (file)
index 0000000..a109156
--- /dev/null
@@ -0,0 +1,12 @@
+#include "complex"
+
+c_exp(r, z)
+complex *r, *z;
+{
+double expx;
+double exp(), cos(), sin();
+
+expx = exp(z->real);
+r->real = expx * cos(z->imag);
+r->imag = expx * sin(z->imag);
+}
diff --git a/usr/src/usr.lib/libF77/c_log.c b/usr/src/usr.lib/libF77/c_log.c
new file mode 100644 (file)
index 0000000..fca24c1
--- /dev/null
@@ -0,0 +1,10 @@
+#include "complex"
+
+c_log(r, z)
+complex *r, *z;
+{
+double log(), cabs(), atan2();
+
+r->imag = atan2(z->imag, z->real);
+r->real = log( cabs(z->real, z->imag) );
+}
diff --git a/usr/src/usr.lib/libF77/c_sin.c b/usr/src/usr.lib/libF77/c_sin.c
new file mode 100644 (file)
index 0000000..c4a2765
--- /dev/null
@@ -0,0 +1,10 @@
+#include "complex"
+
+c_sin(r, z)
+complex *r, *z;
+{
+double sin(), cos(), sinh(), cosh();
+
+r->real = sin(z->real) * cosh(z->imag);
+r->imag = cos(z->real) * sinh(z->imag);
+}
diff --git a/usr/src/usr.lib/libF77/c_sqrt.c b/usr/src/usr.lib/libF77/c_sqrt.c
new file mode 100644 (file)
index 0000000..60f42f7
--- /dev/null
@@ -0,0 +1,22 @@
+#include "complex"
+
+c_sqrt(r, z)
+complex *r, *z;
+{
+double mag, sqrt(), cabs();
+
+if( (mag = cabs(z->real, z->imag)) == 0.)
+       r->real = r->imag = 0.;
+else if(z->real > 0)
+       {
+       r->real = sqrt(0.5 * (mag + z->real) );
+       r->imag = z->imag / r->real / 2;
+       }
+else
+       {
+       r->imag = sqrt(0.5 * (mag - z->real) );
+       if(z->imag < 0)
+               r->imag = - r->imag;
+       r->real = z->imag / r->imag /2;
+       }
+}
diff --git a/usr/src/usr.lib/libF77/cabs.c b/usr/src/usr.lib/libF77/cabs.c
new file mode 100644 (file)
index 0000000..b2b3e4f
--- /dev/null
@@ -0,0 +1,21 @@
+double cabs(real, imag)
+double real, imag;
+{
+double temp, sqrt();
+
+if(real < 0)
+       real = -real;
+if(imag < 0)
+       imag = -imag;
+if(imag > real){
+       temp = real;
+       real = imag;
+       imag = temp;
+}
+if((real+imag) == real)
+       return(real);
+
+temp = imag/real;
+temp = real*sqrt(1.0 + temp*temp);  /*overflow!!*/
+return(temp);
+}
diff --git a/usr/src/usr.lib/libF77/complex b/usr/src/usr.lib/libF77/complex
new file mode 100644 (file)
index 0000000..1bb1fb0
--- /dev/null
@@ -0,0 +1,2 @@
+typedef struct { float real, imag; } complex;
+typedef struct { double dreal, dimag; } dcomplex;
diff --git a/usr/src/usr.lib/libF77/d_abs.c b/usr/src/usr.lib/libF77/d_abs.c
new file mode 100644 (file)
index 0000000..75c0172
--- /dev/null
@@ -0,0 +1,7 @@
+double d_abs(x)
+double *x;
+{
+if(*x >= 0)
+       return(*x);
+return(- *x);
+}
diff --git a/usr/src/usr.lib/libF77/d_acos.c b/usr/src/usr.lib/libF77/d_acos.c
new file mode 100644 (file)
index 0000000..52c9021
--- /dev/null
@@ -0,0 +1,6 @@
+double d_acos(x)
+double *x;
+{
+double acos();
+return( acos(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_asin.c b/usr/src/usr.lib/libF77/d_asin.c
new file mode 100644 (file)
index 0000000..f3ba6e9
--- /dev/null
@@ -0,0 +1,6 @@
+double d_asin(x)
+double *x;
+{
+double asin();
+return( asin(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_atan.c b/usr/src/usr.lib/libF77/d_atan.c
new file mode 100644 (file)
index 0000000..6f56301
--- /dev/null
@@ -0,0 +1,6 @@
+double d_atan(x)
+double *x;
+{
+double atan();
+return( atan(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_atn2.c b/usr/src/usr.lib/libF77/d_atn2.c
new file mode 100644 (file)
index 0000000..4a6ce1a
--- /dev/null
@@ -0,0 +1,6 @@
+double d_atn2(x,y)
+double *x, *y;
+{
+double atan2();
+return( atan2(*x,*y) );
+}
diff --git a/usr/src/usr.lib/libF77/d_cnjg.c b/usr/src/usr.lib/libF77/d_cnjg.c
new file mode 100644 (file)
index 0000000..0f5c422
--- /dev/null
@@ -0,0 +1,8 @@
+#include "complex"
+
+d_cnjg(r, z)
+dcomplex *r, *z;
+{
+r->dreal = z->dreal;
+r->dimag = - z->dimag;
+}
diff --git a/usr/src/usr.lib/libF77/d_cos.c b/usr/src/usr.lib/libF77/d_cos.c
new file mode 100644 (file)
index 0000000..81af954
--- /dev/null
@@ -0,0 +1,6 @@
+double d_cos(x)
+double *x;
+{
+double cos();
+return( cos(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_cosh.c b/usr/src/usr.lib/libF77/d_cosh.c
new file mode 100644 (file)
index 0000000..c6697ac
--- /dev/null
@@ -0,0 +1,6 @@
+double d_cosh(x)
+double *x;
+{
+double cosh();
+return( cosh(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_dim.c b/usr/src/usr.lib/libF77/d_dim.c
new file mode 100644 (file)
index 0000000..2b19e05
--- /dev/null
@@ -0,0 +1,5 @@
+double d_dim(a,b)
+double *a, *b;
+{
+return( *a > *b ? *a - *b : 0);
+}
diff --git a/usr/src/usr.lib/libF77/d_exp.c b/usr/src/usr.lib/libF77/d_exp.c
new file mode 100644 (file)
index 0000000..8e9d9ed
--- /dev/null
@@ -0,0 +1,6 @@
+double d_exp(x)
+double *x;
+{
+double exp();
+return( exp(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_imag.c b/usr/src/usr.lib/libF77/d_imag.c
new file mode 100644 (file)
index 0000000..3f47dd5
--- /dev/null
@@ -0,0 +1,7 @@
+#include "complex"
+
+double d_imag(z)
+dcomplex *z;
+{
+return(z->dimag);
+}
diff --git a/usr/src/usr.lib/libF77/d_int.c b/usr/src/usr.lib/libF77/d_int.c
new file mode 100644 (file)
index 0000000..0e76832
--- /dev/null
@@ -0,0 +1,7 @@
+double d_int(x)
+double *x;
+{
+double floor();
+
+return( (*x >= 0) ? floor(*x) : -floor(- *x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_lg10.c b/usr/src/usr.lib/libF77/d_lg10.c
new file mode 100644 (file)
index 0000000..39dcb40
--- /dev/null
@@ -0,0 +1,9 @@
+#define log10e 0.43429448190325182765
+
+double d_lg10(x)
+double *x;
+{
+double log();
+
+return( log10e * log(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_log.c b/usr/src/usr.lib/libF77/d_log.c
new file mode 100644 (file)
index 0000000..9771663
--- /dev/null
@@ -0,0 +1,6 @@
+double d_log(x)
+double *x;
+{
+double log();
+return( log(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_mod.c b/usr/src/usr.lib/libF77/d_mod.c
new file mode 100644 (file)
index 0000000..3cddbab
--- /dev/null
@@ -0,0 +1,10 @@
+double d_mod(x,y)
+double *x, *y;
+{
+double floor(), quotient = *x / *y;
+if (quotient >= 0.0)
+       quotient = floor(quotient);
+else
+       quotient = -floor(-quotient);
+return(*x - (*y) * quotient );
+}
diff --git a/usr/src/usr.lib/libF77/d_nint.c b/usr/src/usr.lib/libF77/d_nint.c
new file mode 100644 (file)
index 0000000..edd3e99
--- /dev/null
@@ -0,0 +1,8 @@
+double d_nint(x)
+double *x;
+{
+double floor();
+
+return( (*x)>=0 ?
+       floor(*x + .5) : -floor(.5 - *x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_prod.c b/usr/src/usr.lib/libF77/d_prod.c
new file mode 100644 (file)
index 0000000..7cf462d
--- /dev/null
@@ -0,0 +1,5 @@
+double d_prod(x,y)
+float *x, *y;
+{
+return( (*x) * (*y) );
+}
diff --git a/usr/src/usr.lib/libF77/d_sign.c b/usr/src/usr.lib/libF77/d_sign.c
new file mode 100644 (file)
index 0000000..a254e33
--- /dev/null
@@ -0,0 +1,7 @@
+double d_sign(a,b)
+double *a, *b;
+{
+double x;
+x = (*a >= 0 ? *a : - *a);
+return( *b >= 0 ? x : -x);
+}
diff --git a/usr/src/usr.lib/libF77/d_sin.c b/usr/src/usr.lib/libF77/d_sin.c
new file mode 100644 (file)
index 0000000..63ffbbe
--- /dev/null
@@ -0,0 +1,6 @@
+double d_sin(x)
+double *x;
+{
+double sin();
+return( sin(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_sinh.c b/usr/src/usr.lib/libF77/d_sinh.c
new file mode 100644 (file)
index 0000000..a6fe34f
--- /dev/null
@@ -0,0 +1,6 @@
+double d_sinh(x)
+double *x;
+{
+double sinh();
+return( sinh(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_sqrt.c b/usr/src/usr.lib/libF77/d_sqrt.c
new file mode 100644 (file)
index 0000000..a6ac8b8
--- /dev/null
@@ -0,0 +1,6 @@
+double d_sqrt(x)
+double *x;
+{
+double sqrt();
+return( sqrt(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_tan.c b/usr/src/usr.lib/libF77/d_tan.c
new file mode 100644 (file)
index 0000000..362b955
--- /dev/null
@@ -0,0 +1,6 @@
+double d_tan(x)
+double *x;
+{
+double tan();
+return( tan(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/d_tanh.c b/usr/src/usr.lib/libF77/d_tanh.c
new file mode 100644 (file)
index 0000000..d2e12e6
--- /dev/null
@@ -0,0 +1,6 @@
+double d_tanh(x)
+double *x;
+{
+double tanh();
+return( tanh(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/dbesj0_.c b/usr/src/usr.lib/libF77/dbesj0_.c
new file mode 100644 (file)
index 0000000..069421c
--- /dev/null
@@ -0,0 +1,7 @@
+double j0();
+
+double dbesj0_(x)
+double *x;
+{
+       return(j0(*x));
+}
diff --git a/usr/src/usr.lib/libF77/dbesj1_.c b/usr/src/usr.lib/libF77/dbesj1_.c
new file mode 100644 (file)
index 0000000..c145b9c
--- /dev/null
@@ -0,0 +1,7 @@
+double j1();
+
+double dbesj1_(x)
+double *x;
+{
+       return(j1(*x));
+}
diff --git a/usr/src/usr.lib/libF77/dbesjn_.c b/usr/src/usr.lib/libF77/dbesjn_.c
new file mode 100644 (file)
index 0000000..158c456
--- /dev/null
@@ -0,0 +1,7 @@
+double jn();
+
+double dbesjn_(n, x)
+long *n; double *x;
+{
+       return(jn((int)*n, *x));
+}
diff --git a/usr/src/usr.lib/libF77/dbesy0_.c b/usr/src/usr.lib/libF77/dbesy0_.c
new file mode 100644 (file)
index 0000000..324859e
--- /dev/null
@@ -0,0 +1,7 @@
+double y0();
+
+double dbesy0_(x)
+double *x;
+{
+       return(y0(*x));
+}
diff --git a/usr/src/usr.lib/libF77/dbesy1_.c b/usr/src/usr.lib/libF77/dbesy1_.c
new file mode 100644 (file)
index 0000000..3327e58
--- /dev/null
@@ -0,0 +1,7 @@
+double y1();
+
+double dbesy1_(x)
+double *x;
+{
+       return(y1(*x));
+}
diff --git a/usr/src/usr.lib/libF77/dbesyn_.c b/usr/src/usr.lib/libF77/dbesyn_.c
new file mode 100644 (file)
index 0000000..f57f39a
--- /dev/null
@@ -0,0 +1,7 @@
+double yn();
+
+double dbesyn_(n, x)
+long *n; double *x;
+{
+       return(yn((int)*n, *x));
+}
diff --git a/usr/src/usr.lib/libF77/derf_.c b/usr/src/usr.lib/libF77/derf_.c
new file mode 100644 (file)
index 0000000..d4ec363
--- /dev/null
@@ -0,0 +1,7 @@
+double derf_(x)
+double *x;
+{
+double erf();
+
+return( erf(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/derfc_.c b/usr/src/usr.lib/libF77/derfc_.c
new file mode 100644 (file)
index 0000000..08d5272
--- /dev/null
@@ -0,0 +1,7 @@
+double derfc_(x)
+double *x;
+{
+double erfc();
+
+return( erfc(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/ef1asc_.c b/usr/src/usr.lib/libF77/ef1asc_.c
new file mode 100644 (file)
index 0000000..b4c4491
--- /dev/null
@@ -0,0 +1,11 @@
+/* EFL support routine to copy string b to string a */
+
+#define M      ( (long) (sizeof(long) - 1) )
+#define EVEN(x)        ( ( (x)+ M) & (~M) )
+
+ef1asc_(a, la, b, lb)
+int *a, *b;
+long int *la, *lb;
+{
+s_copy( (char *)a, (char *)b, EVEN(*la), *lb );
+}
diff --git a/usr/src/usr.lib/libF77/ef1cmc_.c b/usr/src/usr.lib/libF77/ef1cmc_.c
new file mode 100644 (file)
index 0000000..0bc285a
--- /dev/null
@@ -0,0 +1,8 @@
+/* EFL support routine to compare two character strings */
+
+long int ef1cmc_(a, la, b, lb)
+int *a, *b;
+long int *la, *lb;
+{
+return( s_cmp( (char *)a, (char *)b, *la, *lb) );
+}
diff --git a/usr/src/usr.lib/libF77/erf_.c b/usr/src/usr.lib/libF77/erf_.c
new file mode 100644 (file)
index 0000000..1749fc6
--- /dev/null
@@ -0,0 +1,7 @@
+float erf_(x)
+float *x;
+{
+double erf();
+
+return( erf(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/erfc_.c b/usr/src/usr.lib/libF77/erfc_.c
new file mode 100644 (file)
index 0000000..c68c449
--- /dev/null
@@ -0,0 +1,7 @@
+float erfc_(x)
+float *x;
+{
+double erfc();
+
+return( erfc(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/exit_.c b/usr/src/usr.lib/libF77/exit_.c
new file mode 100644 (file)
index 0000000..5b2a712
--- /dev/null
@@ -0,0 +1,8 @@
+
+exit_(n)
+long *n;
+{
+       f_exit();
+       _cleanup();
+       exit((int)*n);
+}
diff --git a/usr/src/usr.lib/libF77/h_abs.c b/usr/src/usr.lib/libF77/h_abs.c
new file mode 100644 (file)
index 0000000..b77cf88
--- /dev/null
@@ -0,0 +1,7 @@
+short h_abs(x)
+short *x;
+{
+if(*x >= 0)
+       return(*x);
+return(- *x);
+}
diff --git a/usr/src/usr.lib/libF77/h_dim.c b/usr/src/usr.lib/libF77/h_dim.c
new file mode 100644 (file)
index 0000000..015127b
--- /dev/null
@@ -0,0 +1,5 @@
+short h_dim(a,b)
+short *a, *b;
+{
+return( *a > *b ? *a - *b : 0);
+}
diff --git a/usr/src/usr.lib/libF77/h_dnnt.c b/usr/src/usr.lib/libF77/h_dnnt.c
new file mode 100644 (file)
index 0000000..2864152
--- /dev/null
@@ -0,0 +1,8 @@
+short h_dnnt(x)
+double *x;
+{
+double floor();
+
+return( (*x)>=0 ?
+       floor(*x + .5) : -floor(.5 - *x) );
+}
diff --git a/usr/src/usr.lib/libF77/h_indx.c b/usr/src/usr.lib/libF77/h_indx.c
new file mode 100644 (file)
index 0000000..9d4db1d
--- /dev/null
@@ -0,0 +1,22 @@
+short h_indx(a, b, la, lb)
+char *a, *b;
+long int la, lb;
+{
+int i, n;
+char *s, *t, *bend;
+
+n = la - lb + 1;
+bend = b + lb;
+
+for(i = 0 ; i < n ; ++i)
+       {
+       s = a + i;
+       t = b;
+       while(t < bend)
+               if(*s++ != *t++)
+                       goto no;
+       return(i+1);
+       no: ;
+       }
+return(0);
+}
diff --git a/usr/src/usr.lib/libF77/h_len.c b/usr/src/usr.lib/libF77/h_len.c
new file mode 100644 (file)
index 0000000..719090b
--- /dev/null
@@ -0,0 +1,6 @@
+short h_len(s, n)
+char *s;
+long int n;
+{
+return(n);
+}
diff --git a/usr/src/usr.lib/libF77/h_mod.c b/usr/src/usr.lib/libF77/h_mod.c
new file mode 100644 (file)
index 0000000..c30ab21
--- /dev/null
@@ -0,0 +1,5 @@
+short h_mod(a,b)
+short *a, *b;
+{
+return( *a % *b);
+}
diff --git a/usr/src/usr.lib/libF77/h_nint.c b/usr/src/usr.lib/libF77/h_nint.c
new file mode 100644 (file)
index 0000000..2be4c18
--- /dev/null
@@ -0,0 +1,8 @@
+short h_nint(x)
+float *x;
+{
+double floor();
+
+return( (*x)>=0 ?
+       floor(*x + .5) : -floor(.5 - *x) );
+}
diff --git a/usr/src/usr.lib/libF77/h_sign.c b/usr/src/usr.lib/libF77/h_sign.c
new file mode 100644 (file)
index 0000000..d5924ea
--- /dev/null
@@ -0,0 +1,7 @@
+short h_sign(a,b)
+short *a, *b;
+{
+short x;
+x = (*a >= 0 ? *a : - *a);
+return( *b >= 0 ? x : -x);
+}
diff --git a/usr/src/usr.lib/libF77/hl_ge.c b/usr/src/usr.lib/libF77/hl_ge.c
new file mode 100644 (file)
index 0000000..fdbfea6
--- /dev/null
@@ -0,0 +1,6 @@
+short hl_ge(a,b,la,lb)
+char *a, *b;
+long int la, lb;
+{
+return(s_cmp(a,b,la,lb) >= 0);
+}
diff --git a/usr/src/usr.lib/libF77/hl_gt.c b/usr/src/usr.lib/libF77/hl_gt.c
new file mode 100644 (file)
index 0000000..6c21514
--- /dev/null
@@ -0,0 +1,6 @@
+short hl_gt(a,b,la,lb)
+char *a, *b;
+long int la, lb;
+{
+return(s_cmp(a,b,la,lb) > 0);
+}
diff --git a/usr/src/usr.lib/libF77/hl_le.c b/usr/src/usr.lib/libF77/hl_le.c
new file mode 100644 (file)
index 0000000..fa67557
--- /dev/null
@@ -0,0 +1,6 @@
+short hl_le(a,b,la,lb)
+char *a, *b;
+long int la, lb;
+{
+return(s_cmp(a,b,la,lb) <= 0);
+}
diff --git a/usr/src/usr.lib/libF77/hl_lt.c b/usr/src/usr.lib/libF77/hl_lt.c
new file mode 100644 (file)
index 0000000..e3a7fe1
--- /dev/null
@@ -0,0 +1,6 @@
+short hl_lt(a,b,la,lb)
+char *a, *b;
+long int la, lb;
+{
+return(s_cmp(a,b,la,lb) < 0);
+}
diff --git a/usr/src/usr.lib/libF77/i_abs.c b/usr/src/usr.lib/libF77/i_abs.c
new file mode 100644 (file)
index 0000000..6f1572e
--- /dev/null
@@ -0,0 +1,7 @@
+long int i_abs(x)
+long int *x;
+{
+if(*x >= 0)
+       return(*x);
+return(- *x);
+}
diff --git a/usr/src/usr.lib/libF77/i_dim.c b/usr/src/usr.lib/libF77/i_dim.c
new file mode 100644 (file)
index 0000000..a9162d1
--- /dev/null
@@ -0,0 +1,5 @@
+long int i_dim(a,b)
+long int *a, *b;
+{
+return( *a > *b ? *a - *b : 0);
+}
diff --git a/usr/src/usr.lib/libF77/i_dnnt.c b/usr/src/usr.lib/libF77/i_dnnt.c
new file mode 100644 (file)
index 0000000..eb0c75e
--- /dev/null
@@ -0,0 +1,8 @@
+long int i_dnnt(x)
+double *x;
+{
+double floor();
+
+return( (*x)>=0 ?
+       floor(*x + .5) : -floor(.5 - *x) );
+}
diff --git a/usr/src/usr.lib/libF77/i_indx.c b/usr/src/usr.lib/libF77/i_indx.c
new file mode 100644 (file)
index 0000000..f5eed7b
--- /dev/null
@@ -0,0 +1,22 @@
+long int i_indx(a, b, la, lb)
+char *a, *b;
+long int la, lb;
+{
+long int i, n;
+char *s, *t, *bend;
+
+n = la - lb + 1;
+bend = b + lb;
+
+for(i = 0 ; i < n ; ++i)
+       {
+       s = a + i;
+       t = b;
+       while(t < bend)
+               if(*s++ != *t++)
+                       goto no;
+       return(i+1);
+       no: ;
+       }
+return(0);
+}
diff --git a/usr/src/usr.lib/libF77/i_len.c b/usr/src/usr.lib/libF77/i_len.c
new file mode 100644 (file)
index 0000000..96a480f
--- /dev/null
@@ -0,0 +1,6 @@
+long int i_len(s, n)
+char *s;
+long int n;
+{
+return(n);
+}
diff --git a/usr/src/usr.lib/libF77/i_mod.c b/usr/src/usr.lib/libF77/i_mod.c
new file mode 100644 (file)
index 0000000..28e81c2
--- /dev/null
@@ -0,0 +1,5 @@
+long int i_mod(a,b)
+long int *a, *b;
+{
+return( *a % *b);
+}
diff --git a/usr/src/usr.lib/libF77/i_nint.c b/usr/src/usr.lib/libF77/i_nint.c
new file mode 100644 (file)
index 0000000..c6e1365
--- /dev/null
@@ -0,0 +1,8 @@
+long int i_nint(x)
+float *x;
+{
+double floor();
+
+return( (*x)>=0 ?
+       floor(*x + .5) : -floor(.5 - *x) );
+}
diff --git a/usr/src/usr.lib/libF77/i_sign.c b/usr/src/usr.lib/libF77/i_sign.c
new file mode 100644 (file)
index 0000000..428f564
--- /dev/null
@@ -0,0 +1,7 @@
+long int i_sign(a,b)
+long int *a, *b;
+{
+long int x;
+x = (*a >= 0 ? *a : - *a);
+return( *b >= 0 ? x : -x);
+}
diff --git a/usr/src/usr.lib/libF77/index b/usr/src/usr.lib/libF77/index
new file mode 100644 (file)
index 0000000..0b0e1ad
--- /dev/null
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+
+                            libF77 Sources 
+                       Fri Aug 14 19:43:09 1981
+
+
+/ga/dlw/f77/libF77
+-r--r----- 1 dlw        3439 Aug 14 19:30 Makefile
+-rw-r----- 1 dlw         340 Aug 13 18:01 Version.c
+-rw-r----- 1 dlw         347 Feb 17 17:38 abort_.c
+-rw-r----- 1 dlw          76 Feb 18 12:07 besj0_.c
+-rw-r----- 1 dlw          76 Feb 18 12:07 besj1_.c
+-rw-r----- 1 dlw          97 Feb 18 12:07 besjn_.c
+-rw-r----- 1 dlw          76 Feb 18 12:07 besy0_.c
+-rw-r----- 1 dlw          76 Feb 18 12:07 besy1_.c
+-rw-r----- 1 dlw          97 Feb 18 12:07 besyn_.c
+-rw-r----- 1 dlw         752 Feb 15  1981 bit.c
+-rw-r----- 1 dlw         103 Jan 21  1980 c_abs.c
+-rw-r----- 1 dlw         172 Jan 21  1980 c_cos.c
+-rw-r----- 1 dlw         584 Apr 17 09:11 c_div.c
+-rw-r----- 1 dlw         177 Jan 21  1980 c_exp.c
+-rw-r----- 1 dlw         160 Jan 21  1980 c_log.c
+-rw-r----- 1 dlw         170 Jan 21  1980 c_sin.c
+-rw-r----- 1 dlw         376 Jan 21  1980 c_sqrt.c
+-rw-r----- 1 dlw         309 Jan 21  1980 cabs.c
+-rw-r----- 1 dlw          70 Jan 21  1980 d_abs.c
+-rw-r----- 1 dlw          67 Jan 21  1980 d_acos.c
+-rw-r----- 1 dlw          67 Jan 21  1980 d_asin.c
+-rw-r----- 1 dlw          67 Jan 21  1980 d_atan.c
+-rw-r----- 1 dlw          78 Jan 21  1980 d_atn2.c
+-rw-r----- 1 dlw          98 Jan 21  1980 d_cnjg.c
+-rw-r----- 1 dlw          64 Jan 21  1980 d_cos.c
+-rw-r----- 1 dlw          67 Jan 21  1980 d_cosh.c
+-rw-r----- 1 dlw          69 Jan 21  1980 d_dim.c
+-rw-r----- 1 dlw          64 Jan 21  1980 d_exp.c
+-rw-r----- 1 dlw          72 Jan 21  1980 d_imag.c
+-rw-r----- 1 dlw          96 Mar 26  1980 d_int.c
+-rw-r----- 1 dlw         114 Jan 21  1980 d_lg10.c
+-rw-r----- 1 dlw          64 Jan 21  1980 d_log.c
+-rw-r----- 1 dlw         190 Mar 26  1980 d_mod.c
+-rw-r----- 1 dlw         104 Jan 21  1980 d_nint.c
+-rw-r----- 1 dlw          60 Jan 21  1980 d_prod.c
+-rw-r----- 1 dlw         102 Jan 21  1980 d_sign.c
+-rw-r----- 1 dlw          64 Jan 21  1980 d_sin.c
+-rw-r----- 1 dlw          67 Jan 21  1980 d_sinh.c
+-rw-r----- 1 dlw          67 Jan 21  1980 d_sqrt.c
+-rw-r----- 1 dlw          64 Jan 21  1980 d_tan.c
+-rw-r----- 1 dlw          67 Jan 21  1980 d_tanh.c
+-rw-r----- 1 dlw          64 Feb 18 12:06 dbesj0_.c
+-rw-r----- 1 dlw          64 Feb 18 12:06 dbesj1_.c
+-rw-r----- 1 dlw          85 Feb 18 12:06 dbesjn_.c
+-rw-r----- 1 dlw          64 Feb 18 12:06 dbesy0_.c
+-rw-r----- 1 dlw          64 Feb 18 12:07 dbesy1_.c
+-rw-r----- 1 dlw          85 Feb 18 12:07 dbesyn_.c
+-rw-r----- 1 dlw         239 Apr 17 09:14 ef1asc_.c
+-rw-r----- 1 dlw         176 Apr 17 09:14 ef1cmc_.c
+-rw-r----- 1 dlw          63 Aug 11 19:59 exit_.c
+-rw-r----- 1 dlw          68 Jan 21  1980 h_abs.c
+-rw-r----- 1 dlw          67 Jan 21  1980 h_dim.c
+-rw-r----- 1 dlw         103 Jan 21  1980 h_dnnt.c
+-rw-r----- 1 dlw         256 Jan 21  1980 h_indx.c
+-rw-r----- 1 dlw          54 Jan 21  1980 h_len.c
+-rw-r----- 1 dlw          53 Jan 21  1980 h_mod.c
+-rw-r----- 1 dlw         102 Jan 21  1980 h_nint.c
+-rw-r----- 1 dlw          99 Jan 21  1980 h_sign.c
+-rw-r----- 1 dlw          88 Oct  4  1980 hl_ge.c
+-rw-r----- 1 dlw          87 Oct  4  1980 hl_gt.c
+-rw-r----- 1 dlw          88 Oct  4  1980 hl_le.c
+-rw-r----- 1 dlw          87 Oct  4  1980 hl_lt.c
+-rw-r----- 1 dlw          74 Jan 21  1980 i_abs.c
+-rw-r----- 1 dlw          73 Jan 21  1980 i_dim.c
+-rw-r----- 1 dlw         106 Jan 21  1980 i_dnnt.c
+-rw-r----- 1 dlw         264 Jan 21  1980 i_indx.c
+-rw-r----- 1 dlw          57 Jan 21  1980 i_len.c
+-rw-r----- 1 dlw          59 Jan 21  1980 i_mod.c
+-rw-r----- 1 dlw         105 Jan 21  1980 i_nint.c
+-rw-r----- 1 dlw         108 Jan 21  1980 i_sign.c
+-rw-r----- 1 dlw          90 Jan 21  1980 l_ge.c
+-rw-r----- 1 dlw          89 Jan 21  1980 l_gt.c
+-rw-r----- 1 dlw          90 Jan 21  1980 l_le.c
+-rw-r----- 1 dlw          89 Jan 21  1980 l_lt.c
+-rw-r----- 1 dlw         450 Feb 19 21:58 lnblnk_.c
+-r--r----- 1 dlw        2586 Aug 13 23:25 main.c
+-rw-r----- 1 dlw         207 Jan 21  1980 pow_ci.c
+-rw-r----- 1 dlw          82 Jan 21  1980 pow_dd.c
+-rw-r----- 1 dlw         305 Jan 21  1980 pow_di.c
+-rw-r----- 1 dlw         218 Jan 21  1980 pow_hh.c
+-rw-r----- 1 dlw         227 Jan 21  1980 pow_ii.c
+-rw-r----- 1 dlw         303 Jan 21  1980 pow_ri.c
+-rw-r----- 1 dlw         561 Apr 17 14:07 pow_zi.c
+-rw-r----- 1 dlw         344 Jan 21  1980 pow_zz.c
+-rw-r----- 1 dlw          69 Jan 21  1980 r_abs.c
+-rw-r----- 1 dlw          66 Jan 21  1980 r_acos.c
+-rw-r----- 1 dlw          66 Jan 21  1980 r_asin.c
+-rw-r----- 1 dlw          66 Jan 21  1980 r_atan.c
+-rw-r----- 1 dlw          77 Jan 21  1980 r_atn2.c
+-rw-r----- 1 dlw          93 Jan 21  1980 r_cnjg.c
+-rw-r----- 1 dlw          63 Jan 21  1980 r_cos.c
+-rw-r----- 1 dlw          66 Jan 21  1980 r_cosh.c
+-rw-r----- 1 dlw          68 Jan 21  1980 r_dim.c
+-rw-r----- 1 dlw          63 Jan 21  1980 r_exp.c
+-rw-r----- 1 dlw          70 Jan 21  1980 r_imag.c
+-rw-r----- 1 dlw          95 Mar 26  1980 r_int.c
+-rw-r----- 1 dlw         113 Jan 21  1980 r_lg10.c
+-rw-r----- 1 dlw          63 Jan 21  1980 r_log.c
+-rw-r----- 1 dlw         189 Mar 26  1980 r_mod.c
+-rw-r----- 1 dlw         103 Jan 21  1980 r_nint.c
+-rw-r----- 1 dlw         100 Jan 21  1980 r_sign.c
+-rw-r----- 1 dlw          63 Jan 21  1980 r_sin.c
+-rw-r----- 1 dlw          66 Jan 21  1980 r_sinh.c
+-rw-r----- 1 dlw          66 Jan 21  1980 r_sqrt.c
+-rw-r----- 1 dlw          63 Jan 21  1980 r_tan.c
+-rw-r----- 1 dlw          66 Jan 21  1980 r_tanh.c
+-rw-r----- 1 dlw         899 Feb 17 12:58 rand_.c
+-rw-r----- 1 dlw         810 Apr 19 19:33 range.c
+-rw-r----- 1 dlw         561 Mar  2 10:24 rindex_.c
+-rw-r----- 1 dlw         273 Jan 21  1980 s_cat.c
+-rw-r----- 1 dlw         485 Apr 17 14:10 s_cmp.c
+-rw-r----- 1 dlw         256 Jan 21  1980 s_copy.c
+-rw-r----- 1 dlw         709 Oct  2  1980 s_paus.c
+-rw-r----- 1 dlw         503 Jan 21  1980 s_rnge.c
+-rw-r----- 1 dlw         207 Oct  2  1980 s_stop.c
+-rw-r----- 1 dlw        1321 Apr 17 14:11 sinh.c
+-rw-r----- 1 dlw         376 Apr 17 14:12 tanh.c
+-rw-r----- 1 dlw         633 Aug 13 19:58 traper_.c
+-rw-r----- 1 dlw         107 Jan 21  1980 z_abs.c
+-rw-r----- 1 dlw         179 Jan 21  1980 z_cos.c
+-rw-r----- 1 dlw         605 Apr 17 14:30 z_div.c
+-rw-r----- 1 dlw         183 Jan 21  1980 z_exp.c
+-rw-r----- 1 dlw         169 Jan 21  1980 z_log.c
+-rw-r----- 1 dlw         177 Jan 21  1980 z_sin.c
+-rw-r----- 1 dlw         396 Apr 23 11:23 z_sqrt.c
diff --git a/usr/src/usr.lib/libF77/l_ge.c b/usr/src/usr.lib/libF77/l_ge.c
new file mode 100644 (file)
index 0000000..7bdcad4
--- /dev/null
@@ -0,0 +1,6 @@
+long int l_ge(a,b,la,lb)
+char *a, *b;
+long int la, lb;
+{
+return(s_cmp(a,b,la,lb) >= 0);
+}
diff --git a/usr/src/usr.lib/libF77/l_gt.c b/usr/src/usr.lib/libF77/l_gt.c
new file mode 100644 (file)
index 0000000..3983c2c
--- /dev/null
@@ -0,0 +1,6 @@
+long int l_gt(a,b,la,lb)
+char *a, *b;
+long int la, lb;
+{
+return(s_cmp(a,b,la,lb) > 0);
+}
diff --git a/usr/src/usr.lib/libF77/l_le.c b/usr/src/usr.lib/libF77/l_le.c
new file mode 100644 (file)
index 0000000..caa4528
--- /dev/null
@@ -0,0 +1,6 @@
+long int l_le(a,b,la,lb)
+char *a, *b;
+long int la, lb;
+{
+return(s_cmp(a,b,la,lb) <= 0);
+}
diff --git a/usr/src/usr.lib/libF77/l_lt.c b/usr/src/usr.lib/libF77/l_lt.c
new file mode 100644 (file)
index 0000000..f69ba70
--- /dev/null
@@ -0,0 +1,6 @@
+long int l_lt(a,b,la,lb)
+char *a, *b;
+long int la, lb;
+{
+return(s_cmp(a,b,la,lb) < 0);
+}
diff --git a/usr/src/usr.lib/libF77/long_.c b/usr/src/usr.lib/libF77/long_.c
new file mode 100644 (file)
index 0000000..822fc82
--- /dev/null
@@ -0,0 +1,12 @@
+/*
+ * convert short ints to long.
+ * Needed for literals in -I2 compiles.
+ * used as follows:
+ *     integer*4 long
+ *     ...
+ *     call ftell(long(11))
+ */
+
+long long_(i)
+short *i;
+{      return((long)*i);       }
diff --git a/usr/src/usr.lib/libF77/mkindx.c b/usr/src/usr.lib/libF77/mkindx.c
new file mode 100644 (file)
index 0000000..cc1978c
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ *  mkindx.c - utility to format a nice index to source files, etc.
+ *
+ *  usage:  mkindx "title string" [file_name] [filename] .....
+ */
+
+# include      <stdio.h>
+
+char list[10000] = "pwd >>index; echo \" \" >>index; ls -l ";
+char *apndx = ">>index";
+char *cp = list;
+extern char *ctime();
+FILE *fopen(), *index;
+
+main (argc, argv)
+char **argv;
+{
+       short i;
+       long time(), t;
+
+       if (index = fopen ("index", "w"))
+       {
+               fprintf (index, "\n\n\n\n\n\n\n\n\n");
+               center (argv[1]);   /* center title on page */
+               t = time(0);
+               center (ctime(&t));   /* center date & time */
+               fprintf (index, "\n");
+               fclose (index);
+               while (*cp) cp++;   /* find end of shell command */
+               for (i = 2; i < argc; i++)
+               {
+                       while (*argv[i]) *cp++ = *(argv[i]++);
+                       *cp++ = ' ';
+               }
+               while (*apndx) *cp++ = *apndx++;
+               *cp = '\0';
+               system (list);
+       }
+       else fprintf (stderr, "mkindx: can't open index\n");
+}
+
+center (string)
+char *string;
+{
+       short pad;
+
+       pad = (72 - strlen(string)) >> 1;
+       while (pad-- > 0) fputc(' ', index);
+       fprintf (index, "%s\n", string);
+}
diff --git a/usr/src/usr.lib/libF77/opcodes.h b/usr/src/usr.lib/libF77/opcodes.h
new file mode 100644 (file)
index 0000000..3bc95f3
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Op codes defined here
+ *
+ * We just define the floating-point opcodes, to ease our minds.
+ */
+
+# define ACBD          0x6f
+# define ACBF          0x4f
+# define ADDD2         0x60
+# define ADDD3         0x61
+# define ADDF2         0x40
+# define ADDF3         0x41
+# define CMPD          0x71
+# define CMPF          0x51
+# define CVTDB         0x68
+# define CVTDF         0x76
+# define CVTDL         0x6a
+# define CVTDW         0x69
+# define CVTFB         0x48
+# define CVTFD         0x56
+# define CVTFL         0x4a
+# define CVTFW         0x49
+# define CVTRDL                0x6b
+# define CVTRFL                0x4b
+# define DIVD2         0x66
+# define DIVD3         0x67
+# define DIVF2         0x46
+# define DIVF3         0x47
+# define EMODD         0x74
+# define EMODF         0x54
+# define MNEGD         0x72
+# define MNEGF         0x52
+# define MOVD          0x70
+# define MOVF          0x50
+# define MULD2         0x64
+# define MULD3         0x65
+# define MULF2         0x44
+# define MULF3         0x45
+# define POLYD         0x75
+# define POLYF         0x55
+# define SUBD2         0x62
+# define SUBD3         0x63
+# define SUBF2         0x42
+# define SUBF3         0x43
+# define TSTD          0x73
+# define TSTF          0x53
+
+
+
diff --git a/usr/src/usr.lib/libF77/pow_ci.c b/usr/src/usr.lib/libF77/pow_ci.c
new file mode 100644 (file)
index 0000000..f59fcf3
--- /dev/null
@@ -0,0 +1,16 @@
+#include "complex"
+
+pow_ci(p, a, b)        /* p = a**b  */
+complex *p, *a;
+long int *b;
+{
+dcomplex p1, a1;
+
+a1.dreal = a->real;
+a1.dimag = a->imag;
+
+pow_zi(&p1, &a1, b);
+
+p->real = p1.dreal;
+p->imag = p1.dimag;
+}
diff --git a/usr/src/usr.lib/libF77/pow_dd.c b/usr/src/usr.lib/libF77/pow_dd.c
new file mode 100644 (file)
index 0000000..103f473
--- /dev/null
@@ -0,0 +1,7 @@
+double pow_dd(ap, bp)
+double *ap, *bp;
+{
+double pow();
+
+return(pow(*ap, *bp) );
+}
diff --git a/usr/src/usr.lib/libF77/pow_di.c b/usr/src/usr.lib/libF77/pow_di.c
new file mode 100644 (file)
index 0000000..c4a4628
--- /dev/null
@@ -0,0 +1,34 @@
+double pow_di(ap, bp)
+double *ap;
+long int *bp;
+{
+double pow, x;
+long int n;
+
+pow = 1;
+x = *ap;
+n = *bp;
+
+if(n != 0)
+       {
+       if(n < 0)
+               {
+               if(x == 0)
+                       {
+                       return(pow);
+                       }
+               n = -n;
+               x = 1/x;
+               }
+       for( ; ; )
+               {
+               if(n & 01)
+                       pow *= x;
+               if(n >>= 1)
+                       x *= x;
+               else
+                       break;
+               }
+       }
+return(pow);
+}
diff --git a/usr/src/usr.lib/libF77/pow_hh.c b/usr/src/usr.lib/libF77/pow_hh.c
new file mode 100644 (file)
index 0000000..ff77ab6
--- /dev/null
@@ -0,0 +1,23 @@
+short pow_hh(ap, bp)
+short *ap, *bp;
+{
+short pow, x, n;
+
+pow = 1;
+x = *ap;
+n = *bp;
+
+if(n < 0)
+       { }
+else if(n > 0)
+       for( ; ; )
+               {
+               if(n & 01)
+                       pow *= x;
+               if(n >>= 1)
+                       x *= x;
+               else
+                       break;
+               }
+return(pow);
+}
diff --git a/usr/src/usr.lib/libF77/pow_ii.c b/usr/src/usr.lib/libF77/pow_ii.c
new file mode 100644 (file)
index 0000000..138040b
--- /dev/null
@@ -0,0 +1,23 @@
+long int pow_ii(ap, bp)
+long int *ap, *bp;
+{
+long int pow, x, n;
+
+pow = 1;
+x = *ap;
+n = *bp;
+
+if(n < 0)
+       { }
+else if(n > 0)
+       for( ; ; )
+               {
+               if(n & 01)
+                       pow *= x;
+               if(n >>= 1)
+                       x *= x;
+               else
+                       break;
+               }
+return(pow);
+}
diff --git a/usr/src/usr.lib/libF77/pow_ri.c b/usr/src/usr.lib/libF77/pow_ri.c
new file mode 100644 (file)
index 0000000..492e573
--- /dev/null
@@ -0,0 +1,34 @@
+float pow_ri(ap, bp)
+float *ap;
+long int *bp;
+{
+double pow, x;
+long int n;
+
+pow = 1;
+x = *ap;
+n = *bp;
+
+if(n != 0)
+       {
+       if(n < 0)
+               {
+               if(x == 0)
+                       {
+                       return(pow);
+                       }
+               n = -n;
+               x = 1/x;
+               }
+       for( ; ; )
+               {
+               if(n & 01)
+                       pow *= x;
+               if(n >>= 1)
+                       x *= x;
+               else
+                       break;
+               }
+       }
+return(pow);
+}
diff --git a/usr/src/usr.lib/libF77/pow_zi.c b/usr/src/usr.lib/libF77/pow_zi.c
new file mode 100644 (file)
index 0000000..4210d94
--- /dev/null
@@ -0,0 +1,45 @@
+#include "complex"
+
+pow_zi(p, a, b)        /* p = a**b  */
+dcomplex *p, *a;
+long int *b;
+{
+long int n;
+double t;
+dcomplex x;
+
+n = *b;
+p->dreal = 1;
+p->dimag = 0;
+
+if(n == 0)
+       return;
+if(n < 0)
+       {
+       n = -n;
+       z_div(&x, p, a);
+       }
+else
+       {
+       x.dreal = a->dreal;
+       x.dimag = a->dimag;
+       }
+
+for( ; ; )
+       {
+       if(n & 01)
+               {
+               t = p->dreal * x.dreal - p->dimag * x.dimag;
+               p->dimag = p->dreal * x.dimag + p->dimag * x.dreal;
+               p->dreal = t;
+               }
+       if(n >>= 1)
+               {
+               t = x.dreal * x.dreal - x.dimag * x.dimag;
+               x.dimag = 2 * x.dreal * x.dimag;
+               x.dreal = t;
+               }
+       else
+               break;
+       }
+}
diff --git a/usr/src/usr.lib/libF77/pow_zz.c b/usr/src/usr.lib/libF77/pow_zz.c
new file mode 100644 (file)
index 0000000..d36e6bf
--- /dev/null
@@ -0,0 +1,17 @@
+#include "complex"
+
+pow_zz(r,a,b)
+dcomplex *r, *a, *b;
+{
+double logr, logi, x, y;
+double log(), exp(), cos(), sin(), atan2(), cabs();
+
+logr = log( cabs(a->dreal, a->dimag) );
+logi = atan2(a->dimag, a->dreal);
+
+x = exp( logr * b->dreal - logi * b->dimag );
+y = logr * b->dimag + logi * b->dreal;
+
+r->dreal = x * cos(y);
+r->dimag = x * sin(y);
+}
diff --git a/usr/src/usr.lib/libF77/r_abs.c b/usr/src/usr.lib/libF77/r_abs.c
new file mode 100644 (file)
index 0000000..ca207bf
--- /dev/null
@@ -0,0 +1,7 @@
+double r_abs(x)
+float *x;
+{
+if(*x >= 0)
+       return(*x);
+return(- *x);
+}
diff --git a/usr/src/usr.lib/libF77/r_acos.c b/usr/src/usr.lib/libF77/r_acos.c
new file mode 100644 (file)
index 0000000..3e73a52
--- /dev/null
@@ -0,0 +1,6 @@
+double r_acos(x)
+float *x;
+{
+double acos();
+return( acos(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_asin.c b/usr/src/usr.lib/libF77/r_asin.c
new file mode 100644 (file)
index 0000000..4f72a8f
--- /dev/null
@@ -0,0 +1,6 @@
+double r_asin(x)
+float *x;
+{
+double asin();
+return( asin(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_atan.c b/usr/src/usr.lib/libF77/r_atan.c
new file mode 100644 (file)
index 0000000..63a2792
--- /dev/null
@@ -0,0 +1,6 @@
+double r_atan(x)
+float *x;
+{
+double atan();
+return( atan(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_atn2.c b/usr/src/usr.lib/libF77/r_atn2.c
new file mode 100644 (file)
index 0000000..2429cbe
--- /dev/null
@@ -0,0 +1,6 @@
+double r_atn2(x,y)
+float *x, *y;
+{
+double atan2();
+return( atan2(*x,*y) );
+}
diff --git a/usr/src/usr.lib/libF77/r_cnjg.c b/usr/src/usr.lib/libF77/r_cnjg.c
new file mode 100644 (file)
index 0000000..dcd4a93
--- /dev/null
@@ -0,0 +1,8 @@
+#include "complex"
+
+r_cnjg(r, z)
+complex *r, *z;
+{
+r->real = z->real;
+r->imag = - z->imag;
+}
diff --git a/usr/src/usr.lib/libF77/r_cos.c b/usr/src/usr.lib/libF77/r_cos.c
new file mode 100644 (file)
index 0000000..3fdd786
--- /dev/null
@@ -0,0 +1,6 @@
+double r_cos(x)
+float *x;
+{
+double cos();
+return( cos(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_cosh.c b/usr/src/usr.lib/libF77/r_cosh.c
new file mode 100644 (file)
index 0000000..b062534
--- /dev/null
@@ -0,0 +1,6 @@
+double r_cosh(x)
+float *x;
+{
+double cosh();
+return( cosh(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_dim.c b/usr/src/usr.lib/libF77/r_dim.c
new file mode 100644 (file)
index 0000000..f622b2f
--- /dev/null
@@ -0,0 +1,5 @@
+double r_dim(a,b)
+float *a, *b;
+{
+return( *a > *b ? *a - *b : 0);
+}
diff --git a/usr/src/usr.lib/libF77/r_exp.c b/usr/src/usr.lib/libF77/r_exp.c
new file mode 100644 (file)
index 0000000..9fc354a
--- /dev/null
@@ -0,0 +1,6 @@
+double r_exp(x)
+float *x;
+{
+double exp();
+return( exp(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_imag.c b/usr/src/usr.lib/libF77/r_imag.c
new file mode 100644 (file)
index 0000000..02f63be
--- /dev/null
@@ -0,0 +1,7 @@
+#include "complex"
+
+double r_imag(z)
+complex *z;
+{
+return(z->imag);
+}
diff --git a/usr/src/usr.lib/libF77/r_int.c b/usr/src/usr.lib/libF77/r_int.c
new file mode 100644 (file)
index 0000000..d0d5b9d
--- /dev/null
@@ -0,0 +1,7 @@
+double r_int(x)
+float *x;
+{
+double floor();
+
+return( (*x >= 0) ? floor(*x) : -floor(- *x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_lg10.c b/usr/src/usr.lib/libF77/r_lg10.c
new file mode 100644 (file)
index 0000000..4b657ee
--- /dev/null
@@ -0,0 +1,9 @@
+#define log10e 0.43429448190325182765
+
+double r_lg10(x)
+float *x;
+{
+double log();
+
+return( log10e * log(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_log.c b/usr/src/usr.lib/libF77/r_log.c
new file mode 100644 (file)
index 0000000..4241eae
--- /dev/null
@@ -0,0 +1,6 @@
+double r_log(x)
+float *x;
+{
+double log();
+return( log(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_mod.c b/usr/src/usr.lib/libF77/r_mod.c
new file mode 100644 (file)
index 0000000..c120e78
--- /dev/null
@@ -0,0 +1,10 @@
+double r_mod(x,y)
+float *x, *y;
+{
+double floor(), quotient = *x / *y;
+if (quotient >= 0.0)
+       quotient = floor(quotient);
+else
+       quotient = -floor(-quotient);
+return(*x - (*y) * quotient );
+}
diff --git a/usr/src/usr.lib/libF77/r_nint.c b/usr/src/usr.lib/libF77/r_nint.c
new file mode 100644 (file)
index 0000000..120717c
--- /dev/null
@@ -0,0 +1,8 @@
+double r_nint(x)
+float *x;
+{
+double floor();
+
+return( (*x)>=0 ?
+       floor(*x + .5) : -floor(.5 - *x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_sign.c b/usr/src/usr.lib/libF77/r_sign.c
new file mode 100644 (file)
index 0000000..901c9a2
--- /dev/null
@@ -0,0 +1,7 @@
+double r_sign(a,b)
+float *a, *b;
+{
+float x;
+x = (*a >= 0 ? *a : - *a);
+return( *b >= 0 ? x : -x);
+}
diff --git a/usr/src/usr.lib/libF77/r_sin.c b/usr/src/usr.lib/libF77/r_sin.c
new file mode 100644 (file)
index 0000000..0ab7aec
--- /dev/null
@@ -0,0 +1,6 @@
+double r_sin(x)
+float *x;
+{
+double sin();
+return( sin(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_sinh.c b/usr/src/usr.lib/libF77/r_sinh.c
new file mode 100644 (file)
index 0000000..7ab5b2a
--- /dev/null
@@ -0,0 +1,6 @@
+double r_sinh(x)
+float *x;
+{
+double sinh();
+return( sinh(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_sqrt.c b/usr/src/usr.lib/libF77/r_sqrt.c
new file mode 100644 (file)
index 0000000..3f84293
--- /dev/null
@@ -0,0 +1,6 @@
+double r_sqrt(x)
+float *x;
+{
+double sqrt();
+return( sqrt(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_tan.c b/usr/src/usr.lib/libF77/r_tan.c
new file mode 100644 (file)
index 0000000..831b169
--- /dev/null
@@ -0,0 +1,6 @@
+double r_tan(x)
+float *x;
+{
+double tan();
+return( tan(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/r_tanh.c b/usr/src/usr.lib/libF77/r_tanh.c
new file mode 100644 (file)
index 0000000..cc25a8d
--- /dev/null
@@ -0,0 +1,6 @@
+double r_tanh(x)
+float *x;
+{
+double tanh();
+return( tanh(*x) );
+}
diff --git a/usr/src/usr.lib/libF77/rand_.c b/usr/src/usr.lib/libF77/rand_.c
new file mode 100644 (file)
index 0000000..0a3dabb
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+char id_rand[] = "%W%";
+ *
+ * Routines to return random values
+ *
+ * calling sequence:
+ *     double precision d, drand
+ *     i = irand(iflag)
+ *     x = rand(iflag)
+ *     d = drand(iflag)
+ * where:
+ *     If arg is 1, generator is restarted. If arg is 0, next value
+ *     is returned. Any other arg is a new seed for the generator.
+ *     Integer values will range from 0 thru 2147483647.
+ *     Real values will range from 0.0 thru 1.0
+ *     (see rand(3))
+ */
+
+#ifdef VAX
+#define        RANDMAX         2147483647
+#endif
+#ifdef PDP11
+#define        RANDMAX         32767
+#endif
+
+long irand_(iarg)
+long *iarg;
+{
+       if (*iarg) srand((int)*iarg);
+#ifdef PDP11
+       return(( ((long)rand()) << 16) | rand());
+#else
+       return( rand() );
+#endif
+}
+
+float rand_(iarg)
+long *iarg;
+{
+       if (*iarg) srand((int)*iarg);
+       return( (float)(rand())/(float)RANDMAX );
+}
+
+double drand_(iarg)
+long *iarg;
+{
+       if (*iarg) srand((int)*iarg);
+       return( (double)(rand())/(double)RANDMAX );
+}