Commit Graph

690 Commits

Author SHA1 Message Date
riastradh 0eddede86f Fix sense of fegetexcept on x86.
Somehow I overlooked this when I fixed feenableexcept and
fedisableexcept last summer.

XXX pullup to 6
2013-05-29 00:53:19 +00:00
martin 56f02cd141 Fix POLYD/Mariah fallout and include the scalbn sources (which do not
use polyd).
Fix global names and weak aliases.
2013-05-24 12:45:40 +00:00
mlelstv bec369833b Correctly alias the ldexp* functions to the scalbn equivalents
that take an int argument.
2013-05-20 20:27:43 +00:00
joerg 65098ec1a4 Fix ldexp aliases. 2013-05-20 19:40:09 +00:00
mlelstv d896c3b677 Use correct alias for scalbn(). Tested by martin@. 2013-05-20 15:13:36 +00:00
martin 6883e0df33 Try to fix bogus underflow test (obvious copy & pasto) - someone please
review to make sure I got it right.
This fixes PR 47834.
2013-05-19 20:50:02 +00:00
matt 8f0edf9e8a Fix feclearexcept return value (should be 0). 2013-05-01 04:04:54 +00:00
matt 745c75b88e Use MKSOFTFLOAT = no for including arm hardfloat files.
When arm and MKSOFTFLOAT = yes, make explicit dependency to .c files
so .S won't be used.
2013-05-01 04:04:31 +00:00
joerg 56cae1058e Provide scalbln weak alias. Fix argument order for STRONG_ALIAS.
Expect WEAK_ALIAS and STRONG_ALIAS to exist.
2013-04-30 21:55:31 +00:00
matt 194fd46747 Make this compile for earmhf 2013-04-30 01:45:13 +00:00
matt bc08020c0d Add a C99 <fenv.h> implementation for arm. 2013-04-28 21:06:34 +00:00
joerg c13cb064fe Drop s_scalbnl.c (and s_scalbln.S as side effect) and provide scalbnl in
s_scalbln.c.
2013-04-28 14:46:14 +00:00
joerg 560a52b9a0 Retire ldexp sources. scalbn has the aliases. 2013-04-27 22:58:15 +00:00
joerg bc802c017d Add a dummy s_scalbln.S to avoid the generic implementations of scalbln
and co on i386 and amd64. They are implemented next to scalbn and co.
2013-04-27 18:44:39 +00:00
joerg 877d9fe29e Add aliases to scalbn* as ldexp*, they are identical for FLT_RADIX=2. 2013-04-27 18:43:25 +00:00
joerg 5204c9072e Add aliases for scalbn* to ldexp, they are identical for FLT_RADIX=2. 2013-04-27 18:39:28 +00:00
joerg d816b4de58 Use the correct register on AMD64 for the argument. 2013-04-27 18:36:41 +00:00
joerg c3a587caac Move scalbnl back to s_scalbln.c to match the assembler implementations. 2013-04-27 17:20:36 +00:00
joerg a3f958023b Casting is a not a valid way to check for overflow, so be explicit and
use the limit macros.
2013-04-27 17:19:47 +00:00
joerg 4dfc9ad094 Use namespace.h. Don't redefine scalblnl on 64bit platforms. 2013-04-27 16:43:13 +00:00
njoly 1a8ac39140 Kill some extra backslashes. 2013-04-26 18:18:22 +00:00
uebayasi bad3256eeb Pass a real file as MLINKS target; fix unnecessary (re)install. 2013-04-06 12:16:49 +00:00
njoly 0f84e47820 Remove unknown .LP macro. 2013-03-14 19:15:34 +00:00
matt e443b7748e Remove .fpu since it's not needed 2013-02-14 09:27:26 +00:00
matt 0748121219 Use right macro for __strong_alias 2013-02-14 09:24:50 +00:00
matt 5d4ceff81f Define a strong alias, not a weak one 2013-02-14 09:23:40 +00:00
matt b25c1339c3 Deal with an implicit NBIT 2013-02-14 08:56:56 +00:00
martin 905b216648 Use __HAVE_LONG_DOUBLE instead of EXT_EXPBITS and include s_nextafterl.c
as well as s_frexpl.c in the global list of "common" sources - as we
seem to have no arch redefining the standard double variant, it seems
unlikely we will have on redefining the long double version in assembler.
2013-02-12 21:40:18 +00:00
martin 1bdd60c0cc Use __weak_alias instead of __weak_reference (obvious pasto) 2013-02-12 08:21:48 +00:00
matt 0d613952ce Fix the strong alias correctly this time. 2013-02-12 02:52:13 +00:00
matt 9aeffda480 any arch that has fenv.[ch] can have fma as well (since fma uses fenv). 2013-02-11 17:55:01 +00:00
matt 04ec087c22 Add fma/fmaf/fmal for arm hard float which uses the VFP vmla instruction. 2013-02-11 17:41:13 +00:00
matt 6567e38835 Add VFP versions of lrint/lrintf/lrintl for earmhf* 2013-02-11 12:43:03 +00:00
matt bec7d6b6c4 Fix strong_alias 2013-02-11 04:57:22 +00:00
christos e2402e5654 use __HAVE_LONG_DOUBLE 2013-02-11 02:45:27 +00:00
christos 3884ecde09 provide ldexpl 2013-02-11 02:45:15 +00:00
christos be32181245 add more functions required by fma 2013-02-11 01:47:04 +00:00
christos 2ee19bcb19 more stuff from FreeBSD 2013-02-11 01:38:10 +00:00
christos e3f9b211a9 hook fma to the build 2013-02-11 01:29:58 +00:00
matt 3a4e9cb991 Add long double version of x86 scalb functions 2013-02-11 01:19:33 +00:00
christos ff820d76df bring in fma from FreeBSD 2013-02-11 00:49:23 +00:00
christos 076b167207 make these only work for things that have EXT_ foo definitions. 2013-02-09 23:14:44 +00:00
matt 9074d59336 Use FP_ILOGB0 and FP_ILOGBNAN 2013-02-09 22:56:00 +00:00
christos afdc807ef9 Hook to the build. 2013-02-09 22:33:13 +00:00
christos 60e078850a FreeBSD version 2013-02-09 22:32:47 +00:00
christos ee48b743e7 Make this work for NetBSD 2013-02-09 20:19:13 +00:00
christos 80388058ff one more 2013-02-09 19:39:01 +00:00
christos be721c1dad add FreeBSD implementations. 2013-02-09 19:37:48 +00:00
matt c31c561dde Add support for the ARM hardfloat instructions vsqrt and vabs. 2013-02-03 07:13:07 +00:00
matt 52af3052a7 Document the long double versions. 2013-01-29 02:54:30 +00:00
matt d6b3d22ed9 Document long double versions of these routines. 2013-01-29 02:05:08 +00:00
pgoyette 5bbb1e2022 Add missing ';' to fix the build. 2013-01-28 14:09:43 +00:00
matt 81629d5d17 Deal with _LP64 properly. 2013-01-28 06:34:09 +00:00
matt 0e9f9224ed Add long double aliases 2013-01-28 06:26:20 +00:00
wiz aea943bc0e Convert to mdoc and fix stuff while here. 2012-12-27 21:34:09 +00:00
njoly 8f831e5efb Add No macro to ensure that "and" word is not taken as function
argument.
2012-11-10 15:59:58 +00:00
dholland 449e13d08d proofreading 2012-11-06 21:43:37 +00:00
matt e4c3811f58 Fix copyright. 2012-08-08 16:58:28 +00:00
matt c79f17b998 Add a long double version of trunc. 2012-08-08 16:57:24 +00:00
matt 57a1ba1789 Use COPTS instead of CFLAGS 2012-08-04 15:16:16 +00:00
riastradh 3a4a1ac26a Mask off the result of feenableexcept and fedisableexcept on x86.
These shouldn't return bits outside FE_ALL_EXCEPT.
2012-08-04 03:53:55 +00:00
abs 7d974f9a82 ANSI prototypes 2012-06-08 11:13:33 +00:00
christos a898920ce2 Add tgamma{,f} from FreeBSD via rudolf, netbsd at eq dot cz 2012-05-05 17:54:13 +00:00
joerg b757af438b Disable new -Wstring-plus-int warning where needed for now.
Adjust various places that add GCC-only options to check for the active
compiler first.
2012-04-04 10:59:44 +00:00
matt fa835e8c8b These directories default to WARNS?=5 2012-03-21 05:37:42 +00:00
njoly 92562600d4 On alpha compile the math library with dynamic rounding mode instead
of fixed normal IEEE rounding mode. This makes function that depends on
the current rounding mode, such as rint(3), just work.
2012-03-09 08:03:53 +00:00
drochner fc3deeb5d7 fix minor typo 2011-11-29 13:17:04 +00:00
wiz 485ec0dce0 Fix a lint warning noted by njoly. 2011-11-17 23:46:32 +00:00
christos c1d5350b00 Fix the vax build under gcc-4.5 which now detects that floating constants
don't fit or are effectively 0.
2011-11-02 02:34:56 +00:00
njoly a7999336ff In functions list, switch from tab characters to Ta macro. Makes
nroff properly handle xrefs.
2011-09-22 18:14:09 +00:00
njoly f18fdd46cc Fix a few xrefs. 2011-09-18 10:58:28 +00:00
jruoho 11f8ac704b Remove BUGS as per joerg@'s objection. 2011-09-18 05:33:13 +00:00
wiz 51f391f530 Convert to mdoc. 2011-09-17 13:28:51 +00:00
jruoho 20aafc300b Remove rest of the NOTES and ERRORS and references to pow(3) family. 2011-09-17 10:52:52 +00:00
jruoho a6e1d3b208 Split out pow(3) from exp(3). 2011-09-17 10:51:52 +00:00
wiz 45c370fce8 Fix Dt. 2011-09-13 08:51:32 +00:00
njoly d7d196e168 Add missing El macro. 2011-09-13 07:28:30 +00:00
njoly fab32cf3a1 Remove xrefs to ieee(3) man page which does not exists anymore. 2011-09-13 07:11:43 +00:00
jruoho 6fd7775f29 Split out the logarithm functions from the perplex exp(3). Also remove some
useless notes in the latter (namely, no one cares that financial calculations
were done on Hewlett-Packard HP-71B, or that there is a LN1() in Pascal).
2011-09-13 05:26:47 +00:00
wiz 43675611fd Fix special chars and spacing in previous. 2011-09-12 17:08:22 +00:00
jruoho 82f75e1495 Improve and update. Also note again the lack of tanhl() in NetBSD. 2011-09-12 16:08:42 +00:00
jruoho bc80f14d3c Update and improve, and note that the long double variant is not supported. 2011-09-12 14:44:27 +00:00
wiz 23e71456ea ort SEE ALSO. 2011-08-06 11:09:22 +00:00
jruoho 6cfcd0daec Deprecate ieee(3). 2011-08-06 11:01:12 +00:00
jruoho c19246b80a Split out the scalbn(3) family out from ieee(3) and properly document it. 2011-08-06 10:51:26 +00:00
joerg cee5599b68 Add logbl(3). 2011-08-03 14:13:07 +00:00
wiz 0dd055cd7a Add serial comma. 2011-08-02 10:15:03 +00:00
wiz 50fca4b971 Fix typo in function name. 2011-08-02 10:08:24 +00:00
joerg 5ccaf4b804 Add ilogbl(3). 2011-07-28 22:32:28 +00:00
joerg bff4ba20de Add scalbnl(3) mlinks. 2011-07-28 21:10:25 +00:00
matt ad1826f0ba Add scalbn{,f,l} for VAX. 2011-07-28 20:53:20 +00:00
joerg 37ef12d394 Add optimised version of scalbnl for x86. 2011-07-26 17:03:23 +00:00
joerg afda0f82d1 Add scalbnl to libm. 2011-07-26 16:10:15 +00:00
mrg bf90b28081 avoid some uninitalised variable warnings. 2011-07-04 11:46:41 +00:00
mrg cba8775c43 use DBL_MAX and FLT_MAX from <float.h> instead of hard coding some ieeefp values. 2011-07-03 06:45:24 +00:00
joerg e060a1ff71 Actually used SSE branch. Noticed by enami@ 2011-06-21 21:52:49 +00:00
mrg 75e42fa7da remove most of the remaining HAVE_GCC tests that are always true in
the modern world.
2011-06-20 07:43:56 +00:00
joerg 17f4d79daf Use correct stack register as noticed by christos 2011-06-18 22:19:52 +00:00
joerg 7d48645456 Kill redundant ; 2011-06-18 21:24:51 +00:00
joerg 658a2a5f07 Switch to SSE code, since our gas supports it now. 2011-06-18 20:49:26 +00:00
joerg 47980a5652 SSE2 registers are only used for float and double arguments, so update
comment to reflect reality. Add some accessor macros for long double
arguments for i386 and x86_64.
2011-06-18 18:16:40 +00:00
njoly 5fdba0ad5a nanl() do use strtold(), not strtod(). 2011-06-10 14:10:18 +00:00
nakayama 88e42b609b Add fenv support for sparc. Mostly copied from sparc64 and share with it. 2011-05-20 21:42:48 +00:00
jruoho 881e57fce3 Remove trailing '\'. 2011-05-10 09:07:51 +00:00
jruoho 31061e207a Split out the ilogb(3) family out of ieee(3) and properly document it. 2011-05-10 06:38:33 +00:00
drochner 1e1bb256ba according to C99/POSIX, nextafter(x,y) should return y if x==y, from
Henning Petersen per PR lib/44875
2011-04-18 15:59:09 +00:00
christos 5b8e5cb4eb Fix markup 2011-04-16 23:58:01 +00:00
jruoho e77640da5b Merge floor(3) to ceil(3). 2011-04-16 05:48:50 +00:00
jruoho 9d56ec39d7 Split out from ieee(3) also the remainder(3) and copysign(3) families. 2011-04-13 04:57:10 +00:00
jruoho 9305ee0c33 Split the nextafter(3) family of functions to their own page and properly
document these.
2011-04-12 07:29:50 +00:00
drochner 997b81175f let log(<0) return NaN rather than -inf in POSIX/XOPEN modes, as
requested in PR lib/41931 by Havard Eidnes (the PR refers to POSIX,
the OSF/1 manpage suggests that XOPEN should behave that way too)
being here, do the same to log10 and log2
2011-04-11 15:17:33 +00:00
joerg 5349df0309 Add missing MLINKS. From Stathis Kamperis. 2011-03-18 00:57:19 +00:00
christos cf7b1c6bb2 PR/44663: Corinna Vinschen: Fix misplaced parenthesis that produces the wrong
result.
2011-03-02 13:24:43 +00:00
christos 6f4121938f Add the actual function files. From FreeBSD via Stathis Kamperis 2011-02-06 01:53:38 +00:00
christos e60f59b973 remquo{,f} from FreeBSD via Stathis Kamperis 2011-02-06 00:44:08 +00:00
christos ae8a4fc798 not everyone has fenv.c, pointed by Havard Eidnes 2011-01-31 15:06:01 +00:00
christos 17b8402a39 fenv support for sparc64 from Stathis Kamperis 2011-01-31 00:19:33 +00:00
joerg 0e4ac962b5 Remove NOMANDOC, the documents are at least parsed somewhat sensible. 2011-01-12 23:03:55 +00:00
jakllsch cfb57741fb Imlementations of fmax, fmaxf, fmin and fminf libm functions for VAX. 2011-01-09 02:32:13 +00:00
njoly 53ac8d2f21 Fix typo in cross-refernce. 2010-12-17 23:57:07 +00:00
abs eb439bf1a7 Add noieee versions for lround(), lroundf(), lrint(), lrintf(),
llrint() and llrintf().  Code copied from round(), roundf() and
rint() and modified for return values.  Its possible this may not
do the right things in edge cases, but if so its likely to have
the same issues as the existing round(), roundf() and rint().

