about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2002-08-31 08:22:35 +0000
committerAndreas Jaeger <aj@suse.de>2002-08-31 08:22:35 +0000
commitdf5e9fa69fc8dc746d5a4faeba894d0e153c3d7c (patch)
tree28c7ae7f65e3282c368084d8169547fa777b4ddd
parentc816e074135d0de7dfd9e22e8e2bd4112736ae00 (diff)
downloadglibc-df5e9fa69fc8dc746d5a4faeba894d0e153c3d7c.tar.gz
glibc-df5e9fa69fc8dc746d5a4faeba894d0e153c3d7c.tar.xz
glibc-df5e9fa69fc8dc746d5a4faeba894d0e153c3d7c.zip
Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Add ulps for float and long
	double tests.
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps1431
2 files changed, 1375 insertions, 59 deletions
diff --git a/ChangeLog b/ChangeLog
index 248d4a7979..df3475e76c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2002-08-31  Andreas Jaeger  <aj@suse.de>
 
+	* sysdeps/x86_64/fpu/libm-test-ulps: Add ulps for float and long
+	double tests.
+
 	* sysdeps/unix/sysv/linux/x86_64/Makefile (sysdep_routines): Add
 	__start_context.
 
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 491e2d0e3b..3676b4567c 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -1,6 +1,14 @@
 # Begin of automatic generation
 
+# acos
+Test "acos (-0) == pi/2":
+double: 707423775202844
+idouble: 707423775202844
+
 # asin
+Test "asin (-0) == -0":
+double: 2570638124657944
+idouble: 2570638124657944
 Test "asin (-0.5) == -pi/6":
 ildouble: 1
 ldouble: 1
@@ -15,22 +23,66 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "asin (0.75) == 0.848062078981481008052944338998418080":
+ildouble: 1
+ldouble: 1
 Test "asin (1.0) == pi/2":
 ildouble: 1
 ldouble: 1
 
 # asinh
+Test "asinh (-0) == -0":
+double: 534245869295085
+idouble: 534245869295085
 Test "asinh (0.7) == 0.652666566082355786":
 ildouble: 15
 ldouble: 15
 
+# atan
+Test "atan (-0) == -0":
+double: 966480751356276
+idouble: 966480751356276
+
 # atan2
+Test "atan2 (-0, -0) == -pi":
+double: 884279719003555
+idouble: 884279719003555
+Test "atan2 (-0, -1) == -pi":
+double: 1237991606604977
+idouble: 1237991606604977
+Test "atan2 (-0, 0) == -0":
+double: 2570638124657944
+idouble: 2570638124657944
+Test "atan2 (-0, 1) == -0":
+double: 966480751356276
+idouble: 966480751356276
 Test "atan2 (-0.7, -1.0) == -2.530866689200584621918884506789267":
 float: 3
 ifloat: 3
+Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+float: 3
+ifloat: 3
+Test "atan2 (-1, -0) == -pi/2":
+double: 353711887601422
+idouble: 353711887601422
+Test "atan2 (-1, inf) == -0":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "atan2 (0, -0) == pi":
+double: 707423775202844
+idouble: 707423775202844
 Test "atan2 (0.7, -1.0) == 2.530866689200584621918884506789267":
 float: 3
 ifloat: 3
+Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+float: 3
+ifloat: 3
+Test "atan2 (1, -0) == pi/2":
+double: 353711887601422
+idouble: 353711887601422
+Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
+float: 1
+ifloat: 1
 Test "atan2 (1.4, -0.93) == 2.1571487668237843754887415992772736":
 float: 4
 ifloat: 4
@@ -41,6 +93,11 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "atanh (0.75) == 0.972955074527656652552676371721589865":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
 
 # cabs
 Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
@@ -65,6 +122,42 @@ float: 1
 ifloat: 1
 
 # cacos
+Test "Real part of: cacos (-0 + 0 i) == pi/2 - 0 i":
+double: 707423775202844
+idouble: 707423775202844
+Test "Imaginary part of: cacos (-0 + 0 i) == pi/2 - 0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Real part of: cacos (-0 - 0 i) == pi/2 + 0.0 i":
+double: 5878111878616268
+idouble: 5878111878616268
+Test "Imaginary part of: cacos (-0 - 0 i) == pi/2 + 0.0 i":
+double: 160744846075862
+idouble: 160744846075862
+Test "Real part of: cacos (-10.0 + inf i) == pi/2 - inf i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Real part of: cacos (-10.0 - inf i) == pi/2 + inf i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Real part of: cacos (-2 - 3 i) == 2.1414491111159960199416055713254211 + 1.9833870299165354323470769028940395 i":
+double: 1324699733585463
+idouble: 1324699733585463
+Test "Imaginary part of: cacos (-2 - 3 i) == 2.1414491111159960199416055713254211 + 1.9833870299165354323470769028940395 i":
+double: 3346157649749858
+idouble: 3346157649749858
+Test "Imaginary part of: cacos (0 + 0 i) == pi/2 - 0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Imaginary part of: cacos (0 - 0 i) == pi/2 + 0.0 i":
+double: 3969353758075411
+idouble: 3969353758075411
+Test "Real part of: cacos (0.1 + inf i) == pi/2 - inf i":
+double: 45035996273705
+idouble: 45035996273705
+Test "Real part of: cacos (0.1 - inf i) == pi/2 + inf i":
+double: 45035996273705
+idouble: 45035996273705
 Test "Real part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
 double: 1
 float: 1
@@ -77,8 +170,25 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+double: 7980477666938039
+idouble: 7980477666938039
+Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
+double: 5774891653287013
+idouble: 5774891653287013
+ildouble: 2
+ldouble: 2
 
 # cacosh
+Test "Imaginary part of: cacosh (-0 + 0 i) == 0.0 + pi/2 i":
+double: 707423775202844
+idouble: 707423775202844
+Test "Real part of: cacosh (-0 - 0 i) == 0.0 - pi/2 i":
+double: 5630948719938435
+idouble: 5630948719938435
+Test "Imaginary part of: cacosh (-0 - 0 i) == 0.0 - pi/2 i":
+double: 11729960014068772
+idouble: 11729960014068772
 Test "Real part of: cacosh (-2 - 3 i) == -1.9833870299165354323470769028940395 + 2.1414491111159960199416055713254211 i":
 double: 1
 float: 7
@@ -93,6 +203,24 @@ idouble: 1
 ifloat: 3
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacosh (-inf + 0 i) == inf + pi i":
+double: 707423775202844
+idouble: 707423775202844
+Test "Imaginary part of: cacosh (-inf + 100 i) == inf + pi i":
+double: 218105743616496352
+idouble: 218105743616496352
+Test "Imaginary part of: cacosh (-inf - 0 i) == inf - pi i":
+double: 9326037565713688
+idouble: 9326037565713688
+Test "Imaginary part of: cacosh (-inf - 100 i) == inf - pi i":
+double: 232254219120553248
+idouble: 232254219120553248
+Test "Imaginary part of: cacosh (0 + 0 i) == 0.0 + pi/2 i":
+double: 707423775202844
+idouble: 707423775202844
+Test "Imaginary part of: cacosh (0 - 0 i) == 0.0 - pi/2 i":
+double: 1414847550405688
+idouble: 1414847550405688
 Test "Real part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459105272080819308 + 1.1351827477151551088992008271819053 i":
 double: 1
 float: 1
