aboutsummaryrefslogtreecommitdiff
path: root/manual/arith.texi
diff options
context:
space:
mode:
Diffstat (limited to 'manual/arith.texi')
-rw-r--r--manual/arith.texi166
1 files changed, 166 insertions, 0 deletions
diff --git a/manual/arith.texi b/manual/arith.texi
index 3f78c11d1e..b95946a034 100644
--- a/manual/arith.texi
+++ b/manual/arith.texi
@@ -152,7 +152,11 @@ not have to worry about the type of their argument.
@comment math.h
@comment BSD
@deftypefun int isinf (double @var{x})
+@comment math.h
+@comment BSD
@deftypefunx int isinff (float @var{x})
+@comment math.h
+@comment BSD
@deftypefunx int isinfl (long double @var{x})
This function returns @code{-1} if @var{x} represents negative infinity,
@code{1} if @var{x} represents positive infinity, and @code{0} otherwise.
@@ -161,7 +165,11 @@ This function returns @code{-1} if @var{x} represents negative infinity,
@comment math.h
@comment BSD
@deftypefun int isnan (double @var{x})
+@comment math.h
+@comment BSD
@deftypefunx int isnanf (float @var{x})
+@comment math.h
+@comment BSD
@deftypefunx int isnanl (long double @var{x})
This function returns a nonzero value if @var{x} is a ``not a number''
value, and zero otherwise.
@@ -179,7 +187,11 @@ function for some reason, you can write
@comment math.h
@comment BSD
@deftypefun int finite (double @var{x})
+@comment math.h
+@comment BSD
@deftypefunx int finitef (float @var{x})
+@comment math.h
+@comment BSD
@deftypefunx int finitel (long double @var{x})
This function returns a nonzero value if @var{x} is finite or a ``not a
number'' value, and zero otherwise.
@@ -566,7 +578,11 @@ to test for overflow on both old and new hardware.
@comment math.h
@comment ISO
@deftypevr Macro double HUGE_VAL
+@comment math.h
+@comment ISO
@deftypevrx Macro float HUGE_VALF
+@comment math.h
+@comment ISO
@deftypevrx Macro {long double} HUGE_VALL
An expression representing a particular very large number. On machines
that use @w{IEEE 754} floating point format, @code{HUGE_VAL} is infinity.
@@ -816,7 +832,11 @@ Prototypes for @code{abs}, @code{labs} and @code{llabs} are in @file{stdlib.h};
@comment stdlib.h
@comment ISO
@deftypefun int abs (int @var{number})
+@comment stdlib.h
+@comment ISO
@deftypefunx {long int} labs (long int @var{number})
+@comment stdlib.h
+@comment ISO
@deftypefunx {long long int} llabs (long long int @var{number})
These functions return the absolute value of @var{number}.
@@ -830,7 +850,11 @@ cannot be represented; thus, @w{@code{abs (INT_MIN)}} is not defined.
@comment math.h
@comment ISO
@deftypefun double fabs (double @var{number})
+@comment math.h
+@comment ISO
@deftypefunx float fabsf (float @var{number})
+@comment math.h
+@comment ISO
@deftypefunx {long double} fabsl (long double @var{number})
This function returns the absolute value of the floating-point number
@var{number}.
@@ -839,7 +863,11 @@ This function returns the absolute value of the floating-point number
@comment complex.h
@comment ISO
@deftypefun double cabs (complex double @var{z})
+@comment complex.h
+@comment ISO
@deftypefunx float cabsf (complex float @var{z})
+@comment complex.h
+@comment ISO
@deftypefunx {long double} cabsl (complex long double @var{z})
These functions return the absolute value of the complex number @var{z}
(@pxref{Complex Numbers}). The absolute value of a complex number is:
@@ -872,7 +900,11 @@ All these functions are declared in @file{math.h}.
@comment math.h
@comment ISO
@deftypefun double frexp (double @var{value}, int *@var{exponent})
+@comment math.h
+@comment ISO
@deftypefunx float frexpf (float @var{value}, int *@var{exponent})
+@comment math.h
+@comment ISO
@deftypefunx {long double} frexpl (long double @var{value}, int *@var{exponent})
These functions are used to split the number @var{value}
into a normalized fraction and an exponent.
@@ -893,7 +925,11 @@ zero is stored in @code{*@var{exponent}}.
@comment math.h
@comment ISO
@deftypefun double ldexp (double @var{value}, int @var{exponent})
+@comment math.h
+@comment ISO
@deftypefunx float ldexpf (float @var{value}, int @var{exponent})
+@comment math.h
+@comment ISO
@deftypefunx {long double} ldexpl (long double @var{value}, int @var{exponent})
These functions return the result of multiplying the floating-point
number @var{value} by 2 raised to the power @var{exponent}. (It can
@@ -909,7 +945,11 @@ equivalent to those of @code{ldexp} and @code{frexp}.
@comment math.h
@comment BSD
@deftypefun double logb (double @var{x})
+@comment math.h
+@comment BSD
@deftypefunx float logbf (float @var{x})
+@comment math.h
+@comment BSD
@deftypefunx {long double} logbl (long double @var{x})
These functions return the integer part of the base-2 logarithm of
@var{x}, an integer value represented in type @code{double}. This is
@@ -931,7 +971,11 @@ the value that @code{frexp} would store into @code{*@var{exponent}}.
@comment math.h
@comment BSD
@deftypefun double scalb (double @var{value}, int @var{exponent})
+@comment math.h
+@comment BSD
@deftypefunx float scalbf (float @var{value}, int @var{exponent})
+@comment math.h
+@comment BSD
@deftypefunx {long double} scalbl (long double @var{value}, int @var{exponent})
The @code{scalb} function is the BSD name for @code{ldexp}.
@end deftypefun
@@ -939,7 +983,11 @@ The @code{scalb} function is the BSD name for @code{ldexp}.
@comment math.h
@comment BSD
@deftypefun {long long int} scalbn (double @var{x}, int n)
+@comment math.h
+@comment BSD
@deftypefunx {long long int} scalbnf (float @var{x}, int n)
+@comment math.h
+@comment BSD
@deftypefunx {long long int} scalbnl (long double @var{x}, int n)
@code{scalbn} is identical to @code{scalb}, except that the exponent
@var{n} is an @code{int} instead of a floating-point number.
@@ -948,7 +996,11 @@ The @code{scalb} function is the BSD name for @code{ldexp}.
@comment math.h
@comment BSD
@deftypefun {long long int} scalbln (double @var{x}, long int n)
+@comment math.h
+@comment BSD
@deftypefunx {long long int} scalblnf (float @var{x}, long int n)
+@comment math.h
+@comment BSD
@deftypefunx {long long int} scalblnl (long double @var{x}, long int n)
@code{scalbln} is identical to @code{scalb}, except that the exponent
@var{n} is a @code{long int} instead of a floating-point number.
@@ -957,7 +1009,11 @@ The @code{scalb} function is the BSD name for @code{ldexp}.
@comment math.h
@comment BSD
@deftypefun {long long int} significand (double @var{x})
+@comment math.h
+@comment BSD
@deftypefunx {long long int} significandf (float @var{x})
+@comment math.h
+@comment BSD
@deftypefunx {long long int} significandl (long double @var{x})
@code{significand} returns the mantissa of @var{x} scaled to the range
@math{[1, 2)}.
@@ -987,7 +1043,11 @@ result as a @code{double} instead to get around this problem.
@comment math.h
@comment ISO
@deftypefun double ceil (double @var{x})
+@comment math.h
+@comment ISO
@deftypefunx float ceilf (float @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long double} ceill (long double @var{x})
These functions round @var{x} upwards to the nearest integer,
returning that value as a @code{double}. Thus, @code{ceil (1.5)}
@@ -997,7 +1057,11 @@ is @code{2.0}.
@comment math.h
@comment ISO
@deftypefun double floor (double @var{x})
+@comment math.h
+@comment ISO
@deftypefunx float floorf (float @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long double} floorl (long double @var{x})
These functions round @var{x} downwards to the nearest
integer, returning that value as a @code{double}. Thus, @code{floor
@@ -1007,7 +1071,11 @@ integer, returning that value as a @code{double}. Thus, @code{floor
@comment math.h
@comment ISO
@deftypefun double trunc (double @var{x})
+@comment math.h
+@comment ISO
@deftypefunx float truncf (float @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long double} truncl (long double @var{x})
@code{trunc} is another name for @code{floor}
@end deftypefun
@@ -1015,7 +1083,11 @@ integer, returning that value as a @code{double}. Thus, @code{floor
@comment math.h
@comment ISO
@deftypefun double rint (double @var{x})
+@comment math.h
+@comment ISO
@deftypefunx float rintf (float @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long double} rintl (long double @var{x})
These functions round @var{x} to an integer value according to the
current rounding mode. @xref{Floating Point Parameters}, for
@@ -1031,7 +1103,11 @@ inexact exception.
@comment math.h
@comment ISO
@deftypefun double nearbyint (double @var{x})
+@comment math.h
+@comment ISO
@deftypefunx float nearbyintf (float @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long double} nearbyintl (long double @var{x})
These functions return the same value as the @code{rint} functions, but
do not raise the inexact exception if @var{x} is not an integer.
@@ -1040,7 +1116,11 @@ do not raise the inexact exception if @var{x} is not an integer.
@comment math.h
@comment ISO
@deftypefun double round (double @var{x})
+@comment math.h
+@comment ISO
@deftypefunx float roundf (float @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long double} roundl (long double @var{x})
These functions are similar to @code{rint}, but they round halfway
cases away from zero instead of to the nearest even integer.
@@ -1049,7 +1129,11 @@ cases away from zero instead of to the nearest even integer.
@comment math.h
@comment ISO
@deftypefun {long int} lrint (double @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long int} lrintf (float @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long int} lrintl (long double @var{x})
These functions are just like @code{rint}, but they return a
@code{long int} instead of a floating-point number.
@@ -1058,7 +1142,11 @@ These functions are just like @code{rint}, but they return a
@comment math.h
@comment ISO
@deftypefun {long long int} llrint (double @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long long int} llrintf (float @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long long int} llrintl (long double @var{x})
These functions are just like @code{rint}, but they return a
@code{long long int} instead of a floating-point number.
@@ -1067,7 +1155,11 @@ These functions are just like @code{rint}, but they return a
@comment math.h
@comment ISO
@deftypefun {long int} lround (double @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long int} lroundf (float @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long int} lroundl (long double @var{x})
These functions are just like @code{round}, but they return a
@code{long int} instead of a floating-point number.
@@ -1076,7 +1168,11 @@ These functions are just like @code{round}, but they return a
@comment math.h
@comment ISO
@deftypefun {long long int} llround (double @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long long int} llroundf (float @var{x})
+@comment math.h
+@comment ISO
@deftypefunx {long long int} llroundl (long double @var{x})
These functions are just like @code{round}, but they return a
@code{long long int} instead of a floating-point number.
@@ -1086,7 +1182,11 @@ These functions are just like @code{round}, but they return a
@comment math.h
@comment ISO
@deftypefun double modf (double @var{value}, double *@var{integer-part})
+@comment math.h
+@comment ISO
@deftypefunx float modff (float @var{value}, float *@var{integer-part})
+@comment math.h
+@comment ISO
@deftypefunx {long double} modfl (long double @var{value}, long double *@var{integer-part})
These functions break the argument @var{value} into an integer part and a
fractional part (between @code{-1} and @code{1}, exclusive). Their sum
@@ -1108,7 +1208,11 @@ suits your problem.
@comment math.h
@comment ISO
@deftypefun double fmod (double @var{numerator}, double @var{denominator})
+@comment math.h
+@comment ISO
@deftypefunx float fmodf (float @var{numerator}, float @var{denominator})
+@comment math.h
+@comment ISO
@deftypefunx {long double} fmodl (long double @var{numerator}, long double @var{denominator})
These functions compute the remainder from the division of
@var{numerator} by @var{denominator}. Specifically, the return value is
@@ -1126,7 +1230,11 @@ If @var{denominator} is zero, @code{fmod} signals a domain error.
@comment math.h
@comment BSD
@deftypefun double drem (double @var{numerator}, double @var{denominator})
+@comment math.h
+@comment BSD
@deftypefunx float dremf (float @var{numerator}, float @var{denominator})
+@comment math.h
+@comment BSD
@deftypefunx {long double} dreml (long double @var{numerator}, long double @var{denominator})
These functions are like @code{fmod} except that they rounds the
internal quotient @var{n} to the nearest integer instead of towards zero
@@ -1145,7 +1253,11 @@ If @var{denominator} is zero, @code{drem} signals a domain error.
@comment math.h
@comment BSD
@deftypefun double remainder (double @var{numerator}, double @var{denominator})
+@comment math.h
+@comment BSD
@deftypefunx float remainderf (float @var{numerator}, float @var{denominator})
+@comment math.h
+@comment BSD
@deftypefunx {long double} remainderl (long double @var{numerator}, long double @var{denominator})
This function is another name for @code{drem}.
@end deftypefun
@@ -1162,7 +1274,11 @@ bits.
@comment math.h
@comment ISO
@deftypefun double copysign (double @var{x}, double @var{y})
+@comment math.h
+@comment ISO
@deftypefunx float copysignf (float @var{x}, float @var{y})
+@comment math.h
+@comment ISO
@deftypefunx {long double} copysignl (long double @var{x}, long double @var{y})
These functions return @var{x} but with the sign of @var{y}. They work
even if @var{x} or @var{y} are NaN or zero. Both of these can carry a
@@ -1191,7 +1307,11 @@ false, but @code{signbit (-0.0)} will return a nonzero value.
@comment math.h
@comment ISO
@deftypefun double nextafter (double @var{x}, double @var{y})
+@comment math.h
+@comment ISO
@deftypefunx float nextafterf (float @var{x}, float @var{y})
+@comment math.h
+@comment ISO
@deftypefunx {long double} nextafterl (long double @var{x}, long double @var{y})
The @code{nextafter} function returns the next representable neighbor of
@var{x} in the direction towards @var{y}. The size of the step between
@@ -1210,7 +1330,11 @@ recommended functions in @w{IEEE 754}/@w{IEEE 854}).
@comment math.h
@comment ISO
@deftypefun {long long int} nextafterx (double @var{x}, long double @var{y})
+@comment math.h
+@comment ISO
@deftypefunx {long long int} nextafterxf (float @var{x}, long double @var{y})
+@comment math.h
+@comment ISO
@deftypefunx {long long int} nextafterxl (long double @var{x}, long double @var{y})
These functions are identical to the corresponding versions of
@code{nextafter} except that their second argument is a @code{long
@@ -1221,7 +1345,11 @@ double}.
@comment math.h
@comment ISO
@deftypefun double nan (const char *@var{tagp})
+@comment math.h
+@comment ISO
@deftypefunx float nanf (const char *@var{tagp})
+@comment math.h
+@comment ISO
@deftypefunx {long double} nanl (const char *@var{tagp})
The @code{nan} function returns a representation of NaN, provided that
NaN is supported by the target platform.
@@ -1328,7 +1456,11 @@ perform these operations faster than the equivalent C code.
@comment math.h
@comment ISO
@deftypefun double fmin (double @var{x}, double @var{y})
+@comment math.h
+@comment ISO
@deftypefunx float fminf (float @var{x}, float @var{y})
+@comment math.h
+@comment ISO
@deftypefunx {long double} fminl (long double @var{x}, long double @var{y})
The @code{fmin} function returns the lesser of the two values @var{x}
and @var{y}. It is similar to the expression
@@ -1344,7 +1476,11 @@ are NaN, NaN is returned.
@comment math.h
@comment ISO
@deftypefun double fmax (double @var{x}, double @var{y})
+@comment math.h
+@comment ISO
@deftypefunx float fmaxf (float @var{x}, float @var{y})
+@comment math.h
+@comment ISO
@deftypefunx {long double} fmaxl (long double @var{x}, long double @var{y})
The @code{fmax} function returns the greater of the two values @var{x}
and @var{y}.
@@ -1356,7 +1492,11 @@ are NaN, NaN is returned.
@comment math.h
@comment ISO
@deftypefun double fdim (double @var{x}, double @var{y})
+@comment math.h
+@comment ISO
@deftypefunx float fdimf (float @var{x}, float @var{y})
+@comment math.h
+@comment ISO
@deftypefunx {long double} fdiml (long double @var{x}, long double @var{y})
The @code{fdim} function returns the positive difference between
@var{x} and @var{y}. The positive difference is @math{@var{x} -
@@ -1368,7 +1508,11 @@ If @var{x}, @var{y}, or both are NaN, NaN is returned.
@comment math.h
@comment ISO
@deftypefun double fma (double @var{x}, double @var{y}, double @var{z})
+@comment math.h
+@comment ISO
@deftypefunx float fmaf (float @var{x}, float @var{y}, float @var{z})
+@comment math.h
+@comment ISO
@deftypefunx {long double} fmal (long double @var{x}, long double @var{y}, long double @var{z})
@cindex butterfly
The @code{fma} function performs floating-point multiply-add. This is
@@ -1494,7 +1638,11 @@ available in three variants, one for each of the three complex types.
@comment complex.h
@comment ISO
@deftypefun double creal (complex double @var{z})
+@comment complex.h
+@comment ISO
@deftypefunx float crealf (complex float @var{z})
+@comment complex.h
+@comment ISO
@deftypefunx {long double} creall (complex long double @var{z})
These functions return the real part of the complex number @var{z}.
@end deftypefun
@@ -1502,7 +1650,11 @@ These functions return the real part of the complex number @var{z}.
@comment complex.h
@comment ISO
@deftypefun double cimag (complex double @var{z})
+@comment complex.h
+@comment ISO
@deftypefunx float cimagf (complex float @var{z})
+@comment complex.h
+@comment ISO
@deftypefunx {long double} cimagl (complex long double @var{z})
These functions return the imaginary part of the complex number @var{z}.
@end deftypefun
@@ -1510,7 +1662,11 @@ These functions return the imaginary part of the complex number @var{z}.
@comment complex.h
@comment ISO
@deftypefun {complex double} conj (complex double @var{z})
+@comment complex.h
+@comment ISO
@deftypefunx {complex float} conjf (complex float @var{z})
+@comment complex.h
+@comment ISO
@deftypefunx {complex long double} conjl (complex long double @var{z})
These functions return the conjugate value of the complex number
@var{z}. The conjugate of a complex number has the same real part and a
@@ -1520,7 +1676,11 @@ negated imaginary part. In other words, @samp{conj(a + bi) = a + -bi}.
@comment complex.h
@comment ISO
@deftypefun double carg (complex double @var{z})
+@comment complex.h
+@comment ISO
@deftypefunx float cargf (complex float @var{z})
+@comment complex.h
+@comment ISO
@deftypefunx {long double} cargl (complex long double @var{z})
These functions return the argument of the complex number @var{z}.
The argument of a complex number is the angle in the complex plane
@@ -1534,7 +1694,11 @@ to @math{2@pi{}}.
@comment complex.h
@comment ISO
@deftypefun {complex double} cproj (complex double @var{z})
+@comment complex.h
+@comment ISO
@deftypefunx {complex float} cprojf (complex float @var{z})
+@comment complex.h
+@comment ISO
@deftypefunx {complex long double} cprojl (complex long double @var{z})
These functions return the projection of the complex value @var{z} onto
the Riemann sphere. Values with a infinite imaginary part are projected
@@ -1952,6 +2116,8 @@ examining @var{errno} and @var{tailptr}.
@comment stdlib.h
@comment GNU
@deftypefun float strtof (const char *@var{string}, char **@var{tailptr})
+@comment stdlib.h
+@comment GNU
@deftypefunx {long double} strtold (const char *@var{string}, char **@var{tailptr})
These functions are analogous to @code{strtod}, but return @code{float}
and @code{long double} values respectively. They report errors in the