2 @chapter Mathematical Functions (@file
{math.h
})
4 This chapter groups a wide variety of mathematical functions. The
5 corresponding definitions and declarations are in @file
{math.h
}.
6 Two definitions from @file
{math.h
} are of particular interest.
10 The representation of infinity as a @code
{double
} is defined as
11 @code
{HUGE_VAL
}; this number is returned on overflow by many functions.
14 The structure @code
{exception
} is used when you write customized error
15 handlers for the mathematical functions. You can customize error
16 handling for most of these functions by defining your own version of
17 @code
{matherr
}; see the section on @code
{matherr
} for details.
21 @cindex support subroutines
24 Since the error handling code calls @code
{fputs
}, the mathematical
25 subroutines require stubs or minimal implementations for the same list
26 of OS subroutines as @code
{fputs
}: @code
{close
}, @code
{fstat
},
27 @code
{isatty
}, @code
{lseek
}, @code
{read
}, @code
{sbrk
}, @code
{write
}.
28 @xref
{syscalls,,System Calls, libc.info, The Cygnus C Support Library
},
29 for a discussion and for sample minimal implementations of these support
32 Alternative declarations of the mathematical functions, which exploit
33 specific machine capabilities to operate faster---but generally have
34 less error checking and may reflect additional limitations on some
35 machines---are available when you include @file
{fastmath.h
} instead of
39 * version:: Version of library
41 * acosh:: Inverse hyperbolic cosine
43 * asinh:: Inverse hyperbolic sine
45 * atan2:: Arctangent of y/x
46 * atanh:: Inverse hyperbolic tangent
47 * jN:: Bessel functions (jN, yN)
49 * copysign:: Sign of Y, magnitude of X
50 * cosh:: Hyperbolic cosine
51 * erf:: Error function (erf, erfc)
53 * expm1:: Exponential of x, -
1
54 * fabs:: Absolute value (magnitude)
55 * floor:: Floor and ceiling (floor, ceil)
56 * fmod:: Floating-point remainder (modulo)
57 * frexp:: Split floating-point number
58 * gamma:: Logarithmic gamma function
59 * hypot:: Distance from origin
60 * ilogb:: Get exponent
61 * infinity:: Floating infinity
62 * isnan:: Check type of number
63 * ldexp:: Load exponent
64 * log:: Natural logarithms
65 * log10:: Base
10 logarithms
66 * log1p:: Log of
1 + X
67 * matherr:: Modifiable math error handler
68 * modf:: Split fractional and integer parts
69 * nan:: Floating Not a Number
70 * nextafter:: Get next representable number
71 * pow:: X to the power Y
72 * remainder:: remainder of X divided by Y
74 * sin:: Sine or cosine (sin, cos)
75 * sinh:: Hyperbolic sine
76 * sqrt:: Positive square root
78 * tanh:: Hyperbolic tangent
83 @section Version of library
85 There are four different versions of the math library routines: IEEE,
86 POSIX, X/Open, or SVID. The version may be selected at runtime by
87 setting the global variable @code
{_LIB_VERSION
}, defined in
88 @file
{math.h
}. It may be set to one of the following constants defined
89 in @file
{math.h
}: @code
{_IEEE_
}, @code
{_POSIX_
}, @code
{_XOPEN_
}, or
90 @code
{_SVID_
}. The @code
{_LIB_VERSION
} variable is not specific to any
91 thread, and changing it will affect all threads.
93 The versions of the library differ only in how errors are handled.
95 In IEEE mode, the @code
{matherr
} function is never called, no warning
96 messages are printed, and @code
{errno
} is never set.
98 In POSIX mode, @code
{errno
} is set correctly, but the @code
{matherr
}
99 function is never called and no warning messages are printed.
101 In X/Open mode, @code
{errno
} is set correctly, and @code
{matherr
} is
102 called, but warning message are not printed.
104 In SVID mode, functions which overflow return
3.40282346638528860e+38,
105 the maximum single-precision floating-point value, rather than infinity.
106 Also, @code
{errno
} is set correctly, @code
{matherr
} is called, and, if
107 @code
{matherr
} returns
0, warning messages are printed for some errors.
108 For example, by default @samp
{log(-
1.0)
} writes this message on standard
115 The library is set to X/Open mode by default.
118 @include math/wacos.def
121 @include math/wacosh.def
124 @include math/wasin.def
127 @include math/sasinh.def
130 @include math/satan.def
133 @include math/watan2.def
136 @include math/watanh.def
139 @include math/wj0.def
142 @include math/wcosh.def
145 @include math/serf.def
148 @include math/wexp.def
151 @include math/sfabs.def
154 @include math/sfloor.def
157 @include math/wfmod.def
160 @include math/sfrexp.def
163 @include math/wgamma.def
166 @include math/whypot.def
169 @include math/sisnan.def
172 @include math/sldexp.def
175 @include math/wlog.def
178 @include math/wlog10.def
181 @include math/wpow.def
184 @include math/wremainder.def
187 @include math/wsqrt.def
190 @include math/ssin.def
193 @include math/wsinh.def
196 @include math/stan.def
199 @include math/stanh.def