Go to the documentation of this file.00001
00002 FUNCTION ALNREL (X)
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 DIMENSION ALNRCS(23)
00035 LOGICAL FIRST
00036 SAVE ALNRCS, NLNREL, XMIN, FIRST
00037 DATA ALNRCS( 1) / 1.0378693562 743770E0 /
00038 DATA ALNRCS( 2) / -.1336430150 4908918E0 /
00039 DATA ALNRCS( 3) / .0194082491 35520563E0 /
00040 DATA ALNRCS( 4) / -.0030107551 12753577E0 /
00041 DATA ALNRCS( 5) / .0004869461 47971548E0 /
00042 DATA ALNRCS( 6) / -.0000810548 81893175E0 /
00043 DATA ALNRCS( 7) / .0000137788 47799559E0 /
00044 DATA ALNRCS( 8) / -.0000023802 21089435E0 /
00045 DATA ALNRCS( 9) / .0000004164 04162138E0 /
00046 DATA ALNRCS(10) / -.0000000735 95828378E0 /
00047 DATA ALNRCS(11) / .0000000131 17611876E0 /
00048 DATA ALNRCS(12) / -.0000000023 54670931E0 /
00049 DATA ALNRCS(13) / .0000000004 25227732E0 /
00050 DATA ALNRCS(14) / -.0000000000 77190894E0 /
00051 DATA ALNRCS(15) / .0000000000 14075746E0 /
00052 DATA ALNRCS(16) / -.0000000000 02576907E0 /
00053 DATA ALNRCS(17) / .0000000000 00473424E0 /
00054 DATA ALNRCS(18) / -.0000000000 00087249E0 /
00055 DATA ALNRCS(19) / .0000000000 00016124E0 /
00056 DATA ALNRCS(20) / -.0000000000 00002987E0 /
00057 DATA ALNRCS(21) / .0000000000 00000554E0 /
00058 DATA ALNRCS(22) / -.0000000000 00000103E0 /
00059 DATA ALNRCS(23) / .0000000000 00000019E0 /
00060 DATA FIRST /.TRUE./
00061
00062 IF (FIRST) THEN
00063 NLNREL = INITS (ALNRCS, 23, 0.1*R1MACH(3))
00064 XMIN = -1.0 + SQRT(R1MACH(4))
00065 ENDIF
00066 FIRST = .FALSE.
00067
00068 IF (X .LE. (-1.0)) CALL XERMSG ('SLATEC', 'ALNREL', 'X IS LE -1',
00069 + 2, 2)
00070 IF (X .LT. XMIN) CALL XERMSG ('SLATEC', 'ALNREL',
00071 + 'ANSWER LT HALF PRECISION BECAUSE X TOO NEAR -1', 1, 1)
00072
00073 IF (ABS(X).LE.0.375) ALNREL = X*(1. -
00074 1 X*CSEVL (X/.375, ALNRCS, NLNREL))
00075 IF (ABS(X).GT.0.375) ALNREL = LOG (1.0+X)
00076
00077 RETURN
00078 END