@@ -103,8 +231,78 @@ ldouble: 1
 Test "Imaginary part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459105272080819308 + 1.1351827477151551088992008271819053 i":
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
+double: 421687177141445
+idouble: 421687177141445
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
+double: 194104484126326
+idouble: 194104484126326
+Test "Imaginary part of: cacosh (inf + 0.5 i) == inf + 0.0 i":
+double: 2251799813685248
+idouble: 2251799813685248
+Test "Imaginary part of: cacosh (inf - 0.5 i) == inf - 0 i":
+double: 2251799813685248
+idouble: 2251799813685248
+
+# carg
+Test "carg (-0 + 0 i) == pi":
+double: 707423775202844
+idouble: 707423775202844
+Test "carg (-0 + 2.0 i) == pi/2":
+double: 2088083199127252
+idouble: 2088083199127252
+Test "carg (-0 - 0 i) == -pi":
+double: 884279719003555
+idouble: 884279719003555
+Test "carg (-0 - 2.0 i) == -pi/2":
+double: 2088083199127252
+idouble: 2088083199127252
+Test "carg (-2.0 - 0 i) == -pi":
+double: 13104433904493254
+idouble: 13104433904493254
+Test "carg (0 - 0 i) == -0":
+double: 2570638124657944
+idouble: 2570638124657944
+Test "carg (2.0 - 0 i) == -0":
+double: 2415516428243244
+idouble: 2415516428243244
+Test "carg (inf - 2.0 i) == -0":
+double: 4503599627370496
+idouble: 4503599627370496
 
 # casin
+Test "Real part of: casin (-0 + 0 i) == -0 + 0.0 i":
+double: 2570638124657944
+idouble: 2570638124657944
+Test "Real part of: casin (-0 - 0 i) == -0 - 0 i":
+double: 10381711505986764
+idouble: 10381711505986764
+Test "Imaginary part of: casin (-0 - 0 i) == -0 - 0 i":
+double: 4664344473446358
+idouble: 4664344473446358
+Test "Real part of: casin (-10.0 + inf i) == -0 + inf i":
+double: 40532396646334464
+idouble: 40532396646334464
+Test "Real part of: casin (-10.0 - inf i) == -0 - inf i":
+double: 40532396646334464
+idouble: 40532396646334464
+Test "Real part of: casin (-2 - 3 i) == -0.57065278432109940071028387968566963 - 1.9833870299165354323470769028940395 i":
+double: 5298798934341853
+idouble: 5298798934341853
+Test "Imaginary part of: casin (-2 - 3 i) == -0.57065278432109940071028387968566963 - 1.9833870299165354323470769028940395 i":
+double: 3346157649749858
+idouble: 3346157649749858
+Test "Imaginary part of: casin (0 - 0 i) == 0.0 - 0 i":
+double: 534245869295086
+idouble: 534245869295086
+Test "Real part of: casin (0.1 + inf i) == 0.0 + inf i":
+double: 45035996273705
+idouble: 45035996273705
+Test "Real part of: casin (0.1 - inf i) == 0.0 - inf i":
+double: 45035996273705
+idouble: 45035996273705
 Test "Real part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
 double: 3
 float: 2
@@ -115,8 +313,29 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+double: 3192191066775216
+float: 1
+idouble: 3192191066775216
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+double: 5774891653287013
+idouble: 5774891653287013
+ildouble: 2
+ldouble: 2
 
 # casinh
+Test "Real part of: casinh (-0 + 0 i) == -0 + 0 i":
+double: 534245869295085
+idouble: 534245869295085
+Test "Real part of: casinh (-0 - 0 i) == -0 - 0 i":
+double: 1464947766678355
+idouble: 1464947766678355
+Test "Imaginary part of: casinh (-0 - 0 i) == -0 - 0 i":
+double: 348514574854532
+idouble: 348514574854532
 Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
 double: 5
 float: 1
@@ -131,6 +350,15 @@ idouble: 3
 ifloat: 6
 ildouble: 5
 ldouble: 5
+Test "Imaginary part of: casinh (-inf + 100 i) == -inf + 0.0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Imaginary part of: casinh (-inf - 100 i) == -inf - 0 i":
+double: 445856363109679104
+idouble: 445856363109679104
+Test "Imaginary part of: casinh (0 - 0 i) == 0.0 - 0 i":
+double: 2570638124657944
+idouble: 2570638124657944
 Test "Real part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
 double: 1
 idouble: 1
@@ -139,8 +367,45 @@ float: 1
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+double: 913362693746594
+float: 1
+idouble: 913362693746594
+ifloat: 1
+Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+double: 189265845912375
+float: 1
+idouble: 189265845912375
+ifloat: 1
+Test "Imaginary part of: casinh (inf + 0.5 i) == inf + 0.0 i":
+double: 2251799813685248
+idouble: 2251799813685248
+Test "Imaginary part of: casinh (inf - 0.5 i) == inf - 0 i":
+double: 2251799813685248
+idouble: 2251799813685248
 
 # catan
+Test "Real part of: catan (-0 + 0 i) == -0 + 0 i":
+double: 966480751356276
+idouble: 966480751356276
+Test "Real part of: catan (-0 + inf i) == -pi/2 + 0 i":
+double: 11577837379398936
+idouble: 11577837379398936
+Test "Real part of: catan (-0 - 0 i) == -0 - 0 i":
+double: 7756084820735
+idouble: 7756084820735
+Test "Imaginary part of: catan (-0 - 0 i) == -0 - 0 i":
+double: 2691533631691955
+idouble: 2691533631691955
+Test "Real part of: catan (-0 - inf i) == -pi/2 - 0 i":
+double: 11577837379398936
+idouble: 11577837379398936
+Test "Real part of: catan (-0.5 + inf i) == -pi/2 + 0 i":
+double: 9326037565713688
+idouble: 9326037565713688
+Test "Real part of: catan (-100.0 - inf i) == -pi/2 - 0 i":
+double: 457434200489078016
+idouble: 457434200489078016
 Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
 float: 3
 ifloat: 3
@@ -149,6 +414,21 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: catan (-inf + 0.1 i) == -pi/2 + 0 i":
+double: 45035996273705
+idouble: 45035996273705
+Test "Imaginary part of: catan (-inf - 10.0 i) == -pi/2 - 0 i":
+double: 40532396646334464
+idouble: 40532396646334464
+Test "Real part of: catan (0.0 + inf i) == pi/2 + 0 i":
+double: 707423775202844
+idouble: 707423775202844
+Test "Real part of: catan (0.0 - inf i) == pi/2 - 0 i":
+double: 707423775202844
+idouble: 707423775202844
+Test "Real part of: catan (0.5 + inf i) == pi/2 + 0 i":
+double: 4822437938343192
+idouble: 4822437938343192
 Test "Real part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
 float: 4
 ifloat: 4
@@ -157,8 +437,32 @@ ldouble: 1
 Test "Imaginary part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
 double: 1
 idouble: 1
+Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
+float: 4
+ifloat: 4
+Test "Real part of: catan (100.0 - inf i) == pi/2 - 0 i":
+double: 443285724985021184
+idouble: 443285724985021184
+Test "Imaginary part of: catan (inf + 0.1 i) == pi/2 + 0 i":
+double: 45035996273705
+idouble: 45035996273705
+Test "Imaginary part of: catan (inf - 10.0 i) == pi/2 - 0 i":
+double: 40532396646334464
+idouble: 40532396646334464
 
 # catanh
