📄 math.tex
字号:
@node Math@chapter Mathematical Functions (@file{math.h})This chapter groups a wide variety of mathematical functions. Thecorresponding definitions and declarations are in @file{math.h}. Two definitions from @file{math.h} are of particular interest. @enumerate@itemThe representation of infinity as a @code{double} is defined as@code{HUGE_VAL}; this number is returned on overflow by many functions.@itemThe structure @code{exception} is used when you write customized errorhandlers for the mathematical functions. You can customize errorhandling 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 stubsSince the error handling code calls @code{fputs}, the mathematicalsubroutines require stubs or minimal implementations for the same listof 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 supportsubroutines.Alternative declarations of the mathematical functions, which exploitspecific machine capabilities to operate faster---but generally haveless error checking and may reflect additional limitations on somemachines---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 libraryThere are four different versions of the math library routines: IEEE,POSIX, X/Open, or SVID. The version may be selected at runtime bysetting the global variable @code{_LIB_VERSION}, defined in@file{math.h}. It may be set to one of the following constants definedin @file{math.h}: @code{_IEEE_}, @code{_POSIX_}, @code{_XOPEN_}, or@code{_SVID_}. The @code{_LIB_VERSION} variable is not specific to anythread, 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 warningmessages 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} iscalled, 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 standarderror output:@examplelog: DOMAIN error@end exampleThe 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -