summaryrefslogtreecommitdiffstats
path: root/libquadmath/math
Commit message (Collapse)AuthorAgeFilesLines
* 2013-02-17 Tobias Burnus <burnus@net-b.de>burnus2013-02-171-1/+1
| | | | | | | | * math/cacoshq.c (cacoshq): Call signbitq instead of signbit. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196109 138bc75d-0d04-0410-961f-82ee72b054a4
* Revert libquadmath and libssp copyright patches.rsandifo2013-02-0640-40/+40
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195820 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright in libquadmath.rsandifo2013-02-0340-40/+40
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195699 138bc75d-0d04-0410-961f-82ee72b054a4
* * math/cbrtq.c (cbrtq): Use Q suffixed floating point constantsjakub2012-12-133-16/+16
| | | | | | | | | instead of L suffixed ones. * math/fmaq.c (fmaq): Likewise. * math/rintq.c (TWO112): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194475 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-22 David S. Miller <davem@davemloft.net>burnus2012-11-215-2/+34
| | | | | | | | | | | | | | | | | | | | Tobias Burnus <burnus@net-b.de> Joseph Myers <joseph@codesourcery.com> * math/atanq.c (atanq): Update from GLIBC. Handle tiny and very large arguments properly. * math/j0q.c (y0q): Update from GLIBC. Avoid arithmetic underflow when 'x' is very small. * math/j1q.c (y1q): Ditto. * math/log1pq.c (log1pq): Update from GLIBC. Saturate nonzero exponents with absolute value below 0x1p-128 to +/- 0x1p-128. * math/powq.c (powq): Update from GLIBC. If xm1 is smaller than LDBL_EPSILON/2.0L, just return xm1. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193716 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-21 Tobias Burnus <burnus@net-b.de>burnus2012-11-211-1/+7
| | | | | | | | | | | | | | PR libquadmath/55225 * math/lgammaq.c (lgammaq): Use local variable if math.h does not provide signgam. * acinclude.m4 (LIBQUAD_CHECK_MATH_H_SIGNGAM): New check. * configure.ac: Use it. * configure: Regenerate. * config.h.in: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193695 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-15 Tobias Burnus <burnus@net-b.de>burnus2012-11-151-14/+44
| | | | | | | | | | | | | Joseph Myers <joseph@codesourcery.com> * math/fmaq.c (fmaq): Merge from GLIBC. Fix fma underflows with small x * y; Fix overflow results outside round-to-nearest mode; make use of Dekker and Knuth algorithms use round-to-nearest. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193538 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-01 Tobias Burnus <burnus@net-b.de>burnus2012-11-021-5/+3
| | | | | | | | * math/fmaq.c (fmaq): Fix build. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193100 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-01 Tobias Burnus <burnus@net-b.de>burnus2012-11-022-21/+49
| | | | | | | | | | | | Joseph Myers <joseph@codesourcery.com> * math/fmaq.c (fmaq): Merge from GLIBC. Handle cases with small x * y using scaling, not as x * y + z. * math/lgammaq.c (lgammaq): Fix signgam handling. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193099 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-11-01 Tobias Burnus <burnus@net-b.de>burnus2012-11-0161-359/+1692
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.am (libquadmath_la_SOURCES): Add new math/* files. * Makefile.in: Regenerated. * math/acoshq.c: Update comment. * math/acosq.c: Ditto. * math/asinhq.c: Ditto. * math/asinq.c: Ditto. * math/atan2q.c: Ditto. * math/atanhq.c: Ditto. * math/ceilq.c: Ditto. * math/copysignq.c: Ditto. * math/cosq.c: Ditto. * math/coshq.c: Ditto. * math/erfq.c: Ditto. * math/fabsq.c: Ditto. * math/finiteq.c: Ditto. * math/floorq.c: Ditto. * math/fmodq.c: Ditto. * math/frexpq.c: Ditto. * math/isnanq.c: Ditto. * math/j0q.c: Ditto. * math/j1q.c: Ditto. * math/ldexpq.c: Ditto. * math/llroundq.c: Ditto. * math/log10q.c: Ditto. * math/log1pq.c: Ditto. * math/log2q.c: Ditto. * math/logq.c: Ditto. * math/lroundq.c: Ditto. * math/modfq.c: Ditto. * math/nextafterq.c: Ditto. * math/powq.c: Ditto. * math/rem_pio2q.c: Ditto. * math/remainderq.c: Ditto. * math/rintq.c: Ditto. * math/roundq.c: Ditto. * math/scalblnq.c: Ditto. * math/scalbnq.c: Ditto. * math/sincosq_kernel.c: Ditto. * math/sinq.c: Ditto. * math/tanq.c: Ditto. * math/expq.c: Ditto. (__expq_table, expq): Renamed local array from __expl_table. * math/cosq_kernel.c (__quadmath_kernel_cosq): Fix sign * handling. * math/cacoshq.c: Changes from GLIBC; fix returned sign. * math/casinhq.c: Changes from GLIBC to fix special-case. * math/cbrtq.c: Use modified GLIBC version. * math/complex.c (ccoshd, cexpq, clog10q, clogq, csinhq, csinq, ctanhq, ctanq): Moved to separates files. (mult_c128, div_c128): Removed no longer needed functions. (cexpiq): Call sincosq instead of sinq and cosq. (cosq): Call cosh(-re,im) instead of cosq/sinq/sinh/cosh. * math/ccoshq.c (ccoshq): New file, moved from complex.c and modified based on GLIBC. * math/cexpq.c (cexp): Ditto. * math/clog10q.c (clog10q): Ditto. * math/clogq.c (clogq): Ditto. * math/csinhq.c: Ditto. * math/csinq.c: Ditto. * math/csqrtq.c: Ditto. * math/ctanhq.c: Ditto. * math/ctanq.c: Ditto. * math/fmaq.c (fmaq): Port TININESS_AFTER_ROUNDING handling from GLIBC. * math/ilogbq.c (ilogbq): Add errno = EDOM handling. * math/isinf_nsq.c (__quadmath_isinf_nsq): New file, ported from GLIBC. * math/lgammaq.c (lgammaq): Add signgam handling. * math/sinhq.c (sinhq): Fix sign handling. * math/sinq_kernel.c (__quadmath_kernel_sinq): Ditto. * math/tgammaq.c (tgammaq): Ditto. * math/x2y2m1q.c: New file. * quadmath-imp.h (TININESS_AFTER_ROUNDING): New define. (__quadmath_x2y2m1q, __quadmath_isinf_nsq): New prototypes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193063 138bc75d-0d04-0410-961f-82ee72b054a4
* 2012-10-31 Tobias Burnus <burnus@net-b.de>burnus2012-10-3110-74/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Joseph Myers <joseph@codesourcery.com> David S. Miller <davem@davemloft.net> Ulrich Drepper <drepper@redhat.com> Marek Polacek <polacek@redhat.com>: Petr Baudis <pasky@suse.cz> * math/complex.c (csqrtq): NaN and INF fixes. * math/sqrtq.c (sqrt): NaN, INF and < 0 fixes. * math/expm1q.c (expm1q): Changes from GLIBC. Use expq for large parameters. Fix errno for boundary conditions. * math/finiteq.c (finiteq): Add comment. * math/fmaq.c (fmaq): Changes from GLIBC. Fix missing underflows and bad results for some subnormal results. Fix sign of inexact zero return. Fix sign of exact zero return. Ensure additions are not scheduled after fetestexcept. * math/jnq.c (jnq): Changes from GLIBC. Set up errno properly for ynq. Fix jnq precision. * math/nearbyintq.c (nearbyintq): Changes from GLIBC. Do not manipulate bits before adding and subtracting TWO112[sx]. * math/rintq.c (rintq): Ditto. * math/scalbnq.c (scalbnq): Changes from GLIBC. Fix integer overflow. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193037 138bc75d-0d04-0410-961f-82ee72b054a4
* * math/rem_pio2q.c (__quadmath_kernel_rem_pio2): Fix up fq to yjakub2011-08-011-6/+12
| | | | | | | conversion for prec 3 and __FLT_EVAL_METHOD__ != 0. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176999 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libfortran/47322jakub2011-01-161-1/+1
| | | | | | | * math/remquoq.c (remquoq): Use uint64_t type instead of u_int64_t. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168872 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/46416jakub2011-01-1614-1/+895
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * quadmath.h (cbrtq, finiteq, isnanq, signbitq, sqrtq): Remove const from prototype argument. (cimagq, conjq, cprojq, crealq, fdimq, fmaxq, fminq, ilogbq, llrintq, log2q, lrintq, nearbyintq, remquoq): New prototypes. (__quadmath_extern_inline): Define. (cimagq, conjq, crealq): New inlines. * Makefile.am (libquadmath_la_SOURCES): Add math/cimagq.c, math/conjq.c, math/cprojq.c, math/crealq.c, math/fdimq.c, math/fmaxq.c, math/fminq.c, math/ilogbq.c, math/llrintq.c, math/log2q.c, math/lrintq.c, math/nearbyintq.c and math/remquoq.c. * Makefile.in: Regenerated. * quadmath_weak.h (cimagq, conjq, cprojq, crealq, fdimq, fmaxq, fminq, ilogbq, llrintq, log2q, lrintq, nearbyintq, remquoq): Add. * quadmath-imp.h (__LITTLE_ENDIAN__): Don't define. (ieee854_float128): Use __BYTE_ORDER == __ORDER_BIG_ENDIAN__ tests instead of __BIG_ENDIAN__. * quadmath.map (QUADMATH_1.0): Add cimagq, conjq, cprojq, crealq, fdimq, fmaxq, fminq, ilogbq, llrintq, log2q, lrintq, nearbyintq and remquoq. * libquadmath.texi (cimagq, conjq, cprojq, crealq, fdimq, fmaxq, fminq, ilogbq, llrintq, log2q, lrintq, nearbyintq, remquoq): Add. * math/cprojq.c: New file. * math/ilogbq.c: New file. * math/fminq.c: New file. * math/llrintq.c: New file. * math/log2q.c: New file. * math/lrintq.c: New file. * math/crealq.c: New file. * math/nearbyintq.c: New file. * math/fmaxq.c: New file. * math/conjq.c: New file. * math/remquoq.c: New file. * math/cimagq.c: New file. * math/fdimq.c: New file. * math/ldexpq.c: Include errno.h. Set errno to ERANGE if needed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168854 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/46416jakub2011-01-169-12/+431
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * quadmath.h (cacosq, cacoshq, casinq, casinhq, catanq, catanhq): New prototypes. (M_Eq, M_LOG2Eq, M_LOG10Eq, M_LN2q, M_LN10q, M_PIq, M_PI_2q, M_PI_4q, M_1_PIq, M_2_PIq, M_2_SQRTPIq, M_SQRT2q, M_SQRT1_2q): Define. * quadmath_weak.h (cacosq, cacoshq, casinq, casinhq, catanq, catanhq): Add. * quadmath-imp.h (fpclassifyq, QUADFP_NAN, QUADFP_INFINITE, QUADFP_ZERO, QUADFP_SUBNORMAL, QUADFP_NORMAL): Define. * quadmath.map (QUADMATH_1.0): Add cacosq, cacoshq, casinq, casinhq, catanq and catanhq. * Makefile.am (libquadmath_la_SOURCES): Add math/cacosq.c, math/cacoshq.c, math/casinq.c, math/casinhq.c, math/catanq.c and math/catanhq.c. * Makefile.in: Regenerated. * libquadmath.texi (cacosq, cacoshq, casinq, casinhq, catanq, catanhq): Add. * math/cacoshq.c: New file. * math/cacosq.c: New file. * math/catanq.c: New file. * math/catanhq.c: New file. * math/casinq.c: New file. * math/casinhq.c: New file. * math/hypotq.c (hypotq): Use Q suffix instead of L. * math/atan2q.c (tiny, pi_o_4, pi_o_2, pi, pi_lo, atan2q): Likewise. * math/cosq.c (cosq): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168853 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/46402jakub2011-01-162-0/+271
| | | | | | | | | | | | | | | | | | | | | * quadmath.map (QUADMATH_1.0): Add fmaq. * configure.ac: Check for fenv.h, feholdexcept, fesetround, feupdateenv, fesetenv and fetestexcept. * configure: Regenerated. * config.h.in: Regenerated. * quadmath.h (fmaq): New prototype. * quadmath_weak.h (fmaq): Add. * Makefile.am (libquadmath_la_SOURCES): Add math/fmaq.c. * Makefile.in: Regenerated. * quadmath-imp.h: Include config.h. * math/expq.c: Include fenv.h. (USE_FENV_H): Define if libm support for fe* is there. (expq): Add fesetround etc. support if USE_FENV_H is defined. * math/fmaq.c: New file. * libquadmath.texi (fmaq): Add. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168852 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-12-13 Tobias Burnus <burnus@net-b.de>burnus2010-12-138-31/+33
| | | | | | | | | | | | | | | | | | | | | | | | PR fortran/46625 * gdtoa/gdtoaimp.h: Mangle internal functions by prefixing them with __quadmath. Don't use gdtoa's strcp(y). * gdtoa/g_Qfmt.c (g_Qfmt): Use strcpy instead of strcp. * gdtoa/misc.c (strcpy): Renamed from strcp and only use if NO_STRING_H is set. * quadmath-imp.h (__quadmath_rem_pio2q, * __quadmath_kernel_sincosq __quadmath_kernel_sinq, __quadmath_kernel_cosq): Added __quadmath prefix to internal functions. * math/cosq.c (cosq): Ditto. * math/sinq.c (cosq): Ditto. * math/tanq.c (tanq,__quadmath_kernel_tanq): Ditto. * math/rem_pio2q.c (rem_pio2, __quadmath_kernel_rem_pio2): * Ditto. * math/sinq_kernel.c (__quadmath_kernel_sinq): Ditto. * math/cosq_kernel.c (__quadmath_kernel_cosq): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167768 138bc75d-0d04-0410-961f-82ee72b054a4
* /burnus2010-11-1657-0/+11971
2010-11-13 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> Tobias Burnus <burnus@net-b.de> PR fortran/32049 * Makefile.def: Add libquadmath; build it with language=fortran. * configure.ac: Add libquadmath. * Makefile.tpl: Handle multiple libs in check-[+language+]. * Makefile.in: Regenerate. * configure: Regenerate. libquadmath/ 2010-11-13 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> Tobias Burnus <burnus@net-b.de> PR fortran/32049 Initial implementation and checkin. gcc/fortran/ 2010-11-13 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> Tobias Burnus <burnus@net-b.de> PR fortran/32049 * gfortranspec.c (find_spec_file): New function. (lang_specific_driver): Try to find .spec file and use it. * trans-io.c (iocall): Define * IOCALL_X_REAL128/COMPLEX128(,write). (gfc_build_io_library_fndecls): Build decl for __float128 I/O. (transfer_expr): Call __float128 I/O functions. * trans-types.c (gfc_init_kinds): Allow kind-16 belonging to __float128. gcc/testsuite/ 2010-11-13 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> Tobias Burnus <burnus@net-b.de> PR fortran/32049 * gfortran.dg/quad_1.f90: New. * lib/gcc-defs.exp (gcc-set-multilib-library-path): Use also compiler arguments. * lib/gfortran.exp (gfortran_link_flags): Add libquadmath to library search path; call gcc-set-multilib-library-path with arguments such that libgfortran.spec is found. (gfortran_init): Add path for libgfortran.spec to GFORTRAN_UNDER_TEST. libgomp/ 2010-11-13 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> Tobias Burnus <burnus@net-b.de> PR fortran/32049 * configure.ac: * configure: Regenerate. libgfortran/ 2010-11-13 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> Tobias Burnus <burnus@net-b.de> PR fortran/32049 * Makefile.am: Add missing pow_r16_i4.c, add transfer128.c, link libquadmath, if used. * acinclude.m4 (LIBGFOR_CHECK_FLOAT128): Add. * configure.ac: Use it, touch spec file. * gfortran.map: Add pow_r16_i4 and transfer_(real,complex)128(,write) functions. * intrinsics/cshift0.c (cshift0): Handle __float128 type. * intrinsics/erfc_scaled_inc.c: Ditto. * intrinsics/pack_generic.c (pack): Ditto * intrinsics/spread_generic.c (spread): Ditto. * intrinsics/unpack_generic.c (unpack1): Ditto. * io/read.c (convert_real): Ditto. * io/transfer.c: Update comments. * io/transfer128.c: New file. * io/write_float.def (write_float): Handle __float128 type. * libgfortran.h: #include quadmath_weak.h, define __builtin_infq and nanq. * m4/mtype.m4: Handle __float128 type. * runtime/in_pack_generic.c (internal_pack): Ditto. * runtime/in_unpack_generic.c (internal_unpack): Ditto. * kinds-override.h: New file. * libgfortran.spec.in: Ditto. * generated/pow_r16_i4.c: Generated. * Makefile.in: Regenerate. * configure: Regenerate. * config.h: Regenerate. * bessel_r10.c: Regenerate. * bessel_r16.c: Regenerate. * bessel_r4.c: Regenerate. * bessel_r8.c: Regenerate. * exponent_r16.c: Regenerate. * fraction_r16.c: Regenerate. * nearest_r16.c: Regenerate. * norm2_r10.c: Regenerate. * norm2_r16.c: Regenerate. * norm2_r4.c: Regenerate. * norm2_r8.c: Regenerate. * rrspacing_r16.c: Regenerate. * set_exponent_r16.c: Regenerate. * spacing_r16.c: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166825 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud