# Some test cases adapted or taken from glibc.
acos 0
acos -0
acos 1
acos -1
acos 0.5
acos -0.5
acos 0.75
acos 2e-17
acos 0.0625

cos 0
cos 1
cos 2
cos 3
cos 4
cos 5
cos 6
cos 7
cos 8
cos 9
cos 10
cos 3.14
cos 11e-18
cos 19e-18
cos 199e-18
cos 1.57079697
cos -1.57079697

sin 0
sin 1
sin 2
sin 3
sin 4
sin 5
sin 6
sin 7
sin 8
sin 9
sin 10
sin 0
sin 3.14

exp 0
exp -0
exp 1
exp 2
exp 3
exp 0.75
exp 50.0
exp 88.72269439697265625
exp 709.75
exp 1000.0
exp 710
exp -1234
exp 7.104758600739439421412058095484099e+02
exp 1e5
exp max
exp -7.4444006192138124e+02
exp -7.478834155849699527607299387454987e+02
exp -max
exp -11342.8125
exp -1.135513711193302405888516659615561e+04
exp -7.084134674072265625e+02
exp -7.08428070068359375e+02
exp -7.084029388427734375e+02
exp -7.084029388427734375e+02
exp -7.08413543701171875e+02
exp -7.0842193603515625e+02
exp -7.08417449951171875e+02
exp -7.084441375732421875e+02
exp -7.084123992919921875e+02
exp -7.0862353515625e+02
exp -7.08672119140625e+02
exp -7.08845947265625e+02
exp 1e-3
exp -1e-3
exp 1e-6
exp -1e-6
exp 1e-9
exp -1e-9
exp 1e-12
exp -1e-12
exp 1e-15
exp -1e-15
exp 1e-18
exp -1e-18
exp 1e-30
exp -1e-30
exp 1e-180
exp -1e-180
exp 1e-3333
exp -1e-3333
exp 8.872283172607421875e+01
exp 8.872283935546875e+01
exp -8.73365478515625e+01
exp -8.733654022216796875e+01
exp 7097827128933839730962063185870647e-31
exp 0
exp -0
exp 1
exp 2
exp 3
exp 0.75
exp 50.0
exp 88.72269439697265625
exp 709.75
exp NaN
exp Inf
exp -Inf
exp 14149
exp -14144
exp 2.3025
exp 1.151
exp 1.152
exp 1.1512
exp 1.1519
'exp sNaN NaN
exp -3.682289518100338225623039593608091e6132

log 0.75
log 1
log 2.718281828459045235360287471352662
log 3.141592653589793238462643383279503
log 2
log 10
log Nan
'log sNaN NaN
log inf
log 0
log -1
log 9.998098361200220e11
log 7.998098361200220e11
log 9.99999999999999999999999999999999e-6144

log10 1
log10 0.1
log10 0.01
log10 0.001
log10 10
log10 100
log10 1000
log10 1.1e-09
log10 2.718281828459045235360287471352662
log10 3.141592653589793238462643383279503
log10 0.75
log10 NaN
'log10 sNaN NaN
log10 Inf
log10 0.0
log10 -1.0

log1p 0
log1p -0
log1p -0.25
log1p -0.875
log1p 1.718281828459045235360287471352662
log1p 3.141592653589793238462643383279503
log1p 2
log1p 10
log1p NaN
'log1p sNaN NaN
log1p Inf
log1p -1.0
log1p -2.0

# Handle the common IEEE 754-2019 special cases of pow listed in 9.2.1.
pow 2 0
pow 2 -0
pow 0 -1
pow -0 -1
pow 0 -Inf
pow -0 -Inf
pow 0 Inf
pow -0 Inf
pow 0 3
pow -0 3
pow -1 Inf
pow -1 -Inf
pow 1 NaN
pow 1 3
pow 0.9 Inf
pow 1.1 Inf
pow -1.1 Inf
pow 0.9 -Inf
pow 1.1 -Inf
pow -1.1 -Inf
pow Inf -0.1
pow Inf 0.1
pow -Inf -1
pow -Inf 3
pow -Inf -4
pow -Inf 4

pow 2 -1279
pow 2 -1278.9
pow 1e-398 -1e-398
pow 1.2345678 1.2345678
pow 1.234567890123456 1.234567890123456
pow 3.234567890123456 0.2345678901234567
pow 1.000000000000001 -2147483648
pow 1.000000000000001 -4294967296
# LONG_MAX+1, the test suite will round up for decimal32/64.
pow 1.000000000000001 9223372036854775807
pow 3.19034302541825200e13 -1.55493546491461400e00
pow 1.08507545139287500e04 -1.98586216955218000e00
pow 1.96877857924400000e09 -5.38711002611281000e01
pow 4.98084050185682800e00  8.31505582817438000e01
pow 2.64943091197714100e09  6.31392470927920100e01
pow 3.41000000000000000e01  1.95000000000000000e01
pow 9.99509773402153700e14 -8.07157546418230000e-01
pow 9.99809836120022000e11 -6.23247928248448100e-01
pow 2 1255
pow 2 1265
pow 2 -9.999999999999999e-01
pow 2 -1
pow 2 -1.000000000000001
pow 2 5.203966097332200e384
pow 2 4.611686018427389e18
pow 2 4.611686018427388e18
pow 2 1e17

nextafter -min -1
nextafter -min 0
nextafter min 1
nextafter min 0
nextafter min min
nextafter max max
nextafter min -inf
nextafter min inf
nextafter -min -inf
nextafter -min inf
nextafter -2e-398 -1
nextafter -max max
nextafter inf -inf
nextafter -inf inf
nextafter 0 -0
nextafter 0 inf
nextafter 0 -inf
nextafter NaN NaN
nextafter 0 NaN
nextafter NaN 0
nextafter 1 0
nextafter -1 0
nextafter -1 -2
nextafter 1234567 -inf
nextafter 1234567 +inf
nextafter -1234567 -inf
nextafter -1234567 +inf