All this used by vax (only), and should allow xnest to complete
build.
2010-12-09 22:52:59 +00:00
drochner 240e9917d0 fix accuracy problems in argument ranges where j0(x) is small, closes
PR lib/44170 by Henning Petersen
(originally from Steven G. Kargl per FreeBSD PR bin/144306)
2010-11-29 15:10:06 +00:00
christos fda2d7ca9f deal with infinity on the vax. 2010-09-20 17:51:38 +00:00
christos c80a34bc23 no more ieee ifdefs 2010-09-20 16:55:20 +00:00
christos 0a9ef41cbe get rid of ieee dependencies. 2010-09-20 16:53:30 +00:00
christos 852d033d43 shouldn't need ieee.h here. 2010-09-20 15:38:48 +00:00
christos 92da7545e1 don't compile long double support for the havenots. 2010-09-17 20:39:39 +00:00
drochner de41a05aef fix an obvious botch which made eg conjl(3) a no-op 2010-09-16 20:39:50 +00:00
wiz 0d8d67869e Remove trailing whitespace. 2010-09-15 18:40:27 +00:00
christos 98b923b685 commit long double SoC code from Stathis Kamperis 2010-09-15 16:12:05 +00:00
christos e2a86dd3c7 Commit SoC long double support from Stathis Kamperis 2010-09-15 16:11:28 +00:00
drochner 1a2acb81f4 EDOM should not be set on atan2(0,0) in POSIX mode, found by
Stathis Kamperis' testsuite
2010-09-01 10:44:28 +00:00
drochner 2dcdd0a999 two disgusting hacks:
-mk/bsd.lib.mk picks up a .S asm file behind our back (did it do so
 always?). s_modf.S is incorrect; I'm undecided whether it makes sense
 to fix it, so add a stupid rule to enforce the .c file to be used.