+Test "Real part of: catanh (-0 - 0 i) == -0 - 0 i":
+double: 2691533631691955
+idouble: 2691533631691955
+Test "Imaginary part of: catanh (-0 - 0 i) == -0 - 0 i":
+double: 7756084820735
+idouble: 7756084820735
+Test "Real part of: catanh (-10.0 + inf i) == -0 + pi/2 i":
+double: 40532396646334464
+idouble: 40532396646334464
+Test "Real part of: catanh (-10.0 - inf i) == -0 - pi/2 i":
+double: 40532396646334464
+idouble: 40532396646334464
 Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
 double: 4
 idouble: 4
@@ -167,6 +471,27 @@ ldouble: 1
 Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
 float: 4
 ifloat: 4
+Test "Imaginary part of: catanh (-inf + 0 i) == -0 + pi/2 i":
+double: 707423775202844
+idouble: 707423775202844
+Test "Imaginary part of: catanh (-inf + 100 i) == -0 + pi/2 i":
+double: 443285724985021184
+idouble: 443285724985021184
+Test "Imaginary part of: catanh (-inf - 0 i) == -0 - pi/2 i":
+double: 11577837379398936
+idouble: 11577837379398936
+Test "Imaginary part of: catanh (-inf - 100 i) == -0 - pi/2 i":
+double: 457434200489078016
+idouble: 457434200489078016
+Test "Imaginary part of: catanh (0 - 0 i) == 0.0 - 0 i":
+double: 966480751356276
+idouble: 966480751356276
+Test "Real part of: catanh (0.1 + inf i) == 0.0 + pi/2 i":
+double: 45035996273705
+idouble: 45035996273705
+Test "Real part of: catanh (0.1 - inf i) == 0.0 - pi/2 i":
+double: 45035996273705
+idouble: 45035996273705
 Test "Real part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
 float: 1
 ifloat: 1
@@ -175,11 +500,29 @@ ldouble: 1
 Test "Imaginary part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
 float: 6
 ifloat: 6
+Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+float: 6
+ifloat: 6
+Test "Imaginary part of: catanh (inf + 0 i) == 0.0 + pi/2 i":
+double: 707423775202844
+idouble: 707423775202844
+Test "Imaginary part of: catanh (inf + 0.5 i) == 0.0 + pi/2 i":
+double: 4822437938343192
+idouble: 4822437938343192
+Test "Imaginary part of: catanh (inf - 0 i) == 0.0 - pi/2 i":
+double: 11577837379398936
+idouble: 11577837379398936
+Test "Imaginary part of: catanh (inf - 0.5 i) == 0.0 - pi/2 i":
+double: 9326037565713688
+idouble: 9326037565713688
 
 # cbrt
 Test "cbrt (-0.001) == -0.1":
-ildouble: 102
-ldouble: 102
+ildouble: 1
+ldouble: 1
 Test "cbrt (-27.0) == -3.0":
 double: 1
 idouble: 1
@@ -188,21 +531,44 @@ ldouble: 948
 Test "cbrt (0.7) == 0.8879040017426007084":
 ildouble: 345
 ldouble: 345
+Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+double: 1
+idouble: 1
 Test "cbrt (0.970299) == 0.99":
 double: 1
 idouble: 1
 ildouble: 142
 ldouble: 142
+Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
 Test "cbrt (8) == 2":
 ildouble: 191
 ldouble: 191
 
 # ccos
+Test "Real part of: ccos (-0 + 0.0 i) == 1.0 + 0.0 i":
+double: 2070294363995322
+idouble: 2070294363995322
+Test "Real part of: ccos (-0 - 0 i) == 1.0 - 0 i":
+double: 748813396862259
+idouble: 748813396862259
+Test "Imaginary part of: ccos (-0 - 0 i) == 1.0 - 0 i":
+double: 8957198966551674
+idouble: 8957198966551674
 Test "Imaginary part of: ccos (-2 - 3 i) == -4.1896256909688072301 - 9.1092278937553365979 i":
 float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: ccos (0.0 + 0.0 i) == 1.0 - 0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Real part of: ccos (0.0 - 0 i) == 1.0 + 0.0 i":
+double: 2445817744586064
+idouble: 2445817744586064
 Test "Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
 double: 1
 idouble: 1
@@ -211,8 +577,32 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
 
 # ccosh
+Test "Real part of: ccosh (-0 + 0.0 i) == 1.0 - 0 i":
+double: 2445817744586064
+idouble: 2445817744586064
+Test "Imaginary part of: ccosh (-0 + 0.0 i) == 1.0 - 0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Real part of: ccosh (-0 - 0 i) == 1.0 + 0.0 i":
+double: 748813396862259
+idouble: 748813396862259
+Test "Imaginary part of: ccosh (-0 - 0 i) == 1.0 + 0.0 i":
+double: 4453599339181178
+idouble: 4453599339181178
 Test "Real part of: ccosh (-2 - 3 i) == -3.7245455049153225654 + 0.5118225699873846088 i":
 float: 1
 ifloat: 1
@@ -221,6 +611,12 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: ccosh (0.0 - 0 i) == 1.0 - 0 i":
+double: 2070294363995322
+idouble: 2070294363995322
+Test "Imaginary part of: ccosh (0.0 - 0 i) == 1.0 - 0 i":
+double: 4503599627370496
+idouble: 4503599627370496
 Test "Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
 double: 1
 float: 1
@@ -233,8 +629,31 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+float: 1
+ifloat: 1
 
 # cexp
+Test "Real part of: cexp (+0 - 0 i) == 1 - 0 i":
+double: 2070294363995322
+idouble: 2070294363995322
+Test "Imaginary part of: cexp (+0 - 0 i) == 1 - 0 i":
+double: 713951213746569
+idouble: 713951213746569
+Test "Real part of: cexp (-0 + +0 i) == 1 + 0.0 i":
+double: 773845340236565
+idouble: 773845340236565
+Test "Real part of: cexp (-0 - 0 i) == 1 - 0 i":
+double: 211080985315599
+idouble: 211080985315599
+Test "Imaginary part of: cexp (-0 - 0 i) == 1 - 0 i":
+double: 5797732791632072
+idouble: 5797732791632072
 Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 ildouble: 1
 ldouble: 1
@@ -243,6 +662,24 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cexp (-inf + 2.0 i) == -0 + 0.0 i":
+double: 2629440889365375
+idouble: 2629440889365375
+Test "Imaginary part of: cexp (-inf + 2.0 i) == -0 + 0.0 i":
+double: 4095111552621091
+idouble: 4095111552621091
+Test "Real part of: cexp (-inf + 4.0 i) == -0 - 0 i":
+double: 1559850460016032
+idouble: 1559850460016032
+Test "Imaginary part of: cexp (-inf + 4.0 i) == -0 - 0 i":
+double: 1095264191508649
+idouble: 1095264191508649
+Test "Real part of: cexp (-inf - 0 i) == 0.0 - 0 i":
+double: 2433305263375174
+idouble: 2433305263375174
+Test "Imaginary part of: cexp (-inf - 0 i) == 0.0 - 0 i":
+double: 713951213746569
+idouble: 713951213746569
 Test "Real part of: cexp (0.7 + 1.2 i) == 0.72969890915032360123451688642930727 + 1.8768962328348102821139467908203072 i":
 double: 1
 float: 1
