import newlib-2000-02-17 snapshot
This commit is contained in:
199
newlib/libm/math/math.tex
Normal file
199
newlib/libm/math/math.tex
Normal file
@ -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
|
Reference in New Issue
Block a user