-on i386, s_tanh.c gets miscompiled. It works with -O0, so add
 COPTS for exactly that file.
2010-08-10 17:53:08 +00:00
wiz ab7858d6ea Remove reference to fpresetsticky(3), which doesn't exist.
From Stathis Kamperis.
2010-08-07 18:13:12 +00:00
wiz 16b537c3d2 Fix typo in MLINKS, from Stathis Kamperis. Adapt set lists, and run
them through sort while there.
2010-08-07 18:12:45 +00:00
wiz 33c5cb75ad Remove trailing comma in enumeration, make HTML-ready. 2010-08-04 18:58:28 +00:00
wiz 3b43a9401a Remove trailing comma in enumeration. 2010-08-04 18:58:18 +00:00
taca 5dad8344cc Fix compile error. 2010-08-01 06:34:38 +00:00
joerg c271d4f25f Fix merge error: drop machine from an older workaround for machine.sse
under compat32, drop the assertion, initialize oldlen.
2010-07-31 22:14:18 +00:00
joerg 7f1183f226 Add support for fenv.h interface for i386 and amd64.
Submitted by Stathis Kamperis as part of GSoC 2010 and ported from
FreeBSD.
2010-07-31 21:47:52 +00:00
joerg 9741664022 \\* -> \* 2010-05-14 03:10:24 +00:00
jruoho f08e16091d Note that rest of the functions come from C99. 2010-05-03 05:35:58 +00:00
joerg 79b996cbc6 Don't mix opening and closing macros of different types. 2010-04-29 08:35:03 +00:00
drochner d4def06880 -build ldexp/frexp/modf locally again rather than relying on libc
reaching over, to get things into a sane state,
-do the usual namespace protection game with scalbn(f) because it
 is used internally
