# Begin of automatic generation

# asin
Test "asin (-0.5)":
float: 2
ifloat: 2
Test "asin (0.5)":
float: 2
ifloat: 2
Test "asin (0.7)":
double: 1
float: 2
idouble: 1
ifloat: 2

# atan2
Test "atan2 (-0.7, -1.0)":
float: 3
ifloat: 3
Test "atan2 (0.7, -1.0)":
float: 3
ifloat: 3
Test "atan2 (1.4, -0.93)":
float: 4
ifloat: 4

# atanh
Test "atanh (0.7)":
double: 1
idouble: 1

# cabs
Test "cabs (-0.7 + 12.4 i)":
float: 1
ifloat: 1
Test "cabs (-0.7 - 12.4 i)":
float: 1
ifloat: 1
Test "cabs (-12.4 + 0.7 i)":
float: 1
ifloat: 1
Test "cabs (-12.4 - 0.7 i)":
float: 1
ifloat: 1
Test "cabs (0.7 + 1.2 i)":
double: 1
idouble: 1
Test "cabs (0.7 + 12.4 i)":
float: 1
ifloat: 1

# cacos
Test "Real part of: cacos (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: cacos (0.7 + 1.2 i)":
float: 1
ifloat: 1

# cacosh
Test "Real part of: cacosh (-2 - 3 i)":
double: 1
float: 7
idouble: 1
ifloat: 7
Test "Imaginary part of: cacosh (-2 - 3 i)":
double: 1
float: 3
idouble: 1
ifloat: 3
Test "Real part of: cacosh (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1

# casin
Test "Real part of: casin (0.7 + 1.2 i)":
double: 3
float: 2
idouble: 3
ifloat: 2
Test "Imaginary part of: casin (0.7 + 1.2 i)":
float: 1
ifloat: 1

# casinh
Test "Real part of: casinh (-2 - 3 i)":
double: 5
float: 1
idouble: 5
ifloat: 1
Test "Imaginary part of: casinh (-2 - 3 i)":
double: 3
float: 6
idouble: 3
ifloat: 6
Test "Real part of: casinh (0.7 + 1.2 i)":
double: 1
idouble: 1
Test "Imaginary part of: casinh (0.7 + 1.2 i)":
float: 1
ifloat: 1

# catan
Test "Real part of: catan (-2 - 3 i)":
float: 3
ifloat: 3
Test "Imaginary part of: catan (-2 - 3 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Real part of: catan (0.7 + 1.2 i)":
float: 4
ifloat: 4
Test "Imaginary part of: catan (0.7 + 1.2 i)":
double: 1
idouble: 1

# catanh
Test "Real part of: catanh (-2 - 3 i)":
double: 4
idouble: 4
Test "Imaginary part of: catanh (-2 - 3 i)":
float: 4
ifloat: 4
Test "Real part of: catanh (0.7 + 1.2 i)":
float: 1
ifloat: 1
Test "Imaginary part of: catanh (0.7 + 1.2 i)":
double: 1
float: 6
idouble: 1
ifloat: 6

# cbrt
Test "cbrt (-27.0)":
double: 1
idouble: 1
Test "cbrt (0.970299)":
double: 1
idouble: 1

# ccos
Test "Imaginary part of: ccos (-2 - 3 i)":
float: 1
ifloat: 1
Test "Real part of: ccos (0.7 + 1.2 i)":
double: 1
idouble: 1
Test "Imaginary part of: ccos (0.7 + 1.2 i)":
double: 1
idouble: 1

# ccosh
Test "Real part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
Test "Imaginary part of: ccosh (-2 - 3 i)":
float: 1
ifloat: 1
Test "Real part of: ccosh (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: ccosh (0.7 + 1.2 i)":
double: 1
idouble: 1

# cexp
Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
float: 1
ifloat: 1
Test "Real part of: cexp (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: cexp (0.7 + 1.2 i)":
float: 1
ifloat: 1

# clog
Test "Imaginary part of: clog (-2 - 3 i)":
double: 1
float: 3
idouble: 1
ifloat: 3