@@ -253,18 +690,56 @@ ldouble: 2
 Test "Imaginary part of: cexp (0.7 + 1.2 i) == 0.72969890915032360123451688642930727 + 1.8768962328348102821139467908203072 i":
 float: 1
 ifloat: 1
+Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cexp (inf - 0 i) == inf - 0 i":
+double: 713951213746569
+idouble: 713951213746569
 
 # clog
+Test "Imaginary part of: clog (-0 + 0 i) == -inf + pi i plus division by zero exception":
+double: 707423775202844
+idouble: 707423775202844
+Test "Imaginary part of: clog (-0 - 0 i) == -inf - pi i plus division by zero exception":
+double: 884279719003555
+idouble: 884279719003555
 Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
 float: 3
 ifloat: 3
+Test "Imaginary part of: clog (-inf - 0 i) == inf - pi i":
+double: 1414847550405688
+idouble: 1414847550405688
+Test "Imaginary part of: clog (0 - 0 i) == -inf - 0 i plus division by zero exception":
+double: 2570638124657944
+idouble: 2570638124657944
+Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: clog (inf - 0 i) == inf - 0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Imaginary part of: clog (inf - 1 i) == inf - 0 i":
+double: 4503599627370496
+idouble: 4503599627370496
 
 # clog10
+Test "Imaginary part of: clog10 (-0 + 0 i) == -inf + pi i plus division by zero exception":
+double: 707423775202844
+idouble: 707423775202844
 Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: clog10 (-0 - 0 i) == -inf - pi i plus division by zero exception":
+double: 7842313356872844
+idouble: 7842313356872844
 Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
 double: 1
 float: 1
@@ -315,6 +790,9 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: clog10 (0 - 0 i) == -inf - 0 i plus division by zero exception":
+double: 143129720799288
+idouble: 143129720799288
 Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
 double: 1
 float: 1
@@ -332,6 +810,11 @@ double: 1
 idouble: 1
 ildouble: 3
 ldouble: 3
+Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
 double: 1
 float: 1
@@ -347,13 +830,44 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Imaginary part of: clog10 (inf - 0 i) == inf - 0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Imaginary part of: clog10 (inf - 1 i) == inf - 0 i":
+double: 4503599627370496
+idouble: 4503599627370496
 Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
 
+# conj
+Test "Imaginary part of: conj (0.0 + 0.0 i) == 0.0 - 0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Imaginary part of: conj (0.0 - 0 i) == 0.0 + 0.0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+
+# copysign
+Test "copysign (-0, -4) == -0":
+double: 13510798882111488
+idouble: 13510798882111488
+Test "copysign (-0, 4) == 0":
+double: 18014398509481984
+idouble: 18014398509481984
+Test "copysign (0, -4) == -0":
+double: 13510798882111488
+idouble: 13510798882111488
+Test "copysign (0, 4) == 0":
+double: 18014398509481984
+idouble: 18014398509481984
+
 # cos
+Test "cos (-0) == 1":
+double: 2070294363995322
+idouble: 2070294363995322
 Test "cos (0.7) == 0.76484218728448842625585999019186495":
 double: 1
 float: 1
@@ -363,7 +877,7 @@ Test "cos (M_PI_6l * 2.0) == 0.5":
 double: 1
 float: 0.5
 idouble: 1
-ifloat: 0.5
+ifloat: 1
 Test "cos (M_PI_6l * 4.0) == -0.5":
 double: 2
 float: 1
@@ -380,11 +894,45 @@ ildouble: 0.25
 ldouble: 0.25
 
 # cosh
+Test "cosh (-0) == 1":
+double: 2445817744586064
+idouble: 2445817744586064
 Test "cosh (0.7) == 1.255169005630943018":
 ildouble: 2
 ldouble: 2
 
 # cpow
+Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+double: 1
+float: 4
+idouble: 1
+ifloat: 4
+ildouble: 5
+ldouble: 5
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
+ildouble: 3
+ldouble: 3
+Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
 double: 1
 float: 4
@@ -402,23 +950,82 @@ idouble: 2
 ifloat: 2
 ildouble: 1
 ldouble: 1
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
-ildouble: 1
-ldouble: 1
+
+# cproj
+Test "Real part of: cproj (-0 - 0 i) == -0 - 0 i":
+double: 1501199875790166
+idouble: 1501199875790166
+Test "Imaginary part of: cproj (-0 - 0 i) == -0 - 0 i":
+double: 1501199875790166
+idouble: 1501199875790166
 
 # csin
+Test "Real part of: csin (-0 + 0.0 i) == -0 + 0.0 i":
+double: 713951213746569
+idouble: 713951213746569
+Test "Real part of: csin (-0 + inf i) == -0 + inf i":
+double: 713951213746569
+idouble: 713951213746569
+Test "Real part of: csin (-0 - 0 i) == -0 - 0 i":
+double: 1344133452450895
+idouble: 1344133452450895
+Test "Imaginary part of: csin (-0 - 0 i) == -0 - 0 i":
+double: 1643976377352247
+idouble: 1643976377352247
+Test "Real part of: csin (-0 - inf i) == -0 - inf i":
+double: 713951213746569
+idouble: 713951213746569
+Test "Real part of: csin (0.0 + NaN i) == 0.0 + NaN i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Real part of: csin (0.0 + inf i) == 0.0 + inf i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Imaginary part of: csin (0.0 - 0 i) == 0 - 0 i":
+double: 78903603040909
+idouble: 78903603040909
+Test "Real part of: csin (0.0 - inf i) == 0.0 - inf i":
+double: 4503599627370496
+idouble: 4503599627370496
 Test "Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i":
 float: 1
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
+ildouble: 1
+ldouble: 1
 
 # csinh
+Test "Real part of: csinh (-0 + 0.0 i) == -0 + 0.0 i":
+double: 78903603040909
+idouble: 78903603040909
+Test "Real part of: csinh (-0 - 0 i) == -0 - 0 i":
+double: 1643976377352247
+idouble: 1643976377352247
+Test "Imaginary part of: csinh (-0 - 0 i) == -0 - 0 i":
+double: 1344133452450895
+idouble: 1344133452450895
 Test "Imaginary part of: csinh (-2 - 3 i) == 3.5905645899857799520 - 0.5309210862485198052 i":
 double: 1
 idouble: 1
 ildouble: 2
 ldouble: 2
+Test "Imaginary part of: csinh (-inf - 0 i) == -inf - 0 i":
+double: 713951213746569
+idouble: 713951213746569
+Test "Real part of: csinh (0.0 + NaN i) == 0.0 + NaN i plus sign of zero/inf not specified":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Real part of: csinh (0.0 + inf i) == 0.0 + NaN i plus invalid exception and sign of zero/inf not specified":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Imaginary part of: csinh (0.0 - 0 i) == 0.0 - 0 i":
+double: 713951213746569
+idouble: 713951213746569
+Test "Real part of: csinh (0.0 - inf i) == 0.0 + NaN i plus invalid exception and sign of zero/inf not specified":
+double: 4503599627370496
+idouble: 4503599627370496
 Test "Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
 float: 1
 ifloat: 1
@@ -427,14 +1034,49 @@ ldouble: 2
 Test "Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
 float: 1
 ifloat: 1
+Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: csinh (inf - 0 i) == inf - 0 i":
+double: 713951213746569
+idouble: 713951213746569
 
 # csqrt
