--- /dev/null
+*
+* $Id$
+*
+* $Log$
+* Revision 1.1.1.1 1996/04/01 15:02:10 mclareni
+* Mathlib gen
+*
+*
+#include "gen/pilot.h"
+#if defined(CERNLIB_DOUBLE)
+ FUNCTION DELI1(X,AKP)
+C
+#include "gen/imp64.inc"
+C
+#endif
+#if !defined(CERNLIB_DOUBLE)
+ FUNCTION RELI1(X,AKP)
+C
+#endif
+C
+C Translation of Algol procedure el1(x,kc) in
+C R. BULIRSCH Numerical Calculation of Elliptic Integrals and
+C Elliptic Functions, Numer. Math. 7 (1965) 78-90
+C
+ PARAMETER (ID = 16)
+ PARAMETER (PI = 3.14159 26535 89793 24D0)
+ PARAMETER (Z10 = 10)
+ PARAMETER (CA = Z10**(-ID/2), CB = Z10**(-(ID+2)))
+
+ IF(X .EQ. 0) THEN
+ H=0
+ ELSEIF(AKP .EQ. 0) THEN
+#if defined(CERNLIB_DOUBLE)
+ H=DASINH(X)
+#endif
+#if !defined(CERNLIB_DOUBLE)
+ H=ASINH(X)
+#endif
+ ELSE
+ Y=ABS(1/X)
+ YKP=ABS(AKP)
+ XM=1
+ L=0
+ 1 E=XM*YKP
+ G=XM
+ XM=YKP+XM
+ Y=-E/Y+Y
+ IF(Y .EQ. 0) Y=SQRT(E)*CB
+ IF(ABS(G-YKP) .GT. CA*G) THEN
+ YKP=2*SQRT(E)
+ L=2*L
+ IF(Y .LT. 0) L=L+1
+ GO TO 1
+ ENDIF
+ IF(Y .LT. 0) L=L+1
+ E=(ATAN(XM/Y)+PI*L)/XM
+ IF(X .LT. 0) E=-E
+ H=E
+ ENDIF
+#if defined(CERNLIB_DOUBLE)
+ DELI1=H
+#endif
+#if !defined(CERNLIB_DOUBLE)
+ RELI1=H
+#endif
+ RETURN
+ END