(more symbol renamings are necessary)

The weak_alias change for mc68881 is untested.
2010-04-23 19:17:07 +00:00
joerg ffec7f50c0 Fix escape sequences 2010-04-05 21:33:25 +00:00
mrg d5a3d97bc4 build s_frexp.c, s_ldexp.c and s_modf.c here for new platforms, since they
don't exist as compat functions in libc.

current list of new platforms: powerpc64.

from dennis.c.ferguson@gmail.com in PR#43042.  idea to not put compat
functions into new platforms from drochner@netbsd.
2010-03-29 06:59:42 +00:00
snj d4a6f9b098 These functions are going to first appear in 5.1, not 6.0. 2010-03-08 02:35:50 +00:00
snj b513aa9a56 Fix broken RCSID. 2010-03-08 01:05:20 +00:00
drochner b1a1fc216d fix return values for atan2(+-0,+-0) in the POSIX case 2010-01-27 20:23:53 +00:00
drochner f12889bbfb fix return value in case of NaN input
(the code also shortcuts the +-inf case, but this was OK before -- it
only avoids an extra check of the mantissa)
2010-01-27 14:07:41 +00:00
drochner e712404ece let the previous fix apply to acos rather than atan2,
and get rid of #ifdef vax
2010-01-20 16:49:42 +00:00
tnozaki 1166d8dc53 PR/42630 asin(2.0) and acos(2.0) doesn't return NaN.
reported by NARUSE, Yui -san, Thanks!
2010-01-20 16:31:35 +00:00
christos de3b931d80 merge conflicting error sections. 2010-01-12 15:51:01 +00:00
christos a61eab08ce remove weak reference for now. 2010-01-11 23:38:24 +00:00
christos 5f7c431ef4 Add exp2 and exp2m 2010-01-11 16:28:39 +00:00
phx 7377320537 Jump through the PLT in PIC mode to fix the DT_TEXTREL warning on creating
the shared object.
2010-01-06 14:10:57 +00:00
is c4a186ea1c Move to two-clause license. 2009-11-09 15:35:27 +00:00
joerg d3ac1c4282 Disable the use of mandoc for now until support for conditional
expression exists.
2009-10-23 23:42:52 +00:00
wiz 00f6672d21 Mention NetBSD in HISTORY as well. 2009-10-04 22:11:22 +00:00
christos 26573d8819 add f{min,max,dim}{,l,f} from FreeBSD 2009-10-04 22:04:30 +00:00
drochner aa89e1b426 As noticed by Stathis Kamperis, the original implementation does not
always return the correct principal value (with real>=0).
(eg cacosh(ccos(1.0I)) was -1)
Replace by a more ground-up one which should do better.
2009-08-03 19:41:32 +00:00
lukem d66cb3da2c fix -Wsign-compare issue (on macppc) 2009-02-16 01:19:34 +00:00
lukem 2e51a772b3 fix -Wsign-compare issue 2009-01-19 05:58:27 +00:00
he fddc3457b2 Change the use of formally undocumented features, which have now been
made to fail.  Specifically, change
.ifdef(SYMBOL) -> .ifdef SYMBOL or .if defined(SYMBOL),
and corresponding for .ifndef.

