From 09bf6406b102b89e52f734b517030b86b7583aaf Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 26 Sep 2000 19:13:37 +0000 Subject: Update. 2000-09-26 Jakub Jelinek * sysdeps/sparc/sparc32/bits/endian.h: Remove. * sysdeps/sparc/sparc32/ieee754.h: New. * sysdeps/sparc/sparc64/bits/endian.h: Move... * sysdeps/sparc/bits/endian.h: ...here. * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Optimize. * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone): Check %o1, not %o0 to see if we're parent or child. Optimize. 2000-09-26 Jes Sorensen * sysdeps/unix/sysv/linux/ia64/fork.S: New file (based on code by Hans Boehm). * sysdeps/unix/sysv/linux/ia64/vfork.S: New file (based on code by Hans Boehm). * sysdeps/unix/sysv/linux/ia64/fork.c: Deleted (obsoleted by fork.S). 2000-09-20 H.J. Lu * sysdeps/ia64/fpu/printf_fphex.c: New file. * sysdeps/ia64/fpu/libm-test-ulps: New file. 2000-09-17 H.J. Lu * sysdeps/ia64/Makefile (long-double-fcts): New. Defined as yes. * sysdeps/ia64/fpu/s_isinfl.c: New file. Include sysdeps/i386/fpu/s_isinfl.c. * sysdeps/ia64/fpu/s_isnanl.c: New file. Include sysdeps/i386/fpu/s_isnanl.c. * sysdeps/ia64/fpu/s_nextafterl.c: New file. Include sysdeps/i386/fpu/s_nextafterl.c. * sysdeps/ia64/fpu/bits/mathdef.h: New file. Copied from sysdeps/i386/fpu/bits/mathdef.h. 2000-09-16 H.J. Lu * sysdeps/generic/ldsodefs.h (DL_UNMAP): New. Defined if DL_UNMAP_IS_SPECIAL is not defined. * sysdeps/ia64/dl-lookupcfg.h (DL_UNMAP_IS_SPECIAL): Defined. (_dl_unmap): New prototype. (DL_UNMAP): New. Defined as _dl_unmap. * sysdeps/ia64/Versions [ld] (GLIBC_2.2): Add _dl_unmap. * elf/dl-close.c (_dl_close): Replace __munmap with DL_UNMAP. 2000-09-16 H.J. Lu * sysdeps/generic/ldsodefs.h (DL_LOOKUP_ADDRESS): New. Defined if ELF_FUNCTION_PTR_IS_SPECIAL is not defined. * sysdeps/ia64/dl-lookupcfg.h (_dl_lookup_address): New prototype. (DL_LOOKUP_ADDRESS): New. Defined as _dl_lookup_address. * sysdeps/ia64/dl-fptr.c (_dl_lookup_address): New. Lookup the memory location of a function from a function descriptor. * sysdeps/ia64/Versions [ld] (GLIBC_2.2): Add _dl_lookup_address. * elf/dl-addr.c (_dl_addr): Use DL_LOOKUP_ADDRESS to get the memory location. 2000-09-14 Jes Sorensen * sysdeps/ia64/bits/byteswap.h (__bswap_16): Don't mark output variable as input argument. (__bswap_32): Likewise. * sysdeps/ia64/dl-machine.h: Add missing stop bit in RTLD_START() - found by Jim Wilson 2000-09-26 Ulrich Drepper * string/strxfrm.c: Only require alignment on __alignof__ (int32_t) instead of 4. 2000-09-26 Andreas Schwab * locale/programs/ld-collate.c (collate_output): Only require alignment on __alignof__ (int32_t) instead of 4. * locale/loadlocale.c (_nl_load_locale): Likewise. * string/strcoll.c: Likewise. 2000-09-26 Jes Sorensen * sysdeps/ieee754/ldbl-96/e_atan2l.c (__ieee754_atan2l): Add parentheses around arithmetic used in | statement to kill compiler warning. * math/math_private.h: Add prototype for __finitel. (__ilogbl): Likewise. (__isinfl): Likewise. (__isnanl): Likewise. (__atanl): Likewise. (__copysignl): Likewise. (__expm1l): Likewise. (__floorl): Likewise. (__frexpl): Likewise. (__ldexpl): Likewise. (__log1pl): Likewise. (__nanl): Likewise. (__rintl): Likewise. (__scalbnl): Likewise. (__sqrtl): Likewise. (fabsl): Likewise. (__sincosl): Likewise. (si_isr) [USE_GNU]: Likewise. (ILL_BREAK) [USE_GNU]: Likewise. (FPE_DECOVF) [USE_GNU]: Likewise. (FPE_DECDIV) [USE_GNU]: Likewise. (FPE_DECERR) [USE_GNU]: Likewise. (FPE_INVASC) [USE_GNU]: Likewise. (FPE_INVDEC) [USE_GNU]: Likewise. (TRAP_BRANCH) [USE_GNU]: Likewise. (TRAP_HWBKPT) [USE_GNU]: Likewise. * sysdeps/ieee754/flt-32/s_exp2f.c: Likewise. --- sysdeps/ia64/Makefile | 3 + sysdeps/ia64/Versions | 2 +- sysdeps/ia64/bits/byteswap.h | 8 +- sysdeps/ia64/dl-fptr.c | 26 + sysdeps/ia64/dl-lookupcfg.h | 9 + sysdeps/ia64/dl-machine.h | 1 + sysdeps/ia64/fpu/bits/mathdef.h | 47 ++ sysdeps/ia64/fpu/libm-test-ulps | 1652 +++++++++++++++++++++++++++++++++++++++ sysdeps/ia64/fpu/printf_fphex.c | 80 ++ sysdeps/ia64/fpu/s_isinfl.c | 1 + sysdeps/ia64/fpu/s_isnanl.c | 1 + sysdeps/ia64/fpu/s_nextafterl.c | 1 + 12 files changed, 1826 insertions(+), 5 deletions(-) create mode 100644 sysdeps/ia64/fpu/bits/mathdef.h create mode 100644 sysdeps/ia64/fpu/libm-test-ulps create mode 100644 sysdeps/ia64/fpu/printf_fphex.c create mode 100644 sysdeps/ia64/fpu/s_isinfl.c create mode 100644 sysdeps/ia64/fpu/s_isnanl.c create mode 100644 sysdeps/ia64/fpu/s_nextafterl.c (limited to 'sysdeps/ia64') diff --git a/sysdeps/ia64/Makefile b/sysdeps/ia64/Makefile index 5f4ca3d4cb..d2f690eb42 100644 --- a/sysdeps/ia64/Makefile +++ b/sysdeps/ia64/Makefile @@ -1,3 +1,6 @@ +# The ia64 `long double' is a distinct type we support. +long-double-fcts = yes + ifeq ($(subdir), csu) CPPFLAGS-start.S = -D__ASSEMBLY__ endif diff --git a/sysdeps/ia64/Versions b/sysdeps/ia64/Versions index e3323177f2..20fea950ea 100644 --- a/sysdeps/ia64/Versions +++ b/sysdeps/ia64/Versions @@ -1,6 +1,6 @@ ld { GLIBC_2.2 { # ia64 specific functions in the dynamic linker, but used by libc.so. - _dl_symbol_address; + _dl_symbol_address; _dl_unmap; _dl_lookup_address; } } diff --git a/sysdeps/ia64/bits/byteswap.h b/sysdeps/ia64/bits/byteswap.h index d728b64c2c..2156d2382d 100644 --- a/sysdeps/ia64/bits/byteswap.h +++ b/sysdeps/ia64/bits/byteswap.h @@ -33,9 +33,9 @@ __v = __bswap_constant_16 (x); \ else \ __asm__ __volatile__ ("shl %0 = %1, 48 ;;" \ - "mux1 %0 = %2, @rev ;;" \ + "mux1 %0 = %0, @rev ;;" \ : "=r" (__v) \ - : "r" ((unsigned short int) (x)), "0" (__v));\ + : "r" ((unsigned short int) (x))); \ __v; })) #else /* This is better than nothing. */ @@ -56,9 +56,9 @@ __v = __bswap_constant_32 (x); \ else \ __asm__ __volatile__ ("shl %0 = %1, 32 ;;" \ - "mux1 %0 = %2, @rev ;;" \ + "mux1 %0 = %0, @rev ;;" \ : "=r" (__v) \ - : "r" ((unsigned int) (x)), "0" (__v)); \ + : "r" ((unsigned int) (x))); \ __v; })) #else # define __bswap_32(x) __bswap_constant_32 (x) diff --git a/sysdeps/ia64/dl-fptr.c b/sysdeps/ia64/dl-fptr.c index 0fb9654ab8..85fefa3ea8 100644 --- a/sysdeps/ia64/dl-fptr.c +++ b/sysdeps/ia64/dl-fptr.c @@ -184,3 +184,29 @@ _dl_unmap (struct link_map *map) __ia64_fptr_lock = 0; #endif } + +Elf64_Addr +_dl_lookup_address (const void *address) +{ + Elf64_Addr addr = (Elf64_Addr) address; + struct ia64_fptr *f; + +#ifdef _LIBC_REENTRANT + /* Make sure we are alone. */ + while (testandset (&__ia64_fptr_lock)); +#endif + + for (f = __fptr_root; f != NULL; f = f->next) + if (f == address) + { + addr = f->func; + break; + } + +#ifdef _LIBC_REENTRANT + /* Release the lock. */ + __ia64_fptr_lock = 0; +#endif + + return addr; +} diff --git a/sysdeps/ia64/dl-lookupcfg.h b/sysdeps/ia64/dl-lookupcfg.h index ab2ff1fddb..4e14e3b450 100644 --- a/sysdeps/ia64/dl-lookupcfg.h +++ b/sysdeps/ia64/dl-lookupcfg.h @@ -21,7 +21,16 @@ than just the address. */ #define DL_LOOKUP_RETURNS_MAP #define ELF_FUNCTION_PTR_IS_SPECIAL +#define DL_UNMAP_IS_SPECIAL void *_dl_symbol_address (const struct link_map *map, const ElfW(Sym) *ref); #define DL_SYMBOL_ADDRESS(map, ref) _dl_symbol_address(map, ref) + +Elf64_Addr _dl_lookup_address (const void *address); + +#define DL_LOOKUP_ADDRESS(addr) _dl_lookup_address (addr) + +void _dl_unmap (struct link_map *map); + +#define DL_UNMAP(map) _dl_unmap (map) diff --git a/sysdeps/ia64/dl-machine.h b/sysdeps/ia64/dl-machine.h index fd94d130d2..aedf2a35e5 100644 --- a/sysdeps/ia64/dl-machine.h +++ b/sysdeps/ia64/dl-machine.h @@ -351,6 +351,7 @@ _dl_start_user: { .mmb st8 [r10] = out1 /* Record the new argc. */ ld8 out0 = [out0] + ;; } { .mfb ld8 out0 = [out0] /* get the linkmap */ diff --git a/sysdeps/ia64/fpu/bits/mathdef.h b/sysdeps/ia64/fpu/bits/mathdef.h new file mode 100644 index 0000000000..bd2ce5d262 --- /dev/null +++ b/sysdeps/ia64/fpu/bits/mathdef.h @@ -0,0 +1,47 @@ +/* Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#if !defined _MATH_H && !defined _COMPLEX_H +# error "Never use directly; include instead" +#endif + +#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF +# define _MATH_H_MATHDEF 1 + +/* The ix87 FPUs evaluate all values in the 80 bit floating-point format + which is also available for the user as `long double'. Therefore we + define: */ +typedef long double float_t; /* `float' expressions are evaluated as + `long double'. */ +typedef long double double_t; /* `double' expressions are evaluated as + `long double'. */ + +/* Signal that both types are `long double'. */ +# define FLT_EVAL_METHOD 2 + +/* Define `INFINITY' as value of type `float'. */ +# define INFINITY HUGE_VALF + +/* The values returned by `ilogb' for 0 and NaN respectively. */ +# define FP_ILOGB0 (-2147483647 - 1) +# define FP_ILOGBNAN (-2147483647 - 1) + +/* Number of decimal digits for the `long double' type. */ +# define DECIMAL_DIG 18 + +#endif /* ISO C99 */ diff --git a/sysdeps/ia64/fpu/libm-test-ulps b/sysdeps/ia64/fpu/libm-test-ulps new file mode 100644 index 0000000000..58e6bfa9b4 --- /dev/null +++ b/sysdeps/ia64/fpu/libm-test-ulps @@ -0,0 +1,1652 @@ +# Begin of automatic generation + +# acos +Test "acos (0.7) == 0.7953988301841435554": +float: 1 +ifloat: 1 +ildouble: 1150 +ldouble: 1150 + +# acosh +Test "acosh (7) == 2.6339157938496334172": +ldouble: 1 +ildouble: 1 + +# asin +Test "asin (-0.5) == -pi/6": +float: 2 +ifloat: 2 +Test "asin (0.5) == pi/6": +float: 2 +ifloat: 2 +Test "asin (0.7) == 0.7753974966107530637": +float: 2 +ifloat: 2 +double: 1 +idouble: 1 +ildouble: 1147 +ldouble: 1147 + +# asinh +Test "asinh (0.7) == 0.652666566082355786": +ildouble: 656 +ldouble: 656 + +# atan +Test "atan (0.7) == 0.6107259643892086165": +ildouble: 549 +ldouble: 549 + +# atan2 +Test "atan2 (0.4, 0.0003) == 1.5700463269355215718": +ildouble: 1 +ldouble: 1 +Test "atan2 (0.7, 1) == 0.6107259643892086165": +ildouble: 549 +ldouble: 549 + +# atanh +Test "atanh (0.7) == 0.8673005276940531944": +double: 1 +idouble: 1 +ildouble: 1605 +ldouble: 1605 + +# cabs +Test "cabs (-0.7 + 12.4 i) == 12.41974234837422060118": +float: 1 +ifloat: 1 +Test "cabs (-0.7 - 12.4 i) == 12.41974234837422060118": +float: 1 +ifloat: 1 +Test "cabs (-12.4 + 0.7 i) == 12.41974234837422060118": +float: 1 +ifloat: 1 +Test "cabs (-12.4 - 0.7 i) == 12.41974234837422060118": +float: 1 +ifloat: 1 +Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508": +double: 1 +idouble: 1 +ildouble: 560 +ldouble: 560 +Test "cabs (0.7 + 12.4 i) == 12.41974234837422060118": +float: 1 +ifloat: 1 + +# cacos +Test "Real part of: cacos (-2 - 3 i) == 2.1414491111159960199 + 1.9833870299165354323 i": +Test "Imaginary part of: cacos (-2 - 3 i) == 2.1414491111159960199 + 1.9833870299165354323 i": +ildouble: 1 +ldouble: 1 +Test "Real part of: cacos (0.7 + 1.2 i) == 1.1351827477151551089 - 1.0927647857577371459 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 151 +ldouble: 151 +Test "Imaginary part of: cacos (0.7 + 1.2 i) == 1.1351827477151551089 - 1.0927647857577371459 i": +float: 2 +ifloat: 2 +ildouble: 329 +ldouble: 329 + +# cacosh +Test "Real part of: cacosh (-2 - 3 i) == -1.9833870299165354323 + 2.1414491111159960199 i": +double: 1 +float: 7 +idouble: 1 +ifloat: 7 +ildouble: 5 +ldouble: 5 +Test "Imaginary part of: cacosh (-2 - 3 i) == -1.9833870299165354323 + 2.1414491111159960199 i": +double: 1 +float: 4 +idouble: 1 +ifloat: 4 +ildouble: 1 +ldouble: 1 +Test "Real part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459 + 1.1351827477151551089 i": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 328 +ldouble: 328 +Test "Imaginary part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459 + 1.1351827477151551089 i": +ildouble: 151 +ldouble: 151 + +# casin +Test "Real part of: casin (-2 - 3 i) == -0.5706527843210994007 - 1.9833870299165354323 i": +Test "Imaginary part of: casin (-2 - 3 i) == -0.5706527843210994007 - 1.9833870299165354323 i": +ildouble: 1 +ldouble: 1 +Test "Real part of: casin (0.7 + 1.2 i) == 0.4356135790797415103 + 1.0927647857577371459 i": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +ildouble: 603 +ldouble: 603 +Test "Imaginary part of: casin (0.7 + 1.2 i) == 0.4356135790797415103 + 1.0927647857577371459 i": +float: 2 +ifloat: 2 +ildouble: 329 +ldouble: 329 + +# casinh +Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917 - 0.9646585044076027920 i": +double: 5 +float: 1 +idouble: 5 +ifloat: 1 +ildouble: 6 +ldouble: 6 +Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917 - 0.9646585044076027920 i": +double: 3 +float: 6 +idouble: 3 +ifloat: 6 +ildouble: 6 +ldouble: 6 +Test "Real part of: casinh (0.7 + 1.2 i) == 0.9786545955936738768 + 0.9113541895315601156 i": +double: 1 +idouble: 1 +ildouble: 892 +ldouble: 892 +Test "Imaginary part of: casinh (0.7 + 1.2 i) == 0.9786545955936738768 + 0.9113541895315601156 i": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 12 +ldouble: 12 + +# catan +Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225 - 0.2290726829685387662 i": +float: 3 +ifloat: 3 +Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225 - 0.2290726829685387662 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 7 +ldouble: 7 +Test "Real part of: catan (0.7 + 1.2 i) == 1.0785743834118921877 + 0.5770573776534306764 i": +float: 4 +ifloat: 4 +ildouble: 251 +ldouble: 251 +Test "Imaginary part of: catan (0.7 + 1.2 i) == 1.0785743834118921877 + 0.5770573776534306764 i": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 474 +ldouble: 474 + +# catanh +Test "Real part of: catanh (-2 - 3 i) == -0.1469466662255297520 - 1.3389725222944935611 i": +float: 1 +ifloat: 1 +double: 4 +idouble: 4 +ildouble: 6 +ldouble: 6 +Test "Imaginary part of: catanh (-2 - 3 i) == -0.1469466662255297520 - 1.3389725222944935611 i": +float: 4 +ifloat: 4 +Test "Real part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959 + 0.9702403077950989849 i": +float: 6 +ifloat: 6 +double: 1 +idouble: 1 +ildouble: 66 +ldouble: 66 +Test "Imaginary part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959 + 0.9702403077950989849 i": +float: 6 +ifloat: 6 +double: 1 +idouble: 1 +ildouble: 447 +ldouble: 447 + +# cbrt +Test "cbrt (-0.001) == -0.1": +ildouble: 716 +ldouble: 716 +Test "cbrt (-27.0) == -3.0": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "cbrt (0.7) == 0.8879040017426007084": +double: 1 +idouble: 1 +ildouble: 346 +ldouble: 346 +Test "cbrt (0.970299) == 0.99": +double: 1 +idouble: 1 +ildouble: 306 +ldouble: 306 + +# ccos +Test "Real part of: ccos (-2 - 3 i) == -4.1896256909688072301 - 9.1092278937553365979 i": +Test "Imaginary part of: ccos (-2 - 3 i) == -4.1896256909688072301 - 9.1092278937553365979 i": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 5 +ldouble: 5 +Test "Imaginary part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i": +double: 1 +idouble: 1 +ildouble: 1901 +ldouble: 1901 + +# ccosh +Test "Real part of: ccosh (-2 - 3 i) == -3.7245455049153225654 + 0.5118225699873846088 i": +float: 1 +ifloat: 1 +Test "Imaginary part of: ccosh (-2 - 3 i) == -3.7245455049153225654 + 0.5118225699873846088 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1467 +ldouble: 1467 +Test "Imaginary part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i": +double: 1 +idouble: 1 +ildouble: 1183 +ldouble: 1183 + +# cexp +Test "Real part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i": +ildouble: 4 +ldouble: 4 +Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.1339809149295426134 - 0.0190985162611351964 i": +float: 1 +ifloat: 1 +ildouble: 18 +ldouble: 18 +Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 940 +ldouble: 940 +Test "Imaginary part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i": +float: 1 +ifloat: 1 +ildouble: 1067 +ldouble: 1067 + +# clog +Test "Real part of: clog (-2 - 3 i) == 1.2824746787307683680 - 2.1587989303424641704 i": +Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680 - 2.1587989303424641704 i": +float: 3 +ifloat: 3 +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +# clog10 +Test "Real part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i": +Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i": +Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (-2 - 3 i) == 0.5569716761534183846 - 0.9375544629863747085 i": +Test "Imaginary part of: clog10 (-2 - 3 i) == 0.5569716761534183846 - 0.9375544629863747085 i": +float: 5 +ifloat: 5 +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "Real part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": +Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i": +Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i": +Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i": +Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i": +Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i": +double: 1 +idouble: 1 +Test "Real part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i": +Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i": +Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i": +Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i": +Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1403 +ldouble: 1403 +Test "Imaginary part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i": +double: 1 +idouble: 1 +ildouble: 186 +ldouble: 186 +Test "Real part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i": +Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i": +Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i": +Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "Real part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i": +Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +# cos +Test "cos (0.7) == 0.7648421872844884262": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 529 +ldouble: 529 +Test "cos (M_PI_6l * 2.0) == 0.5": +double: 1 +float: 0.5 +idouble: 1 +ifloat: 0.5 +Test "cos (M_PI_6l * 4.0) == -0.5": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 0.5 +ldouble: 0.5 +Test "cos (pi/2) == 0": +double: 0.2758 +float: 0.3667 +idouble: 0.2758 +ifloat: 0.3667 +ildouble: 0.25 +ldouble: 0.25 + +# cosh +Test "cosh (0.7) == 1.255169005630943018": +ildouble: 309 +ldouble: 309 + +# cpow +Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i": +double: 1 +float: 4 +idouble: 1 +ifloat: 4 +Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i": +float: 2 +ifloat: 2 +ildouble: 4 +ldouble: 4 +Test "Real part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i": +Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i": +double: 1.104 +float: 2.5333 +idouble: 1.104 +ifloat: 2.5333 +ildouble: 1 +ldouble: 1 + +# csin +Test "Real part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i": +float: 1 +ifloat: 1 +ildouble: 966 +ldouble: 966 +Test "Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i": +float: 1 +ifloat: 1 +ildouble: 168 +ldouble: 168 + +# csinh +Test "Real part of: csinh (-2 - 3 i) == 3.5905645899857799520 - 0.5309210862485198052 i": +double: 1 +idouble: 1 +Test "Imaginary part of: csinh (-2 - 3 i) == 3.5905645899857799520 - 0.5309210862485198052 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 413 +ldouble: 413 +Test "Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i": +float: 1 +ifloat: 1 +ildouble: 477 +ldouble: 477 + +# csqrt +Test "Real part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: csqrt (-2 + 3 i) == 0.8959774761298381247 + 1.6741492280355400404 i": +Test "Real part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: csqrt (-2 - 3 i) == 0.8959774761298381247 - 1.6741492280355400404 i": +Test "Real part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 237 +ldouble: 237 +Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.0220676100300264507 + 0.5870453129635652115 i": +float: 1 +ifloat: 1 +ildouble: 128 +ldouble: 128 + +# ctan +Test "Real part of: ctan (-2 - 3 i) == 0.0037640256415042482 - 1.0032386273536098014 i": +double: 1 +idouble: 1 +ildouble: 437 +ldouble: 437 +Test "Imaginary part of: ctan (-2 - 3 i) == 0.0037640256415042482 - 1.0032386273536098014 i": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 690 +ldouble: 690 +Test "Imaginary part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 367 +ldouble: 367 + +# ctanh +Test "Real part of: ctanh (-2 - 3 i) == -0.9653858790221331242 + 0.0098843750383224937 i": +float: 2 +ifloat: 2 +double: 2 +idouble: 2 +ildouble: 2 +ldouble: 2 +Test "Imaginary part of: ctanh (-2 - 3 i) == -0.9653858790221331242 + 0.0098843750383224937 i": +float: 1 +ifloat: 1 +ildouble: 23 +ldouble: 23 +Test "Real part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i": +Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i": +float: 1 +ifloat: 1 +double: 0.5 +idouble: 0.5 +Test "Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 +ildouble: 286 +ldouble: 286 +Test "Imaginary part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 +ildouble: 3074 +ldouble: 3074 + +# erfc +Test "erfc (0.7) == 0.32219880616258152702": +double: 1 +idouble: 1 +Test "erfc (1.2) == 0.089686021770364619762": +float: 2 +double: 1 +idouble: 1 +ifloat: 2 +Test "erfc (2.0) == 0.0046777349810472658379": +double: 1 +idouble: 1 +Test "erfc (4.1) == 0.67000276540848983727e-8": +double: 24 +float: 12 +idouble: 24 +ifloat: 12 + +# exp +Test "exp (0.7) == 2.0137527074704765216": +ildouble: 412 +ldouble: 412 + +# exp10 +Test "exp10 (-1) == 0.1": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 +ildouble: 818 +ldouble: 818 +Test "exp10 (0.7) == 5.0118723362727228500": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 1182 +ldouble: 1182 +Test "exp10 (3) == 1000": +float: 2 +ifloat: 2 +double: 6 +idouble: 6 +ildouble: 8 +ldouble: 8 + +# exp2 +Test "exp2 (0.7) == 1.6245047927124710452": +ildouble: 462 +ldouble: 462 + +# expm1 +Test "expm1 (1) == M_El - 1.0": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 + +# fmod +Test "fmod (-6.5, -2.3) == -1.9": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 4096 +ldouble: 4096 +Test "fmod (-6.5, 2.3) == -1.9": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 4096 +ldouble: 4096 +Test "fmod (6.5, -2.3) == 1.9": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 4096 +ldouble: 4096 +Test "fmod (6.5, 2.3) == 1.9": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 4096 +ldouble: 4096 + +# gamma +Test "gamma (-0.5) == log(2*sqrt(pi))": +double: 1 +idouble: 1 + +# hypot +Test "hypot (-0.7, -12.4) == 12.41974234837422060118": +float: 1 +ifloat: 1 +ildouble: 406 +ldouble: 406 +Test "hypot (-0.7, 12.4) == 12.41974234837422060118": +float: 1 +ifloat: 1 +ildouble: 406 +ldouble: 406 +Test "hypot (-12.4, -0.7) == 12.41974234837422060118": +float: 1 +ifloat: 1 +ildouble: 406 +ldouble: 406 +Test "hypot (-12.4, 0.7) == 12.41974234837422060118": +float: 1 +ifloat: 1 +ildouble: 406 +ldouble: 406 +Test "hypot (0.7, -12.4) == 12.41974234837422060118": +float: 1 +ifloat: 1 +ildouble: 406 +ldouble: 406 +Test "hypot (0.7, 1.2) == 1.3892443989449804508": +double: 1 +idouble: 1 +ildouble: 560 +ldouble: 560 +Test "hypot (0.7, 12.4) == 12.41974234837422060118": +float: 1 +ifloat: 1 +ildouble: 406 +ldouble: 406 +Test "hypot (12.4, -0.7) == 12.41974234837422060118": +float: 1 +ifloat: 1 +ildouble: 406 +ldouble: 406 +Test "hypot (12.4, 0.7) == 12.41974234837422060118": +float: 1 +ifloat: 1 +ildouble: 406 +ldouble: 406 + +# j0 +Test "j0 (10.0) == -0.24593576445134833520": +float: 1 +ifloat: 1 +Test "j0 (2.0) == 0.22389077914123566805": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +Test "j0 (8.0) == 0.17165080713755390609": +float: 1 +ifloat: 1 +Test "j0 (10.0) == -0.24593576445134833520": +double: 2 +idouble: 2 + +# j1 +Test "j1 (10.0) == 0.043472746168861436670": +float: 2 +ifloat: 2 +double: 2 +idouble: 2 +Test "j1 (2.0) == 0.57672480775687338720": +double: 1 +idouble: 1 +Test "j1 (8.0) == 0.23463634685391462438": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 + +# jn +Test "jn (0, 10.0) == -0.24593576445134833520": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 +Test "jn (0, 2.0) == 0.22389077914123566805": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +Test "jn (0, 8.0) == 0.17165080713755390609": +float: 1 +ifloat: 1 +Test "jn (1, 10.0) == 0.043472746168861436670": +float: 2 +ifloat: 2 +double: 2 +idouble: 2 +Test "jn (1, 2.0) == 0.57672480775687338720": +double: 1 +idouble: 1 +Test "jn (1, 8.0) == 0.23463634685391462438": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +Test "jn (10, -1.0) == 0.26306151236874532070e-9": +float: 1 +ifloat: 1 +Test "jn (10, 0.1) == 0.26905328954342155795e-19": +float: 4 +ifloat: 4 +double: 6 +idouble: 6 +Test "jn (10, 0.7) == 0.75175911502153953928e-11": +double: 4 +float: 1 +idouble: 4 +ifloat: 1 +Test "jn (10, 1.0) == 0.26306151236874532070e-9": +float: 1 +ifloat: 1 +Test "jn (10, 2.0) == 0.25153862827167367096e-6": +float: 3 +ifloat: 3 +double: 2 +idouble: 2 +Test "jn (10, 10.0) == 0.20748610663335885770": +float: 2 +ifloat: 2 +double: 4 +idouble: 4 +Test "jn (3, 0.1) == 0.000020820315754756261429": +double: 1 +idouble: 1 +Test "jn (3, 0.7) == 0.0069296548267508408077": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 +Test "jn (3, 2.0) == 0.12894324947440205110": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +Test "jn (3, 10.0) == 0.058379379305186812343": +float: 1 +ifloat: 1 +double: 3 +idouble: 3 + +# lgamma +Test "lgamma (-0.5) == log(2*sqrt(pi))": +double: 1 +idouble: 1 +Test "lgamma (0.7) == 0.26086724653166651439": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "lgamma (1.2) == -0.853740900033158497197e-1": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 + +# log +Test "log (0.7) == -0.35667494393873237891": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2341 +ldouble: 2341 +Test "log (e) == 1": +float: 0.5 +ifloat: 0.5 + +# log10 +Test "log10 (0.7) == -0.15490195998574316929": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 2033 +ldouble: 2033 +Test "log10 (e) == log10(e)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 + +# log1p +Test "log1p (-0.3) == -0.35667494393873237891": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 585 +ldouble: 585 + +# log2 +Test "log2 (0.7) == -0.51457317282975824043": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1688 +ldouble: 1688 + +# pow +Test "pow (0.7, 1.2) == 0.65180494056638638188": +ildouble: 725 +ldouble: 725 + +# sin +Test "sin (0.7) == 0.64421768723769105367": +ildouble: 627 +ldouble: 627 + +# sincos +Test "sincos (0.7, &sin_res, &cos_res) puts 0.64421768723769105367 in sin_res": +ildouble: 627 +ldouble: 627 +Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842626 in cos_res": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 528 +ldouble: 528 +Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": +double: 1 +float: 0.5 +idouble: 1 +ifloat: 0.5 +Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764 in sin_res": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": +double: 0.2758 +float: 0.3667 +idouble: 0.2758 +ifloat: 0.3667 +ildouble: 0.25 +ldouble: 0.25 +Test "sincos (pi/6, &sin_res, &cos_res) puts 0.866025403784438646764 in cos_res": +float: 1 +ifloat: 1 + + +# sinh +Test "sinh (0.7) == 0.75858370183953350346": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 1028 +ldouble: 1029 + +# sqrt +Test "sqrt (0.7) == 0.83666002653407554798": +ildouble: 489 +ldouble: 489 +Test "sqrt (15239.9025) == 123.45": +ildouble: 325 +ldouble: 325 + +# tan +Test "tan (0.7) == 0.84228838046307944813": +ildouble: 1401 +ldouble: 1401 +Test "tan (pi/4) == 1": +double: 0.5 +idouble: 0.5 + +# tanh +Test "tanh (0.7) == 0.60436777711716349631": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 521 +ldouble: 521 + +# tgamma +Test "tgamma (-0.5) == -2 sqrt (pi)": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +Test "tgamma (0.5) == sqrt (pi)": +float: 1 +ifloat: 1 +Test "tgamma (0.7) == 1.29805533264755778568": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +# y0 +Test "y0 (0.1) == -1.5342386513503668441": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "y0 (0.7) == -0.19066492933739506743": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 +Test "y0 (1.0) == 0.088256964215676957983": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +Test "y0 (1.5) == 0.38244892379775884396": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 +Test "y0 (2.0) == 0.51037567264974511960": +double: 1 +idouble: 1 +Test "y0 (10.0) == 0.055671167283599391424": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 +Test "y0 (8.0) == 0.22352148938756622053": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 + +# y1 +Test "y1 (0.1) == -6.4589510947020269877": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "y1 (0.7) == -1.1032498719076333697": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +Test "y1 (1.0) == -0.78121282130028871655": +double: 1 +idouble: 1 +Test "y1 (1.5) == -0.41230862697391129595": +float: 1 +ifloat: 1 +Test "y1 (10.0) == 0.24901542420695388392": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +Test "y1 (2.0) == -0.10703243154093754689": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +Test "y1 (8.0) == -0.15806046173124749426": +float: 2 +ifloat: 2 +double: 1 +idouble: 1 + +# yn +Test "yn (0, 0.1) == -1.5342386513503668441": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "yn (0, 0.7) == -0.19066492933739506743": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 +Test "yn (0, 1.0) == 0.088256964215676957983": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +Test "yn (0, 1.5) == 0.38244892379775884396": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 +Test "yn (0, 2.0) == 0.51037567264974511960": +double: 1 +idouble: 1 +Test "yn (0, 10.0) == 0.055671167283599391424": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 +Test "yn (0, 8.0) == 0.22352148938756622053": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +Test "yn (1, 0.1) == -6.4589510947020269877": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "yn (1, 0.7) == -1.1032498719076333697": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +Test "yn (1, 1.0) == -0.78121282130028871655": +double: 1 +idouble: 1 +Test "yn (1, 1.5) == -0.41230862697391129595": +float: 1 +ifloat: 1 +Test "yn (1, 10.0) == 0.24901542420695388392": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +Test "yn (1, 2.0) == -0.10703243154093754689": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 +Test "yn (1, 8.0) == -0.15806046173124749426": +float: 2 +ifloat: 2 +double: 1 +idouble: 1 +Test "yn (10, 0.1) == -0.11831335132045197885e19": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +Test "yn (10, 0.7) == -0.42447194260703866924e10": +double: 6 +float: 3 +idouble: 6 +ifloat: 3 +Test "yn (10, 1.0) == -0.12161801427868918929e9": +float: 2 +ifloat: 2 +double: 1 +idouble: 1 +Test "yn (10, 10.0) == -0.35981415218340272205": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +Test "yn (10, 2.0) == -129184.54220803928264": +float: 1 +ifloat: 1 +double: 3 +idouble: 3 +Test "yn (3, 0.1) == -5099.3323786129048894": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "yn (3, 0.7) == -15.819479052819633505": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 +Test "yn (3, 2.0) == -1.1277837768404277861": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +Test "yn (3, 10.0) == -0.25136265718383732978": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +# Maximal error of functions: +Function: "acos": +ildouble: 1149 +ldouble: 1149 + +Function: "asin": +float: 2 +ifloat: 2 +double: 1 +idouble: 1 +ildouble: 1147 +ldouble: 1147 + +Function: "asinh": +double: 1 +idouble: 1 +ildouble: 656 +ldouble: 656 + +Function: "atan": +ildouble: 549 +ldouble: 549 + +Function: "atan2": +ildouble: 549 +ldouble: 549 + +Function: "atanh": +double: 1 +idouble: 1 +ildouble: 1605 +ldouble: 1605 + +Function: "cabs": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 560 +ldouble: 560 + +Function: Real part of "cacos": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 151 +ldouble: 151 + +Function: Imaginary part of "cacos": +float: 2 +ifloat: 2 +ildouble: 329 +ldouble: 329 + +Function: Real part of "cacosh": +float: 7 +ifloat: 7 +double: 1 +idouble: 1 +ildouble: 328 +ldouble: 328 + +Function: Imaginary part of "cacosh": +float: 3 +ifloat: 3 +double: 1 +idouble: 1 +ildouble: 151 +ldouble: 151 + +Function: Real part of "casin": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 +ildouble: 603 +ldouble: 603 + +Function: Imaginary part of "casin": +float: 2 +ifloat: 2 +ildouble: 329 +ldouble: 329 + +Function: Real part of "casinh": +double: 5 +float: 1 +idouble: 5 +ifloat: 1 +ildouble: 892 +ldouble: 892 + +Function: Imaginary part of "casinh": +double: 3 +float: 6 +idouble: 3 +ifloat: 6 +ildouble: 12 +ldouble: 12 + +Function: Real part of "catan": +float: 4 +ifloat: 4 +ildouble: 251 +ldouble: 251 + +Function: Imaginary part of "catan": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 474 +ldouble: 474 + +Function: Real part of "catanh": +double: 4 +idouble: 4 +ildouble: 66 +ldouble: 66 + +Function: Imaginary part of "catanh": +float: 6 +ifloat: 6 +double: 1 +idouble: 1 +ildouble: 447 +ldouble: 447 + +Function: "cbrt": +double: 1 +idouble: 1 +ildouble: 716 +ldouble: 716 + +Function: Real part of "ccos": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 5 +ldouble: 5 + +Function: Imaginary part of "ccos": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1901 +ldouble: 1901 + +Function: Real part of "ccosh": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1467 +ldouble: 1467 + +Function: Imaginary part of "ccosh": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1183 +ldouble: 1183 + +Function: Real part of "cexp": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 940 +ldouble: 940 + +Function: Imaginary part of "cexp": +float: 1 +ifloat: 1 +ildouble: 1067 +ldouble: 1067 + +Function: Real part of "clog": + +Function: Imaginary part of "clog": +float: 3 +ifloat: 3 +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 + +Function: Real part of "clog10": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 1402 +ldouble: 1402 + +Function: Imaginary part of "clog10": +float: 5 +ifloat: 5 +double: 1 +idouble: 1 +ildouble: 186 +ldouble: 186 + +Function: "cos": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 529 +ldouble: 529 + +Function: "cosh": +ildouble: 309 +ldouble: 309 + +Function: Real part of "cpow": +double: 1 +float: 4 +idouble: 1 +ifloat: 4 + +Function: Imaginary part of "cpow": +double: 1.104 +float: 2.5333 +idouble: 1.104 +ifloat: 2.5333 +ildouble: 2 +ldouble: 2 + +Function: Real part of "csin": +float: 1 +ifloat: 1 +ildouble: 966 +ldouble: 966 + +Function: Imaginary part of "csin": +float: 1 +ifloat: 1 +ildouble: 168 +ldouble: 168 + +Function: Real part of "csinh": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 413 +ldouble: 413 + +Function: Imaginary part of "csinh": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 477 +ldouble: 477 + +Function: Real part of "csqrt": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 237 +ldouble: 237 + +Function: Imaginary part of "csqrt": +float: 2 +ifloat: 2 +ildouble: 128 +ldouble: 128 + +Function: Real part of "ctan": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 690 +ldouble: 690 + +Function: Imaginary part of "ctan": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 367 +ldouble: 367 + +Function: Real part of "ctanh": +float: 2 +ifloat: 2 +double: 2 +idouble: 2 +ildouble: 286 +ldouble: 286 + +Function: Imaginary part of "ctanh": +float: 2 +ifloat: 2 +double: 2 +idouble: 2 +ildouble: 3074 +ldouble: 3074 + +Function: "erfc": +double: 24 +float: 12 +idouble: 24 +ifloat: 12 + +Function: "exp": +ildouble: 412 +ldouble: 412 + +Function: "exp10": +float: 2 +ifloat: 2 +double: 6 +idouble: 6 +ildouble: 1182 +ldouble: 1182 + +Function: "exp2": +ildouble: 462 +ldouble: 462 + +Function: "expm1": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 825 +ldouble: 825 + +Function: "fmod": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 +ildouble: 4096 +ldouble: 4096 + +Function: "gamma": +double: 1 +idouble: 1 + +Function: "hypot": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 560 +ldouble: 560 + +Function: "j0": +float: 1 +ifloat: 1 +double: 2 +idouble: 2 + +Function: "j1": +float: 2 +ifloat: 2 +double: 2 +idouble: 2 + +Function: "jn": +float: 4 +ifloat: 4 +double: 6 +idouble: 6 + +Function: "lgamma": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 + +Function: "log": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2341 +ldouble: 2341 + +Function: "log10": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 2033 +ldouble: 2033 + +Function: "log1p": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 585 +ldouble: 585 + +Function: "log2": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1688 +ldouble: 1688 + +Function: "pow": +ildouble: 725 +ldouble: 725 + +Function: "sin": +ildouble: 627 +ldouble: 627 + +Function: "sincos": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 627 +ldouble: 627 + +Function: "sinh": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 1028 +ldouble: 1029 + +Function: "sqrt": +ildouble: 489 +ldouble: 489 + +Function: "tan": +double: 0.5 +idouble: 0.5 +ildouble: 1401 +ldouble: 1401 + +Function: "tanh": +float: 1 +ifloat: 1 +double: 1 +idouble: 1 +ildouble: 521 +ldouble: 521 + +Function: "tgamma": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 + +Function: "y0": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 + +Function: "y1": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 + +Function: "yn": +double: 6 +float: 3 +idouble: 6 +ifloat: 3 + +# end of automatic generation diff --git a/sysdeps/ia64/fpu/printf_fphex.c b/sysdeps/ia64/fpu/printf_fphex.c new file mode 100644 index 0000000000..fca607c861 --- /dev/null +++ b/sysdeps/ia64/fpu/printf_fphex.c @@ -0,0 +1,80 @@ +/* Print floating point number in hexadecimal notation according to ISO C99. + Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef LONG_DOUBLE_DENORM_BIAS +# define LONG_DOUBLE_DENORM_BIAS (IEEE854_LONG_DOUBLE_BIAS - 1) +#endif + +#define PRINT_FPHEX_LONG_DOUBLE \ +do { \ + /* The "strange" 80 bit format on ia64 has an explicit \ + leading digit in the 64 bit mantissa. */ \ + unsigned long long int num; \ + \ + num = (((unsigned long long int) fpnum.ldbl.ieee.mantissa0) << 32 \ + | fpnum.ldbl.ieee.mantissa1); \ + \ + zero_mantissa = num == 0; \ + \ + numstr = _itoa_word (num, numbuf + sizeof numbuf, 16, \ + info->spec == 'A'); \ + wnumstr = _itowa_word (num, wnumbuf + sizeof wnumbuf, 16, \ + info->spec == 'A'); \ + \ + /* Fill with zeroes. */ \ + while (numstr > numbuf + (sizeof numbuf - 64 / 4)) \ + { \ + *--numstr = '0'; \ + *--wnumstr = L'0'; \ + } \ + \ + /* We use a full nibble for the leading digit. */ \ + leading = *numstr++; \ + \ + /* We have 3 bits from the mantissa in the leading nibble. \ + Therefore we are here using `IEEE854_LONG_DOUBLE_BIAS + 3'. */ \ + exponent = fpnum.ldbl.ieee.exponent; \ + \ + if (exponent == 0) \ + { \ + if (zero_mantissa) \ + expnegative = 0; \ + else \ + { \ + /* This is a denormalized number. */ \ + expnegative = 1; \ + /* This is a hook for the m68k long double format, where the \ + exponent bias is the same for normalized and denormalized \ + numbers. */ \ + exponent = LONG_DOUBLE_DENORM_BIAS + 3; \ + } \ + } \ + else if (exponent >= IEEE854_LONG_DOUBLE_BIAS + 3) \ + { \ + expnegative = 0; \ + exponent -= IEEE854_LONG_DOUBLE_BIAS + 3; \ + } \ + else \ + { \ + expnegative = 1; \ + exponent = -(exponent - (IEEE854_LONG_DOUBLE_BIAS + 3)); \ + } \ +} while (0) + +#include diff --git a/sysdeps/ia64/fpu/s_isinfl.c b/sysdeps/ia64/fpu/s_isinfl.c new file mode 100644 index 0000000000..ca818b5e90 --- /dev/null +++ b/sysdeps/ia64/fpu/s_isinfl.c @@ -0,0 +1 @@ +#include diff --git a/sysdeps/ia64/fpu/s_isnanl.c b/sysdeps/ia64/fpu/s_isnanl.c new file mode 100644 index 0000000000..06e69c3aeb --- /dev/null +++ b/sysdeps/ia64/fpu/s_isnanl.c @@ -0,0 +1 @@ +#include diff --git a/sysdeps/ia64/fpu/s_nextafterl.c b/sysdeps/ia64/fpu/s_nextafterl.c new file mode 100644 index 0000000000..f59f16848f --- /dev/null +++ b/sysdeps/ia64/fpu/s_nextafterl.c @@ -0,0 +1 @@ +#include -- cgit 1.4.1