+Test "Real part of: csqrt (-0 + 0 i) == 0.0 + 0.0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Real part of: csqrt (-0 - 0 i) == 0.0 - 0 i":
+double: 4948033364011513
+idouble: 4948033364011513
+Test "Imaginary part of: csqrt (-1 + 0 i) == 0.0 + 1.0 i":
+double: 4503599627370496
+idouble: 4503599627370496
 Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
+Test "Imaginary part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
+double: 5971101042568026
+idouble: 5971101042568026
 Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
+Test "Imaginary part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
+double: 21050496721654952
+idouble: 21050496721654952
+Test "Real part of: csqrt (0 + 2 i) == 1.0 + 1.0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Real part of: csqrt (0 - 0 i) == 0 - 0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Imaginary part of: csqrt (0 - 0 i) == 0 - 0 i":
+double: 131907379110761
+idouble: 131907379110761
 Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 double: 1
 float: 1
@@ -443,8 +1085,32 @@ ifloat: 1
 Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
 float: 1
 ifloat: 1
+Test "Imaginary part of: csqrt (0.75 + 1.25 i) == 1.05065169626078392338656675760808326 + 0.594868882070379067881984030639932657 i":
+double: 5900896517173315
+idouble: 5900896517173315
+Test "Imaginary part of: csqrt (119 + 120 i) == 12.0 + 5.0 i":
+double: 12947848928690176
+idouble: 12947848928690176
+Test "Imaginary part of: csqrt (16.0 - 30.0 i) == 5.0 - 3.0 i":
+double: 60798594969501696
+idouble: 60798594969501696
+Test "Imaginary part of: csqrt (inf + 6 i) == inf + 0.0 i":
+double: 27021597764222976
+idouble: 27021597764222976
+Test "Imaginary part of: csqrt (inf - 6 i) == inf - 0 i":
+double: 2251799813685248
+idouble: 2251799813685248
 
 # ctan
+Test "Real part of: ctan (-0 + 0 i) == -0 + 0.0 i":
+double: 2510341221049253
+idouble: 2510341221049253
+Test "Real part of: ctan (-0 - 0 i) == -0 - 0 i":
+double: 3279734785388574
+idouble: 3279734785388574
+Test "Imaginary part of: ctan (-0 - 0 i) == -0 - 0 i":
+double: 377957065730238
+idouble: 377957065730238
 Test "Real part of: ctan (-2 - 3 i) == 0.0037640256415042482 - 1.0032386273536098014 i":
 double: 1
 idouble: 1
@@ -453,6 +1119,9 @@ ldouble: 439
 Test "Imaginary part of: ctan (-2 - 3 i) == 0.0037640256415042482 - 1.0032386273536098014 i":
 ildouble: 2
 ldouble: 2
+Test "Imaginary part of: ctan (0 - 0 i) == 0.0 - 0 i":
+double: 1073684470400566
+idouble: 1073684470400566
 Test "Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
 float: 1
 ifloat: 1
@@ -465,8 +1134,31 @@ idouble: 1
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
+double: 1
+idouble: 1
+ildouble: 3
+ldouble: 3
+Test "Real part of: ctan (1 + inf i) == 0.0 + 1.0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "Real part of: ctan (1 - inf i) == 0.0 - 1.0 i":
+double: 4503599627370496
+idouble: 4503599627370496
 
 # ctanh
+Test "Real part of: ctanh (-0 + 0 i) == -0 + 0.0 i":
+double: 1073684470400566
+idouble: 1073684470400566
+Test "Real part of: ctanh (-0 - 0 i) == -0 - 0 i":
+double: 377957065730238
+idouble: 377957065730238
+Test "Imaginary part of: ctanh (-0 - 0 i) == -0 - 0 i":
+double: 3279734785388574
+idouble: 3279734785388574
 Test "Real part of: ctanh (-2 - 3 i) == -0.9653858790221331242 + 0.0098843750383224937 i":
 double: 1
 float: 2
@@ -477,9 +1169,15 @@ ldouble: 5
 Test "Imaginary part of: ctanh (-2 - 3 i) == -0.9653858790221331242 + 0.0098843750383224937 i":
 ildouble: 25
 ldouble: 25
+Test "Imaginary part of: ctanh (-inf + 1 i) == -1.0 + 0.0 i":
+double: 4503599627370496
+idouble: 4503599627370496
 Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
 float: 1
 ifloat: 1
+Test "Imaginary part of: ctanh (0 - 0 i) == 0.0 - 0 i":
+double: 2510341221049253
+idouble: 2510341221049253
 Test "Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
 double: 2
 float: 1
@@ -494,8 +1192,30 @@ idouble: 2
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: ctanh (inf + 1 i) == 1.0 + 0.0 i":
+double: 4503599627370496
+idouble: 4503599627370496
+
+# erf
+Test "erf (-0) == -0":
+double: 708412650257339
+idouble: 708412650257339
+Test "erf (1.25) == 0.922900128256458230136523481197281140":
+double: 1
+idouble: 1
 
 # erfc
+Test "erfc (-0) == 1.0":
+double: 3795186977113158
+idouble: 3795186977113158
 Test "erfc (0.7) == 0.32219880616258152702":
 double: 1
 idouble: 1
@@ -508,9 +1228,15 @@ idouble: 2
 ifloat: 2
 ildouble: 3
 ldouble: 3
+Test "erfc (1.25) == 0.0770998717435417698634765188027188596":
+ildouble: 1
+ldouble: 1
 Test "erfc (2.0) == 0.0046777349810472658379":
 double: 1
 idouble: 1
+Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
+double: 1
+idouble: 1
 Test "erfc (4.1) == 0.67000276540848983727e-8":
 double: 24
 float: 12
@@ -518,23 +1244,43 @@ idouble: 24
 ifloat: 12
 ildouble: 12
 ldouble: 12
+Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
 Test "erfc (9) == 0.41370317465138102381e-36":
 ildouble: 36
 ldouble: 36
 
+# exp
+Test "exp (-0) == 1":
+double: 773845340236565
+idouble: 773845340236565
+
 # exp10
+Test "exp10 (-0) == 1":
+double: 40532396646334472
+idouble: 40532396646334472
 Test "exp10 (-1) == 0.1":
 double: 2
 float: 1
 idouble: 2
 ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
 Test "exp10 (0.7) == 5.0118723362727228500155418688494574":
 float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "exp10 (3) == 1000":
 double: 6
 float: 2
@@ -543,16 +1289,32 @@ ifloat: 2
 ildouble: 3
 ldouble: 3
 
+# exp2
+Test "exp2 (-0) == 1":
+double: 4503599627370496
+idouble: 4503599627370496
+
 # expm1
+Test "expm1 (-0) == -0":
+double: 3234853774995154
+idouble: 3234853774995154
 Test "expm1 (0.7) == 1.0137527074704765216":
 ildouble: 1
 ldouble: 1
+Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+double: 1
+idouble: 1
 Test "expm1 (1) == M_El - 1.0":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
 
+# fabs
+Test "fabs (-0) == 0":
+double: 4503599627370496
+idouble: 4503599627370496
+
 # fmod
 Test "fmod (-6.5, -2.3) == -1.9":
 double: 2
@@ -583,6 +1345,19 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+# fpclassify
+Test "fpclassify (-0) == FP_ZERO":
+double: 2
+idouble: 2
+
+# frexp
+Test "frexp (-0, &x) == -0":
+double: 2251799813685248
+idouble: 2251799813685248
+Test "frexp (-0, &x) sets x to 0.0":
+double: 1
+idouble: 1
+
 # gamma
 Test "gamma (-0.5) == log(2*sqrt(pi))":
 ildouble: 1