Also correct one error in lib/libm/Makefile (.ifdef (${MKCOMPLEX} != "no")?!?).
2009-01-18 20:42:11 +00:00
christos 93d0aacf67 Fix a little lint. 2008-09-28 18:54:55 +00:00
gmcgarry 3c9a95916d Wrap compiler-specific flags with HAVE_GCC and HAVE_PCC as necessary. Add a few flags for PCC. 2008-08-29 00:02:21 +00:00
gmcgarry 396359b261 Check MKCOMPLEX variable to build complex support into libm. 2008-07-12 12:23:13 +00:00
drochner 39ba286079 as in exp(), treat +/-Inf and NaN arguments specially, should fix
eg expf(-Inf) which was Nan previously
(We could avoid touching the i387 on amd64 in these cases, but we'd
need to bypass the ABI abstraction macros, so leave it the old way
for now.)
2008-06-24 17:27:56 +00:00
drochner bc43bac5ca -fix an obvious mistake in fpcw check
-replace ARG_DOUBLE_ONE_HALF by _MSW/_LSW because this reflects the
 intention and also matches the terms used in C code,
 also make the code where the fpcw overwrites the argument a bit
 self-documenting
 (this abstraction sucks because it forces to write inefficient code)
2008-06-23 10:24:13 +00:00
christos 1d1021c331 add macros for the upper half of the double arguments. 2008-06-23 00:14:46 +00:00
christos 8a9e7b0124 Share the amd64 and i386 exp versions. Fixes a problem with exp(-Inf) != 0. 2008-06-23 00:12:04 +00:00
ad 6e5329fd40 Use a dummy assembly file so we won't try produce lint stuff. 2008-06-06 13:35:06 +00:00
ad 61464a76be Forgot to add this yesterday. 2008-06-04 14:59:39 +00:00
ad 1b74c9b77c - Fold libm387 into libm.
- Leave libm387 as an empty shell.
2008-06-03 18:47:28 +00:00
christos aee69d536e fix bugs that piss off lint. 2008-05-01 15:33:15 +00:00
martin 11a6dbe728 Convert TNF licenses to new 2 clause variant 2008-04-30 13:10:46 +00:00
uwe 138486a3df According to C99:
6.11.5  Storage-class specifiers

       [#1] The placement of a storage-class specifier  other  than
       at   the  beginning  of  the  declaration  specifiers  in  a
       declaration is an obsolescent feature.

and gcc -Wextra warns about this, so s/const static/static const/
2008-04-29 15:10:02 +00:00
martin ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
christos e1bf490a86 pass a little lint. 2008-04-26 23:49:50 +00:00
christos 6e8524778b Remove 3 functions that exist in libc. This does not break binary compatibility
since we always link with libc.
2008-04-26 19:49:38 +00:00
christos f5e7bbccfe Put back USE_SHLIBDIR and remove the confusing lint comment that made me
comment it out in the first place.
2008-04-26 19:19:06 +00:00
christos 98e7e8e9f7 avoid shadow variables, and enable lint. 2008-04-25 22:21:53 +00:00
mhitch f8f1643217 Fix weak alias. 2008-03-20 18:49:39 +00:00
mhitch 83e4fa69d9 Add wrappers for missing coshf(), expf(), logf(), sinhf(), atan2f(), and
hypotf() functions for vax.  Play the namespace and weak alias game for
functions used internally by the complex functions.  Should fix the vax
build of libm.
2008-03-20 16:41:26 +00:00
drochner 33e5dbb818 fix so that it doesn't interact strangely with ARCH_SRCS definitions
in the base Makefile, makes the lib built correctly again for eg amd64
(seen by wiz)
2008-03-08 14:21:41 +00:00
drochner c7a43da627 Add manpages for the complex math functions, originally from SUSv3,
roff source from the Linux documentation project.
Modifications before import:
-added NetBSD RCS ID
-removed Linux PROLOG and declarations with "long double"
-ran the "deshallify" script as required by The Open Group
Split out complex related things into an own Makefile fragment.
Thanks to hubertf for directions.
2008-02-20 09:55:37 +00:00
mrg ecc90aa046 make all sun2 use -O0 and move most of the hacks out into just 3 files. 2008-02-09 02:37:21 +00:00
mrg e6f4791d95 make sun2 build again with liberal use of -O0. 2008-02-05 02:41:15 +00:00
drochner a82b6826f5 replace the last cast through void* by the SET_FLOAT_WORD macro, inspired
by a similar change in FreeBSD
2007-08-21 20:12:27 +00:00
drochner 58960d86a5 Adopt an (older) fix from FreeBSD: using ceil() on values in (0,0.5]
leads to loss of precision, leading to rounding into the wrong direction
for the case 0.5-epsilon. use floor() instead.
This also fixes a wrong sign of zero returned with non-default rounding
directions.
2007-08-21 20:10:27 +00:00
drochner 9d8b5fa74e Add C99 complex support, for double and float.
Most complex function implementations are from the "c9x-complex" library,
originating from the "cephes" math library, see
http://www.netlib.org/cephes/, from Stephen L. Moshier, incorporated and
redistributed with the NetBSD license by permission of the author.

Error behaviour and other boundary conditions (branch cuts)
need to be looked at.

For namespace sanity, I've done the rename/weak alias procedure to
most of the exported functions which are also used internally.
Didn't do so for sin/cos(f) yet because assembler implementations use
them directly, and renaming functions shared between the main libm
and the machine specific "overlay" might raise binary compatibility
issues.
2007-08-20 16:01:28 +00:00
drochner b36bcf93ef make the hypot/atan2 functions weak aliases, because they are used
internally by the historical cabs(), and the future c99 cabs/carg
2007-08-10 21:20:35 +00:00
matt ec31ca5aa4 Mark some internal libm symbols as hidden 2007-04-19 00:37:20 +00:00
matt ae3ada32fe Make the internal __libm_dsqrt_r6 have a fake entry mask of 0 to make
ld.elf_so.
2007-04-18 04:46:13 +00:00
drochner 7fc72a801d remove references to old cabs() 2007-02-26 12:10:56 +00:00
drochner 7161d089aa -get cabs() and cabsf() out of public view - these are historical and
conflict with C99 functions which are builtins in newer gcc
 (actually, the old cabs() is ABI compatible with the new _complex one
  on i386, but this is purely accidental)
 remove public prototypes and manpages, move the code into a compat
 subdirectory as libc does so that binary compatibility is kept
-add a manpage for the isgreater() etc macros, borrowed from FreeBSD
2007-02-22 22:08:17 +00:00
hubertf 55ac93d329 Remove more duplicate #includes, and a few spurious whitespaces at EOL
From Slava Semushin <slava.semushin@gmail.com>
2007-01-17 23:24:22 +00:00
wiz 4b19648772 s/greatful/grateful/, from Zafer. 2006-11-24 21:15:54 +00:00
drochner d81b3ce220 make an intermediate float variable "volatile" on i386 to work around a gcc
optimization problem: subsequent add/subs were done inside FPU registers,
with "double" precision, without rounding to "float" in between
2006-08-01 20:14:35 +00:00
matt d882b4c815 Rather than cast everything around (which upsets gcc4), use a union instead. 2006-07-08 00:28:21 +00:00