 Testing nextafter 
 Double precision MACHAR constants
ibeta = 2
it    = 53
irnd  = 5
ngrd  = 0
machep = -52
negep = -53
iexp = 11
minexp = -1022
maxexp = 1024
eps      2.2204460492503131e-16  3CB00000         0 
epsneg   1.1102230246251565e-16  3CA00000         0 
xmin    2.2250738585072014e-308    100000         0 
xmax    1.7976931348623157e+308  7FEFFFFF  FFFFFFFF 
 
 Tests with moderate numbers 
 
yy                 =   2.2204460492503131e-16  3CB00000         0 
zz                 =   1.1102230246251565e-16  3CA00000         0 
nextafter(yy,zz)   =   2.2204460492503128e-16  3CAFFFFF  FFFFFFFF 
nextafter(-yy,zz)  =  -2.2204460492503128e-16  BCAFFFFF  FFFFFFFF 
 
n = (long int) logb(yy)  = -52 
scalb(yy,-n)       =   1.0000000000000000e+00  3FF00000         0 
n = (long int) logb(-yy) = -52 
scalb(-yy,-n)      =  -1.0000000000000000e+00  BFF00000         0 
 
yy                 =   1.9999999999999998e+00  3FFFFFFF  FFFFFFFF 
zz                 =   4.0000000000000000e+00  40100000         0 
nextafter(yy,zz)   =   2.0000000000000000e+00  40000000         0 
nextafter(-yy,-zz) =  -2.0000000000000000e+00  C0000000         0 
 
n = (long int) logb(yy)  = 0 
scalb(yy,-n)       =   1.9999999999999998e+00  3FFFFFFF  FFFFFFFF 
n = (long int) logb(-yy) = 0 
scalb(-yy,-n)      =  -1.9999999999999998e+00  BFFFFFFF  FFFFFFFF 
 
yy                 =   2.0000000000000000e+00  40000000         0 
zz                 =   0.0000000000000000e+00         0         0 
nextafter(yy,zz)   =   1.9999999999999998e+00  3FFFFFFF  FFFFFFFF 
nextafter(-yy,zz)  =  -1.9999999999999998e+00  BFFFFFFF  FFFFFFFF 
 
n = (long int) logb(yy)  = 1 
scalb(yy,-n)       =   1.0000000000000000e+00  3FF00000         0 
n = (long int) logb(-yy) = 1 
scalb(-yy,-n)      =  -1.0000000000000000e+00  BFF00000         0 
 
 Tests near smallest positive number 
 
yy                 =   0.0000000000000000e+00         0         0 
zz                 =   1.0000000000000000e+00  3FF00000         0 
nextafter(yy,zz)   =  4.9406564584124654e-324         0         1 
nextafter(-yy,zz)  =  4.9406564584124654e-324         0         1 
nextafter(-yy,-zz) = -4.9406564584124654e-324  80000000         1 
 
yy                 =  4.9406564584124654e-324         0         1 
zz                 = -4.9406564584124654e-324  80000000         1 
nextafter(yy,zz)   =   0.0000000000000000e+00         0         0 
nextafter(-yy,zz)  = -4.9406564584124654e-324  80000000         1 
nextafter(-yy,-zz) =  -0.0000000000000000e+00  80000000         0 
copysign(-0.0,1.0) =   0.0000000000000000e+00         0         0 
copysign(0.0,-1.0) =  -0.0000000000000000e+00  80000000         0 
 
n = (long int) logb(yy)  = -1074 
scalb(yy,-n)       =   1.0000000000000000e+00  3FF00000         0 
n = (long int) logb(-yy) = -1074 
scalb(-yy,-n)      =  -1.0000000000000000e+00  BFF00000         0 
 