@@ -620,6 +1395,21 @@ float: 1
 ifloat: 1
 
 # j0
+Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+float: 1
+ifloat: 1
+Test "j0 (10.0) == -0.245935764451348335197760862485328754":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
 Test "j0 (10.0) == -0.24593576445134833520":
 double: 2
 float: 1
@@ -628,11 +1418,29 @@ ifloat: 1
 Test "j0 (2.0) == 0.22389077914123566805":
 float: 2
 ifloat: 2
+Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+float: 2
+ifloat: 2
+Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "j0 (8.0) == 0.17165080713755390609":
 float: 1
 ifloat: 1
+Test "j0 (8.0) == 0.171650807137553906090869407851972001":
+float: 1
+ifloat: 1
 
 # j1
+Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
 Test "j1 (10.0) == 0.043472746168861436670":
 float: 2
 ifloat: 2
@@ -641,13 +1449,36 @@ ldouble: 2
 Test "j1 (2.0) == 0.57672480775687338720":
 double: 1
 idouble: 1
+Test "j1 (2.0) == 0.576724807756873387202448242269137087":
+double: 1
+idouble: 1
 Test "j1 (8.0) == 0.23463634685391462438":
 double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
 
 # jn
+Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+float: 1
+ifloat: 1
+Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
 Test "jn (0, 10.0) == -0.24593576445134833520":
 double: 2
 float: 1
@@ -656,9 +1487,27 @@ ifloat: 1
 Test "jn (0, 2.0) == 0.22389077914123566805":
 float: 2
 ifloat: 2
+Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+float: 2
+ifloat: 2
+Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "jn (0, 8.0) == 0.17165080713755390609":
 float: 1
 ifloat: 1
+Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+float: 1
+ifloat: 1
+Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
 Test "jn (1, 10.0) == 0.043472746168861436670":
 float: 2
 ifloat: 2
@@ -667,11 +1516,22 @@ ldouble: 2
 Test "jn (1, 2.0) == 0.57672480775687338720":
 double: 1
 idouble: 1
+Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
+double: 1
+idouble: 1
 Test "jn (1, 8.0) == 0.23463634685391462438":
 double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
+ildouble: 1
+ldouble: 1
 Test "jn (10, -1.0) == 0.26306151236874532070e-9":
 ildouble: 1
 ldouble: 1
@@ -682,6 +1542,11 @@ idouble: 6
 ifloat: 4
 ildouble: 1
 ldouble: 1
+Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
 Test "jn (10, 0.7) == 0.75175911502153953928e-11":
 double: 3
 float: 1
@@ -689,9 +1554,26 @@ idouble: 3
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
+ildouble: 1
+ldouble: 1
 Test "jn (10, 1.0) == 0.26306151236874532070e-9":
 ildouble: 1
 ldouble: 1
+Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
+double: 4
+float: 3
+idouble: 4
+ifloat: 3
+ildouble: 2
+ldouble: 2
 Test "jn (10, 10.0) == 0.20748610663335885770":
 double: 4
 float: 3
@@ -699,11 +1581,19 @@ idouble: 4
 ifloat: 3
 ildouble: 2
 ldouble: 2
+Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+float: 4
+ifloat: 4
+ildouble: 1
+ldouble: 1
 Test "jn (10, 2.0) == 0.25153862827167367096e-6":
 float: 4
 ifloat: 4
 ildouble: 1
 ldouble: 1
+Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
+ildouble: 1
+ldouble: 1
 Test "jn (3, -1.0) == -0.019563353982668405919":
 ildouble: 1
 ldouble: 1
@@ -712,12 +1602,32 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
 Test "jn (3, 0.7) == 0.0069296548267508408077":
 float: 1
 ifloat: 1
+Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
+ildouble: 1
+ldouble: 1
 Test "jn (3, 1.0) == 0.019563353982668405919":
 ildouble: 1
 ldouble: 1
+Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "jn (3, 10.0) == 0.058379379305186812343":
 double: 3
 float: 1
@@ -725,6 +1635,13 @@ idouble: 3
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 1
+ldouble: 1
 Test "jn (3, 2.0) == 0.12894324947440205110":
 double: 1
 float: 2
@@ -748,6 +1665,16 @@ ifloat: 2
 ildouble: 1
 ldouble: 1
 
+# llrint
+Test "llrint (-0) == 0":
+double: 1
+idouble: 1
+
+# llround
+Test "llround (-0) == 0":
+double: 1
+idouble: 1
+
 # log
 Test "log (0.7) == -0.35667494393873237891263871124118447":
 double: 1
@@ -763,6 +1690,13 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "log10 (0.75) == -0.124938736608299953132449886193870744":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 1
+ldouble: 1
 Test "log10 (e) == log10(e)":
 float: 1
 ifloat: 1
@@ -770,6 +1704,12 @@ ildouble: 1
 ldouble: 1
 
 # log1p
+Test "log1p (-0) == -0":
+double: 1381942243287817
+idouble: 1381942243287817
+Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
+float: 1
+ifloat: 1
 Test "log1p (-0.3) == -0.35667494393873237891263871124118447":
 double: 1
 float: 1
@@ -785,12 +1725,105 @@ float: 1
 idouble: 1
 ifloat: 1
 
+# lrint
+Test "lrint (-0) == 0":
+double: 1
+idouble: 1
+
+# lround
+Test "lround (-0) == 0":
+double: 1
+idouble: 1
+
+# modf
+Test "modf (-inf, &x) == -0":
+double: 4503599627370496
+idouble: 4503599627370496
+
+# nearbyint
+Test "nearbyint (-0.5) == -0":
+double: 4503599627370496
+idouble: 4503599627370496
+
+# nextafter
+Test "nextafter (-0, 0) == 0":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "nextafter (0, -0) == -0":
+double: 4503599627370496
+idouble: 4503599627370496
+
+# nexttoward
+Test "nexttoward (-0, 0) == 0":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "nexttoward (0, -0) == -0":
+double: 4503599627370496
+idouble: 4503599627370496
+
+# pow
+Test "pow (-0, 11.1) == 0":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "pow (-0, 2) == 0":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "pow (-0, 4) == 0.0":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "pow (-10, -0) == 1":
+double: 49539595901075456
+idouble: 49539595901075456
+Test "pow (-inf, -1) == -0":
+double: 4503599627370496
+Test "pow (-inf, -1001) == -0":
+double: 4503599627370496
+Test "pow (-inf, -11) == -0":
+double: 4503599627370496
+Test "pow (-inf, -3) == -0":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "pow (0, -0) == 1":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "pow (10, -0) == 1":
+double: 40532396646334464
+idouble: 40532396646334464
+
+# round
+Test "round (-0.2) == -0":
+double: 4503599627370496
+idouble: 4503599627370496
+
+# scalb
+Test "scalb (-0, -10) == -0":
+double: 4499201580859392
+idouble: 4499201580859392
+Test "scalb (-0, -4) == -0":
+double: 422212465065984
+idouble: 422212465065984
+Test "scalb (-0, -inf) == -0":
+double: 4503599627370496
+idouble: 4503599627370496
+Test "scalb (-0.1, -inf) == -0":
+double: 4503599627370496
+idouble: 4503599627370496
+
 # sin
+Test "sin (-0) == -0":
+double: 713951213746569
+idouble: 713951213746569
 Test "sin (0.7) == 0.64421768723769105367261435139872014":
 ildouble: 1
 ldouble: 1
 
 # sincos
