36 SAVE alnrcs, nlnrel, xmin, first
37 DATA alnrcs( 1) / 1.0378693562 743770e0 /
38 DATA alnrcs( 2) / -.1336430150 4908918e0 /
39 DATA alnrcs( 3) / .0194082491 35520563e0 /
40 DATA alnrcs( 4) / -.0030107551 12753577e0 /
41 DATA alnrcs( 5) / .0004869461 47971548e0 /
42 DATA alnrcs( 6) / -.0000810548 81893175e0 /
43 DATA alnrcs( 7) / .0000137788 47799559e0 /
44 DATA alnrcs( 8) / -.0000023802 21089435e0 /
45 DATA alnrcs( 9) / .0000004164 04162138e0 /
46 DATA alnrcs(10) / -.0000000735 95828378e0 /
47 DATA alnrcs(11) / .0000000131 17611876e0 /
48 DATA alnrcs(12) / -.0000000023 54670931e0 /
49 DATA alnrcs(13) / .0000000004 25227732e0 /
50 DATA alnrcs(14) / -.0000000000 77190894e0 /
51 DATA alnrcs(15) / .0000000000 14075746e0 /
52 DATA alnrcs(16) / -.0000000000 02576907e0 /
53 DATA alnrcs(17) / .0000000000 00473424e0 /
54 DATA alnrcs(18) / -.0000000000 00087249e0 /
55 DATA alnrcs(19) / .0000000000 00016124e0 /
56 DATA alnrcs(20) / -.0000000000 00002987e0 /
57 DATA alnrcs(21) / .0000000000 00000554e0 /
58 DATA alnrcs(22) / -.0000000000 00000103e0 /
59 DATA alnrcs(23) / .0000000000 00000019e0 /
63 nlnrel =
inits(alnrcs, 23, 0.1*r1mach(3))
64 xmin = -1.0 +
sqrt(r1mach(4))
68 IF (x .LE. (-1.0)) CALL
xermsg(
'SLATEC',
'ALNREL',
'X IS LE -1',
70 IF (x .LT. xmin) CALL
xermsg(
'SLATEC',
'ALNREL',
71 +
'ANSWER LT HALF PRECISION BECAUSE X TOO NEAR -1', 1, 1)
74 1 x*
csevl(x/.375, alnrcs, nlnrel))
function inits(OS, NOS, ETA)
std::string dimension(void) const
octave_value log(void) const
subroutine xermsg(LIBRAR, SUBROU, MESSG, NERR, LEVEL)
octave_value sqrt(void) const