tt                 =  5.4347221042537120e-323         0         B 
scalb(tt,-1)       =  2.9643938750474793e-323         0         6 
tt * 0.5           =  2.9643938750474793e-323         0         6 
scalb(tt,-2)       =  1.4821969375237396e-323         0         3 
tt * 0.25          =  1.4821969375237396e-323         0         3 
scalb(tt,-3)       =  4.9406564584124654e-324         0         1 
tt * 0.125         =  4.9406564584124654e-324         0         1 
scalb(tt,3)        =  4.3477776834029696e-322         0        58 
 
yy                 =  4.9406564584124654e-324         0         1 
zz                 =   1.0000000000000000e+00  3FF00000         0 
nextafter(yy,zz)   =  9.8813129168249309e-324         0         2 
nextafter(-yy,zz)  =  -0.0000000000000000e+00  80000000         0 
 
yy                 =  9.8813129168249309e-324         0         2 
zz                 =   1.0000000000000000e+00  3FF00000         0 
nextafter(yy,zz)   =  1.4821969375237396e-323         0         3 
nextafter(-yy,zz)  = -4.9406564584124654e-324  80000000         1 
 
n = (long int) logb(yy)  = -1073 
scalb(yy,-n)       =   1.0000000000000000e+00  3FF00000         0 
n = (long int) logb(-yy) = -1073 
scalb(-yy,-n)      =  -1.0000000000000000e+00  BFF00000         0 
 
 Test near largest positive number 
 
yy                 =  1.7976931348623157e+308  7FEFFFFF  FFFFFFFF 
zz                 =   1.0000000000000000e+00  3FF00000         0 
nextafter(yy,zz)   =  1.7976931348623155e+308  7FEFFFFF  FFFFFFFE 
nextafter(-yy,zz)  = -1.7976931348623155e+308  FFEFFFFF  FFFFFFFE 
copysign(yy,-1.0)  = -1.7976931348623157e+308  FFEFFFFF  FFFFFFFF 
copysign(-yy,1.0)  =  1.7976931348623157e+308  7FEFFFFF  FFFFFFFF 
 
n = (long int) logb(yy)  = 1023 
scalb(yy,-n)       =   1.9999999999999998e+00  3FFFFFFF  FFFFFFFF 
n = (long int) logb(-yy) = 1023 
scalb(-yy,-n)      =  -1.9999999999999998e+00  BFFFFFFF  FFFFFFFF 
 
 Tests with infinity 
 
yy                 =  1.7976931348623157e+308  7FEFFFFF  FFFFFFFF 
zz                 =                 Infinity  7FF00000         0 
copysign(Inf,-1.0) =                -Infinity  FFF00000         0 
copysign(-Inf,Inf) =                 Infinity  7FF00000         0 
nextafter(yy,zz)   =                 Infinity  7FF00000         0 
nextafter(zz,yy)   =  1.7976931348623157e+308  7FEFFFFF  FFFFFFFF 
nextafter(-zz,yy)  = -1.7976931348623157e+308  FFEFFFFF  FFFFFFFF 
logb(zz)           =                 Infinity  7FF00000         0 
 
 Tests with NaN 
 
yy                 =                      NaN  7FF00004         0 
zz                 =  1.7976931348623157e+308  7FEFFFFF  FFFFFFFF 
Using a NaN returns                       NaN  7FF00004         0 
copysign(NaN,-1.0) =                     -NaN  FFF00004         0 
copysign(-NaN,NaN) =                      NaN  7FF00004         0 
nextafter(yy,zz)   =                      NaN  7FF80004         0 
nextafter(-yy,zz)  =                     -NaN  FFF80004         0 
nextafter(zz,yy)   =                      NaN  7FF80004         0 
nextafter(-zz,yy)  =                      NaN  7FF80004         0 
logb(yy)           =                      NaN  7FF00004         0 
scalb(yy,10)       =                      NaN  7FF00004         0 
 
 Special test with 0.0 
 
yy                 =   0.0000000000000000e+00         0         0 
scalb(yy,10)       =   0.0000000000000000e+00         0         0 
logb(yy)           =                -Infinity  FFF00000         0 
