37 SAVE algmcs, nalgm, xbig, xmax, first
38 DATA algmcs( 1) / .1666389480 45186e0 /
39 DATA algmcs( 2) / -.0000138494 817606e0 /
40 DATA algmcs( 3) / .0000000098 108256e0 /
41 DATA algmcs( 4) / -.0000000000 180912e0 /
42 DATA algmcs( 5) / .0000000000 000622e0 /
43 DATA algmcs( 6) / -.0000000000 000003e0 /
47 nalgm =
inits(algmcs, 6, r1mach(3))
48 xbig = 1.0/
sqrt(r1mach(3))
49 xmax =
exp(
min(
log(r1mach(2)/12.0), -
log(12.0*r1mach(1))) )
53 IF (x .LT. 10.0) CALL
xermsg(
'SLATEC',
'R9LGMC',
54 +
'X MUST BE GE 10', 1, 2)
55 IF (x.GE.xmax) go to 20
58 IF (x.LT.xbig)
r9lgmc =
csevl(2.0*(10./x)**2-1., algmcs, nalgm)/x
62 CALL
xermsg(
'SLATEC',
'R9LGMC',
'X SO BIG R9LGMC UNDERFLOWS', 2,
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
charNDArray min(char d, const charNDArray &m)