aboutsummaryrefslogtreecommitdiff
path: root/newlib/libc/include/math.h
AgeCommit message (Collapse)AuthorFilesLines
2023-12-04RISC-V: Support long double mathKito Cheng1-1/+2
Long double for RISC-V is using 128 bit IEEE 754 format like Aarch64, so we reference AArch64 to support that.
2023-05-16newlib: Add non LDBL_EQ_DBL math support for aarch64, i386, and x86_64Jennifer Averett1-1/+2
Rename s_nearbyint.c, s_fdim.c and s_scalbln.c to remove conflicts Remove functions that are not needed from above files Modify include paths Add includes missing in cygwin build Add missing types Create Makefiles Create header files to resolve dependencies between directories Modify some instances of unsigned long to uint64_t for 32 bit platforms Add HAVE_FPMATH_H
2022-04-11Aarch32/64: Support __FLT_EVAL_METHOD__ values other than 0, 1, 2Andrea Corallo1-0/+9
2022-03-30 Andrea Corallo <andrea.corallo@arm.com> * libc/include/machine/ieeefp.h (__FLOAT_TYPE, __DOUBLE_TYPE): New macros. * libc/include/math.h: Uses __DOUBLE_TYPE __FLOAT_TYPE to define double_t float_t if possible.
2021-11-29stdio: Fix issue of printing "%La" format with large exp part.Takashi Yano1-0/+1
- Currently, printf("%La\n", 1e1000L) crashes with segv due to lack of frexpl() function. With this patch, frexpl() function has been implemented in libm to solve this issue. Addresses: https://sourceware.org/pipermail/newlib/2021/018718.html
2021-07-12Minimal support for ISO/IEC TS 18661-3.Kito Cheng1-1/+11
- GCC will set __FLT_EVAL_METHOD__ to 16 if __fp16 supported, e.g. cortex-a55/aarch64. - $ aarch64-unknown-elf-gcc -v 2>&1 |grep version gcc version 9.2.0 (GCC) - $ aarch64-unknown-elf-gcc -E -dM -mcpu=cortex-a55 - < /dev/null |grep FLT_EVAL_METHOD #define __FLT_EVAL_METHOD__ 16 #define __FLT_EVAL_METHOD_TS_18661_3__ 16 #define __FLT_EVAL_METHOD_C99__ 16 - The behavior of __FLT_EVAL_METHOD__ == 16 is same as __FLT_EVAL_METHOD__ == 0 except for float16_t, but newlib didn't support float16_t. ISO/IEC TS 18661-3: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2405.pdf V2 Changes: - List Howland, Craig D as co-author since he provide the draft of comment in math.h. Co-authored-by: "Howland, Craig D" <howland@LGSInnovations.com>
2020-09-25libc/include/math.h: Remove parameter nameChristophe Lyon1-8/+8
As discussed in GCC bug 97088 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97088), parameters in prototypes of library functions should use reserved names, or no name at all. This patch removes the 'x' parameter name from extern int __isinff (float); extern int __isinfd (double); extern int __isnanf (float); extern int __isnand (double); extern int __fpclassifyf (float); extern int __fpclassifyd (double); extern int __signbitf (float); extern int __signbitd (double); to avoid possible clashes with user code in case someone uses before including Newlib's math.h (or uses some other conflicting definition)
2020-08-05libm: Control errno support with _IEEE_LIBM configuration parameterKeith Packard via Newlib1-16/+0
This removes the run-time configuration of errno support present in portions of the math library and unifies all of the compile-time errno configuration under a single parameter so that the whole library is consistent. The run-time support provided by _LIB_VERSION is no longer present in the public API, although it is still used internally to disable errno setting in some functions. Now that it is a constant, the compiler should remove that code when errno is not supported. This removes s_lib_ver.c as _LIB_VERSION is no longer variable. Signed-off-by: Keith Packard <keithp@keithp.com>
2020-08-04libm: Set math_errhandling to match library and hardware [v2]Keith Packard via Newlib1-1/+11
math_errhandling is specified to contain two bits of information: 1. MATH_ERRNO -- Set when the library sets errno 2. MATH_ERREXCEPT -- Set when math operations report exceptions MATH_ERRNO should match whether the original math code is compiled in _IEEE_LIBM mode and the new math code has WANT_ERRNO == 1. MATH_ERREXCEPT should match whether the underlying hardware has exception support. This patch adds configurations of this value for RISC-V, ARM, Aarch64, x86 and x86_64 when using HW float. Signed-off-by: Keith Packard <keithp@keithp.com>
2019-01-23Remove matherr, and SVID and X/Open math library configurationsJozef Lawrynowicz1-39/+0
Default math library configuration is now IEEE
2018-01-17ansification: remove _PARAMSYaakov Selkowitz1-224/+224
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2017-04-17Remove legacy unions which are no longer usedJeff Johnston1-23/+0
- remove __fmath, __dmath, and __ldmath unions
2016-07-15math.h: fix guards on basic M_ constantsYaakov Selkowitz1-1/+1
MAXFLOAT, M_PI, and friends date back to at least XPG4v2, so this guard was incorrect even prior to the feature test macros overhaul. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2016-05-31math.h: Replace usage of INT_MAX with __INT_MAX__Corinna Vinschen1-2/+2
Using INT_MAX requires to include limits.h on most targets. Math.h must not rely on that. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-04-05math: update isinf/isnan function comments after move to math.hYaakov Selkowitz1-1/+1
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2016-04-04math: guard BSD finite/isinf/isnan functions properly in math.hYaakov Selkowitz1-6/+19
Now that we have properly functioning feature test macros, the BSD floating-point classification functions can go into math.h instead of the non-standard ieeefp.h, and not under the C99 guard: http://man7.org/linux/man-pages/man3/finite.3.html The isnan function was in earlier versions of SUS but removed starting with POSIX.1-2001, compare: http://pubs.opengroup.org/onlinepubs/007908799/xsh/math.h.html http://pubs.opengroup.org/onlinepubs/009695399/basedefs/math.h.html Note that the isinf and isnan functions (but not the variants) conflict with functions by the same name in C++11, hence they (and only they) need to be hidden: https://sourceware.org/git/?p=glibc.git;a=commit;h=d9b965fa56350d6eea9f7f438a0714c7ffbb183f https://sourceware.org/git/?p=glibc.git;a=commit;h=3c47c83a9730c20e602694505b9278c25637b0d0 Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2016-03-29Add missing long double functions to CygwinCorinna Vinschen1-4/+22
This patch adds the long double functions missing in newlib to Cygwin. Apart from some self-written additions (exp10l, finite{f,l}, isinf{f,l}, isnan{f,l}, pow10l) the files are taken from the Mingw-w64 math lib. Minor changes were required, e.g. substitue _WIN64 with __x86_64__ and fixing __FLT_RPT_DOMAIN/__FLT_RPT_ERANGE for Cygwin. Cygwin: * math: New subdir with math functions. * Makefile.in (VPATH): Add math subdir. (MATH_OFILES): List of object files collected from building files in math subdir. (DLL_OFILES): Add $(MATH_OFILES). ${CURDIR}/libm.a: Add $(MATH_OFILES) to build. * common.din: Add new functions from math subdir. * i686.din: Align to new math subdir. Remove functions now commonly available. * x86_64.din: Ditto. * math.h: math.h wrapper to define mingw structs used in some files in math subdir. * include/cygwin/version.h: Bump API minor version. newlib: * libc/include/complex.h: Add prototypes for complex long double functions. Only define for Cygwin. * libc/include/math.h: Additionally enable prototypes of long double functions for Cygwin. Add Cygwin-only prototypes for dreml, sincosl, exp10l and pow10l. Explain why we don't add them to newlib. * libc/include/tgmath.h: Enable long double handling on Cygwin. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-03-26math.h: Use GCC builtins for C99 macros where availableCorinna Vinschen1-19/+55
GCCs builtin functions are mostly type agnostic and architecture indepedent. Prefer to use them if available. * libc/include/math.h (fpclassify, isfinite, isinf, isnan, isnormal): Use matching GCC builtin functions if built with GCC 4.4 or later. (signbit): Use matching GCC builtin functions if built with GCC 4.0 or later. (isgreater, isgreaterequal, isless, islessequal, islessgreater, isunordered): Use matching GCC builtin functions if built with GCC 2.97 or later. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-03-17Feature test macros overhaul: math.hYaakov Selkowitz1-20/+23
Simplify the C99 conditionals. Mark the drem and gamma functions as BSD|SVID, the Bessel double functions also XSI and the floats also SUSv3. signgam is BSD|SVID|XSI, and matherr is SVID. Finally, use the internal macros to control the symbolic constants. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2015-02-06 * libc/include/complex.h (cabsl): Add prototype.Nick Clifton1-0/+6
(cimagl): Add prototype. (creall): Add prototype. * libc/include/ieeefp.h: Include float.h. (EXT_EXPBITS, EXT_FRACHBITS, EXT_FRACLBITS) (EXT_EXP_INFNAN. EXT_EXP_BIAS, EXT_FRACBITS): Define. (struct ieee_ext, union ieee_ext_u): New types for long double support. * libc/include/math.h (finitel): Add prototype. (hypotl): Add prototype. (sqrtl): Add prototype. * libm/common/Makefile.am (lsrc): Add sl_finite.c. * libm/common/Makefile.in: Regenerate. * libm/common/fdlibm.h (__ieee754_hypotl): Add prototype. * libm/common/hypotl.c (hypotl): Add implementation for when long double is larger than double. * libm/common/sqrtl.c (sqrtl): Likewise. * libm/common/sl_finite.c: New file. Adds implementation of the finitel function. * libm/complex/Makefile.am (lsrc): Define. (libcomplex_la_SOURCES): Add lsrc. (lib_a_SOURCES): Add lsrc. * libm/complex/Makefile.in: Regenerate. * libm/complex/cabs.c: Add documentation of cabsl function. * libm/complex/cimag.c: Add documentation of cimagl function. * libm/complex/creall.c: Add documentation of creall function. * libm/complex/cabsl.c: New file. Adds implementation of the cabsl function. * libm/complex/cimagl.c: New file. Adds implementation of the cimagl function. * libm/complex/creall.c: New file. Adds implementation of the creall function. * libm/math/Makefile.am (lsrc): Define. (libmath_la_SOURCES): Add lsrc. (lib_a_SOURCES): Add lsrc. * libm/math/Makefile.in: Regenerate. * libm/math/el_hypot.c: New file. Adds implementation of the __ieee754_hypotl function.
2014-12-152014-12-15 Jonathan Roelofs <jonathan@codesourcery.com>Jeff Johnston1-0/+5
* libc/include/math.h: Add log2l,logbl,nexttowardf, * nexttoward,nexttowardl * libm/common/Makefile.am: Reference new files * libm/common/Makefile.in: Reference new files * libm/common/log2l.c: New File * libm/common/logbl.c: Likewise * libm/common/nexttowardf.c: Likewise * libm/common/nexttoward.c: Likewise * libm/common/nexttowardl.c: Likewise
2014-10-10 * libc/include/_ansi.h: _LONG_LONG_TYPE definition removed.Corinna Vinschen1-6/+7
* libc/include/math.h: _LONG_LONG_TYPE replaced by "long long". Guards for C99 and C++11 functions fixed. * libc/include/stdlib.h: Guards for C99 and C++11 functions fixed.
2014-08-27* libc/include/math.h (frexpl): Remove parameter name.DJ Delorie1-1/+1
2014-08-04 * libc/include/math.h: Also define M_PI etc. if _XOPEN_SOURCE isJon TURNEY1-3/+12
defined appropriately.
2012-12-182012-12-18 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston1-3/+0
* libc/include/math.h: Remove the log2f macro.
2012-12-182012-12-18 Craig Howland <howland@LGSInnovations.com>Jeff Johnston1-4/+30
* libc/include/math.h: Add recognition of values 1 and 2 for FLT_EVAL_METHOD.
2012-10-16 * libc/include/sys/features.h (__GNUC_PREREQ): Define. UseCorinna Vinschen1-4/+1
throughout in place of explicit GNUC version checks. * libc/include/_ansi.h (_NOINLINE): Define. (_NOINLINE_STATIC): Define. * libc/stdio/vfprintf.c (__sbprintf): Define _NOINLINE_STATIC.
2010-12-03 * libc/include/math.h: Missing from previous checkin.Corinna Vinschen1-5/+5
2010-10-142010-10-14 Craig Howland <howland@LGSInnovations.com>Jeff Johnston1-2/+0
* libc/include/math.h: Delete cabs() and cabs() prototypes (c.f. 2010-10-08 change by Corinna).
2010-01-112010-01-11 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>Jeff Johnston1-0/+4
* libc/include/math.h (log2, log2f): Disable macro versions for C++, as they are incompatible with OpenMP/C++ headers. 2
2009-11-172009-11-17 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>Jeff Johnston1-0/+2
* libm/common/fdlibm.h (logb, logbf): Move decls from here... * libc/include/math.h (logb, logbf): ...to here.
2009-07-092009-07-09 Craig Howland <howland@LGSInnovations.com>Jeff Johnston1-3/+2
* libm/math/ef_scalb.c: Replace isnanf() (pre-C99 function call) with isnan() (C99 macro). * libm/math/wf_log.c: Ditto. * libm/math/wf_j0.c: Ditto. * libm/math/wf_sqrt.c: Ditto. * libm/math/wf_pow.c: Ditto. * libm/math/wf_fmod.c: Ditto. * libm/math/wf_remainder.c: Ditto. * libm/math/wf_scalb.c: Ditto. * libm/math/wf_atanh.c: Ditto. * libm/math/wf_cosh.c: Ditto. * libm/math/wf_acos.c: Ditto. * libm/math/wf_acosh.c: Ditto. * libm/math/wf_jn.c: Ditto. * libm/math/wf_log10.c: Ditto. * libm/math/wf_asin.c: Ditto. * libm/math/wf_j1.c: Ditto. * libm/common/sf_isnan.c: Add #include <ieeefp.h>, fix comment. * libm/common/sf_isinf.c: Add #include <ieeefp.h>, adjust comment to match that from s_isinf.c. * libc/include/machine/ieeefp.h: Simplify isinf and isnan macros to remove un-necessary extension use (in a similar manner to as was recently done in math.h). * libc/include/math.h: Remove isnanf and isinff prototypes (are in ieeefp.h). * libm/machine/spu/sf_isinf.c: Fix comment (remove <math.h>).
2009-06-162009-06-16 Craig Howland <howland@LGSInnovations.com>Jeff Johnston1-15/+11
* libc/include/math.h: Simplify fpclassify, isinf, isnan, and signbit macros to remove un-necessary extension use. isinf and isnan also changed to use fpclassify. isfinite macro modified to run faster by only calling fpclassify once instead of possibly twice.
2009-05-152009-05-15 Craig Howland <howland@LGSInnovations.com>Jeff Johnston1-14/+40
* configure.in: Add configuration test for long double type existing and set flag _HAVE_LONG_DOUBLE if true. Fix INIT_ARRAY (.init_array) and _LDBL_EQ_DBL tests to not link so that will work with cross-compilers. * configure: Regenerated. * Makefile.in: Ditto. * newlib.hin: Add _HAVE_LONG_DOUBLE flag. * libc/include/math.h: Change non-builtin defines for HUGE_VAL, HUGE_VALF, and HUGE_VALL to be constant expressions. Add definitions for the non-builtin case for INFINITY and NAN. Gate HUGE_VALL and union __ldmath definitions with (new) _HAVE_LONG_DOUBLE. *libm/common/s_infconst.c: Change definitions to use values from float.h instead of non-so-portable integer forms. Mark as being deprecated (because now removed from math.h, are not used anywhere in Newlib, itself).
2009-04-242009-04-24 Jeff johnston <jjohnstn@redhat.com>Jeff Johnston1-4/+4
* configure.in: Add configuration test for long double equals dbl and set flag _LDBL_EQ_DBL if true. * configure: Regenerated. * newlib.hin: Add _LDBL_EQ_DBL flag. * libc/include/math.h: Use _LDBL_EQ_DBL flag instead of _HAVE_LDBL_MATH. * libc/include/stdlib.h: Use _LDBL_EQ_DBL flag instead of _HAVE_LDBL_STDLIB. * libc/common/local.h: Remove _LDBL_EQ_DBL flag setting. * libc/stdlib/local.h: Ditto.
2009-04-202009-04-20 Jeff johnston <jjohnstn@redhat.com>Jeff Johnston1-4/+4
* libc/include/math.h: Change _LDBL_EQ_DBL flag usage to be _HAVE_LDBL_MATH. * libc/include/stdlib.h: Change _LDBL_EQ_DBL flag usage to be _HAVE_LDBL_STDLIB.
2009-04-172009-04-17 Ken Werner <ken.werner@de.ibm.com>Jeff Johnston1-0/+1
* libc/include/machine/ieeefp.h: _LDBL_EQ_DBL check fixed. * libc/include/math.h (llrintl): Declare. * libm/common/llrintl.c: New File. * libm/common/Makefile.am: New File added. * libm/common/Makefile.in: Regenerate.
2009-04-162009-04-16 Ken Werner <ken.werner@de.ibm.com>Jeff Johnston1-1/+68
* libm/libm.texinfo: Add long double function support chapter. * libc/include/machine/ieeefp.h: Add _LDBL_EQ_DBL define. * libc/include/stdlib.h: Include <machine/ieeefp.h>. (strtold, wcstold): Declare. * libc/stdlib/strtold.c: New File. * libc/stdlib/wcstold.c: Likewise. * libc/configure.in: Add long double check. * libc/configure: Regenerate. * libc/stdlib/Makefile.am: Add strtold.c and wcstold.c. * libc/stdlib/Makefile.in: Regenerate. * libc/include/math.h (atanl, cosl, sinl, tanl, tanhl): Declare. (frexpl, modfl, ceill, fabsl, floorl, log1pl, expm1l, acosl): Ditto. (asinl, atan2l, coshl, sinhl, expl, ldexpl, logl, log10l, powl): Ditto. (sqrtl, fmodl, hypotl, copysignl, nanl, ilogbl, asinhl, cbrt): Ditto. (nextafterl, rintl, scalbnl, exp2l, scalblnl, tgammal): Ditto. (nearbyintl, lrintl, llrintl, roundl, lroundl, llround): Ditto. (llroundl, truncl, remquol, fdiml, fmaxl, fminl, fmal, acoshl): Ditto. (atanhl, remainderl, lgammal, erfl, erfcl): Ditto. * libm/common/atanl.c: New File. * libm/common/cosl.c: Likewise. * libm/common/sinl.c: Likewise. * libm/common/modfl.c: Likewise. * libm/common/frexpl.c: Likewise. * libm/common/tanhl.c: Likewise. * libm/common/tanl.c: Likewise. * libm/common/expm1l.c: Likewise. * libm/common/log1pl.c: Likewise. * libm/common/ceill.c: Likewise. * libm/common/fabsl.c: Likewise. * libm/common/floorl.c: Likewise. * libm/common/acosl.c: Likewise. * libm/common/asinl.c: Likewise. * libm/common/atan2l.c: Likewise. * libm/common/coshl.c: Likewise. * libm/common/expl.c: Likewise. * libm/common/fmodl.c: Likewise. * libm/common/hypotl.c: Likewise. * libm/common/ldexpl.c: Likewise. * libm/common/log10l.c: Likewise. * libm/common/logl.c: Likewise. * libm/common/powl.c: Likewise. * libm/common/sqrtl.c: Likewise. * libm/common/copysignl.c: Likewise. * libm/common/ilogbl.c: Likewise. * libm/common/nanl.c: Likewise. * libm/common/cbrtl.c: Likewise. * libm/common/asinhl.c: Likewise. * libm/common/nextafterl.c: Likewise. * libm/common/rintl.c: Likewise. * libm/common/scalbnl.c: Likewise. * libm/common/exp2l.c: Likewise. * libm/common/fdiml.c: Likewise. * libm/common/fmal.c: Likewise. * libm/common/fmaxl.c: Likewise. * libm/common/fminl.c: Likewise. * libm/common/lrintl.c: Likewise. * libm/common/lroundl.c: Likewise. * libm/common/nearbyintl.c: Likewise. * libm/common/remquol.c: Likewise. * libm/common/roundl.c: Likewise. * libm/common/scalblnl.c: Likewise. * libm/common/truncl.c: Likewise. * libm/common/acoshl.c: Likewise. * libm/common/atanhl.c: Likewise. * libm/common/erfcl.c: Likewise. * libm/common/erfl.c: Likewise. * libm/common/lgammal.c: Likewise. * libm/common/remainderl.c: Likewise. * libm/common/tgammal.c: Likewise. * libm/common/sinhl.c: Likewise. * libm/common/llroundl.c: Likewise. * libm/configure.in: Add long double check. * libm/configure: Regenerate. * libm/common/Makefile.am: Add new files. * libm/common/Makefile.in: Regenerate.
2009-04-032009-04-03 Ken Werner <ken.werner@de.ibm.com>Jeff Johnston1-3/+3
* libc/include/math.h: Remove duplicate copysign prototype. Fix __math_68881 define typo. Guard functions of the rint family.
2009-03-252009-03-25 Craig Howland <howland@LGSInnovations.com>Jeff Johnston1-0/+2
* libc/include/math.h: (llround, llroundf): Declare. * libm/common/s_llround.c: New file, implementing llround(). * libm/common/sf_llround.c: New file, implementing llroundf(). * libm/common/sf_lround.c: Remove spurious cast in _DOUBLE_IS_32BITS version of function. * libm/common/sf_lrint.c: Ditto. * libm/common/sf_logb.c: Corrected return for subnormal argument by replacing existing function with a version created from sf_ilogb.c. * libm/common/s_logb.c: Ditto, except starting point s_ilogb.c. Also added documentation for logb() and logbf(). * libm/common/s_signbit.c: Add signbit() documentation. * libm/common/s_log2.c: Update return values to match what w_log2.c has, since log2 uses log(); add note about being derived instead of direct. * libm/common/sf_fma.c: Add casts to attempt to get correct results, as well as comments pointing out problems with the implementation. * libm/common/s_fma.c: Add fma() and fmaf() documentation. * libm/common/sf_remquo.c: Incorrect quotient returns for large values corrected by discarding existing function and replacing with Sun verion, with some enhancements. * libm/common/s_remquo.c: Ditto. Add remquo() and remquof() documentation. * libm/common/s_fmax.c: Add fmax() and fmaxf() documentation. * libm/common/s_fmin.c: Add fmin() and fminf() documentation. * libm/common/s_fdim.c: Return NAN for NAN arg, add fdim() and fdimf() documentation. * libm/common/sf_fdim.c: Return NAN for NAN arg, HUGE_VALF for inf arg. * libm/common/s_trunc.c: Add trunc() and truncf() documentation. * libm/common/s_rint.c: Add rint() and rintf() documentation. * libm/common/s_round.c: Add round() and roundf() documentation. * libm/common/s_scalbn.c: Add scalbln() and scalblnf() documentation. * libm/common/s_infinity.c: Add infinity() and infinityf() documentation. * libm/common/s_lround.c: Add lround(), lroundf(), llround(), and llroundf() documentation. * libm/common/s_lrint.c: Add lrint(), lrintf(), llrint(), and llrintf() documentation. * libm/common/isgreater.c: New file for documenting math.h function-like macros isgreater(), isgreaterequal(), isless(), islessequal(), islessgreater(), and isunordered(). * libm/common/s_isnan.c: Add documentation for function-like macros fpclassify(), isfinite(), isinf(), isnan(), and isnormal(). * libm/common/s_nearbyint.c: Add nearbyint() and nearbyintf() documentation. * libm/common/Makefile.am: Add s_llround.c (src); sf_llround.c (fsrc); s_fdim.def, s_fma.def, s_fmax.def, s_fmin.def, s_logb.def, s_lrint.def, s_lround.def, s_nearbyint.def, s_remquo.def, s_rint.def, s_round.def, s_signbit.def, s_trunc.def, and isgreater.def (chobj); re-name all existing chew files (chobj) to match source file base names (put in underscores), delete all special targets for chew files (leaving all to be generated by rule). * libm/common/Makefile.in: regenerate. * libm/math/w_exp2.c: Add "base 2" to documentation description (and delete TRAD_SYNOPSIS). * libm/math/w_gamma.c: Add tgamma() and tgammaf() documentation, along with some history behind the function names. * libm/math/math.tex: Add includes for newly-added documentation (see .def additions to common/Makefile.am and math/Makefile.am in this ChangeLog list), adjusted existing .def file names to match source file base names (added underscores); add mention of HUGE_VALF; rename "Version of library" section to "Error Handling" and add some text about floating-point exception; added section "Standards Compliance And Portability". * libm/math/Makefile.am: Add w_exp2.def (chobj); re-name all existing chew files (chobj) to match source file base names, delete all special targets for chew files (leaving all to be generated by rule). * libm/math/Makefile.in: regenerated * doc/makedoc.c: Change silent ignoring of commands < 5 characters to a failure when reading macro file for commands < 4 characters; add -v (verbose) option for printing some debugging information; get rid of spurious translation of "@*" to "*" (no source files used @*, so no existing doc pages were affected); clean up some compiler warnings. * doc/doc.str: add BUGS and SEEALSO sections (to match texi2pod.pl which has them); Remove ITEM command (redundant with makedoc built-in "o", not used in any present source file so nothing is lost, anyway). * HOWTO: New file to hold information for maintainers regarding how to do things. Initial sections on documentation and ELIX levels.
2009-03-182009-03-18 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>Jeff Johnston1-0/+2
* libm/common/s_log2.c: New file. * libm/common/sf_log2.c: Ditto. * libm/common/Makefile.am: Add s_log2.c and sf_log2.c. * libm/common/Makefile.in: Regenerated. * libc/include/math.h: Add log2 and log2f function prototypes.
2008-04-232008-04-23 Ken Werner <ken.werner@de.ibm.com>Jeff Johnston1-3/+3
* libc/include/_ansi.h: _LONG_LONG renamed to _LONG_LONG_TYPE. * libc/include/math.h: Likewise.
2007-12-192007-12-19 Dave Korn <dave.korn@artimi.com>Jeff Johnston1-0/+7
Jeff Johnston <jjohnstn@redhhat.com> * libc/include/_ansi.h: Add _LONG_LONG definition. * libc/include/math.h (llrint, llrintf, rintl, lrintl, llrintl): Add prototypes. * libc/machine/i386/machine/fastmath.h: Add support for new i386 fast math versions of rint, lrint, and llrint family functions. * libm/machine/i386/Makefile.am: Add new files. * libm/machine/i386/Makefile.in: Regenerated. * libm/machine/i386/f_llrint.c, libm/machine/i386/f_lrint.c, libm/machine/i386/f_rint.c, libm/machine/i386/f_llrintf.c, libm/machine/i386/f_lrintf.c, libm/machine/i386/f_rintf.c, libm/machine/i386/f_llrintl.c, libm/machine/i386/f_lrintl.c, libm/machine/i386/f_rintl.c: New files with fast math implementations.
2007-09-072007-09-07 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston1-7/+6
* libc/include/math.h (_M_LOG2E): Replace with.. (_M_LOG2_E): New macro. (log2, log2f, M_LOG2_E): Use _M_LOG2_E.
2007-09-06Fix typo in ChangeLog and math.h.Jeff Johnston1-2/+2
2007-09-062007-09-06 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston1-3/+7
* libc/include/math.h (_M_LOG2E): New log2 of e macro. (log2): Use _M_LOG2E instead of M_LOG2E. (log2f): Ditto. (M_LOG2E): Define to be _M_LOG2E.
2007-07-112007-07-11 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston1-45/+45
* libc/include/math.h: Fix so C99 functions/macros are accessible when -std=c99 is used when compiling and not when using C89.
2007-05-172007-05-17 Yaakov Selkowitz <yselkowitz <at> users.sourceforge.net>Jeff Johnston1-0/+16
* libm/common/Makefile.am: Add support for exp10, exp10f, pow10, and pow10f functions. * libm/common/Makefile.in: Regenerated. * libm/common/s_pow10.c: New file. * libm/common/sf_pow10.c: Ditto. * libm/common/s_exp10.c: Ditto. * libm/common/sf_exp10.c: Ditto. * libc/include/math.h [!pow10]: New pow10 prototype. [!pow10f]: New pow10f prototype. [!exp10]: New exp10 prototype. [!exp10f]: New exp10f prototype.
2007-05-16 * libc/include/math.h (INFINITY, NAN, FP_ILOGB0, FP_ILOGBNAN)Eric Blake1-18/+42
(MATH_ERRNO, MATH_ERREXCEPT, math_errhandling): Add macros required by POSIX. * libc/stdlib/ldtoa.c (USE_INFINITY): Rename from INFINITY, to avoid clash with <math.h>.
2007-04-262007-04-26 Patrick Mansfield <patmans@us.ibm.com>Jeff Johnston1-0/+8
* libc/include/ieeefp.h: use prefixed __ieeefp_ macros that can be overridden via machine/ieeefp.h. * libc/include/machine/ieeefp.h: Add SPU specific C99 and ieeefp macros for isnan and related macros. * libc/include/math.h: Allow C99 isfinite, isinf, and isnan to be overridden via machine/ieeefp.h. * libm/machine/spu/Makefile.am: Add new files. * libm/machine/spu/Makefile.in: Autogenerate with new files. * libm/machine/spu/sf_fpclassify.c: Add SPU specific __fpclassifyf. * libm/machine/spu/sf_finite.c: Add SPU specific finitef. * libm/machine/spu/sf_isinf.c: Add SPU specific isinff. * libm/machine/spu/sf_isinff.c: Add SPU specific __isinff. * libm/machine/spu/sf_isnan.c: Add SPU specific isnanf. * libm/machine/spu/sf_isnanf.c: Add SPU specific __isnanf. * libm/machine/spu/sf_nan.c: Add SPU specific nanf.
2006-11-302006-11-30 Lev Bishop <lev.bishop@gmail.com>Jeff Johnston1-2/+2
* libc/include/math.h: Allow C99 functions/macros to be defined for C++ even when __STRICT_ANSI__.