From 8a0efa53e44919bcf5ccb1d3353618a82afdf8bc Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 17 Feb 2000 19:39:52 +0000 Subject: import newlib-2000-02-17 snapshot --- newlib/libm/math/math.tex | 199 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 newlib/libm/math/math.tex (limited to 'newlib/libm/math/math.tex') diff --git a/newlib/libm/math/math.tex b/newlib/libm/math/math.tex new file mode 100644 index 000000000..c6035deae --- /dev/null +++ b/newlib/libm/math/math.tex @@ -0,0 +1,199 @@ +@node Math +@chapter Mathematical Functions (@file{math.h}) + +This chapter groups a wide variety of mathematical functions. The +corresponding definitions and declarations are in @file{math.h}. +Two definitions from @file{math.h} are of particular interest. + +@enumerate +@item +The representation of infinity as a @code{double} is defined as +@code{HUGE_VAL}; this number is returned on overflow by many functions. + +@item +The structure @code{exception} is used when you write customized error +handlers for the mathematical functions. You can customize error +handling for most of these functions by defining your own version of +@code{matherr}; see the section on @code{matherr} for details. +@end enumerate + +@cindex system calls +@cindex support subroutines +@cindex stubs +@cindex OS stubs +Since the error handling code calls @code{fputs}, the mathematical +subroutines require stubs or minimal implementations for the same list +of OS subroutines as @code{fputs}: @code{close}, @code{fstat}, +@code{isatty}, @code{lseek}, @code{read}, @code{sbrk}, @code{write}. +@xref{syscalls,,System Calls, libc.info, The Cygnus C Support Library}, +for a discussion and for sample minimal implementations of these support +subroutines. + +Alternative declarations of the mathematical functions, which exploit +specific machine capabilities to operate faster---but generally have +less error checking and may reflect additional limitations on some +machines---are available when you include @file{fastmath.h} instead of +@file{math.h}. + +@menu +* version:: Version of library +* acos:: Arccosine +* acosh:: Inverse hyperbolic cosine +* asin:: Arcsine +* asinh:: Inverse hyperbolic sine +* atan:: Arctangent +* atan2:: Arctangent of y/x +* atanh:: Inverse hyperbolic tangent +* jN:: Bessel functions (jN, yN) +* cbrt:: Cube root +* copysign:: Sign of Y, magnitude of X +* cosh:: Hyperbolic cosine +* erf:: Error function (erf, erfc) +* exp:: Exponential +* expm1:: Exponential of x, - 1 +* fabs:: Absolute value (magnitude) +* floor:: Floor and ceiling (floor, ceil) +* fmod:: Floating-point remainder (modulo) +* frexp:: Split floating-point number +* gamma:: Logarithmic gamma function +* hypot:: Distance from origin +* ilogb:: Get exponent +* infinity:: Floating infinity +* isnan:: Check type of number +* ldexp:: Load exponent +* log:: Natural logarithms +* log10:: Base 10 logarithms +* log1p:: Log of 1 + X +* matherr:: Modifiable math error handler +* modf:: Split fractional and integer parts +* nan:: Floating Not a Number +* nextafter:: Get next representable number +* pow:: X to the power Y +* remainder:: remainder of X divided by Y +* scalbn:: scalbn +* sin:: Sine or cosine (sin, cos) +* sinh:: Hyperbolic sine +* sqrt:: Positive square root +* tan:: Tangent +* tanh:: Hyperbolic tangent +@end menu + +@page +@node version +@section Version of library + +There are four different versions of the math library routines: IEEE, +POSIX, X/Open, or SVID. The version may be selected at runtime by +setting the global variable @code{_LIB_VERSION}, defined in +@file{math.h}. It may be set to one of the following constants defined +in @file{math.h}: @code{_IEEE_}, @code{_POSIX_}, @code{_XOPEN_}, or +@code{_SVID_}. The @code{_LIB_VERSION} variable is not specific to any +thread, and changing it will affect all threads. + +The versions of the library differ only in how errors are handled. + +In IEEE mode, the @code{matherr} function is never called, no warning +messages are printed, and @code{errno} is never set. + +In POSIX mode, @code{errno} is set correctly, but the @code{matherr} +function is never called and no warning messages are printed. + +In X/Open mode, @code{errno} is set correctly, and @code{matherr} is +called, but warning message are not printed. + +In SVID mode, functions which overflow return 3.40282346638528860e+38, +the maximum single precision floating point value, rather than infinity. +Also, @code{errno} is set correctly, @code{matherr} is called, and, if +@code{matherr} returns 0, warning messages are printed for some errors. +For example, by default @samp{log(-1.0)} writes this message on standard +error output: + +@example +log: DOMAIN error +@end example + +The library is set to X/Open mode by default. + +@page +@include math/wacos.def + +@page +@include math/wacosh.def + +@page +@include math/wasin.def + +@page +@include math/sasinh.def + +@page +@include math/satan.def + +@page +@include math/watan2.def + +@page +@include math/watanh.def + +@page +@include math/wj0.def + +@page +@include math/wcosh.def + +@page +@include math/serf.def + +@page +@include math/wexp.def + +@page +@include math/sfabs.def + +@page +@include math/sfloor.def + +@page +@include math/wfmod.def + +@page +@include math/sfrexp.def + +@page +@include math/wgamma.def + +@page +@include math/whypot.def + +@page +@include math/sisnan.def + +@page +@include math/sldexp.def + +@page +@include math/wlog.def + +@page +@include math/wlog10.def + +@page +@include math/wpow.def + +@page +@include math/wremainder.def + +@page +@include math/wsqrt.def + +@page +@include math/ssin.def + +@page +@include math/wsinh.def + +@page +@include math/stan.def + +@page +@include math/stanh.def -- cgit v1.2.3