about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-04-02 22:54:00 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-04-02 22:54:00 +0000
commit52ce486045074d0af0298082f94e385e6b2fe443 (patch)
tree472a67e3c1b2881643aaa315cbfc32fee80e38a0 /sysdeps
parente7906a4789f9f6ac4cd4a99522832753887a8cc7 (diff)
downloadglibc-52ce486045074d0af0298082f94e385e6b2fe443.tar.gz
glibc-52ce486045074d0af0298082f94e385e6b2fe443.tar.xz
glibc-52ce486045074d0af0298082f94e385e6b2fe443.zip
Fix cacosh inaccuracy and spurious exceptions (bug 15327).
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps722
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps969
2 files changed, 1634 insertions, 57 deletions
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index 31e5d94595..4de455c8c0 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -983,116 +983,778 @@ ldouble: 1
 
 # cacosh
 Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 + 1.570796326794896619231321691639751442099 i":
 ildouble: 1
 ldouble: 1
-Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0.0 + 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.25 + 1.0 i) == 8.924633639033482359562124741744951972772e-1 + 1.747098759571863549650000258275841544745 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.25 + 1.0 i) == 8.924633639033482359562124741744951972772e-1 + 1.747098759571863549650000258275841544745 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.25 - 1.0 i) == 8.924633639033482359562124741744951972772e-1 - 1.747098759571863549650000258275841544745 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.25 - 1.0 i) == 8.924633639033482359562124741744951972772e-1 - 1.747098759571863549650000258275841544745 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-1025 i) == 6.222508863508420569166420770843207333493e-309 + 2.094395102393195492308428922186335256131 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i) == 3.287317402534702257036015056278368274737e-39 + 2.094395102393195492308428922186335256131 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-16385 i) == 9.402257155670418112159334875199821342890e-4933 + 2.094395102393195492308428922186335256131 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 + 2.094395102393190022547898764614298351924 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 + 2.094395102393195492308428922186316279087 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 1.0 i) == 9.261330313501824245501244453057873152694e-1 + 1.920235389652109912858733517715121394831 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-1025 i) == 6.222508863508420569166420770843207333493e-309 - 2.094395102393195492308428922186335256131 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i) == 3.287317402534702257036015056278368274737e-39 - 2.094395102393195492308428922186335256131 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-16385 i) == 9.402257155670418112159334875199821342890e-4933 - 2.094395102393195492308428922186335256131 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 - 2.094395102393190022547898764614298351924 i":
 double: 1
 idouble: 1
-Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0.5 - 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 - 2.094395102393195492308428922186316279087 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 1.0 i) == 9.261330313501824245501244453057873152694e-1 - 1.920235389652109912858733517715121394831 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
-Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i) == 1.171456840272878582596796205397918831268e-8 + 3.141592634635223399311902261000251614142 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i) == 1.171456840272878582596796205397918831268e-8 - 3.141592634635223399311902261000251614142 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i) == 2.472906068161537187835415298076415423459e-4923 + 3.141592653260520984471283759942320330996 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 + 3.141592653170952461345846619605307690007 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i) == 2.472906068161537187835415298076415423459e-4923 - 3.141592653260520984471283759942320330996 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 - 3.141592653170952461345846619605307690007 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000000002p0 + 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 + 3.141592653377875508152537040020250564229 i":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (-0x1.0000000000000002p0 - 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 - 3.141592653377875508152537040020250564229 i":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0.0 i) == 2.107342425544701550354780375182800088393e-8 + 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0x1.fp-1025 i) == 2.107342425544701550354780375182800088393e-8 + 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0x1p-52 i) == 2.315303644582684770975188768022139415020e-8 + 3.141592643999491532482601997450598791535 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0.0 i) == 2.107342425544701550354780375182800088393e-8 - 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0x1.fp-1025 i) == 2.107342425544701550354780375182800088393e-8 - 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0x1p-52 i) == 2.315303644582684770975188768022139415020e-8 - 3.141592643999491532482601997450598791535 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i) == 8.813742198809567991336704287826445879025e-1 + 1.572134236154454360143880041170803681211 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i) == 8.813742198809567991336704287826445879025e-1 - 1.572134236154454360143880041170803681211 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691640832196834 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691640832196834 i":
 double: 1
+float: 1
 idouble: 1
-Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i) == 1.194763217287109304111930828519090523536 + 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i) == 1.194763217287109304111930828519090523536 - 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 + 1.570796326794896619231321691639751442101 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 + 1.570796326794896619231321691639751442101 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442101 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i) == 1.194763217287109304111930828519090523536 + 1.570796326794896619231321691639751442100 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 - 1.570796326794896619231321691639751442101 i":
 ildouble: 1
 ldouble: 1
-Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
+Test "Real part of: cacosh (-0x1.fp-129 - 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 - 1.570796326794896619231321691639751442101 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442101 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
+Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i) == 1.194763217287109304111930828519090523536 - 1.570796326794896619231321691639751442100 i":
 double: 1
 idouble: 1
-Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
+Test "Real part of: cacosh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i) == 8.813735870195430258081932989769495326854e-1 + 1.570796328070826603447840231892468927106 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
-Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
+Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i) == 8.813735870195430258081932989769495326854e-1 - 1.570796328070826603447840231892468927106 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-105 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639773491431 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-105 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639773491431 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-112 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639751614359 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-112 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639751614359 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 + 0.5 i) == 4.812118250596059896127318386463676808798e-1 + 1.570796433418926613232299739606181733819 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i) == 8.813735448726963984495965873956465777250e-1 + 1.570796411088596153167306681647360823228 i":
 double: 1
 idouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-23 - 0.5 i) == 4.812118250596059896127318386463676808798e-1 - 1.570796433418926613232299739606181733819 i":
 double: 1