# clog10
Test "Imaginary part of: clog10 (-0 + inf i)":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (-0 - inf i)":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (-2 - 3 i)":
double: 1
float: 5
idouble: 1
ifloat: 5
Test "Imaginary part of: clog10 (-3 + inf i)":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (-3 - inf i)":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (-inf + 0 i)":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (-inf + 1 i)":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (-inf - 0 i)":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (-inf - 1 i)":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (0 + inf i)":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (0 - inf i)":
float: 1
ifloat: 1
Test "Real part of: clog10 (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: clog10 (0.7 + 1.2 i)":
double: 1
idouble: 1
Test "Imaginary part of: clog10 (3 + inf i)":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (3 - inf i)":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (inf + inf i)":
float: 1
ifloat: 1
Test "Imaginary part of: clog10 (inf - inf i)":
float: 1
ifloat: 1

# cos
Test "cos (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "cos (M_PI_6l * 2.0)":
double: 1
float: 0.5
idouble: 1
ifloat: 0.5
Test "cos (M_PI_6l * 4.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "cos (pi/2)":
double: 0.2758
float: 0.3667
idouble: 0.2758
ifloat: 0.3667

# cpow
Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
double: 1
float: 4
idouble: 1
ifloat: 4
Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
float: 2
ifloat: 2
Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i)":
double: 1.1031
float: 1.5
idouble: 1.1031
ifloat: 1.5

# csin
Test "Imaginary part of: csin (0.7 + 1.2 i)":
float: 1
ifloat: 1

# csinh
Test "Imaginary part of: csinh (-2 - 3 i)":
double: 1
idouble: 1
Test "Real part of: csinh (0.7 + 1.2 i)":
float: 1
ifloat: 1
Test "Imaginary part of: csinh (0.7 + 1.2 i)":
float: 1
ifloat: 1

# csqrt
Test "Real part of: csqrt (-2 + 3 i)":
float: 1
ifloat: 1
Test "Real part of: csqrt (-2 - 3 i)":
float: 1
ifloat: 1
Test "Real part of: csqrt (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "Imaginary part of: csqrt (0.7 + 1.2 i)":
float: 1
ifloat: 1

# ctan
Test "Real part of: ctan (-2 - 3 i)":
double: 1
idouble: 1
Test "Real part of: ctan (0.7 + 1.2 i)":
float: 1
ifloat: 1
Test "Imaginary part of: ctan (0.7 + 1.2 i)":
double: 1
float: 1
idouble: 1
ifloat: 1

# ctanh
Test "Real part of: ctanh (-2 - 3 i)":
double: 1
float: 2
idouble: 1
ifloat: 2
Test "Imaginary part of: ctanh (0 + pi/4 i)":
float: 1
ifloat: 1
Test "Real part of: ctanh (0.7 + 1.2 i)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "Imaginary part of: ctanh (0.7 + 1.2 i)":
double: 2
float: 1
idouble: 2
ifloat: 1

# erfc
Test "erfc (0.7)":
double: 1
idouble: 1
Test "erfc (1.2)":
double: 2
float: 2
idouble: 2
ifloat: 2
Test "erfc (2.0)":
double: 1
idouble: 1
Test "erfc (4.1)":
double: 24
float: 12
idouble: 24
ifloat: 12

# exp10
Test "exp10 (-1)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "exp10 (0.7)":
float: 1
ifloat: 1
Test "exp10 (3)":
double: 6
float: 2
idouble: 6
ifloat: 2

# expm1
Test "expm1 (1)":
float: 1
ifloat: 1

# fmod
Test "fmod (-6.5, -2.3)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "fmod (-6.5, 2.3)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "fmod (6.5, -2.3)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "fmod (6.5, 2.3)":
double: 2
float: 1
idouble: 2
ifloat: 1

# hypot
Test "hypot (-0.7, -12.4)":
float: 1
ifloat: 1
Test "hypot (-0.7, 12.4)":
float: 1
ifloat: 1
Test "hypot (-12.4, -0.7)":
float: 1
ifloat: 1
Test "hypot (-12.4, 0.7)":
float: 1
ifloat: 1
Test "hypot (0.7, -12.4)":
float: 1
ifloat: 1
Test "hypot (0.7, 1.2)":
double: 1
idouble: 1
Test "hypot (0.7, 12.4)":
float: 1
ifloat: 1
Test "hypot (12.4, -0.7)":
float: 1
ifloat: 1
Test "hypot (12.4, 0.7)":
float: 1
ifloat: 1