+Test "sincos (-0, &sin_res, &cos_res) puts -0 in sin_res":
+double: 713951213746569
+idouble: 713951213746569
+Test "sincos (-0, &sin_res, &cos_res) puts 1 in cos_res":
+double: 2070294363995322
+idouble: 2070294363995322
 Test "sincos (0.7, &sin_res, &cos_res) puts 0.64421768723769105367261435139872014 in sin_res":
 ildouble: 1
 ldouble: 1
@@ -803,7 +1836,7 @@ Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
 double: 1
 float: 0.5
 idouble: 1
-ifloat: 0.5
+ifloat: 1
 Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
 double: 1
 float: 1
@@ -815,7 +1848,7 @@ Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
 double: 0.2758
 float: 0.3667
 idouble: 0.2758
-ifloat: 0.3667
+ifloat: 1
 ildouble: 0.25
 ldouble: 0.25
 Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
@@ -823,6 +1856,9 @@ float: 1
 ifloat: 1
 
 # sinh
+Test "sinh (-0) == -0":
+double: 78903603040909
+idouble: 78903603040909
 Test "sinh (0.7) == 0.75858370183953350346":
 double: 1
 float: 1
@@ -832,6 +1868,9 @@ ildouble: 1
 ldouble: 1
 
 # tan
+Test "tan (-0) == -0":
+double: 2510341221049254
+idouble: 2510341221049254
 Test "tan (0.7) == 0.84228838046307944812813500221293775":
 ildouble: 1
 ldouble: 1
@@ -840,15 +1879,17 @@ double: 0.5
 idouble: 0.5
 
 # tanh
-Test "tanh (0.7) == 0.60436777711716349631":
+Test "tanh (-0) == -0":
+double: 1073684470400566
+idouble: 1073684470400566
+Test "tanh (-0.7) == -0.60436777711716349631":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
-
-Test "tanh (-0.7) == -0.60436777711716349631":
+Test "tanh (0.7) == 0.60436777711716349631":
 double: 1
 float: 1
 idouble: 1
@@ -862,8 +1903,8 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
 Test "tgamma (0.5) == sqrt (pi)":
 float: 1
 ifloat: 1
@@ -873,10 +1914,18 @@ float: 1
 idouble: 1
 ifloat: 1
 Test "tgamma (4) == 6":
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
+
+# trunc
+Test "trunc (-0.625) == -0":
+double: 4503599627370496
+idouble: 4503599627370496
 
 # y0
+Test "y0 (0.125) == -1.38968062514384052915582277745018693":
+ildouble: 1
+ldouble: 1
 Test "y0 (0.7) == -0.19066492933739506743":
 double: 2
 float: 1
@@ -884,11 +1933,23 @@ idouble: 2
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "y0 (1.0) == 0.088256964215676957983":
 double: 2
 float: 1
 idouble: 2
 ifloat: 1
+Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
 Test "y0 (1.5) == 0.38244892379775884396":
 double: 2
 float: 1
@@ -899,6 +1960,18 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "y0 (8.0) == 0.22352148938756622053":
 double: 1
 float: 1
@@ -913,6 +1986,11 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "y1 (0.125) == -5.19993611253477499595928744876579921":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
 Test "y1 (0.7) == -1.1032498719076333697":
 double: 1
 float: 1
@@ -921,11 +1999,26 @@ ifloat: 1
 Test "y1 (1.5) == -0.41230862697391129595":
 float: 1
 ifloat: 1
+Test "y1 (1.5) == -0.412308626973911295952829820633445323":
+float: 1
+ifloat: 1
 Test "y1 (10.0) == 0.24901542420695388392":
 double: 3
 float: 1
 idouble: 3
 ifloat: 1
+Test "y1 (10.0) == 0.249015424206953883923283474663222803":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "y1 (2.0) == -0.107032431540937546888370772277476637":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "y1 (2.0) == -0.10703243154093754689":
 double: 1
 float: 1
@@ -933,6 +2026,13 @@ idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 1
+ldouble: 1
 Test "y1 (8.0) == -0.15806046173124749426":
 double: 1
 float: 2
@@ -942,6 +2042,9 @@ ildouble: 2
 ldouble: 2
 
 # yn
+Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
+ildouble: 1
+ldouble: 1
 Test "yn (0, 0.7) == -0.19066492933739506743":
 double: 2
 float: 1
@@ -949,11 +2052,23 @@ idouble: 2
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "yn (0, 1.0) == 0.088256964215676957983":
 double: 2
 float: 1
 idouble: 2
 ifloat: 1
+Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
 Test "yn (0, 1.5) == 0.38244892379775884396":
 double: 2
 float: 1
@@ -964,6 +2079,18 @@ float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "yn (0, 8.0) == 0.22352148938756622053":
 double: 1
 float: 1
@@ -976,6 +2103,11 @@ double: 1
 idouble: 1
 ildouble: 1
 ldouble: 1
+Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
 Test "yn (1, 0.7) == -1.1032498719076333697":
 double: 1
 float: 1
@@ -984,11 +2116,26 @@ ifloat: 1
 Test "yn (1, 1.5) == -0.41230862697391129595":
 float: 1
 ifloat: 1
+Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
+float: 1
+ifloat: 1
 Test "yn (1, 10.0) == 0.24901542420695388392":
 double: 3
 float: 1
 idouble: 3
 ifloat: 1
+Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
+double: 3
+float: 1
+idouble: 3
+ifloat: 1
+Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "yn (1, 2.0) == -0.10703243154093754689":
 double: 1
 float: 1
@@ -996,6 +2143,13 @@ idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 1
+ldouble: 1
 Test "yn (1, 8.0) == -0.15806046173124749426":
 double: 1
 float: 2
@@ -1010,19 +2164,42 @@ idouble: 2
 ifloat: 2
 ildouble: 2
 ldouble: 2
+Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
+double: 1
+idouble: 1
+ildouble: 2
+ldouble: 2
 Test "yn (10, 0.7) == -0.42447194260703866924e10":
 double: 3
 idouble: 3
 ildouble: 7
 ldouble: 7
+Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 4
+ldouble: 4
 Test "yn (10, 1.0) == -0.12161801427868918929e9":
 double: 1
 idouble: 1
+Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
+double: 1
+idouble: 1
 Test "yn (10, 10.0) == -0.35981415218340272205":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+double: 2
+idouble: 2
 Test "yn (10, 2.0) == -129184.54220803928264":
 double: 2
 idouble: 2
@@ -1035,6 +2212,11 @@ idouble: 1
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
 Test "yn (3, 0.7) == -15.819479052819633505":
 double: 3
 float: 1
@@ -1042,16 +2224,35 @@ idouble: 3
 ifloat: 1
 ildouble: 2
 ldouble: 2
+Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
 Test "yn (3, 10.0) == -0.25136265718383732978":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+double: 1
+idouble: 1
 Test "yn (3, 2.0) == -1.1277837768404277861":
 double: 1
 idouble: 1
 
 # Maximal error of functions:
+Function: "acos":
+double: 707423775202844
+idouble: 707423775202844
+
 Function: "asin":
 double: 1
 idouble: 1
@@ -1059,16 +2260,26 @@ ildouble: 1
 ldouble: 1
 
 Function: "asinh":
+double: 534245869295085
+idouble: 534245869295085
 ildouble: 15
 ldouble: 15
 
