summaryrefslogtreecommitdiff
path: root/newlib/libm/mathfp/mathfp.tex
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libm/mathfp/mathfp.tex')
-rw-r--r--newlib/libm/mathfp/mathfp.tex199
1 files changed, 199 insertions, 0 deletions
diff --git a/newlib/libm/mathfp/mathfp.tex b/newlib/libm/mathfp/mathfp.tex
new file mode 100644
index 00000000000..e7f897a9771
--- /dev/null
+++ b/newlib/libm/mathfp/mathfp.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 mathfp/sacos.def
+
+@page
+@include mathfp/eacosh.def
+
+@page
+@include mathfp/sasine.def
+
+@page
+@include mathfp/sasinh.def
+
+@page
+@include mathfp/satan.def
+
+@page
+@include mathfp/satan2.def
+
+@page
+@include mathfp/eatanh.def
+
+@page
+@include mathfp/wjn.def
+
+@page
+@include mathfp/scosh.def
+
+@page
+@include mathfp/serf.def
+
+@page
+@include mathfp/sexp.def
+
+@page
+@include mathfp/sfabs.def
+
+@page
+@include mathfp/sfloor.def
+
+@page
+@include mathfp/sfmod.def
+
+@page
+@include mathfp/sfrexp.def
+
+@page
+@include mathfp/erlgamma.def
+
+@page
+@include mathfp/ehypot.def
+
+@page
+@include mathfp/sisnan.def
+
+@page
+@include mathfp/sldexp.def
+
+@page
+@include mathfp/slogarithm.def
+
+@page
+@include mathfp/slog10.def
+
+@page
+@include mathfp/spow.def
+
+@page
+@include mathfp/eremainder.def
+
+@page
+@include mathfp/ssqrt.def
+
+@page
+@include mathfp/ssine.def
+
+@page
+@include mathfp/ssineh.def
+
+@page
+@include mathfp/stan.def
+
+@page
+@include mathfp/stanh.def