# j0
Test "j0 (10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "j0 (2.0)":
float: 2
ifloat: 2
Test "j0 (8.0)":
float: 1
ifloat: 1

# j1
Test "j1 (10.0)":
float: 2
ifloat: 2
Test "j1 (2.0)":
double: 1
idouble: 1
Test "j1 (8.0)":
double: 1
idouble: 1

# jn
Test "jn (0, 10.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "jn (0, 2.0)":
float: 2
ifloat: 2
Test "jn (0, 8.0)":
float: 1
ifloat: 1
Test "jn (1, 10.0)":
float: 2
ifloat: 2
Test "jn (1, 2.0)":
double: 1
idouble: 1
Test "jn (1, 8.0)":
double: 1
idouble: 1
Test "jn (10, 0.1)":
double: 6
float: 4
idouble: 6
ifloat: 4
Test "jn (10, 0.7)":
double: 3
float: 1
idouble: 3
ifloat: 1
Test "jn (10, 10.0)":
double: 4
float: 3
idouble: 4
ifloat: 3
Test "jn (10, 2.0)":
float: 4
ifloat: 4
Test "jn (3, 0.1)":
double: 1
idouble: 1
Test "jn (3, 0.7)":
float: 1
ifloat: 1
Test "jn (3, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
Test "jn (3, 2.0)":
double: 1
float: 2
idouble: 1
ifloat: 2

# lgamma
Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "lgamma (1.2)":
double: 1
float: 2
idouble: 1
ifloat: 2

# log
Test "log (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1

# log10
Test "log10 (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "log10 (e)":
float: 1
ifloat: 1

# log1p
Test "log1p (-0.3)":
double: 1
float: 1
idouble: 1
ifloat: 1

# log2
Test "log2 (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1

# sincos
Test "sincos (0.7) extra output 2":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "sincos (M_PI_6l*2.0) extra output 1":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "sincos (M_PI_6l*2.0) extra output 2":
double: 1
float: 0.5
idouble: 1
ifloat: 0.5
Test "sincos (pi/2) extra output 2":
double: 0.2758
float: 0.3667
idouble: 0.2758
ifloat: 0.3667
Test "sincos (pi/6) extra output 2":
float: 1
ifloat: 1

# sinh
Test "sinh (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1

# tan
Test "tan (pi/4)":
double: 0.5
idouble: 0.5

# tanh
Test "tanh (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1

# tgamma
Test "tgamma (-0.5)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "tgamma (0.5)":
float: 1
ifloat: 1
Test "tgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1

