From 779ae82ecdf88b7ed7c1f00d3ed3a639671c3c8d Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 30 Apr 1997 15:51:34 +0000 Subject: Update. 1997-04-30 17:35 Ulrich Drepper * math/libm-test.c: Implement test for exceptions. Partly due to Andreas Jaeger. (csin_test): New function. * sysdeps/libm-i387/s_cexp.S: Raise correct exceptions. * sysdeps/libm-i387/s_cexpf.S: Likewise. * sysdeps/libm-i387/s_cexpl.S: Likewise. * sysdeps/libm-ieee754/s_ccos.c: Likewise. * sysdeps/libm-ieee754/s_ccosf.c: Likewise. * sysdeps/libm-ieee754/s_ccosl.c: Likewise. * sysdeps/libm-ieee754/s_ccosh.c: Likewise. * sysdeps/libm-ieee754/s_ccoshf.c: Likewise. * sysdeps/libm-ieee754/s_ccoshl.c: Likewise. * sysdeps/libm-ieee754/s_cexp.c: Likewise. * sysdeps/libm-ieee754/s_cexpf.c: Likewise. * sysdeps/libm-ieee754/s_cexpl.c: Likewise. * sysdeps/libm-ieee754/s_csinh.c: Likewise. * sysdeps/libm-ieee754/s_csinhf.c: Likewise. * sysdeps/libm-ieee754/s_csinhl.c: Likewise. * sysdeps/libm-ieee754/s_ctanh.c: Likewise. * sysdeps/libm-ieee754/s_ctanhf.c: Likewise. * sysdeps/libm-ieee754/s_ctanhl.c: Likewise. * sysdeps/libm-ieee754/s_ccosh.c: Correct computation. * sysdeps/libm-ieee754/s_ccoshf.c: Likewise. * sysdeps/libm-ieee754/s_ccoshl.c: Likewise. * sysdeps/libm-ieee754/s_csinh.c: Likewise. * sysdeps/libm-ieee754/s_csinhf.c: Likewise. * sysdeps/libm-ieee754/s_csinhl.c: Likewise. * sysdeps/libm-ieee754/s_csin.c: Rewrite. * sysdeps/libm-ieee754/s_csinf.c: Likewise. * sysdeps/libm-ieee754/s_csinl.c: Likewise. * stdlib/random_r.c (__srandom_r): Don't use seed 0. Use 1 in this case. * sysdeps/i386/dl-machine.h (elf_machine_load_address): Use notation for local label. * time/strftime.c (add): Respect `0' padding flag. Reported by Richard Stallman . 1997-04-30 15:46 Ulrich Drepper * Makeconfig (start-installed-name): Define here, not in csu/Makefile. Use in +link macro. * csu/Makefile (distribute): Add abi-note.S and abi-tag.h. (start-installed-name): Don't define here. When ELF generate file named by start-installed-name from start.o and abi-note.o. * csu/abi-note.S: New file. * sysdeps/stub/abi-tag.h: New file. * sysdpes/unix/sysv/linux/abi-tag.h: New file. Patches by Roland McGrath . 1997-04-30 01:32 Ulrich Drepper * manual/stdio.texi: Use @vtable where possible. Add TeX version of @multitable since texi2dvi cannot handle them correct in the moment. * po/de.po: Update. 1997-04-29 21:06 Ulrich Drepper * Makeconfig: Don't set cross-compiling based on $(BUILD_CC) != $(CC). * config.make.in: Set cross-compiling from configure result. * configure.in: Emit definition of `cross_compiling'. Patches by Marcus G. Daniels . 1997-04-27 21:50 Philip Blundell * sysdeps/unix/sysv/linux/net/route.h (struct in6_rtmsg): Use correct `int' sizes for struct members. 1997-04-29 19:14 Ulrich Drepper * sysdeps/libm-i387/e_powf.S Generate invalid exception correctly. * sysdeps/libm-i387/e_pow.S: Likewise. * sysdeps/libm-i387/e_powl.S: Likewise. 1997-04-23 10:08 Andreas Jaeger * math/fenv.h: Correct typos. 1997-04-28 10:04 Richard Henderson * sysdeps/unix/sysv/linux/alpha/clone.S: Save the function argument in t0 rather than a4 to avoid it being clobbered. 1997-04-27 23:52 Andreas Schwab * manual/summary.awk: Recognize @defmumblex. * manual/signal.texi (Miscellaneous Signals): Use @deftypevrx for second description header. 1997-04-27 23:29 Andreas Schwab * manual/arith.texi (Floating-Point Classes): Don't indent text, makeinfo doesn't like that. 1997-04-27 20:52 Andreas Schwab * malloc/obstack.h (obstack_specify_allocation_with_arg, obstack_chunkfun, obstack_freefun): Fix casts. 1997-04-27 18:21 Andreas Schwab * manual/xtract-typefun.awk: Allow names with only one character. 1997-04-26 14:16 Ulrich Drepper * sysdeps/unix/sysv/linux/netinet/ip_fw.h: Use not . Reported by Michael Deutschmann . 1997-04-25 12:31 Ulrich Drepper * csu/Makefile ($(objpfx)initfini.s): Add CPPFLAGS, CFLAGS and -g0 to command line of compiler. Patch by Marcus G. Daniels . * sysdeps/generic/sigset.h (__sigandset, __sigorset): Fix typos. Patch by Marcus G. Daniels . * signal/signal.h (_sys_siglist, sys_siglist): Use _NSIG, not NSIG in declaration. Patch by Michael Widenius . * time/strptime.c (strptime_internal): Fix %I format specifier being off by one. Patch by Mark Kettenis . 1997-04-24 12:18 Andreas Schwab * stdlib/lcong48_r.c: Include . * stdlib/seed48_r.c: Likewise. * stdio-common/printf_size.c (printf_size): Correct type of `units' and make robust against future changes. 1997-04-23 18:58 Andreas Schwab * sysdeps/libm-ieee754/s_cproj.c: Use isfinite instead of finite. * sysdeps/libm-ieee754/s_cprojl.c: Likewise. * sysdeps/libm-ieee754/s_cprojf.c: Likewise. 1997-04-23 18:53 Andreas Schwab * manual/arith.texi, manual/math.texi: Use @defmumblex for additional description headers. * manual/xtract-typefun.awk: Recognize them. 1997-04-22 15:58 Andreas Jaeger * stdio-common/printf_size.c (printf_size): Correct size of array units. --- manual/arith.texi | 154 ++++++++-------------- manual/libc.texinfo | 7 +- manual/math.texi | 328 +++++++++++++++++++--------------------------- manual/signal.texi | 3 +- manual/stdio.texi | 46 ++++--- manual/summary.awk | 24 ++++ manual/texinfo.tex | 134 ++++++++++--------- manual/xtract-typefun.awk | 6 +- 8 files changed, 326 insertions(+), 376 deletions(-) (limited to 'manual') diff --git a/manual/arith.texi b/manual/arith.texi index 86fb2667a0..efe0489e40 100644 --- a/manual/arith.texi +++ b/manual/arith.texi @@ -149,10 +149,8 @@ functions, and thus are available if you define @code{_BSD_SOURCE} or @comment math.h @comment BSD @deftypefun int isinf (double @var{x}) -@end deftypefun -@deftypefun int isinff (float @var{x}) -@end deftypefun -@deftypefun int isinfl (long double @var{x}) +@deftypefunx int isinff (float @var{x}) +@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. @end deftypefun @@ -160,10 +158,8 @@ This function returns @code{-1} if @var{x} represents negative infinity, @comment math.h @comment BSD @deftypefun int isnan (double @var{x}) -@end deftypefun -@deftypefun int isnanf (float @var{x}) -@end deftypefun -@deftypefun int isnanl (long double @var{x}) +@deftypefunx int isnanf (float @var{x}) +@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. (You can just as well use @code{@var{x} != @var{x}} to get the same result). @@ -172,10 +168,8 @@ value, and zero otherwise. (You can just as well use @code{@var{x} != @comment math.h @comment BSD @deftypefun int finite (double @var{x}) -@end deftypefun -@deftypefun int finitef (float @var{x}) -@end deftypefun -@deftypefun int finitel (long double @var{x}) +@deftypefunx int finitef (float @var{x}) +@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. @end deftypefun @@ -213,21 +207,21 @@ which returns a value of type @code{int}. The possible values are: @vtable @code @item FP_NAN - The floating-point number @var{x} is ``Not a Number'' (@pxref{Not a Number}) +The floating-point number @var{x} is ``Not a Number'' (@pxref{Not a Number}) @item FP_INFINITE - The value of @var{x} is either plus or minus infinity (@pxref{Infinity}) +The value of @var{x} is either plus or minus infinity (@pxref{Infinity}) @item FP_ZERO - The value of @var{x} is zero. In floating-point formats like @w{IEEE - 754} where the zero value can be signed this value is also returned if - @var{x} is minus zero. +The value of @var{x} is zero. In floating-point formats like @w{IEEE +754} where the zero value can be signed this value is also returned if +@var{x} is minus zero. @item FP_SUBNORMAL - Some floating-point formats (such as @w{IEEE 754}) allow floating-point - numbers to be represented in a denormalized format. This happens if the - absolute value of the number is too small to be represented in the - normal format. @code{FP_SUBNORMAL} is returned for such values of @var{x}. +Some floating-point formats (such as @w{IEEE 754}) allow floating-point +numbers to be represented in a denormalized format. This happens if the +absolute value of the number is too small to be represented in the +normal format. @code{FP_SUBNORMAL} is returned for such values of @var{x}. @item FP_NORMAL - This value is returned for all other cases which means the number is a - plain floating-point number without special meaning. +This value is returned for all other cases which means the number is a +plain floating-point number without special meaning. @end vtable This macro is useful if more than property of a number must be @@ -319,20 +313,16 @@ functions. @comment complex.h @comment ISO @deftypefun double creal (complex double @var{z}) -@end deftypefun -@deftypefun float crealf (complex float @var{z}) -@end deftypefun -@deftypefun {long double} creall (complex long double @var{z}) +@deftypefunx float crealf (complex float @var{z}) +@deftypefunx {long double} creall (complex long double @var{z}) These functions return the real part of the complex number @var{z}. @end deftypefun @comment complex.h @comment ISO @deftypefun double cimag (complex double @var{z}) -@end deftypefun -@deftypefun float cimagf (complex float @var{z}) -@end deftypefun -@deftypefun {long double} cimagl (complex long double @var{z}) +@deftypefunx float cimagf (complex float @var{z}) +@deftypefunx {long double} cimagl (complex long double @var{z}) These functions return the imaginary part of the complex number @var{z}. @end deftypefun @@ -343,10 +333,8 @@ for the real part but the complex part is negated. @comment complex.h @comment ISO @deftypefun {complex double} conj (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} conjf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} conjl (complex long double @var{z}) +@deftypefunx {complex float} conjf (complex float @var{z}) +@deftypefunx {complex long double} conjl (complex long double @var{z}) These functions return the conjugate complex value of the complex number @var{z}. @end deftypefun @@ -354,10 +342,8 @@ These functions return the conjugate complex value of the complex number @comment complex.h @comment ISO @deftypefun double carg (complex double @var{z}) -@end deftypefun -@deftypefun float cargf (complex float @var{z}) -@end deftypefun -@deftypefun {long double} cargl (complex long double @var{z}) +@deftypefunx float cargf (complex float @var{z}) +@deftypefunx {long double} cargl (complex long double @var{z}) These functions return argument of the complex number @var{z}. Mathematically, the argument is the phase angle of @var{z} with a branch @@ -367,10 +353,8 @@ cut along the negative real axis. @comment complex.h @comment ISO @deftypefun {complex double} cproj (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} cprojf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} cprojl (complex long double @var{z}) +@deftypefunx {complex float} cprojf (complex float @var{z}) +@deftypefunx {complex long double} cprojl (complex long double @var{z}) Return the projection of the complex value @var{z} on the Riemann sphere. Values with a infinite complex part (even if the real part is NaN) are projected to positive infinte on the real axis. If the real part is infinite, the result is equivalent to @@ -418,10 +402,8 @@ are of type @code{long int} rather than @code{int}. @comment math.h @comment ISO @deftypefun double fabs (double @var{number}) -@end deftypefun -@deftypefun float fabsf (float @var{number}) -@end deftypefun -@deftypefun {long double} fabsl (long double @var{number}) +@deftypefunx float fabsf (float @var{number}) +@deftypefunx {long double} fabsl (long double @var{number}) This function returns the absolute value of the floating-point number @var{number}. @end deftypefun @@ -429,10 +411,8 @@ This function returns the absolute value of the floating-point number @comment complex.h @comment ISO @deftypefun double cabs (complex double @var{z}) -@end deftypefun -@deftypefun float cabsf (complex float @var{z}) -@end deftypefun -@deftypefun {long double} cabsl (complex long double @var{z}) +@deftypefunx float cabsf (complex float @var{z}) +@deftypefunx {long double} cabsl (complex long double @var{z}) These functions return the absolute value of the complex number @var{z}. The compiler must support complex numbers to use these functions. (See also the function @code{hypot} in @ref{Exponents and Logarithms}.) The @@ -461,10 +441,8 @@ All these functions are declared in @file{math.h}. @comment math.h @comment ISO @deftypefun double frexp (double @var{value}, int *@var{exponent}) -@end deftypefun -@deftypefun float frexpf (float @var{value}, int *@var{exponent}) -@end deftypefun -@deftypefun {long double} frexpl (long double @var{value}, int *@var{exponent}) +@deftypefunx float frexpf (float @var{value}, int *@var{exponent}) +@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. @@ -484,10 +462,8 @@ zero is stored in @code{*@var{exponent}}. @comment math.h @comment ISO @deftypefun double ldexp (double @var{value}, int @var{exponent}) -@end deftypefun -@deftypefun float ldexpf (float @var{value}, int @var{exponent}) -@end deftypefun -@deftypefun {long double} ldexpl (long double @var{value}, int @var{exponent}) +@deftypefunx float ldexpf (float @var{value}, int @var{exponent}) +@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 be used to reassemble floating-point numbers that were taken apart @@ -502,20 +478,16 @@ equivalent to those of @code{ldexp} and @code{frexp}: @comment math.h @comment BSD @deftypefun double scalb (double @var{value}, int @var{exponent}) -@end deftypefun -@deftypefun float scalbf (float @var{value}, int @var{exponent}) -@end deftypefun -@deftypefun {long double} scalbl (long double @var{value}, int @var{exponent}) +@deftypefunx float scalbf (float @var{value}, int @var{exponent}) +@deftypefunx {long double} scalbl (long double @var{value}, int @var{exponent}) The @code{scalb} function is the BSD name for @code{ldexp}. @end deftypefun @comment math.h @comment BSD @deftypefun double logb (double @var{x}) -@end deftypefun -@deftypefun float logbf (float @var{x}) -@end deftypefun -@deftypefun {long double} logbl (long double @var{x}) +@deftypefunx float logbf (float @var{x}) +@deftypefunx {long double} logbl (long double @var{x}) These BSD functions return the integer part of the base-2 logarithm of @var{x}, an integer value represented in type @code{double}. This is the highest integer power of @code{2} contained in @var{x}. The sign of @@ -536,10 +508,8 @@ The value returned by @code{logb} is one less than the value that @comment math.h @comment ISO @deftypefun double copysign (double @var{value}, double @var{sign}) -@end deftypefun -@deftypefun float copysignf (float @var{value}, float @var{sign}) -@end deftypefun -@deftypefun {long double} copysignl (long double @var{value}, long double @var{sign}) +@deftypefunx float copysignf (float @var{value}, float @var{sign}) +@deftypefunx {long double} copysignl (long double @var{value}, long double @var{sign}) These functions return a value whose absolute value is the same as that of @var{value}, and whose sign matches that of @var{sign}. This function appears in BSD and was standardized in @w{ISO C 9X}. @@ -580,10 +550,8 @@ result as a @code{double} instead to get around this problem. @comment math.h @comment ISO @deftypefun double ceil (double @var{x}) -@end deftypefun -@deftypefun float ceilf (float @var{x}) -@end deftypefun -@deftypefun {long double} ceill (long double @var{x}) +@deftypefunx float ceilf (float @var{x}) +@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)} is @code{2.0}. @@ -592,10 +560,8 @@ is @code{2.0}. @comment math.h @comment ISO @deftypefun double floor (double @var{x}) -@end deftypefun -@deftypefun float floorf (float @var{x}) -@end deftypefun -@deftypefun {long double} floorl (long double @var{x}) +@deftypefunx float floorf (float @var{x}) +@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 (1.5)} is @code{1.0} and @code{floor (-1.5)} is @code{-2.0}. @@ -604,10 +570,8 @@ integer, returning that value as a @code{double}. Thus, @code{floor @comment math.h @comment ISO @deftypefun double rint (double @var{x}) -@end deftypefun -@deftypefun float rintf (float @var{x}) -@end deftypefun -@deftypefun {long double} rintl (long double @var{x}) +@deftypefunx float rintf (float @var{x}) +@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 information about the various rounding modes. The default @@ -619,10 +583,8 @@ you explicit select another. @comment math.h @comment ISO @deftypefun double nearbyint (double @var{x}) -@end deftypefun -@deftypefun float nearbyintf (float @var{x}) -@end deftypefun -@deftypefun {long double} nearbyintl (long double @var{x}) +@deftypefunx float nearbyintf (float @var{x}) +@deftypefunx {long double} nearbyintl (long double @var{x}) These functions return the same value as the @code{rint} functions but even some rounding actually takes place @code{nearbyint} does @emph{not} raise the inexact exception. @@ -631,10 +593,8 @@ raise the inexact exception. @comment math.h @comment ISO @deftypefun double modf (double @var{value}, double *@var{integer-part}) -@end deftypefun -@deftypefun float modff (flaot @var{value}, float *@var{integer-part}) -@end deftypefun -@deftypefun {long double} modfl (long double @var{value}, long double *@var{integer-part}) +@deftypefunx float modff (flaot @var{value}, float *@var{integer-part}) +@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 equals @var{value}. Each of the parts has the same sign as @var{value}, @@ -648,10 +608,8 @@ returns @code{0.5} and stores @code{2.0} into @code{intpart}. @comment math.h @comment ISO @deftypefun double fmod (double @var{numerator}, double @var{denominator}) -@end deftypefun -@deftypefun float fmodf (float @var{numerator}, float @var{denominator}) -@end deftypefun -@deftypefun {long double} fmodl (long double @var{numerator}, long double @var{denominator}) +@deftypefunx float fmodf (float @var{numerator}, float @var{denominator}) +@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 @code{@var{numerator} - @w{@var{n} * @var{denominator}}}, where @var{n} @@ -669,10 +627,8 @@ If @var{denominator} is zero, @code{fmod} fails and sets @code{errno} to @comment math.h @comment BSD @deftypefun double drem (double @var{numerator}, double @var{denominator}) -@end deftypefun -@deftypefun float dremf (float @var{numerator}, float @var{denominator}) -@end deftypefun -@deftypefun {long double} dreml (long double @var{numerator}, long double @var{denominator}) +@deftypefunx float dremf (float @var{numerator}, float @var{denominator}) +@deftypefunx {long double} dreml (long double @var{numerator}, long double @var{denominator}) These functions are like @code{fmod} etc except that it rounds the internal quotient @var{n} to the nearest integer instead of towards zero to an integer. For example, @code{drem (6.5, 2.3)} returns @code{-0.4}, diff --git a/manual/libc.texinfo b/manual/libc.texinfo index 50d42b53d6..aa72be16e3 100644 --- a/manual/libc.texinfo +++ b/manual/libc.texinfo @@ -3,12 +3,15 @@ @setfilename libc.info @settitle The GNU C Library @setchapternewpage odd -@comment %**end of header (This is for running Texinfo on a region.) @c This tells texinfo.tex to use the real section titles in xrefs in @c place of the node name, when no section title is explicitly given. @set xref-automatic-section-title -@smallbook +@c @smallbook +@iftex +@afourpaper +@end iftex +@comment %**end of header (This is for running Texinfo on a region.) @c sold 0.06/1.09, print run out 21may96 @set EDITION 0.07 DRAFT diff --git a/manual/math.texi b/manual/math.texi index 78d567b367..e2adccddb3 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -146,10 +146,8 @@ You can also compute the value of pi with the expression @code{acos @comment math.h @comment ISO @deftypefun double sin (double @var{x}) -@end deftypefun -@deftypefun float sinf (float @var{x}) -@end deftypefun -@deftypefun {long double} sinl (long double @var{x}) +@deftypefunx float sinf (float @var{x}) +@deftypefunx {long double} sinl (long double @var{x}) These functions return the sine of @var{x}, where @var{x} is given in radians. The return value is in the range @code{-1} to @code{1}. @end deftypefun @@ -157,10 +155,8 @@ radians. The return value is in the range @code{-1} to @code{1}. @comment math.h @comment ISO @deftypefun double cos (double @var{x}) -@end deftypefun -@deftypefun float cosf (float @var{x}) -@end deftypefun -@deftypefun {long double} cosl (long double @var{x}) +@deftypefunx float cosf (float @var{x}) +@deftypefunx {long double} cosl (long double @var{x}) These functions return the cosine of @var{x}, where @var{x} is given in radians. The return value is in the range @code{-1} to @code{1}. @end deftypefun @@ -168,10 +164,8 @@ radians. The return value is in the range @code{-1} to @code{1}. @comment math.h @comment ISO @deftypefun double tan (double @var{x}) -@end deftypefun -@deftypefun float tanf (float @var{x}) -@end deftypefun -@deftypefun {long double} tanl (long double @var{x}) +@deftypefunx float tanf (float @var{x}) +@deftypefunx {long double} tanl (long double @var{x}) These functions return the tangent of @var{x}, where @var{x} is given in radians. @@ -189,16 +183,14 @@ either positive or negative @code{HUGE_VAL}. In many applications where @code{sin} and @code{cos} are used, the value for the same argument of both of these functions is used at the same time. Since the algorithm to compute these values is very similar for -both functions there is an additional function with computes both values +both functions there is an additional function which computes both values at the same time. @comment math.h @comment GNU @deftypefun void sincos (double @var{x}, double *@var{sinx}, double *@var{cosx}) -@end deftypefun -@deftypefun void sincosf (float @var{x}, float *@var{sinx}, float *@var{cosx}) -@end deftypefun -@deftypefun void sincosl (long double @var{x}, long double *@var{sinx}, long double *@var{cosx}) +@deftypefunx void sincosf (float @var{x}, float *@var{sinx}, float *@var{cosx}) +@deftypefunx void sincosl (long double @var{x}, long double *@var{sinx}, long double *@var{cosx}) These functions return the sine of @var{x} in @code{*@var{sinx}} and the cosine of @var{x} in @code{*@var{cos}}, where @var{x} is given in radians. Both values, @code{*@var{sinx}} and @code{*@var{cosx}}, are in @@ -207,53 +199,62 @@ the range of @code{-1} to @code{1}. @cindex complex trigonometric functions -The trigonometric functions are in mathematics not only on real numbers. -They can be extended to complex numbers and the @w{ISO C 9X} standard -introduces these variants in the standard math library. +The trigonometric functions are in mathematics not only defined on real +numbers. They can be extended to complex numbers and the @w{ISO C 9X} +standard introduces these variants in the standard math library. @comment complex.h @comment ISO @deftypefun {complex double} csin (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} csinf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} csinl (complex long double @var{z}) +@deftypefunx {complex float} csinf (complex float @var{z}) +@deftypefunx {complex long double} csinl (complex long double @var{z}) These functions return the complex sine of the complex value in @var{z}. The mathematical definition of the complex sine is -@smallexample -sin (z) = 1/(2*i) * (exp (z*i) - exp (-z*i)) -@end smallexample +@ifinfo +@math{sin (z) = 1/(2*i) * (exp (z*i) - exp (-z*i))}. +@end ifinfo +@iftex +@tex +$$\sin(z) = {1\over 2i} (e^{zi} - e^{-zi})$$ +@end tex +@end iftex @end deftypefun @comment complex.h @comment ISO @deftypefun {complex double} ccos (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} ccosf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} ccosl (complex long double @var{z}) +@deftypefunx {complex float} ccosf (complex float @var{z}) +@deftypefunx {complex long double} ccosl (complex long double @var{z}) These functions return the complex cosine of the complex value in @var{z}. The mathematical definition of the complex cosine is -@smallexample -cos (z) = 1/2 * (exp (z*i) + exp (-z*i)) -@end smallexample +@ifinfo +@math{cos (z) = 1/2 * (exp (z*i) + exp (-z*i))} +@end ifinfo +@iftex +@tex +$$\cos(z) = {1\over 2} (e^{zi} + e^{-zi})$$ +@end tex +@end iftex @end deftypefun @comment complex.h @comment ISO @deftypefun {complex double} ctan (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} ctanf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} ctanl (complex long double @var{z}) +@deftypefunx {complex float} ctanf (complex float @var{z}) +@deftypefunx {complex long double} ctanl (complex long double @var{z}) These functions return the complex tangent of the complex value in @var{z}. The mathematical definition of the complex tangent is -@smallexample -tan (z) = 1/i * (exp (z*i) - exp (-z*i)) / (exp (z*i) + exp (-z*i)) -@end smallexample +@ifinfo +@math{tan (z) = 1/i * (exp (z*i) - exp (-z*i)) / (exp (z*i) + exp (-z*i))} +@end ifinfo +@iftex +@tex +$$\tan(z) = {1\over i} {e^{zi} - e^{-zi}\over e^{zi} + e^{-zi}}$$ +@end tex +@end iftex @end deftypefun @@ -268,10 +269,8 @@ respectively. @comment math.h @comment ISO @deftypefun double asin (double @var{x}) -@end deftypefun -@deftypefun float asinf (float @var{x}) -@end deftypefun -@deftypefun {long double} asinl (long double @var{x}) +@deftypefunx float asinf (float @var{x}) +@deftypefunx {long double} asinl (long double @var{x}) These functions compute the arc sine of @var{x}---that is, the value whose sine is @var{x}. The value is in units of radians. Mathematically, there are infinitely many such values; the one actually returned is the @@ -285,10 +284,8 @@ over the domain @code{-1} to @code{1}. @comment math.h @comment ISO @deftypefun double acos (double @var{x}) -@end deftypefun -@deftypefun float acosf (float @var{x}) -@end deftypefun -@deftypefun {long double} acosl (long double @var{x}) +@deftypefunx float acosf (float @var{x}) +@deftypefunx {long double} acosl (long double @var{x}) These functions compute the arc cosine of @var{x}---that is, the value whose cosine is @var{x}. The value is in units of radians. Mathematically, there are infinitely many such values; the one actually @@ -303,10 +300,8 @@ over the domain @code{-1} to @code{1}. @comment math.h @comment ISO @deftypefun double atan (double @var{x}) -@end deftypefun -@deftypefun float atanf (float @var{x}) -@end deftypefun -@deftypefun {long double} atanl (long double @var{x}) +@deftypefunx float atanf (float @var{x}) +@deftypefunx {long double} atanl (long double @var{x}) These functions compute the arc tangent of @var{x}---that is, the value whose tangent is @var{x}. The value is in units of radians. Mathematically, there are infinitely many such values; the one actually @@ -317,10 +312,8 @@ returned is the one between @code{-pi/2} and @code{pi/2} @comment math.h @comment ISO @deftypefun double atan2 (double @var{y}, double @var{x}) -@end deftypefun -@deftypefun float atan2f (float @var{y}, float @var{x}) -@end deftypefun -@deftypefun {long double} atan2l (long double @var{y}, long double @var{x}) +@deftypefunx float atan2f (float @var{y}, float @var{x}) +@deftypefunx {long double} atan2l (long double @var{y}, long double @var{x}) This is the two argument arc tangent function. It is similar to computing the arc tangent of @var{y}/@var{x}, except that the signs of both arguments are used to determine the quadrant of the result, and @var{x} is @@ -347,10 +340,8 @@ which are usable with complex numbers. @comment complex.h @comment ISO @deftypefun {complex double} casin (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} casinf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} casinl (complex long double @var{z}) +@deftypefunx {complex float} casinf (complex float @var{z}) +@deftypefunx {complex long double} casinl (complex long double @var{z}) These functions compute the complex arc sine of @var{z}---that is, the value whose sine is @var{z}. The value is in units of radians. @@ -361,10 +352,8 @@ limitation on the argument @var{z}. @comment complex.h @comment ISO @deftypefun {complex double} cacos (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} cacosf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} cacosl (complex long double @var{z}) +@deftypefunx {complex float} cacosf (complex float @var{z}) +@deftypefunx {complex long double} cacosl (complex long double @var{z}) These functions compute the complex arc cosine of @var{z}---that is, the value whose cosine is @var{z}. The value is in units of radians. @@ -376,10 +365,8 @@ limitation on the argument @var{z}. @comment complex.h @comment ISO @deftypefun {complex double} catan (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} catanf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} catanl (complex long double @var{z}) +@deftypefunx {complex float} catanf (complex float @var{z}) +@deftypefunx {complex long double} catanl (complex long double @var{z}) These functions compute the complex arc tangent of @var{z}---that is, the value whose tangent is @var{z}. The value is in units of radians. @end deftypefun @@ -394,10 +381,8 @@ the value whose tangent is @var{z}. The value is in units of radians. @comment math.h @comment ISO @deftypefun double exp (double @var{x}) -@end deftypefun -@deftypefun float expf (float @var{x}) -@end deftypefun -@deftypefun {long double} expl (long double @var{x}) +@deftypefunx float expf (float @var{x}) +@deftypefunx {long double} expl (long double @var{x}) These functions return the value of @code{e} (the base of natural logarithms) raised to power @var{x}. @@ -408,10 +393,8 @@ magnitude of the result is too large to be representable. @comment math.h @comment ISO @deftypefun double exp10 (double @var{x}) -@end deftypefun -@deftypefun float exp10f (float @var{x}) -@end deftypefun -@deftypefun {long double} exp10l (long double @var{x}) +@deftypefunx float exp10f (float @var{x}) +@deftypefunx {long double} exp10l (long double @var{x}) These functions return the value of @code{10} raised to the power @var{x}. Mathematically, @code{exp10 (x)} is the same as @code{exp (x * log (10))}. @@ -422,10 +405,8 @@ magnitude of the result is too large to be representable. @comment math.h @comment ISO @deftypefun double exp2 (double @var{x}) -@end deftypefun -@deftypefun float exp2f (float @var{x}) -@end deftypefun -@deftypefun {long double} exp2l (long double @var{x}) +@deftypefunx float exp2f (float @var{x}) +@deftypefunx {long double} exp2l (long double @var{x}) These functions return the value of @code{2} raised to the power @var{x}. Mathematically, @code{exp2 (x)} is the same as @code{exp (x * log (2))}. @@ -437,10 +418,8 @@ magnitude of the result is too large to be representable. @comment math.h @comment ISO @deftypefun double log (double @var{x}) -@end deftypefun -@deftypefun float logf (floatdouble @var{x}) -@end deftypefun -@deftypefun {long double} logl (long double @var{x}) +@deftypefunx float logf (floatdouble @var{x}) +@deftypefunx {long double} logl (long double @var{x}) These functions return the natural logarithm of @var{x}. @code{exp (log (@var{x}))} equals @var{x}, exactly in mathematics and approximately in C. @@ -460,10 +439,8 @@ The argument is zero. The log of zero is not defined. @comment math.h @comment ISO @deftypefun double log10 (double @var{x}) -@end deftypefun -@deftypefun float log10f (float @var{x}) -@end deftypefun -@deftypefun {long double} log10l (long double @var{x}) +@deftypefunx float log10f (float @var{x}) +@deftypefunx {long double} log10l (long double @var{x}) These functions return the base-10 logarithm of @var{x}. Except for the different base, it is similar to the @code{log} function. In fact, @code{log10 (@var{x})} equals @code{log (@var{x}) / log (10)}. @@ -472,10 +449,8 @@ different base, it is similar to the @code{log} function. In fact, @comment math.h @comment ISO @deftypefun double log2 (double @var{x}) -@end deftypefun -@deftypefun float log2f (float @var{x}) -@end deftypefun -@deftypefun {long double} log2l (long double @var{x}) +@deftypefunx float log2f (float @var{x}) +@deftypefunx {long double} log2l (long double @var{x}) These functions return the base-2 logarithm of @var{x}. Except for the different base, it is similar to the @code{log} function. In fact, @code{log2 (@var{x})} equals @code{log (@var{x}) / log (2)}. @@ -484,10 +459,8 @@ different base, it is similar to the @code{log} function. In fact, @comment math.h @comment ISO @deftypefun double pow (double @var{base}, double @var{power}) -@end deftypefun -@deftypefun float powf (float @var{base}, float @var{power}) -@end deftypefun -@deftypefun {long double} powl (long double @var{base}, long double @var{power}) +@deftypefunx float powf (float @var{base}, float @var{power}) +@deftypefunx {long double} powl (long double @var{base}, long double @var{power}) These are general exponentiation functions, returning @var{base} raised to @var{power}. @@ -508,10 +481,8 @@ An underflow or overflow condition was detected in the result. @comment math.h @comment ISO @deftypefun double sqrt (double @var{x}) -@end deftypefun -@deftypefun float sqrtf (float @var{x}) -@end deftypefun -@deftypefun {long double} sqrtl (long double @var{x}) +@deftypefunx float sqrtf (float @var{x}) +@deftypefunx {long double} sqrtl (long double @var{x}) These functions return the nonnegative square root of @var{x}. The @code{sqrt} function fails, and sets @code{errno} to @code{EDOM}, if @@ -524,10 +495,8 @@ number. @comment math.h @comment BSD @deftypefun double cbrt (double @var{x}) -@end deftypefun -@deftypefun float cbrtf (float @var{x}) -@end deftypefun -@deftypefun {long double} cbrtl (long double @var{x}) +@deftypefunx float cbrtf (float @var{x}) +@deftypefunx {long double} cbrtl (long double @var{x}) These functions return the cube root of @var{x}. They cannot fail; every representable real value has a representable real cube root. @end deftypefun @@ -535,10 +504,8 @@ fail; every representable real value has a representable real cube root. @comment math.h @comment ISO @deftypefun double hypot (double @var{x}, double @var{y}) -@end deftypefun -@deftypefun float hypotf (float @var{x}, float @var{y}) -@end deftypefun -@deftypefun {long double} hypotl (long double @var{x}, long double @var{y}) +@deftypefunx float hypotf (float @var{x}, float @var{y}) +@deftypefunx {long double} hypotl (long double @var{x}, long double @var{y}) These functions return @code{sqrt (@var{x}*@var{x} + @var{y}*@var{y})}. (This is the length of the hypotenuse of a right triangle with sides of length @var{x} and @var{y}, or the distance @@ -550,10 +517,8 @@ much smaller. See also the function @code{cabs} in @ref{Absolute Value}. @comment math.h @comment ISO @deftypefun double expm1 (double @var{x}) -@end deftypefun -@deftypefun float expm1f (float @var{x}) -@end deftypefun -@deftypefun {long double} expm1l (long double @var{x}) +@deftypefunx float expm1f (float @var{x}) +@deftypefunx {long double} expm1l (long double @var{x}) These functions return a value equivalent to @code{exp (@var{x}) - 1}. It is computed in a way that is accurate even if the value of @var{x} is near zero---a case where @code{exp (@var{x}) - 1} would be inaccurate due @@ -563,10 +528,8 @@ to subtraction of two numbers that are nearly equal. @comment math.h @comment ISO @deftypefun double log1p (double @var{x}) -@end deftypefun -@deftypefun float log1pf (float @var{x}) -@end deftypefun -@deftypefun {long double} log1pl (long double @var{x}) +@deftypefunx float log1pf (float @var{x}) +@deftypefunx {long double} log1pl (long double @var{x}) This function returns a value equivalent to @w{@code{log (1 + @var{x})}}. It is computed in a way that is accurate even if the value of @var{x} is near zero. @@ -584,45 +547,51 @@ definition. @comment complex.h @comment ISO @deftypefun {complex double} cexp (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} cexpf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} cexpl (complex long double @var{z}) +@deftypefunx {complex float} cexpf (complex float @var{z}) +@deftypefunx {complex long double} cexpl (complex long double @var{z}) These functions return the value of @code{e} (the base of natural logarithms) raised to power of the complex value @var{z}. +@noindent Mathematically this corresponds to the value -@smallexample -exp (z) = exp (creal (z)) * (cos (cimag (z)) + I * sin (cimag (z))) -@end smallexample +@ifinfo +@math{exp (z) = exp (creal (z)) * (cos (cimag (z)) + I * sin (cimag (z)))} +@end ifinfo +@iftex +@tex +$$\exp(z) = e^z = e^{{\rm Re} z} (\cos ({\rm Im} z) + i \sin ({\rm Im} z))$$ +@end tex +@end iftex @end deftypefun @comment complex.h @comment ISO @deftypefun {complex double} clog (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} clogf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} clogl (complex long double @var{z}) +@deftypefunx {complex float} clogf (complex float @var{z}) +@deftypefunx {complex long double} clogl (complex long double @var{z}) These functions return the natural logarithm of the complex value @var{z}. Unlike the real value version @code{log} and its variants, @code{clog} has no limit for the range of its argument @var{z}. +@noindent Mathematically this corresponds to the value -@smallexample -log (z) = log (cabs (z)) + I * carg (z) -@end smallexample +@ifinfo +@math{log (z) = log (cabs (z)) + I * carg (z)} +@end ifinfo +@iftex +@tex +$$\log(z) = \log(|z|) + i \arg(z)$$ +@end tex +@end iftex @end deftypefun @comment complex.h @comment ISO @deftypefun {complex double} csqrt (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} csqrtf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} csqrtl (complex long double @var{z}) +@deftypefunx {complex float} csqrtf (complex float @var{z}) +@deftypefunx {complex long double} csqrtl (complex long double @var{z}) These functions return the complex root of the argument @var{z}. Unlike the @code{sqrt} function these functions do not have any restriction on the value of the argument. @@ -631,16 +600,19 @@ the value of the argument. @comment complex.h @comment ISO @deftypefun {complex double} cpow (complex double @var{base}, complex double @var{power}) -@end deftypefun -@deftypefun {complex float} cpowf (complex float @var{base}, complex float @var{power}) -@end deftypefun -@deftypefun {complex long double} cpowl (complex long double @var{base}, complex long double @var{power}) +@deftypefunx {complex float} cpowf (complex float @var{base}, complex float @var{power}) +@deftypefunx {complex long double} cpowl (complex long double @var{base}, complex long double @var{power}) These functions return the complex value @var{BASE} raised to the power of @var{power}. This is computed as -@smallexample -cpow (x, y) = cexp (y * clog (x)) -@end smallexample +@ifinfo +@math{cpow (x, y) = cexp (y * clog (x))} +@end ifinfo +@iftex +@tex +$${\rm cpow}(x, y) = e^{y \log(x)}$$ +@end tex +@end iftex @end deftypefun @@ -654,10 +626,8 @@ see @ref{Exponents and Logarithms}. @comment math.h @comment ISO @deftypefun double sinh (double @var{x}) -@end deftypefun -@deftypefun float sinhf (float @var{x}) -@end deftypefun -@deftypefun {long double} sinhl (long double @var{x}) +@deftypefunx float sinhf (float @var{x}) +@deftypefunx {long double} sinhl (long double @var{x}) These functions return the hyperbolic sine of @var{x}, defined mathematically as @w{@code{(exp (@var{x}) - exp (-@var{x})) / 2}}. The function fails, and sets @code{errno} to @code{ERANGE}, if the value of @@ -667,10 +637,8 @@ function fails, and sets @code{errno} to @code{ERANGE}, if the value of @comment math.h @comment ISO @deftypefun double cosh (double @var{x}) -@end deftypefun -@deftypefun float coshf (float @var{x}) -@end deftypefun -@deftypefun {long double} coshl (long double @var{x}) +@deftypefunx float coshf (float @var{x}) +@deftypefunx {long double} coshl (long double @var{x}) These function return the hyperbolic cosine of @var{x}, defined mathematically as @w{@code{(exp (@var{x}) + exp (-@var{x})) / 2}}. The function fails, and sets @code{errno} to @code{ERANGE}, if the value @@ -680,10 +648,8 @@ of @var{x} is too large; that is, if overflow occurs. @comment math.h @comment ISO @deftypefun double tanh (double @var{x}) -@end deftypefun -@deftypefun float tanhf (float @var{x}) -@end deftypefun -@deftypefun {long double} tanhl (long double @var{x}) +@deftypefunx float tanhf (float @var{x}) +@deftypefunx {long double} tanhl (long double @var{x}) These functions return the hyperbolic tangent of @var{x}, whose mathematical definition is @w{@code{sinh (@var{x}) / cosh (@var{x})}}. @end deftypefun @@ -698,10 +664,8 @@ library are optimized for accuracy and speed. @comment complex.h @comment ISO @deftypefun {complex double} csinh (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} csinhf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} csinhl (complex long double @var{z}) +@deftypefunx {complex float} csinhf (complex float @var{z}) +@deftypefunx {complex long double} csinhl (complex long double @var{z}) These functions return the complex hyperbolic sine of @var{z}, defined mathematically as @w{@code{(exp (@var{z}) - exp (-@var{z})) / 2}}. The function fails, and sets @code{errno} to @code{ERANGE}, if the value of @@ -711,10 +675,8 @@ result is too large. @comment complex.h @comment ISO @deftypefun {complex double} ccosh (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} ccoshf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} ccoshl (complex long double @var{z}) +@deftypefunx {complex float} ccoshf (complex float @var{z}) +@deftypefunx {complex long double} ccoshl (complex long double @var{z}) These functions return the complex hyperbolic cosine of @var{z}, defined mathematically as @w{@code{(exp (@var{z}) + exp (-@var{z})) / 2}}. The function fails, and sets @code{errno} to @code{ERANGE}, if the value of @@ -724,10 +686,8 @@ result is too large. @comment complex.h @comment ISO @deftypefun {complex double} ctanh (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} ctanhf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} ctanhl (complex long double @var{z}) +@deftypefunx {complex float} ctanhf (complex float @var{z}) +@deftypefunx {complex long double} ctanhl (complex long double @var{z}) These functions return the complex hyperbolic tangent of @var{z}, whose mathematical definition is @w{@code{csinh (@var{z}) / ccosh (@var{z})}}. @end deftypefun @@ -738,10 +698,8 @@ mathematical definition is @w{@code{csinh (@var{z}) / ccosh (@var{z})}}. @comment math.h @comment ISO @deftypefun double asinh (double @var{x}) -@end deftypefun -@deftypefun float asinhf (float @var{x}) -@end deftypefun -@deftypefun {long double} asinhl (long double @var{x}) +@deftypefunx float asinhf (float @var{x}) +@deftypefunx {long double} asinhl (long double @var{x}) These functions return the inverse hyperbolic sine of @var{x}---the value whose hyperbolic sine is @var{x}. @end deftypefun @@ -749,10 +707,8 @@ value whose hyperbolic sine is @var{x}. @comment math.h @comment ISO @deftypefun double acosh (double @var{x}) -@end deftypefun -@deftypefun float acoshf (float @var{x}) -@end deftypefun -@deftypefun {long double} acoshl (long double @var{x}) +@deftypefunx float acoshf (float @var{x}) +@deftypefunx {long double} acoshl (long double @var{x}) These functions return the inverse hyperbolic cosine of @var{x}---the value whose hyperbolic cosine is @var{x}. If @var{x} is less than @code{1}, @code{acosh} returns @code{HUGE_VAL}. @@ -761,10 +717,8 @@ value whose hyperbolic cosine is @var{x}. If @var{x} is less than @comment math.h @comment ISO @deftypefun double atanh (double @var{x}) -@end deftypefun -@deftypefun float atanhf (float @var{x}) -@end deftypefun -@deftypefun {long double} atanhl (long double @var{x}) +@deftypefunx float atanhf (float @var{x}) +@deftypefunx {long double} atanhl (long double @var{x}) These functions return the inverse hyperbolic tangent of @var{x}---the value whose hyperbolic tangent is @var{x}. If the absolute value of @var{x} is greater than or equal to @code{1}, @code{atanh} returns @@ -776,10 +730,8 @@ value whose hyperbolic tangent is @var{x}. If the absolute value of @comment complex.h @comment ISO @deftypefun {complex double} casinh (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} casinhf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} casinhl (complex long double @var{z}) +@deftypefunx {complex float} casinhf (complex float @var{z}) +@deftypefunx {complex long double} casinhl (complex long double @var{z}) These functions return the inverse complex hyperbolic sine of @var{z}---the value whose complex hyperbolic sine is @var{z}. @end deftypefun @@ -787,10 +739,8 @@ These functions return the inverse complex hyperbolic sine of @comment complex.h @comment ISO @deftypefun {complex double} cacosh (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} cacoshf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} cacoshl (complex long double @var{z}) +@deftypefunx {complex float} cacoshf (complex float @var{z}) +@deftypefunx {complex long double} cacoshl (complex long double @var{z}) These functions return the inverse complex hyperbolic cosine of @var{z}---the value whose complex hyperbolic cosine is @var{z}. Unlike the real valued function @code{acosh} there is not limit for the range @@ -800,10 +750,8 @@ of the argument. @comment complex.h @comment ISO @deftypefun {complex double} catanh (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} catanhf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} catanhl (complex long double @var{z}) +@deftypefunx {complex float} catanhf (complex float @var{z}) +@deftypefunx {complex long double} catanhl (complex long double @var{z}) These functions return the inverse complex hyperbolic tangent of @var{z}---the value whose complex hyperbolic tangent is @var{z}. Unlike the real valued function @code{atanh} there is not limit for the range diff --git a/manual/signal.texi b/manual/signal.texi index 767ddabb41..bc69019e63 100644 --- a/manual/signal.texi +++ b/manual/signal.texi @@ -833,10 +833,9 @@ will not affect your program unless it explicitly uses them for something. @comment signal.h @comment POSIX.1 @deftypevr Macro int SIGUSR1 -@end deftypevr @comment signal.h @comment POSIX.1 -@deftypevr Macro int SIGUSR2 +@deftypevrx Macro int SIGUSR2 @cindex user signals The @code{SIGUSR1} and @code{SIGUSR2} signals are set aside for you to use any way you want. They're useful for simple interprocess diff --git a/manual/stdio.texi b/manual/stdio.texi index 97c3f581d1..3e73155f4a 100644 --- a/manual/stdio.texi +++ b/manual/stdio.texi @@ -1765,47 +1765,40 @@ extract just the basic type code. Here are symbolic constants that represent the basic types; they stand for integer values. -@table @code +@vtable @code @comment printf.h @comment GNU @item PA_INT -@vindex PA_INT This specifies that the base type is @code{int}. @comment printf.h @comment GNU @item PA_CHAR -@vindex PA_CHAR This specifies that the base type is @code{int}, cast to @code{char}. @comment printf.h @comment GNU @item PA_STRING -@vindex PA_STRING This specifies that the base type is @code{char *}, a null-terminated string. @comment printf.h @comment GNU @item PA_POINTER -@vindex PA_POINTER This specifies that the base type is @code{void *}, an arbitrary pointer. @comment printf.h @comment GNU @item PA_FLOAT -@vindex PA_FLOAT This specifies that the base type is @code{float}. @comment printf.h @comment GNU @item PA_DOUBLE -@vindex PA_DOUBLE This specifies that the base type is @code{double}. @comment printf.h @comment GNU @item PA_LAST -@vindex PA_LAST You can define additional base types for your own programs as offsets from @code{PA_LAST}. For example, if you have data types @samp{foo} and @samp{bar} with their own specialized @code{printf} conversions, @@ -1815,16 +1808,15 @@ you could define encodings for these types as: #define PA_FOO PA_LAST #define PA_BAR (PA_LAST + 1) @end smallexample -@end table +@end vtable Here are the flag bits that modify a basic type. They are combined with the code for the basic type using inclusive-or. -@table @code +@vtable @code @comment printf.h @comment GNU @item PA_FLAG_PTR -@vindex PA_FLAG_PTR If this bit is set, it indicates that the encoded type is a pointer to the base type, rather than an immediate value. For example, @samp{PA_INT|PA_FLAG_PTR} represents the type @samp{int *}. @@ -1832,31 +1824,27 @@ For example, @samp{PA_INT|PA_FLAG_PTR} represents the type @samp{int *}. @comment printf.h @comment GNU @item PA_FLAG_SHORT -@vindex PA_FLAG_SHORT If this bit is set, it indicates that the base type is modified with @code{short}. (This corresponds to the @samp{h} type modifier.) @comment printf.h @comment GNU @item PA_FLAG_LONG -@vindex PA_FLAG_LONG If this bit is set, it indicates that the base type is modified with @code{long}. (This corresponds to the @samp{l} type modifier.) @comment printf.h @comment GNU @item PA_FLAG_LONG_LONG -@vindex PA_FLAG_LONG_LONG If this bit is set, it indicates that the base type is modified with @code{long long}. (This corresponds to the @samp{L} type modifier.) @comment printf.h @comment GNU @item PA_FLAG_LONG_DOUBLE -@vindex PA_FLAG_LONG_DOUBLE This is a synonym for @code{PA_FLAG_LONG_LONG}, used by convention with a base type of @code{PA_DOUBLE} to indicate a type of @code{long double}. -@end table +@end vtable @ifinfo For an example of using these facilities, see @ref{Example of Parsing}. @@ -2234,7 +2222,8 @@ character is of lower case, 1024 is used. For upper case characters, The postfix tag corresponds to bytes, kilobytes, megabytes, gigabytes, etc. The full table is: -@multitable {' '} {2^10 (1024)} {zetta} {Upper} {10^24 (1000)} +@ifinfo +@multitable @hsep @vsep {' '} {2^10 (1024)} {zetta} {Upper} {10^24 (1000)} @item low @tab Multiplier @tab From @tab Upper @tab Multiplier @item ' ' @tab 1 @tab @tab ' ' @tab 1 @item k @tab 2^10 (1024) @tab kilo @tab K @tab 10^3 (1000) @@ -2246,6 +2235,29 @@ etc. The full table is: @item z @tab 2^70 @tab zetta @tab Z @tab 10^21 @item y @tab 2^80 @tab yotta @tab Y @tab 10^24 @end multitable +@end ifinfo +@iftex +@tex +\hbox to\hsize{\hfil\vbox{\offinterlineskip +\hrule +\halign{\strut#& \vrule#\tabskip=1em plus2em& {\tt#}\hfil& \vrule#& #\hfil& \vrule#& #\hfil& \vrule#& {\tt#}\hfil& \vrule#& #\hfil& \vrule#\tabskip=0pt\cr +\noalign{\hrule} +\omit&height2pt&\omit&&\omit&&\omit&&\omit&&\omit&\cr +&& \omit low && Multiplier && From && \omit Upper && Multiplier &\cr +\omit&height2pt&\omit&&\omit&&\omit&&\omit&&\omit&\cr +\noalign{\hrule} +&& {\tt\char32} && 1 && && {\tt\char32} && 1 &\cr +&& k && $2^{10} = 1024$ && kilo && K && $10^3 = 1000$ &\cr +&& m && $2^{20}$ && mega && M && $10^6$ &\cr +&& g && $2^{30}$ && giga && G && $10^9$ &\cr +&& t && $2^{40}$ && tera && T && $10^{12}$ &\cr +&& p && $2^{50}$ && peta && P && $10^{15}$ &\cr +&& e && $2^{60}$ && exa && E && $10^{18}$ &\cr +&& z && $2^{70}$ && zetta && Z && $10^{21}$ &\cr +&& y && $2^{80}$ && yotta && Y && $10^{24}$ &\cr +\noalign{\hrule}}}\hfil} +@end tex +@end iftex The default precision is 3, i.e., 1024 is printed with a lower-case format character as if it were @code{%.3fk} and will yield @code{1.000k}. diff --git a/manual/summary.awk b/manual/summary.awk index 2eade0c20d..d997a2080f 100644 --- a/manual/summary.awk +++ b/manual/summary.awk @@ -25,29 +25,53 @@ BEGIN { header = 0; nameword["@defun"]=1 +nameword["@defunx"]=1 nameword["@defmac"]=1 +nameword["@defmacx"]=1 nameword["@defspec"]=1 +nameword["@defspecx"]=1 nameword["@defvar"]=1 +nameword["@defvarx"]=1 nameword["@defopt"]=1 +nameword["@defoptx"]=1 nameword["@deffn"]=2 +nameword["@deffnx"]=2 nameword["@defvr"]=2 +nameword["@defvrx"]=2 nameword["@deftp"]=2 +nameword["@deftpx"]=2 nameword["@deftypefun"]=2 +nameword["@deftypefunx"]=2 nameword["@deftypevar"]=2 +nameword["@deftypevarx"]=2 nameword["@deftypefn"]=3 +nameword["@deftypefnx"]=3 nameword["@deftypevr"]=3 +nameword["@deftypevrx"]=3 firstword["@defun"]=1 +firstword["@defunx"]=1 firstword["@defmac"]=1 +firstword["@defmacx"]=1 firstword["@defspec"]=1 +firstword["@defspecx"]=1 firstword["@defvar"]=1 +firstword["@defvarx"]=1 firstword["@defopt"]=1 +firstword["@defoptx"]=1 firstword["@deffn"]=2 +firstword["@deffnx"]=2 firstword["@defvr"]=2 +firstword["@defvrx"]=2 firstword["@deftp"]=2 +firstword["@deftpx"]=2 firstword["@deftypefun"]=1 +firstword["@deftypefunx"]=1 firstword["@deftypevar"]=1 +firstword["@deftypevarx"]=1 firstword["@deftypefn"]=2 +firstword["@deftypefnx"]=2 firstword["@deftypevr"]=2 +firstword["@deftypevrx"]=2 nameword["@item"]=1 firstword["@item"]=1 nameword["@itemx"]=1 diff --git a/manual/texinfo.tex b/manual/texinfo.tex index 37af9b68a6..4059d0a811 100644 --- a/manual/texinfo.tex +++ b/manual/texinfo.tex @@ -1,5 +1,5 @@ %% TeX macros to handle Texinfo files. -%% $Id: texinfo.tex,v 2.196 1997/01/04 19:24:13 karl Exp $ +%% $Id: texinfo.tex,v 2.197 1997/04/30 15:34:30 drepper Exp $ % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, % 94, 95, 96, 97 Free Software Foundation, Inc. @@ -36,7 +36,7 @@ % This automatically updates the version number based on RCS. \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} -\deftexinfoversion$Revision: 2.196 $ +\deftexinfoversion$Revision: 2.197 $ \message{Loading texinfo package [Version \texinfoversion]:} % If in a .fmt file, print the version number @@ -118,33 +118,41 @@ \showboxbreadth\maxdimen\showboxdepth\maxdimen }% -%---------------------Begin change----------------------- +% For @cropmarks command. +% Do @cropmarks to get crop marks. +% +\newif\ifcropmarks +\let\cropmarks = \cropmarkstrue % -%%%% For @cropmarks command. -% Dimensions to add cropmarks at corners Added by P. A. MacKay, 12 Nov. 1986 +% Dimensions to add cropmarks at corners. +% Added by P. A. MacKay, 12 Nov. 1986 % \newdimen\cornerlong \newdimen\cornerthick -\newdimen \topandbottommargin -\newdimen \outerhsize \newdimen \outervsize +\newdimen\topandbottommargin +\newdimen\outerhsize \newdimen\outervsize \cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks \outerhsize=7in %\outervsize=9.5in % Alternative @smallbook page size is 9.25in \outervsize=9.25in \topandbottommargin=.75in -% -%---------------------End change----------------------- % Main output routine. \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} -\newbox\headlinebox \newbox\footlinebox +\newbox\headlinebox +\newbox\footlinebox % \onepageout takes a vbox as an argument. Note that \pagecontents % does insertions, but you have to call it yourself. \def\onepageout#1{% - \hoffset=\normaloffset + \ifcropmarks + \hoffset = 0pt + \else + \hoffset = \normaloffset + \fi + % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi % @@ -163,53 +171,41 @@ \normalturnoffactive % \ in index entries must not stay \, e.g., if % the page break happens to be in the middle of an example. \shipout\vbox{% + \ifcropmarks + \vbox to \outervsize\bgroup + \hsize = \outerhsize + \vbox{\line{\ewtop\hfill\ewtop}}% + \nointerlineskip + \line{% + \vbox{\moveleft\cornerthick\nstop}% + \hfill + \vbox{\moveright\cornerthick\nstop}% + }% + \vskip\topandbottommargin + \fi + % \unvbox\headlinebox \pagebody{#1}% \unvbox\footlinebox + % + \ifcropmarks + \vskip\topandbottommargin plus1fill minus1fill + \boxmaxdepth = \cornerthick + \line{% + \vbox{\moveleft\cornerthick\nsbot}% + \hfill + \vbox{\moveright\cornerthick\nsbot}% + }% + \nointerlineskip + \vbox{\line{\ewbot\hfill\ewbot}}% + \egroup % \vbox from first cropmarks clause + \fi }% }% \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } -%%%% For @cropmarks command %%%% - -% Here is a modification of the main output routine for Near East Publications -% This provides right-angle cropmarks at all four corners. -% The contents of the page are centerlined into the cropmarks, -% and any desired binding offset is added as an \hskip on either -% site of the centerlined box. (P. A. MacKay, 12 November, 1986) -% -\def\croppageout#1{\hoffset=0pt % make sure this doesn't mess things up -{\escapechar=`\\\relax % makes sure backslash is used in output files. - \shipout - \vbox to \outervsize{\hsize=\outerhsize - \vbox{\line{\ewtop\hfill\ewtop}} - \nointerlineskip - \line{\vbox{\moveleft\cornerthick\nstop} - \hfill - \vbox{\moveright\cornerthick\nstop}} - \vskip \topandbottommargin - \centerline{\ifodd\pageno\hskip\bindingoffset\fi - \vbox{ - {\let\hsize=\pagewidth \makeheadline} - \pagebody{#1} - {\let\hsize=\pagewidth \makefootline}} - \ifodd\pageno\else\hskip\bindingoffset\fi} - \vskip \topandbottommargin plus1fill minus1fill - \boxmaxdepth\cornerthick - \line{\vbox{\moveleft\cornerthick\nsbot} - \hfill - \vbox{\moveright\cornerthick\nsbot}} - \nointerlineskip - \vbox{\line{\ewbot\hfill\ewbot}} - }} - \advancepageno - \ifnum\outputpenalty>-20000 \else\dosupereject\fi} -% -% Do @cropmarks to get crop marks -\def\cropmarks{\let\onepageout=\croppageout } - \newinsert\margin \dimen\margin=\maxdimen \def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}} @@ -2240,6 +2236,7 @@ width0pt\relax} \fi \def\r##1{\realbackslash r {##1}}% \def\i##1{\realbackslash i {##1}}% \def\b##1{\realbackslash b {##1}}% +\def\sc##1{\realbackslash sc {##1}}% \def\cite##1{\realbackslash cite {##1}}% \def\key##1{\realbackslash key {##1}}% \def\file##1{\realbackslash file {##1}}% @@ -2774,7 +2771,8 @@ width0pt\relax} \fi % because we don't want its macros evaluated now. \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% {\chapternofonts% -\edef\temp{{\realbackslash chapentry {#1}{\the\chapno}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash chapentry{\the\toks0}{\the\chapno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \donoderef % @@ -2793,8 +2791,9 @@ width0pt\relax} \fi \gdef\thischaptername{#1}% \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% {\chapternofonts% -\edef\temp{{\realbackslash chapentry - {#1}{\putwordAppendix{} \appendixletter}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash chapentry{\the\toks0}% + {\putwordAppendix{} \appendixletter}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \appendixnoderef % @@ -2828,7 +2827,8 @@ width0pt\relax} \fi \unnumbchapmacro {#1}% \gdef\thischapter{#1}\gdef\thissection{#1}% {\chapternofonts% -\edef\temp{{\realbackslash unnumbchapentry {#1}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash unnumbchapentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \unnumbnoderef % @@ -2843,8 +2843,9 @@ width0pt\relax} \fi \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% {\chapternofonts% +\toks0 = {#1}% \edef\temp{{\realbackslash secentry % -{#1}{\the\chapno}{\the\secno}{\noexpand\folio}}}% +{\the\toks0}{\the\chapno}{\the\secno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \donoderef % @@ -2858,8 +2859,9 @@ width0pt\relax} \fi \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% {\chapternofonts% +\toks0 = {#1}% \edef\temp{{\realbackslash secentry % -{#1}{\appendixletter}{\the\secno}{\noexpand\folio}}}% +{\the\toks0}{\appendixletter}{\the\secno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \appendixnoderef % @@ -2871,7 +2873,8 @@ width0pt\relax} \fi \def\unnumberedseczzz #1{\seccheck{unnumberedsec}% \plainsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% -\edef\temp{{\realbackslash unnumbsecentry{#1}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash unnumbsecentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \unnumbnoderef % @@ -2884,8 +2887,9 @@ width0pt\relax} \fi \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% {\chapternofonts% +\toks0 = {#1}% \edef\temp{{\realbackslash subsecentry % -{#1}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% +{\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \donoderef % @@ -2898,8 +2902,9 @@ width0pt\relax} \fi \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% {\chapternofonts% +\toks0 = {#1}% \edef\temp{{\realbackslash subsecentry % -{#1}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% +{\the\toks0}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \appendixnoderef % @@ -2911,7 +2916,8 @@ width0pt\relax} \fi \def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}% \plainsubsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% -\edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash unnumbsubsecentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \unnumbnoderef % @@ -2925,8 +2931,8 @@ width0pt\relax} \fi \subsubsecheading {#1} {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% {\chapternofonts% -\edef\temp{{\realbackslash subsubsecentry % - {#1} +\toks0 = {#1}% +\edef\temp{{\realbackslash subsubsecentry{\the\toks0} {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno} {\noexpand\folio}}}% \escapechar=`\\% @@ -2942,7 +2948,8 @@ width0pt\relax} \fi \subsubsecheading {#1} {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% {\chapternofonts% -\edef\temp{{\realbackslash subsubsecentry{#1}% +\toks0 = {#1}% +\edef\temp{{\realbackslash subsubsecentry{\the\toks0}% {\appendixletter} {\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}% \escapechar=`\\% @@ -2956,7 +2963,8 @@ width0pt\relax} \fi \def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}% \plainsubsubsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% -\edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash unnumbsubsubsecentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \unnumbnoderef % diff --git a/manual/xtract-typefun.awk b/manual/xtract-typefun.awk index 6450ac10eb..2f0bbc748e 100644 --- a/manual/xtract-typefun.awk +++ b/manual/xtract-typefun.awk @@ -9,18 +9,18 @@ BEGIN { /^@deftypefun/ { printf ("* %s: (libc)%s.\n", - gensub (/@deftypefun +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]+).*/, "\\2", 1), + gensub (/@deftypefunx? +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]*).*/, "\\2", 1), last_node); } /^@deftypevr/ { printf ("* %s: (libc)%s.\n", - gensub (/@deftypevr +([^{ ]+|\{[^}]+\}) +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]+).*/, "\\3", 1), + gensub (/@deftypevrx? +([^{ ]+|\{[^}]+\}) +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]*).*/, "\\3", 1), last_node); } /^@deftypefn/ { printf ("* %s: (libc)%s.\n", - gensub (/@deftypefn +([^{ ]+|\{[^}]+\}) +[^{ ]*(\{[^}]+\})? +([[:alpha:]_][[:alnum:]_]+).*/, "\\3", 1), + gensub (/@deftypefnx? +([^{ ]+|\{[^}]+\}) +[^{ ]*(\{[^}]+\})? +([[:alpha:]_][[:alnum:]_]*).*/, "\\3", 1), last_node); } -- cgit v1.2.3