+float: 1
 idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i) == 8.813735448726963984495965873956465777250e-1 - 1.570796411088596153167306681647360823228 i":
 double: 1
 idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-52 + 0.5 i) == 4.812118250596034474977589134243772428682e-1 + 1.570796326794896817834053951421591208280 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-52 - 0.5 i) == 4.812118250596034474977589134243772428682e-1 - 1.570796326794896817834053951421591208280 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 + 0.5 i) == 4.812118250596034474977589134243684231373e-1 + 1.570796326794896619328295682000973043547 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 + 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569937e-1 + 1.570796326794896619307986362473920146173 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 - 0.5 i) == 4.812118250596034474977589134243684231373e-1 - 1.570796326794896619328295682000973043547 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1p-63 - 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569937e-1 - 1.570796326794896619307986362473920146173 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 + 0.5 i) == 7.328576759736452608886724437653071523305e-1 + 2.466703808003786858297978415967328452322 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 + 0.5 i) == 7.328576759736452608886724437653071523305e-1 + 2.466703808003786858297978415967328452322 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i) == 4.247867098745151888768727039216644758847e-5 + 3.141550174918818561961484385371624132331 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 - 0.5 i) == 7.328576759736452608886724437653071523305e-1 - 2.466703808003786858297978415967328452322 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 - 0.5 i) == 7.328576759736452608886724437653071523305e-1 - 2.466703808003786858297978415967328452322 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i) == 4.247867098745151888768727039216644758847e-5 - 3.141550174918818561961484385371624132331 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-1025 i) == 9.624236501192068949955178268487368462704e-1 + 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-129 i) == 9.624236501192068949955178268487368462704e-1 + 3.141592653589793238462643383279502884195 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-16385 i) == 9.624236501192068949955178268487368462704e-1 + 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
 Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-1025 i) == 9.624236501192068949955178268487368462704e-1 - 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-129 i) == 9.624236501192068949955178268487368462704e-1 - 3.141592653589793238462643383279502884195 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-16385 i) == 9.624236501192068949955178268487368462704e-1 - 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 + 1.0 i) == 8.924633639033482359562124741744951972772e-1 + 1.394493894017929688812643125003661339452 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 - 1.0 i) == 8.924633639033482359562124741744951972772e-1 - 1.394493894017929688812643125003661339452 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + +0 i) == +0 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-1025 i) == 6.222508863508420569166420770843207333493e-309 + 1.047197551196597746154214461093167628066 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i) == 6.222508863508420569166420770843207333493e-309 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-129 i) == 3.287317402534702257036015056278368274737e-39 + 1.047197551196597746154214461093167628066 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i) == 3.287317402534702257036015056278368274737e-39 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-16385 i) == 9.402257155670418112159334875199821342890e-4933 + 1.047197551196597746154214461093167628066 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i) == 2.846556599890768890940941645338546615370e-32 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i) == 2.223872343664663196047610660420739543258e-34 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 + 1.047197551196603215914744618665204532273 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 + 1.047197551196597746154214461093186605110 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 + 1.047197551196597746154214461093186605110 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i) == 1.251928832280966098829878787499365228659e-19 + 1.047197551196597746154214461093167628070 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 1.0 i) == 9.261330313501824245501244453057873152694e-1 + 1.221357263937683325603909865564381489366 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Imaginary part of: cacosh (0.5 - 0 i) == +0 - 1.047197551196597746154214461093167628066 i":
 double: 1
-float: 9
 idouble: 1
-ifloat: 9
-ildouble: 6
-ldouble: 6
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Real part of: cacosh (0.5 - 0x1.fp-1025 i) == 6.222508863508420569166420770843207333493e-309 - 1.047197551196597746154214461093167628066 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i) == 6.222508863508420569166420770843207333493e-309 - 1.047197551196597746154214461093167628066 i":
 double: 1
-float: 4
 idouble: 1