nexttoward -min -1
nexttoward -min 0
nexttoward min 1
nexttoward min 0
nexttoward min min
nexttoward max max
nexttoward min -inf
nexttoward min inf
nexttoward -min -inf
nexttoward -min inf
nexttoward -2e-398 -1
nexttoward -max max
nexttoward inf -inf
nexttoward -inf inf
nexttoward 0 -0
nexttoward 0 inf
nexttoward 0 -inf
nexttoward NaN NaN
nexttoward 0 NaN
nexttoward NaN 0
nexttoward 1 0
nexttoward -1 0
nexttoward -1 -2
nexttoward 1234567 -inf
nexttoward 1234567 +inf
nexttoward -1234567 -inf
nexttoward -1234567 +inf
nexttoward 1234567 1234567.00000000000000000000001
nexttoward 1234567.000001 1234567.00000000000000000000001
nexttoward 1234567.000001 1234566.99999999999999999999999

ilogb inf
ilogb -inf
ilogb NaN
ilogb 0
ilogb -0
ilogb 1.0
ilogb 10.76
ilogb 1024.0
ilogb 20000.001
ilogb 400032.003
ilogb 1E32
ilogb 1.56E32
ilogb -1.56E32
ilogb 1E-32
ilogb 1.54E-32
ilogb -1.54E-32
ilogb 156E32
ilogb -156E32
ilogb 154E-32
ilogb -154E-32
ilogb 1.542332E124
ilogb -1.542332E124
ilogb 1.542332E-124
ilogb -1.542332E-124
ilogb 15423.32E124
ilogb -15423.32E124
ilogb 15423.32E-124
ilogb -15423.32E-124
ilogb 1.9433E1024
ilogb -1.9433E1024
ilogb 1.9433E-1024
ilogb -1.9433E-1024
ilogb 194338E1024
ilogb -194338E1024
ilogb 194338E-1024
ilogb -194338E-1024
ilogb 1.00000000000000000E-01
ilogb 9.99999999999999900E-02
ilogb 9.99999999999999800E-02
ilogb 9.99999999999999700E-02
ilogb 9.99999999999999600E-02
ilogb 9.99999999999999500E-02
ilogb 9.99999999999999400E-02
ilogb 9.99999999999999300E-02
ilogb 9.99999999999999200E-02
ilogb 9.99999999999999100E-02
ilogb 9.99999999999999000E-02
ilogb 9.99999999999998900E-02
ilogb 9.99999999999998800E-02
ilogb 9.99999999999998700E-02
ilogb 9.99999999999998600E-02
ilogb 9.99999999999998500E-02
ilogb min
ilogb max
ilogb -min
ilogb -max

llogb inf
llogb -inf
llogb NaN
llogb 0
llogb -0
llogb 1.0
llogb 10.76
llogb 1024.0
llogb 20000.001
llogb 400032.003
llogb 1E32
llogb 1.56E32
llogb -1.56E32
llogb 1E-32
llogb 1.54E-32
llogb -1.54E-32
llogb 156E32
llogb -156E32
llogb 154E-32
llogb -154E-32
llogb 1.542332E124
llogb -1.542332E124
llogb 1.542332E-124
llogb -1.542332E-124
llogb 15423.32E124
llogb -15423.32E124
llogb 15423.32E-124
llogb -15423.32E-124
llogb 1.9433E1024
llogb -1.9433E1024
llogb 1.9433E-1024
llogb -1.9433E-1024
llogb 194338E1024
llogb -194338E1024
llogb 194338E-1024
llogb -194338E-1024
llogb 1.00000000000000000E-01
llogb 9.99999999999999900E-02
llogb 9.99999999999999800E-02
llogb 9.99999999999999700E-02
llogb 9.99999999999999600E-02
llogb 9.99999999999999500E-02
llogb 9.99999999999999400E-02
llogb 9.99999999999999300E-02
llogb 9.99999999999999200E-02
llogb 9.99999999999999100E-02
llogb 9.99999999999999000E-02
llogb 9.99999999999998900E-02
llogb 9.99999999999998800E-02
llogb 9.99999999999998700E-02
llogb 9.99999999999998600E-02
llogb 9.99999999999998500E-02
llogb min
llogb max
llogb -min
llogb -max

exp2 1255
exp2 1265
exp2 -9.999999999999999e-01
exp2 -1
exp2 -1.000000000000001
exp2 5.203966097332200e384
exp2 4.611686018427389e18
exp2 4.611686018427388e18
exp2 1e17

fmod Inf Inf
fmod 1 Inf
fmod Inf 1
fmod NaN NaN
fmod 1 NaN
fmod NaN 1
fmod 1.234567 1.234567
fmod 1.234567 0
fmod 1.234567 1e1
fmod 1e20 1.234567
fmod 1e20 1.234567891234567891234567891234567
fmod 9e20 1.234567891234567891234567891234567
fmod 9.000000000000000000000000000000001e20 1.234567891234567891234567891234567
fmod 9.000000000000000000000000000000001e20 9.000000000000000000000000000000002
fmod 9.000000000000000000000000000000001e6115 9.000000000000000000000000000000002
fmod -9.000000000000000000000000000000001e6115 9.000000000000000000000000000000002
fmod -9.000000000000000000000000000000001e6115 9.000000000000000000000000000000002e-6115
fmod 1e20 1234e-6176
fmod 1.234567891234567891234567891234567 1234e-6176