+Function: "atan":
+double: 966480751356276
+idouble: 966480751356276
+
 Function: "atan2":
+double: 1237991606604977
 float: 4
-ifloat: 4
+idouble: 1237991606604977
+ifloat: 3
 
 Function: "atanh":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 
@@ -1089,10 +2300,12 @@ ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "cacos":
+double: 5774891653287013
 float: 1
+idouble: 5774891653287013
 ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 
 Function: Real part of "cacosh":
 double: 1
@@ -1110,17 +2323,25 @@ ifloat: 3
 ildouble: 1
 ldouble: 1
 
+Function: "carg":
+double: 13104433904493254
+idouble: 13104433904493254
+
 Function: Real part of "casin":
 double: 3
 float: 2
 idouble: 3
-ifloat: 2
+ifloat: 1
+ildouble: 2
+ldouble: 2
 
 Function: Imaginary part of "casin":
+double: 5774891653287013
 float: 1
+idouble: 5774891653287013
 ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
 
 Function: Real part of "casinh":
 double: 5
@@ -1139,7 +2360,9 @@ ildouble: 5
 ldouble: 5
 
 Function: Real part of "catan":
+double: 457434200489078016
 float: 4
+idouble: 457434200489078016
 ifloat: 4
 ildouble: 1
 ldouble: 1
@@ -1159,18 +2382,24 @@ ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "catanh":
+double: 457434200489078016
 float: 6
+idouble: 457434200489078016
 ifloat: 6
 
 Function: "cbrt":
 double: 1
 idouble: 1
-ildouble: 948
-ldouble: 948
+ildouble: 1
+ldouble: 1
 
 Function: Real part of "ccos":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
 
 Function: Imaginary part of "ccos":
 double: 1
@@ -1205,13 +2434,23 @@ ildouble: 2
 ldouble: 2
 
 Function: Imaginary part of "cexp":
+double: 5797732791632072
+float: 1
+idouble: 5797732791632072
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
+Function: Real part of "clog":
 float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
 
 Function: Imaginary part of "clog":
+double: 1414847550405688
 float: 3
+idouble: 1414847550405688
 ifloat: 3
 
 Function: Real part of "clog10":
@@ -1227,8 +2466,16 @@ double: 1
 float: 5
 idouble: 1
 ifloat: 5
-ildouble: 3
-ldouble: 3
+ildouble: 1
+ldouble: 1
+
+Function: Imaginary part of "conj":
+double: 4503599627370496
+idouble: 4503599627370496
+
+Function: "copysign":
+double: 18014398509481984
+idouble: 18014398509481984
 
 Function: "cos":
 double: 2
@@ -1239,6 +2486,8 @@ ildouble: 0.5
 ldouble: 0.5
 
 Function: "cosh":
+double: 2445817744586064
+idouble: 2445817744586064
 ildouble: 2
 ldouble: 2
 
@@ -1247,8 +2496,8 @@ double: 1
 float: 4
 idouble: 1
 ifloat: 4
-ildouble: 1
-ldouble: 1
+ildouble: 5
+ldouble: 5
 
 Function: Imaginary part of "cpow":
 double: 1.1031
@@ -1258,17 +2507,35 @@ ifloat: 2
 ildouble: 2
 ldouble: 2
 
+Function: Real part of "cproj":
+double: 1501199875790166
+idouble: 1501199875790166
+
+Function: Imaginary part of "cproj":
+double: 1501199875790166
+idouble: 1501199875790166
+
+Function: Real part of "csin":
+double: 4503599627370496
+idouble: 4503599627370496
+ildouble: 1
+ldouble: 1
+
 Function: Imaginary part of "csin":
+double: 1643976377352247
 float: 1
+idouble: 1643976377352247
 ifloat: 1
 ildouble: 2
 ldouble: 2
 
 Function: Real part of "csinh":
+double: 4503599627370496
 float: 1
+idouble: 4503599627370496
 ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
 
 Function: Imaginary part of "csinh":
 double: 1
@@ -1285,7 +2552,9 @@ idouble: 1
 ifloat: 1
 
 Function: Imaginary part of "csqrt":
+double: 12947848928690176
 float: 1
+idouble: 12947848928690176
 ifloat: 1
 
 Function: Real part of "ctan":
@@ -1301,8 +2570,8 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
 
 Function: Real part of "ctanh":
 double: 2
@@ -1320,13 +2589,21 @@ ifloat: 1
 ildouble: 25
 ldouble: 25
 
+Function: "erf":
+double: 708412650257339
+idouble: 708412650257339
+
 Function: "erfc":
 double: 24
 float: 12
 idouble: 24
 ifloat: 12
-ildouble: 36
-ldouble: 36
+ildouble: 1
+ldouble: 1
+
+Function: "exp":
+double: 773845340236565
+idouble: 773845340236565
 
 Function: "exp10":
 double: 6
@@ -1336,6 +2613,10 @@ ifloat: 2
 ildouble: 3
 ldouble: 3
 
+Function: "exp2":
+double: 4503599627370496
+idouble: 4503599627370496
+
 Function: "expm1":
 double: 1
 float: 1
@@ -1344,6 +2625,10 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+Function: "fabs":
+double: 4503599627370496
+idouble: 4503599627370496
+
 Function: "fmod":
 double: 2
 float: 1
@@ -1352,6 +2637,10 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+Function: "frexp":
+double: 2251799813685248
+idouble: 2251799813685248
+
 Function: "gamma":
 ildouble: 1
 ldouble: 1
@@ -1369,14 +2658,16 @@ double: 2
 float: 2
 idouble: 2
 ifloat: 2
+ildouble: 1
+ldouble: 1
 
 Function: "j1":
 double: 1
 float: 2
 idouble: 1
 ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
 
 Function: "jn":
 double: 6
@@ -1404,9 +2695,9 @@ ldouble: 1
 
 Function: "log10":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 1
 ldouble: 1
 
@@ -1424,7 +2715,37 @@ float: 1
 idouble: 1
 ifloat: 1
 
+Function: "modf":
+double: 4503599627370496
+idouble: 4503599627370496
+
+Function: "nearbyint":
+double: 4503599627370496
+idouble: 4503599627370496
+
+Function: "nextafter":
+double: 4503599627370496
+idouble: 4503599627370496
+
+Function: "nexttoward":
+double: 4503599627370496
+idouble: 4503599627370496
+
+Function: "pow":
+double: 49539595901075456
+idouble: 49539595901075456
+
+Function: "round":
+double: 4503599627370496
+idouble: 4503599627370496
+
+Function: "scalb":
+double: 4503599627370496
+idouble: 4503599627370496
+
 Function: "sin":
+double: 713951213746569
+idouble: 713951213746569
 ildouble: 1
 ldouble: 1
 
@@ -1463,43 +2784,35 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
+
+Function: "trunc":
+double: 4503599627370496
+idouble: 4503599627370496
 
 Function: "y0":
 double: 2
 float: 1
 idouble: 2
 ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
 
 Function: "y1":
 double: 3
 float: 2
 idouble: 3
 ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 1
+ldouble: 1
 
 Function: "yn":
 double: 3
 float: 2
 idouble: 3
 ifloat: 2
-ildouble: 7
-ldouble: 7
+ildouble: 4
+ldouble: 4
 
 # end of automatic generation
-
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
-idouble: 1
-double: 1
-ifloat: 1
-float: 1
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
-idouble: 1
-double: 1
-ifloat: 1
-float: 1
-