-ifloat: 4
+Test "Real part of: cacosh (0.5 - 0x1.fp-129 i) == 3.287317402534702257036015056278368274737e-39 - 1.047197551196597746154214461093167628066 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i) == 3.287317402534702257036015056278368274737e-39 - 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1.fp-16385 i) == 9.402257155670418112159334875199821342890e-4933 - 1.047197551196597746154214461093167628066 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i) == 2.846556599890768890940941645338546615370e-32 - 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i) == 2.223872343664663196047610660420739543258e-34 - 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 - 1.047197551196603215914744618665204532273 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 - 1.047197551196597746154214461093186605110 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 - 1.047197551196597746154214461093186605110 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i) == 1.251928832280966098829878787499365228659e-19 - 1.047197551196597746154214461093167628070 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 1.0 i) == 9.261330313501824245501244453057873152694e-1 - 1.221357263937683325603909865564381489366 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
 Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
 ildouble: 1
 ldouble: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i) == 1.171456840272878582596796205397918831268e-8 + 1.895456983915074112227925127005564372844e-8 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i) == 1.171456840272878582596796205397918831268e-8 + 1.895456983915074112227925127005564372844e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i) == 1.171456840272878582596796205397918831268e-8 - 1.895456983915074112227925127005564372844e-8 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i) == 1.171456840272878582596796205397918831268e-8 - 1.895456983915074112227925127005564372844e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i) == 2.472906068161537187835415298076415423459e-4923 + 3.292722539913596233371825532007990724506e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 + 4.188407771167967636741951941902992986043e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 + 4.188407771167967636741951941902992986043e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i) == 2.472906068161537187835415298076415423459e-4923 - 3.292722539913596233371825532007990724506e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 - 4.188407771167967636741951941902992986043e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 - 4.188407771167967636741951941902992986043e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 + 2.119177303101063432592523199680782317447e-10 i":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 + 2.119177303101063432592523199680782317447e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 - 2.119177303101063432592523199680782317447e-10 i":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 - 2.119177303101063432592523199680782317447e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0.0 i) == 2.107342425544701550354780375182800088393e-8 + 0.0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0x1.fp-1025 i) == 2.107342425544701550354780375182800088393e-8 + 2.557178503953494342609835913586108008322e-301 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i) == 2.315303644582684770975188768022139415020e-8 + 9.590301705980041385828904092662391018164e-9 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i) == 2.315303644582684770975188768022139415020e-8 + 9.590301705980041385828904092662391018164e-9 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0.0 i) == 2.107342425544701550354780375182800088393e-8 - 0.0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0x1.fp-1025 i) == 2.107342425544701550354780375182800088393e-8 - 2.557178503953494342609835913586108008322e-301 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i) == 2.315303644582684770975188768022139415020e-8 - 9.590301705980041385828904092662391018164e-9 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i) == 2.315303644582684770975188768022139415020e-8 - 9.590301705980041385828904092662391018164e-9 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-10 + 1.0 i) == 8.813742198809567991336704287826445879025e-1 + 1.569458417435338878318763342108699202986 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-10 - 1.0 i) == 8.813742198809567991336704287826445879025e-1 - 1.569458417435338878318763342108699202986 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-100 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691638670687364 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "Real part of: cacosh (0x1.fp-100 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691638670687364 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i) == 1.194763217287109304111930828519090523536 + 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i) == 1.194763217287109304111930828519090523536 - 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639751442096 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 + 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 + 1.570796326794896619231321691639751442097 i":
 ildouble: 1
 ldouble: 1
-Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+Test "Real part of: cacosh (0x1.fp-129 + 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 + 1.570796326794896619231321691639751442096 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442097 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 + 1.5 i) == 1.194763217287109304111930828519090523536 + 1.570796326794896619231321691639751442097 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639751442096 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 - 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 - 1.570796326794896619231321691639751442097 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 - 1.570796326794896619231321691639751442096 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442097 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 - 1.5 i) == 1.194763217287109304111930828519090523536 - 1.570796326794896619231321691639751442097 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 + 1.0 i) == 8.813735870195430258081932989769495326854e-1 + 1.570796325518966635014803151387033957091 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 - 1.0 i) == 8.813735870195430258081932989769495326854e-1 - 1.570796325518966635014803151387033957091 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i) == 7.107906849659093345062145442726115449315e2 + 7.853981633974483096156608458198757210493e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i) == 8.973081118419833726837456344608533993585e1 + 7.853981633974483096156608458198757210493e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1p-105 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639729392766 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-105 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639729392766 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-112 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639751269838 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-112 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639751269838 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-23 + 0.5 i) == 4.812118250596059896127318386463676808798e-1 + 1.570796220170866625230343643673321150378 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i) == 8.813735448726963984495965873956465777250e-1 + 1.570796242501197085295336701632142060969 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-23 - 0.5 i) == 4.812118250596059896127318386463676808798e-1 - 1.570796220170866625230343643673321150378 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i) == 8.813735448726963984495965873956465777250e-1 - 1.570796242501197085295336701632142060969 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 + 0.5 i) == 4.812118250596034474977589134243772428682e-1 + 1.570796326794896420628589431857911675917 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 - 0.5 i) == 4.812118250596034474977589134243772428682e-1 - 1.570796326794896420628589431857911675917 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0.5 i) == 4.812118250596034474977589134243684231373e-1 + 1.570796326794896619134347701278529840650 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569937e-1 + 1.570796326794896619154657020805582738025 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0.5 i) == 4.812118250596034474977589134243684231373e-1 - 1.570796326794896619134347701278529840650 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569937e-1 - 1.570796326794896619154657020805582738025 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 + 0.5 i) == 7.328576759736452608886724437653071523305e-1 + 6.748888455860063801646649673121744318756e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 + 0.5 i) == 7.328576759736452608886724437653071523305e-1 + 6.748888455860063801646649673121744318756e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i) == 4.350501469856803800217957402220976497152e-2 + 4.349129763101882771258049954181971959031e-2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 + 0x1.fp-30 i) == 4.247867098745151888768727039216644758847e-5 + 4.247867097467650115899790787875186617316e-5 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-30 i) == 4.247867098745151888768727039216644758847e-5 + 4.247867097467650115899790787875186617316e-5 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (1.0 - 0.5 i) == 7.328576759736452608886724437653071523305e-1 - 6.748888455860063801646649673121744318756e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0.5 i) == 7.328576759736452608886724437653071523305e-1 - 6.748888455860063801646649673121744318756e-1 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i) == 4.350501469856803800217957402220976497152e-2 - 4.349129763101882771258049954181971959031e-2 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 - 0x1.fp-30 i) == 4.247867098745151888768727039216644758847e-5 - 4.247867097467650115899790787875186617316e-5 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-30 i) == 4.247867098745151888768727039216644758847e-5 - 4.247867097467650115899790787875186617316e-5 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-1025 i) == 9.624236501192068949955178268487368462704e-1 + 4.819934639999230680322935210539402497827e-309 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-129 i) == 9.624236501192068949955178268487368462704e-1 + 2.546345110742945032959687790021055102355e-39 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-16385 i) == 9.624236501192068949955178268487368462704e-1 + 7.282957076134209141226696333885150260319e-4933 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-1025 i) == 9.624236501192068949955178268487368462704e-1 - 4.819934639999230680322935210539402497827e-309 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-129 i) == 9.624236501192068949955178268487368462704e-1 - 2.546345110742945032959687790021055102355e-39 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-16385 i) == 9.624236501192068949955178268487368462704e-1 - 7.282957076134209141226696333885150260319e-4933 i":
+ildouble: 1
+ldouble: 1
 
 # casin
 Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
@@ -5455,17 +6117,17 @@ ldouble: 2
 
 Function: Real part of "cacosh":
 double: 1
-float: 9
+float: 1
 idouble: 1
-ifloat: 9
-ildouble: 6
-ldouble: 6
+ifloat: 1
+ildouble: 2
+ldouble: 2
 
 Function: Imaginary part of "cacosh":
 double: 1
-float: 4
+float: 1
 idouble: 1
-ifloat: 4
+ifloat: 1
 ildouble: 1
 ldouble: 1
 
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 29167f388d..28f4bfc0de 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -1195,8 +1195,6 @@ ldouble: 1
 Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
 float: 1
 ifloat: 1
-ildouble: 1
-ldouble: 1
 Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
 double: 1
 float: 1
@@ -1208,8 +1206,6 @@ idouble: 1
 Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
 float: 1
 ifloat: 1
-ildouble: 1
-ldouble: 1
 Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
 double: 1
 float: 1
@@ -1221,8 +1217,6 @@ idouble: 1
 Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
 float: 1
 ifloat: 1
-ildouble: 1
-ldouble: 1
 Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
 double: 1
 float: 1
@@ -1234,8 +1228,6 @@ idouble: 1
 Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
 float: 1
 ifloat: 1
-ildouble: 1
-ldouble: 1
 Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
 double: 1
 float: 1
@@ -1244,47 +1236,970 @@ ifloat: 1
 Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
 double: 1
 idouble: 1
-Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
+Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 + 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.0 - 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.25 + 1.0 i) == 8.924633639033482359562124741744951972772e-1 + 1.747098759571863549650000258275841544745 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.25 + 1.0 i) == 8.924633639033482359562124741744951972772e-1 + 1.747098759571863549650000258275841544745 i":
 double: 1
+float: 1
 idouble: 1
-Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
+ifloat: 1
+Test "Real part of: cacosh (-0.25 - 1.0 i) == 8.924633639033482359562124741744951972772e-1 - 1.747098759571863549650000258275841544745 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.25 - 1.0 i) == 8.924633639033482359562124741744951972772e-1 - 1.747098759571863549650000258275841544745 i":
 double: 1
+float: 1
 idouble: 1
-Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+ifloat: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-1025 i) == 6.222508863508420569166420770843207333493e-309 + 2.094395102393195492308428922186335256131 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i) == 3.287317402534702257036015056278368274737e-39 + 2.094395102393195492308428922186335256131 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1.fp-16385 i) == 9.402257155670418112159334875199821342890e-4933 + 2.094395102393195492308428922186335256131 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-105 i) == 2.846556599890768890940941645338546615370e-32 + 2.094395102393195492308428922186335256131 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-112 i) == 2.223872343664663196047610660420739543258e-34 + 2.094395102393195492308428922186335256131 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 + 2.094395102393190022547898764614298351924 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 + 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 + 2.094395102393195492308428922186316279087 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 + 1.0 i) == 9.261330313501824245501244453057873152694e-1 + 1.920235389652109912858733517715121394831 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 + 1.0 i) == 9.261330313501824245501244453057873152694e-1 + 1.920235389652109912858733517715121394831 i":
 float: 1
 ifloat: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-1025 i) == 6.222508863508420569166420770843207333493e-309 - 2.094395102393195492308428922186335256131 i":
 ildouble: 1
 ldouble: 1
-Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i) == 3.287317402534702257036015056278368274737e-39 - 2.094395102393195492308428922186335256131 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1.fp-16385 i) == 9.402257155670418112159334875199821342890e-4933 - 2.094395102393195492308428922186335256131 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-105 i) == 2.846556599890768890940941645338546615370e-32 - 2.094395102393195492308428922186335256131 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-112 i) == 2.223872343664663196047610660420739543258e-34 - 2.094395102393195492308428922186335256131 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 - 2.094395102393190022547898764614298351924 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0.5 - 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 - 2.094395102393195492308428922186316279087 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0.5 - 1.0 i) == 9.261330313501824245501244453057873152694e-1 - 1.920235389652109912858733517715121394831 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0.5 - 1.0 i) == 9.261330313501824245501244453057873152694e-1 - 1.920235389652109912858733517715121394831 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i) == 1.171456840272878582596796205397918831268e-8 + 3.141592634635223399311902261000251614142 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i) == 1.171456840272878582596796205397918831268e-8 - 3.141592634635223399311902261000251614142 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i) == 2.472906068161537187835415298076415423459e-4923 + 3.141592653260520984471283759942320330996 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 + 3.141592653170952461345846619605307690007 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i) == 2.472906068161537187835415298076415423459e-4923 - 3.141592653260520984471283759942320330996 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 - 3.141592653170952461345846619605307690007 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 + 3.141153467203602189751698864505105063797 i":
+float: 2
+ifloat: 2
+Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 - 3.141153467203602189751698864505105063797 i":
+float: 2
+ifloat: 2
+Test "Real part of: cacosh (-0x1.0000000000000002p0 + 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 + 3.141592653377875508152537040020250564229 i":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (-0x1.0000000000000002p0 - 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 - 3.141592653377875508152537040020250564229 i":
+ildouble: 2
+ldouble: 2
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0.0 i) == 2.107342425544701550354780375182800088393e-8 + 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0x1.fp-1025 i) == 2.107342425544701550354780375182800088393e-8 + 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 + 0x1p-52 i) == 2.315303644582684770975188768022139415020e-8 + 3.141592643999491532482601997450598791535 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0.0 i) == 2.107342425544701550354780375182800088393e-8 - 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0x1.fp-1025 i) == 2.107342425544701550354780375182800088393e-8 - 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.0000000000001p0 - 0x1p-52 i) == 2.315303644582684770975188768022139415020e-8 - 3.141592643999491532482601997450598791535 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i) == 5.364668491573609633134147164031476452679e-4 + 3.141370441751352383825802745874586120521 i":
 float: 1
 ifloat: 1
+Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i) == 5.364668491573609633134147164031476452679e-4 - 3.141370441751352383825802745874586120521 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i) == 8.813742198809567991336704287826445879025e-1 + 1.572134236154454360143880041170803681211 i":
+double: 1
+idouble: 1
 ildouble: 1
 ldouble: 1
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i) == 8.813742198809567991336704287826445879025e-1 - 1.572134236154454360143880041170803681211 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691640832196834 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691640832196834 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691640832196834 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691640832196834 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442099 i":
 double: 1
-float: 7
 idouble: 1
-ifloat: 7
-ildouble: 6
-ldouble: 6
+Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i) == 1.194763217287109304111930828519090523536 + 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i) == 1.194763217287109304111930828519090523536 - 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i) == 8.813735448726938863015878255140556727969e-1 + 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 + 1.570796326794896619231321691639751442101 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 + 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i) == 2.846900380897727558361783801085126250967e-39 + 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 + 1.570796326794896619231321691639751442101 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 + 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442101 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i) == 1.194763217287109304111930828519090523536 + 1.570796326794896619231321691639751442100 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i) == 1.194763217287109304111930828519090523536 + 1.570796326794896619231321691639751442100 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i) == 8.813735448726938863015878255140556727969e-1 - 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 - 1.570796326794896619231321691639751442101 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 - 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i) == 2.846900380897727558361783801085126250967e-39 - 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 - 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 - 1.570796326794896619231321691639751442101 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 - 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442101 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442101 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i) == 1.194763217287109304111930828519090523536 - 1.570796326794896619231321691639751442100 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i) == 1.194763217287109304111930828519090523536 - 1.570796326794896619231321691639751442100 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i) == 8.813735870195430258081932989769495326854e-1 + 1.570796328070826603447840231892468927106 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i) == 8.813735870195430258081932989769495326854e-1 + 1.570796328070826603447840231892468927106 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i) == 8.813735870195430258081932989769495326854e-1 - 1.570796328070826603447840231892468927106 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i) == 8.813735870195430258081932989769495326854e-1 - 1.570796328070826603447840231892468927106 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i) == 0.0 + 1.570796326794896619231321691639776094002 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-105 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639773491431 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639773491431 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i) == 2.465190328815661891911651766508706967729e-32 + 1.570796326794896619231321691639776094002 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i) == 0.0 - 1.570796326794896619231321691639776094002 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-105 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639773491431 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639773491431 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i) == 2.465190328815661891911651766508706967729e-32 - 1.570796326794896619231321691639776094002 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i) == 0.0 + 1.570796326794896619231321691639751634692 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-112 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639751614359 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639751614359 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i) == 1.925929944387235853055977942584927318538e-34 + 1.570796326794896619231321691639751634692 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i) == 0.0 - 1.570796326794896619231321691639751634692 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-112 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639751614359 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639751614359 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i) == 1.925929944387235853055977942584927318538e-34 - 1.570796326794896619231321691639751634692 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i) == 0.0 + 1.570796446004186170012854035955502877351 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 + 0.5 i) == 4.812118250596059896127318386463676808798e-1 + 1.570796433418926613232299739606181733819 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i) == 4.812118250596059896127318386463676808798e-1 + 1.570796433418926613232299739606181733819 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i) == 8.813735448726963984495965873956465777250e-1 + 1.570796411088596153167306681647360823228 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i) == 2.846900380897747786805634596726756660388e-39 + 1.570796446004186170012854035955502877351 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i) == 1.192092895507818146886315028596704749235e-7 + 1.570796446004186170012007003008248567984 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i) == 0.0 - 1.570796446004186170012854035955502877351 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 - 0.5 i) == 4.812118250596059896127318386463676808798e-1 - 1.570796433418926613232299739606181733819 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i) == 4.812118250596059896127318386463676808798e-1 - 1.570796433418926613232299739606181733819 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i) == 8.813735448726963984495965873956465777250e-1 - 1.570796411088596153167306681647360823228 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i) == 2.846900380897747786805634596726756660388e-39 - 1.570796446004186170012854035955502877351 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i) == 1.192092895507818146886315028596704749235e-7 - 1.570796446004186170012007003008248567984 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i) == 0.0 + 1.570796326794896841275926616671059526825 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-52 + 0.5 i) == 4.812118250596034474977589134243772428682e-1 + 1.570796326794896817834053951421591208280 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i) == 4.812118250596034474977589134243772428682e-1 + 1.570796326794896817834053951421591208280 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i) == 2.220446049250313080847263336181677117148e-16 + 1.570796326794896841275926616671059526825 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i) == 0.0 - 1.570796326794896841275926616671059526825 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-52 - 0.5 i) == 4.812118250596034474977589134243772428682e-1 - 1.570796326794896817834053951421591208280 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i) == 4.812118250596034474977589134243772428682e-1 - 1.570796326794896817834053951421591208280 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i) == 2.220446049250313080847263336181677117148e-16 - 1.570796326794896841275926616671059526825 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i) == 0.0 + 1.570796326794896619339741908888301885499 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-63 + 0.5 i) == 4.812118250596034474977589134243684231373e-1 + 1.570796326794896619328295682000973043547 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i) == 4.812118250596034474977589134243684231373e-1 + 1.570796326794896619328295682000973043547 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-63 + 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569937e-1 + 1.570796326794896619307986362473920146173 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i) == 1.084202172485504434007452800869941711430e-19 + 1.570796326794896619339741908888301885499 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i) == 0.0 - 1.570796326794896619339741908888301885499 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-63 - 0.5 i) == 4.812118250596034474977589134243684231373e-1 - 1.570796326794896619328295682000973043547 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i) == 4.812118250596034474977589134243684231373e-1 - 1.570796326794896619328295682000973043547 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-0x1p-63 - 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569937e-1 - 1.570796326794896619307986362473920146173 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i) == 1.084202172485504434007452800869941711430e-19 - 1.570796326794896619339741908888301885499 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 + 0.5 i) == 7.328576759736452608886724437653071523305e-1 + 2.466703808003786858297978415967328452322 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i) == 4.350501469856803800217957402220976497152e-2 + 3.098101355958774410750062883737683164607 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i) == 4.247867098745151888768727039216644758847e-5 + 3.141550174918818561961484385371624132331 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i) == 3.535050620855721078027883819436759661753e1 + 1.570796326794897507409741391764983781004 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 - 0.5 i) == 7.328576759736452608886724437653071523305e-1 - 2.466703808003786858297978415967328452322 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i) == 4.350501469856803800217957402220976497152e-2 - 3.098101355958774410750062883737683164607 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i) == 4.247867098745151888768727039216644758847e-5 - 3.141550174918818561961484385371624132331 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i) == 3.535050620855721078027883819436759661753e1 - 1.570796326794897507409741391764983781004 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-1025 i) == 9.624236501192068949955178268487368462704e-1 + 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-129 i) == 9.624236501192068949955178268487368462704e-1 + 3.141592653589793238462643383279502884195 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 + 0x1.fp-16385 i) == 9.624236501192068949955178268487368462704e-1 + 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-1025 i) == 9.624236501192068949955178268487368462704e-1 - 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-129 i) == 9.624236501192068949955178268487368462704e-1 - 3.141592653589793238462643383279502884195 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (-1.5 - 0x1.fp-16385 i) == 9.624236501192068949955178268487368462704e-1 - 3.141592653589793238462643383279502884197 i":
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 + 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.0 - 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 + 1.0 i) == 8.924633639033482359562124741744951972772e-1 + 1.394493894017929688812643125003661339452 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.25 - 1.0 i) == 8.924633639033482359562124741744951972772e-1 - 1.394493894017929688812643125003661339452 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + +0 i) == +0 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-1025 i) == 6.222508863508420569166420770843207333493e-309 + 1.047197551196597746154214461093167628066 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i) == 6.222508863508420569166420770843207333493e-309 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-129 i) == 3.287317402534702257036015056278368274737e-39 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i) == 3.287317402534702257036015056278368274737e-39 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1.fp-16385 i) == 9.402257155670418112159334875199821342890e-4933 + 1.047197551196597746154214461093167628066 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-105 i) == 2.846556599890768890940941645338546615370e-32 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i) == 2.846556599890768890940941645338546615370e-32 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-112 i) == 2.223872343664663196047610660420739543258e-34 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i) == 2.223872343664663196047610660420739543258e-34 + 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 + 1.047197551196603215914744618665204532273 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 + 1.047197551196597746154214461093186605110 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 + 1.047197551196597746154214461093186605110 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i) == 1.251928832280966098829878787499365228659e-19 + 1.047197551196597746154214461093167628070 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 + 1.0 i) == 9.261330313501824245501244453057873152694e-1 + 1.221357263937683325603909865564381489366 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 + 1.0 i) == 9.261330313501824245501244453057873152694e-1 + 1.221357263937683325603909865564381489366 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0.5 - 0 i) == +0 - 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1.fp-1025 i) == 6.222508863508420569166420770843207333493e-309 - 1.047197551196597746154214461093167628066 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i) == 6.222508863508420569166420770843207333493e-309 - 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1.fp-129 i) == 3.287317402534702257036015056278368274737e-39 - 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i) == 3.287317402534702257036015056278368274737e-39 - 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1.fp-16385 i) == 9.402257155670418112159334875199821342890e-4933 - 1.047197551196597746154214461093167628066 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-105 i) == 2.846556599890768890940941645338546615370e-32 - 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i) == 2.846556599890768890940941645338546615370e-32 - 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-112 i) == 2.223872343664663196047610660420739543258e-34 - 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i) == 2.223872343664663196047610660420739543258e-34 - 1.047197551196597746154214461093167628066 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-23 i) == 1.376510308240943236356088341381173571841e-7 - 1.047197551196603215914744618665204532273 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 - 1.047197551196597746154214461093186605110 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i) == 2.563950248511418570403591756798643804971e-16 - 1.047197551196597746154214461093186605110 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i) == 1.251928832280966098829878787499365228659e-19 - 1.047197551196597746154214461093167628070 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0.5 - 1.0 i) == 9.261330313501824245501244453057873152694e-1 - 1.221357263937683325603909865564381489366 i":
 double: 1