# y0
Test "y0 (0.7)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "y0 (1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "y0 (1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "y0 (10.0)":
float: 1
ifloat: 1
Test "y0 (8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1

# y1
Test "y1 (0.1)":
double: 1
idouble: 1
Test "y1 (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "y1 (1.5)":
float: 1
ifloat: 1
Test "y1 (10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
Test "y1 (2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "y1 (8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2

# yn
Test "yn (0, 0.7)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "yn (0, 1.0)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "yn (0, 1.5)":
double: 2
float: 1
idouble: 2
ifloat: 1
Test "yn (0, 10.0)":
float: 1
ifloat: 1
Test "yn (0, 8.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (1, 0.1)":
double: 1
idouble: 1
Test "yn (1, 0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (1, 1.5)":
float: 1
ifloat: 1
Test "yn (1, 10.0)":
double: 3
float: 1
idouble: 3
ifloat: 1
Test "yn (1, 2.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (1, 8.0)":
double: 1
float: 2
idouble: 1
ifloat: 2
Test "yn (10, 0.1)":
double: 2
float: 2
idouble: 2
ifloat: 2
Test "yn (10, 0.7)":
double: 3
idouble: 3
Test "yn (10, 1.0)":
double: 1
idouble: 1
Test "yn (10, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (10, 2.0)":
double: 2
idouble: 2
Test "yn (3, 0.1)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (3, 0.7)":
double: 3
float: 1
idouble: 3
ifloat: 1
Test "yn (3, 10.0)":
double: 1
float: 1
idouble: 1
ifloat: 1
Test "yn (3, 2.0)":
double: 1
idouble: 1

# Maximal error of functions:
Function: "asin":
double: 1
float: 2
idouble: 1
ifloat: 2

Function: "atan2":
float: 4
ifloat: 4

Function: "atanh":
double: 1
idouble: 1

Function: "cabs":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: Real part of "cacos":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: Imaginary part of "cacos":
float: 1
ifloat: 1

Function: Real part of "cacosh":
double: 1
float: 7
idouble: 1
ifloat: 7

Function: Imaginary part of "cacosh":
double: 1
float: 3
idouble: 1
ifloat: 3

Function: Real part of "casin":
double: 3
float: 2
idouble: 3
ifloat: 2

Function: Imaginary part of "casin":
float: 1
ifloat: 1

Function: Real part of "casinh":
double: 5
float: 1
idouble: 5
ifloat: 1

Function: Imaginary part of "casinh":
double: 3
float: 6
idouble: 3
ifloat: 6

Function: Real part of "catan":
float: 4
ifloat: 4

Function: Imaginary part of "catan":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: Real part of "catanh":
double: 4
float: 1
idouble: 4
ifloat: 1

Function: Imaginary part of "catanh":
double: 1
float: 6
idouble: 1
ifloat: 6

Function: "cbrt":
double: 1
idouble: 1

Function: Real part of "ccos":
double: 1
idouble: 1

Function: Imaginary part of "ccos":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: Real part of "ccosh":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: Imaginary part of "ccosh":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: Real part of "cexp":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: Imaginary part of "cexp":
float: 1
ifloat: 1

Function: Imaginary part of "clog":
double: 1
float: 3
idouble: 1
ifloat: 3

Function: Real part of "clog10":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: Imaginary part of "clog10":
double: 1
float: 5
idouble: 1
ifloat: 5

Function: "cos":
double: 2
float: 1
idouble: 2
ifloat: 1

Function: Real part of "cpow":
double: 1
float: 4
idouble: 1
ifloat: 4

Function: Imaginary part of "cpow":
double: 1.1031
float: 2
idouble: 1.1031
ifloat: 2

Function: Imaginary part of "csin":
float: 1
ifloat: 1

Function: Real part of "csinh":
float: 1
ifloat: 1

Function: Imaginary part of "csinh":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: Real part of "csqrt":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: Imaginary part of "csqrt":
float: 1
ifloat: 1

Function: Real part of "ctan":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: Imaginary part of "ctan":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: Real part of "ctanh":
double: 2
float: 2
idouble: 2
ifloat: 2

Function: Imaginary part of "ctanh":
double: 2
float: 1
idouble: 2
ifloat: 1

Function: "erfc":
double: 24
float: 12
idouble: 24
ifloat: 12

Function: "exp10":
double: 6
float: 2
idouble: 6
ifloat: 2

Function: "expm1":
float: 1
ifloat: 1

Function: "fmod":
double: 2
float: 1
idouble: 2
ifloat: 1

Function: "hypot":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: "j0":
double: 2
float: 2
idouble: 2
ifloat: 2

Function: "j1":
double: 1
float: 2
idouble: 1
ifloat: 2

Function: "jn":
double: 6
float: 4
idouble: 6
ifloat: 4

Function: "lgamma":
double: 1
float: 2
idouble: 1
ifloat: 2

Function: "log":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: "log10":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: "log1p":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: "log2":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: "sincos":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: "sinh":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: "tan":
double: 0.5
idouble: 0.5

Function: "tanh":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: "tgamma":
double: 1
float: 1
idouble: 1
ifloat: 1

Function: "y0":
double: 2
float: 1
idouble: 2
ifloat: 1

Function: "y1":
double: 3
float: 2
idouble: 3
ifloat: 2

Function: "yn":
double: 3
float: 2
idouble: 3
ifloat: 2

# end of automatic generation