-float: 3
 idouble: 1
-ifloat: 3
 ildouble: 1
 ldouble: 1
+Test "Imaginary part of: cacosh (0.5 - 1.0 i) == 9.261330313501824245501244453057873152694e-1 - 1.221357263937683325603909865564381489366 i":
+float: 1
+ifloat: 1
 Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
 ildouble: 1
 ldouble: 1
-Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i) == 1.171456840272878582596796205397918831268e-8 + 1.895456983915074112227925127005564372844e-8 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i) == 1.171456840272878582596796205397918831268e-8 + 1.895456983915074112227925127005564372844e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i) == 1.171456840272878582596796205397918831268e-8 - 1.895456983915074112227925127005564372844e-8 i":
+double: 1
+idouble: 1
+Test "Imaginary part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i) == 1.171456840272878582596796205397918831268e-8 - 1.895456983915074112227925127005564372844e-8 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i) == 2.472906068161537187835415298076415423459e-4923 + 3.292722539913596233371825532007990724506e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 + 4.188407771167967636741951941902992986043e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 + 4.188407771167967636741951941902992986043e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i) == 2.472906068161537187835415298076415423459e-4923 - 3.292722539913596233371825532007990724506e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 - 4.188407771167967636741951941902992986043e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i) == 2.588578361325995866221775673638805081337e-10 - 4.188407771167967636741951941902992986043e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i) == 0.0 + 3.452669847162035876032494826387364972849e-4 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i) == 8.245504387859737323891843603996428534945e-36 + 3.452669847162035876032494826387364972849e-4 i":
 float: 1
 ifloat: 1
+Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 + 4.391863861910487109445187743978204002614e-4 i":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 + 4.391863861910487109445187743978204002614e-4 i":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i) == 0.0 - 3.452669847162035876032494826387364972849e-4 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i) == 8.245504387859737323891843603996428534945e-36 - 3.452669847162035876032494826387364972849e-4 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 - 4.391863861910487109445187743978204002614e-4 i":
+float: 2
+ifloat: 2
+Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i) == 2.714321200917194650737217746780928423385e-4 - 4.391863861910487109445187743978204002614e-4 i":
+float: 2
+ifloat: 2
+Test "Real part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 + 2.119177303101063432592523199680782317447e-10 i":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 + 2.119177303101063432592523199680782317447e-10 i":
 ildouble: 1
 ldouble: 1
-Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+Test "Real part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 - 2.119177303101063432592523199680782317447e-10 i":
+ildouble: 2
+ldouble: 2
+Test "Imaginary part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i) == 5.116146586219826555037807251857670783420e-10 - 2.119177303101063432592523199680782317447e-10 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0.0 i) == 2.107342425544701550354780375182800088393e-8 + 0.0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0x1.fp-1025 i) == 2.107342425544701550354780375182800088393e-8 + 2.557178503953494342609835913586108008322e-301 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i) == 2.315303644582684770975188768022139415020e-8 + 9.590301705980041385828904092662391018164e-9 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i) == 2.315303644582684770975188768022139415020e-8 + 9.590301705980041385828904092662391018164e-9 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0.0 i) == 2.107342425544701550354780375182800088393e-8 - 0.0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0x1.fp-1025 i) == 2.107342425544701550354780375182800088393e-8 - 2.557178503953494342609835913586108008322e-301 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i) == 2.315303644582684770975188768022139415020e-8 - 9.590301705980041385828904092662391018164e-9 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i) == 2.315303644582684770975188768022139415020e-8 - 9.590301705980041385828904092662391018164e-9 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i) == 5.364668491573609633134147164031476452679e-4 + 2.222118384408546368406374049167636760903e-4 i":
 float: 1
 ifloat: 1
+Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i) == 5.364668491573609633134147164031476452679e-4 + 2.222118384408546368406374049167636760903e-4 i":
+float: 2
+ifloat: 2
+Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i) == 5.364668491573609633134147164031476452679e-4 - 2.222118384408546368406374049167636760903e-4 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i) == 5.364668491573609633134147164031476452679e-4 - 2.222118384408546368406374049167636760903e-4 i":
+float: 2
+ifloat: 2
+Test "Real part of: cacosh (0x1.fp-10 + 1.0 i) == 8.813742198809567991336704287826445879025e-1 + 1.569458417435338878318763342108699202986 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-10 - 1.0 i) == 8.813742198809567991336704287826445879025e-1 - 1.569458417435338878318763342108699202986 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-100 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691638670687364 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-100 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691638670687364 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i) == 1.194763217287109304111930828519090523536 + 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i) == 1.194763217287109304111930828519090523536 - 1.570796326794896619231321691639751442099 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639751442096 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 + 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 + 1.570796326794896619231321691639751442097 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 + 1.570796326794896619231321691639751442096 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 + 1.0 i) == 8.813735870195430252326093249797923090282e-1 + 1.570796326794896619231321691639751442097 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 + 1.5 i) == 1.194763217287109304111930828519090523536 + 1.570796326794896619231321691639751442097 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639751442096 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 - 0x1.000002p0 i) == 8.813736713132375348727889167749389235161e-1 - 1.570796326794896619231321691639751442097 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 0x1p-23 i) == 1.192092895507809676556842485683592032154e-7 - 1.570796326794896619231321691639751442096 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-129 - 1.0 i) == 8.813735870195430252326093249797923090282e-1 - 1.570796326794896619231321691639751442097 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1.fp-129 - 1.5 i) == 1.194763217287109304111930828519090523536 - 1.570796326794896619231321691639751442097 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 + 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569917e-1 - 1.570796326794896619231321691639751442099 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 + 1.0 i) == 8.813735870195430258081932989769495326854e-1 + 1.570796325518966635014803151387033957091 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp-30 - 1.0 i) == 8.813735870195430258081932989769495326854e-1 - 1.570796325518966635014803151387033957091 i":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i) == 7.107906849659093345062145442726115449315e2 + 7.853981633974483096156608458198757210493e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i) == 8.973081118419833726837456344608533993585e1 + 7.853981633974483096156608458198757210493e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (0x1p-105 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639729392766 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-105 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639729392766 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-112 + 0.5 i) == 4.812118250596034474977589134243684231352e-1 + 1.570796326794896619231321691639751269838 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-112 - 0.5 i) == 4.812118250596034474977589134243684231352e-1 - 1.570796326794896619231321691639751269838 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-23 + 0.5 i) == 4.812118250596059896127318386463676808798e-1 + 1.570796220170866625230343643673321150378 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i) == 8.813735448726963984495965873956465777250e-1 + 1.570796242501197085295336701632142060969 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-23 - 0.5 i) == 4.812118250596059896127318386463676808798e-1 - 1.570796220170866625230343643673321150378 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i) == 8.813735448726963984495965873956465777250e-1 - 1.570796242501197085295336701632142060969 i":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 + 0.5 i) == 4.812118250596034474977589134243772428682e-1 + 1.570796326794896420628589431857911675917 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-52 - 0.5 i) == 4.812118250596034474977589134243772428682e-1 - 1.570796326794896420628589431857911675917 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0.5 i) == 4.812118250596034474977589134243684231373e-1 + 1.570796326794896619134347701278529840650 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 + 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569937e-1 + 1.570796326794896619154657020805582738025 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0.5 i) == 4.812118250596034474977589134243684231373e-1 - 1.570796326794896619134347701278529840650 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (0x1p-63 - 0x0.ffffffffffffffffp0 i) == 8.813735870195430251942769895627079569937e-1 - 1.570796326794896619154657020805582738025 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 + 0.25 i) == 5.097911466811016354623559941115413499164e-1 + 4.890443302710802929202843732146540079124e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (1.0 + 0.5 i) == 7.328576759736452608886724437653071523305e-1 + 6.748888455860063801646649673121744318756e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 + 0.5 i) == 7.328576759736452608886724437653071523305e-1 + 6.748888455860063801646649673121744318756e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (1.0 + 0x1.fp-10 i) == 4.350501469856803800217957402220976497152e-2 + 4.349129763101882771258049954181971959031e-2 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i) == 4.350501469856803800217957402220976497152e-2 + 4.349129763101882771258049954181971959031e-2 i":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 + 0x1.fp-30 i) == 4.247867098745151888768727039216644758847e-5 + 4.247867097467650115899790787875186617316e-5 i":
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0.25 i) == 5.097911466811016354623559941115413499164e-1 - 4.890443302710802929202843732146540079124e-1 i":
+double: 1
+idouble: 1
+Test "Real part of: cacosh (1.0 - 0.5 i) == 7.328576759736452608886724437653071523305e-1 - 6.748888455860063801646649673121744318756e-1 i":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "Imaginary part of: cacosh (1.0 - 0.5 i) == 7.328576759736452608886724437653071523305e-1 - 6.748888455860063801646649673121744318756e-1 i":
+float: 1
+ifloat: 1
+Test "Real part of: cacosh (1.0 - 0x1.fp-10 i) == 4.350501469856803800217957402220976497152e-2 - 4.349129763101882771258049954181971959031e-2 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i) == 4.350501469856803800217957402220976497152e-2 - 4.349129763101882771258049954181971959031e-2 i":
+float: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.0 - 0x1.fp-30 i) == 4.247867098745151888768727039216644758847e-5 - 4.247867097467650115899790787875186617316e-5 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-1025 i) == 9.624236501192068949955178268487368462704e-1 + 4.819934639999230680322935210539402497827e-309 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-129 i) == 9.624236501192068949955178268487368462704e-1 + 2.546345110742945032959687790021055102355e-39 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 + 0x1.fp-16385 i) == 9.624236501192068949955178268487368462704e-1 + 7.282957076134209141226696333885150260319e-4933 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-1025 i) == 9.624236501192068949955178268487368462704e-1 - 4.819934639999230680322935210539402497827e-309 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-129 i) == 9.624236501192068949955178268487368462704e-1 - 2.546345110742945032959687790021055102355e-39 i":
+ildouble: 1
+ldouble: 1
+Test "Real part of: cacosh (1.5 - 0x1.fp-16385 i) == 9.624236501192068949955178268487368462704e-1 - 7.282957076134209141226696333885150260319e-4933 i":
 ildouble: 1
 ldouble: 1
 
@@ -5578,17 +6493,17 @@ ldouble: 2
 
 Function: Real part of "cacosh":
 double: 1
-float: 7
+float: 2
 idouble: 1
-ifloat: 7
-ildouble: 6
-ldouble: 6
+ifloat: 2
+ildouble: 2
+ldouble: 2
 
 Function: Imaginary part of "cacosh":
 double: 1
-float: 3
+float: 2
 idouble: 1
-ifloat: 3
+ifloat: 2
 ildouble: 1
 ldouble: 1