about summary refs log tree commit diff
path: root/manual/math.texi
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1997-08-14 01:54:13 +0000
committerUlrich Drepper <drepper@redhat.com>1997-08-14 01:54:13 +0000
commitca34d7a7c77fa8dc823fd05439870e5a96610c5a (patch)
tree4b4057b8b919007f42caa4e1558bb9c5487976ae /manual/math.texi
parent0413b54c02d31cae62e8d13b3ee7ac109ceeff0e (diff)
downloadglibc-ca34d7a7c77fa8dc823fd05439870e5a96610c5a.tar.gz
glibc-ca34d7a7c77fa8dc823fd05439870e5a96610c5a.tar.xz
glibc-ca34d7a7c77fa8dc823fd05439870e5a96610c5a.zip
1997-08-14 03:14  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-minimal.c: Don't use relative #include paths.
	(malloc): Don't try to initialize _dl_pagesize, it already is.
	(__sigjmp_save, longjmp): Reformat.

	* sysdeps/generic/dl-sysdep.c: Implement _dl_show_auxv function to
	show content of auxiliary array.
	(_dl_sysdep_start): Remember start of auxiliary vector.
	* sysdeps/mach/hurd/dl-sysdep.c: (_dl_show_auxv): New dummy function.
	* elf/link.h: Add prototype for _dl_show_auxv.
	* elf/rtld.c (dl_main): Call _dl_show_auxv if LD_SHOW_AUXV envvar
	is present.

	* libio/iofdopen.c: Better prepare for use in libstdc++.
	* libio/iofflush.c: Likewise.
	* libio/iofgetpos.c: Likewise.
	* libio/iofgets.c: Likewise.
	* libio/iofopen.c: Likewise.
	* libio/iofputs.c: Likewise.
	* libio/iofread.c: Likewise.
	* libio/iofsetpos.c: Likewise.
	* libio/ioftell.c: Likewise.
	* libio/iofwrite.c: Likewise.
	* libio/iogetdelim.c: Likewise.
	* libio/iogets.c: Likewise.
	* libio/iopopen.c: Likewise.
	* libio/ioputs.c: Likewise.
	* libio/iosetbuffer.c: Likewise.
	* libio/iosetvbuf.c: Likewise.
	* libio/ioungetc.c: Likewise.
	* libio/iovsprintf.c: Likewise.
	* libio/iovsscanf.c: Likewise.

	* manual/creature.texi: Mention _XOPEN_SOURCE_EXTENDED in correct
	place.

	* manual/math.texi: Add comment to sincos decsription to say it's a
	GNU extension.
	Fix description of random function.

	* posix/fnmatch.h: Recognize Windog by _WINDOWS32 not WIN32.
	* posix/glob.c: Likewise.  Handle stupid system headers on SunOS.
	Add casts for all __alloca calls.
	* posix/glob.h: Recognize Windog by _WINDOWS32 not WIN32.
	Declare additional GLOB_* constants also if _GNU_SOURCE is defined.
	Patches by Paul D. Smith <psmith@BayNetworks.COM>.

	* stdio-common/_itoa.c: Don't use relateive #include paths.

	* sysdeps/i386/fpu/bits/mathinline.h: Enable optimizations even for
	gcc 2.7.
	(atan): Loading 1.0 from memory does not pay off.
	(asinh): Fix typo.

1997-08-13 09:44  Philip Blundell  <Philip.Blundell@pobox.com>

	* sysdeps/stub/accept.c: Use socklen_t where necessary.
	* sysdeps/stub/bind.c: Likewise.
	* sysdeps/stub/connect.c: Likewise.
	* sysdeps/stub/getsockname.c: Likewise.
	* sysdeps/stub/getsockopt.c: Likewise.
	* sysdeps/stub/recvfrom.c: Likewise.
	* sysdeps/stub/sendto.c: Likewise.
	* sysdeps/stub/setsockopt.c: Likewise.

1997-08-11  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* io/ftw.c (object_compare): Avoid memcmp when comparing scalar
	types.

1997-08-12  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* math/libm-test.c (cbrt_test): Add epsilon for long double to
	`cbrt (-0.001)'.

1997-08-11  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/stub/bits/string.h: Fix comment.

1997-08-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/Makefile (routines): Remove dl-version.
	(dl-routines): Add it here instead.  This removes dead code from
	libc.so.

1997-08-12 17:17  Wolfram Gloger  <wmglo@dent.med.uni-muenchen.de>

	* malloc/thread-m.h (thread_atfork, thread_atfork_static): New
	macros to encapsulate pthread_atfork's functionality.
	* malloc/malloc.c (ptmalloc_lock_all, ptmalloc_unlock_all): New
	functions, registered via thread_atfork in the initialization
	routine or via thread_atfork_static in global scope.  This
	ensures a consistent state of all locks across fork().

1997-08-11 23:00:32 1997  Mark Kettenis  <kettenis@phys.uva.nl>

	* login/programs/xtmp.c (compare_entry):
	Partially undo patch made by Klaus Espenlaub.  There
	was no xtmp/utmp typo.  Added comment to cclarify this.
	* login/programs/xtmp.h: Likewise.

	* posix/getopt.c: Recognize Windog by _WINDOWS32 not WIN32.
	Patch by Paul D. Smith <psmith@BayNetworks.COM>.

1997-08-12 13:51  Ulrich Drepper  <drepper@cygnus.com>

	* login/getutid.c: Rename to __getutid and make getutid and getutxid
	weak aliases.
	Patch by ir. Mark M._Kettenis <kettenis@phys.uva.nl>.

1997-08-11 23:55  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/Makefile [subdir=misc] (sysdep_headers):
	Add bits/mman.h.

1997-08-11 08:51:21 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* stdlib/fmtmsg.c (fmtmsg): Add static to
	__libc_once_define macro.

	* libc.map (__progname_full, __progname): Added.

1997-08-04 08:31  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* sysdeps/unix/sysv/linux/if_index.c (if_nametoindex): Return 0
	if SIOGIFINDEX is not defined.
	(if_indextoname): Initialize "result" to NULL.
	(if_nametoindex, if_nameindex): Fix ENOSYS setting.

1997-08-11 11:58  Richard Henderson  <rth@cygnus.com>

	Sparc ISO C 9x exception handling:
	* sysdeps/sparc/fpu/bits/mathdef.h: New file.
	* sysdeps/sparc/fpu/fclrexcpt.c: New file.
	* sysdeps/sparc/fpu/fegetenv.c: New file.
	* sysdeps/sparc/fpu/fegetround.c: New file.
	* sysdeps/sparc/fpu/feholdexcpt.c: New file.
	* sysdeps/sparc/fpu/fesetenv.c: New file.
	* sysdeps/sparc/fpu/fesetround.c: New file.
	* sysdeps/sparc/fpu/feupdateenv.c: New file.
	* sysdeps/sparc/fpu/fgetexcptflg.c: New file.
	* sysdeps/sparc/fpu/fraiseexcpt.c: New file.
	* sysdeps/sparc/fpu/fsetexcptflg.c: New file.
	* sysdeps/sparc/fpu/ftestexcept.c: New file.
	* sysdeps/sparc/sparc32/fpu/bits/fenv.h: New file.
	* sysdeps/sparc/sparc64/fpu/bits/fenv.h: New file.

1997-08-11 11:58  Richard Henderson  <rth@cygnus.com>

	Sparc64 merge:
	* configure.in: Change up subdirectories, rename sparc8->sparcv8.

	* csu/Makefile: Nuke need-nopic-initfini bits.  The problem was
	that sparc64 ld did not recognize pic relocs at all.

	* elf/dl-deps.c: Include <string.h>.
	* elf/do-rel.h (elf_dynamic_do_rel): Take reloc address and size
	directly instead of the DT names to get them from.
	* elf/dynamic-link.h (_ELF_DYNAMIC_DO_RELOC): New macro distilled
	from ELF_DYNAMIC_DO_REL{,A}.  Define a second version that accounts
	for the possibility that DT_RELA and DT_JMPPLT overlap, as such is
	the case on the Sparc.

	* elf/elf.h: Stub out Elf64_Ver*, and make them the same as the
	Elf32_Ver* bits.  The linker does not even know to differentiate
	between the word sizes.  Someone should examine this and figure
	out what the proper sizes of things should be for 64-bit hosts
	before the sparc64 libraries are distributed.

	* shlib-versions: Rename sparc64 ld.so to not conflict with sparc32
	on the same machine.

	Move old sysdeps/sparc contents to sysdeps/sparc/sparc32,
	rename sparc8 subdir to sparcv8, move sysdeps/sparc64 content to
	sysdeps/sparc/sparc64.  Same for sysdeps/unix/sysv/linux/sparc.

	* sysdeps/sparc/Implies: Do ieee754 here.
	* sysdeps/sparc/configure.in: Move from sparc32/.
	* sysdeps/sparc/sparc32/Implies: Do wordsize here.
	* sysdeps/sparc/sparc64/Implies: Likewise.

	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_load_address):
	Use uninitialized .got to find load address instead of AT_BASE, as
	the later does not exist when running ld.so directly.

	* sysdeps/sparc/sparc32/fpu/fpu_control.h: Move from ../.
	* sysdeps/sparc/sparc64/fpu/fpu_control.h: Likewise.

	* sysdeps/sparc/sparc32/udiv_qrnnd.S: Clean up PIC support.

	* sysdeps/sparc/sparc64/Makefile (sysdep_routines): Add s_finitel
	and s_signbitl for stdio.
	* sysdeps/sparc/sparc64/configure.in: Remove, we no longer need
	nopic_initfini.

	* sysdeps/sparc/sparc64/bsd-_setjmp.S: Remove.
	* sysdeps/sparc/sparc64/bsd-setjmp.S: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bsd-_setjmp.S: New empty file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bsd-setjmp.S: New empty file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S: Add __longjmp alias.
	* sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S: Add weak _setjmp
	and setjmp entry points.

	* sysdeps/sparc/sparc64/dl-machine.h: Finish real implementation.

	* sysdeps/sparc/sparc64/elf/crtbegin.S: Add copyright, fix PIC.
	* sysdeps/sparc/sparc64/elf/crtend.S: Likewise.

	* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h (struct sigaction):
	Fix sa_flags size for sparc64; add sa_restorer for kernel.

	* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Fix PIC.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.

	* sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: New file.

1997-08-10 18:29:08 1997  Mark Kettenis  <kettenis@phys.uva.nl>

	* login/login.c (login): Check for correct return value of
	utmpname.

1997-08-11 16:49  Ulrich Drepper  <drepper@cygnus.com>

	* time/tzset.c (__tzset_internal): Correctly handle TZ strings
	following incorrect old POSIX specs.
	Patch by Paul Eggert <eggert@twinsun.com>.

	* sysdeps/generic/bits/sigaction.h: Correct comment for SA_RESTART.
	* sysdeps/unix/bsd/osf/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/minix/bits/sigaction.h: Likewise.
	* sysdeps/unix/sysv/sysv4/bits/sigaction.h: Likewise.
	Reported by NIIBE Yutaka <gniibe@mri.co.jp>.

1997-08-09  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* manual/math.texi: Define the macros @mul and @infinity and use
	them to format the multiplication and infinity signs.
	(FP Comparison Functions): Use @code, not @math, for C code
	examples.

	* elf/dl-profile.c: Add descriptions and implement reading of
Diffstat (limited to 'manual/math.texi')
-rw-r--r--manual/math.texi200
1 files changed, 64 insertions, 136 deletions
diff --git a/manual/math.texi b/manual/math.texi
index 71b365151f..a703e890a2 100644
--- a/manual/math.texi
+++ b/manual/math.texi
@@ -1,10 +1,25 @@
 @c We need some definitions here.
-@iftex
-@set TEXFORMULAS
-@end iftex
 @ifhtml
 @set cdot ·
 @end ifhtml
+@iftex
+@set cdot @cdot
+@end iftex
+@ifclear cdot
+@set cdot x
+@end ifclear
+@iftex
+@set infty @infty
+@end iftex
+@ifclear infty
+@set infty oo
+@end ifclear
+@macro mul
+@value{cdot}
+@end macro
+@macro infinity
+@value{infty}
+@end macro
 
 @node Mathematics, Arithmetic, Low-Level Terminal Interface, Top
 @chapter Mathematics
@@ -53,7 +68,7 @@ in case of double using @code{double} is a good compromise.
 @cindex domain error
 Many of the functions listed in this chapter are defined mathematically
 over a domain that is only a subset of real numbers.  For example, the
-@code{acos} function is defined over the domain between @code{-1} and
+@code{acos} function is defined over the domain between @code{@minus{}1} and
 @code{1}.  If you pass an argument to one of these functions that is
 outside the domain over which it is defined, the function sets
 @code{errno} to @code{EDOM} to indicate a @dfn{domain error}.  On
@@ -73,7 +88,7 @@ be representable as a floating point number.  If magnitude of the
 correct result is too large to be represented, the function sets
 @code{errno} to @code{ERANGE} to indicate a @dfn{range error}, and
 returns a particular very large value (named by the macro
-@code{HUGE_VAL}) or its negation (@w{@code{- HUGE_VAL}}).
+@code{HUGE_VAL}) or its negation (@code{@minus{}HUGE_VAL}).
 
 If the magnitude of the result is too small, a value of zero is returned
 instead.  In this case, @code{errno} might or might not be
@@ -191,46 +206,19 @@ operation to be performed.  Examples are
 Any operation on a signalling NaN.
 @item
 Addition or subtraction; magnitude subtraction of infinities such as
-@iftex
-@tex
-$(+\infty) + (-\infty)$.
-@end tex
-@end iftex
-@ifclear TEXFORMULAS
-@math{(+oo) + (-oo)}.
-@end ifclear
+@math{(+@infinity{}) + (-@infinity{})}.
 @item
 Multiplication:
-@iftex
-@tex
-$0 \cdot \infty$.
-@end tex
-@end iftex
-@ifclear TEXFORMULAS
-@ifset cdot
-@math{0 @value{cdot} oo}.
-@end ifset
-@ifclear cdot
-@math{0 x oo}.
-@end ifclear
-@end ifclear
+@math{0 @mul{} @infinity{}}.
 
 @item
-Division: @math{0/0} or
-@iftex
-@tex
-$\infty/\infty$.
-@end tex
-@end iftex
-@ifclear TEXFORMULAS
-@math{oo/oo}.
-@end ifclear
+Division: @math{0/0} or @math{@infinity{}/@infinity{}}.
 
 @item
 Remainder: @math{x} REM @math{y}, where @math{y} is zero or @math{x} is
 infinite.
 @item
-Squre root if the operand is less then zero.
+Square root if the operand is less then zero.
 @item
 Conversion of an internal floating-point number to an integer or to a
 decimal string when overflow, infinity, or NaN precludes a faithful
@@ -249,24 +237,7 @@ of the operation is taken as a quiet NaN.
 @item Division by Zero
 This exception is raised if the devisor is zero and the dividend is a
 finite nonzero number.  If no trap occurs the result is either
-@iftex
-@tex
-$\infty$
-@end tex
-@end iftex
-@ifclear TEXFORMULAS
-@math{+oo}
-@end ifclear
-or
-@iftex
-@tex
-$-\infty$
-@end tex
-@end iftex
-@ifclear TEXFORMULAS
-@math{-oo}
-@end ifclear
-, depending on the
+@math{+@infinity{}} or @math{-@infinity{}}, depending on the
 signs of the operands.
 
 @item Overflow
@@ -276,61 +247,20 @@ occurs the result depends on the sign of the intermediate result and the
 current rounding mode (@w{IEEE 754}, @w{section 7.3}):
 @enumerate
 @item
-Round to nearest carries all overflows to
-@iftex
-@tex
-$\infty$
-@end tex
-@end iftex
-@ifclear TEXFORMULAS
-@math{oo}
-@end ifclear
+Round to nearest carries all overflows to @math{@infinity{}}
 with the sign of the intermediate result.
 @item
-Round towards @math{0} carries all overflows to the precision's largest
+Round toward @math{0} carries all overflows to the precision's largest
 finite number with the sign of the intermediate result.
 @item
-Round towards
-@iftex
-@tex
-$-\infty$
-@end tex
-@end iftex
-@ifclear TEXFORMULAS
-@math{-oo}
-@end ifclear
-carries positive overflows to the
+Round toward @math{-@infinity{}} carries positive overflows to the
 precision's largest finite number and carries negative overflows to
-@iftex
-@tex
-$-\infty$.
-@end tex
-@end iftex
-@ifclear TEXFORMULAS
-@math{-oo}.
-@end ifclear
+@math{-@infinity{}}.
 
 @item
-Round towards
-@iftex
-@tex
-$\infty$
-@end tex
-@end iftex
-@ifclear TEXFORMULAS
-@math{oo}
-@end ifclear
-carries negative overflows to the
+Round toward @math{@infinity{}} carries negative overflows to the
 precision's most negative finite number and carries positive overflows
-to
-@iftex
-@tex
-$\infty$.
-@end tex
-@end iftex
-@ifclear TEXFORMULAS
-@math{oo}.
-@end ifclear
+to @math{@infinity{}}.
 @end enumerate
 
 @item Underflow
@@ -565,9 +495,10 @@ unwanted exception and raise the remaining exceptions.
 mode is supported by the floating-point implementation the corresponding
 of the following macros is defined:
 
-@vtable @code
+@table @code
 @comment fenv.h
 @comment ISO
+@vindex FE_TONEAREST
 @item FE_TONEAREST
 Round to nearest.  This is the default mode and should always be used
 except when a different mode is explicitely required.  Only rounding to
@@ -575,35 +506,22 @@ nearest guarantees numeric stability of the computations.
 
 @comment fenv.h
 @comment ISO
+@vindex FE_UPWARD
 @item FE_UPWARD
-Round toward
-@iftex
-@tex
-$+\infty$.
-@end tex
-@end iftex
-@ifclear TEXFORMULAS
-@math{+oo}.
-@end ifclear
+Round toward @math{+@infinity{}}.
 
 @comment fenv.h
 @comment ISO
+@vindex FE_DOWNWARD
 @item FE_DOWNWARD
-Round toward
-@iftex
-@tex
-$-\infty$.
-@end tex
-@end iftex
-@ifclear TEXFORMULAS
-@math{-oo}.
-@end ifclear
+Round toward @math{-@infinity{}}.
 
 @comment fenv.h
 @comment ISO
+@vindex FE_TOWARDZERO
 @item FE_TOWARDZERO
 Round toward zero.
-@end vtable
+@end table
 
 At any time one of the above four rounding modes is selected.  To get
 information about the currently selected mode one can use this function:
@@ -682,10 +600,10 @@ The value is the square root of the value of the number pi.
 The value is the reziprocal of the square root of the value of the number pi.
 @end vtable
 
-ALl values are defined as @code{long double} values unless the compiler
+All values are defined as @code{long double} values unless the compiler
 does not support this type or @code{__STDC__} is not defined (both is
 unlikely).  Historically the numbers were @code{double} values and some
-old code still relies on this so you might want to add explizit casts if
+old code still relies on this so you might want to add explicit casts if
 the extra precision of the @code{long double} value is not needed.  One
 critical case are functions with a variable number of arguments, such as
 @code{printf}.
@@ -697,7 +615,7 @@ book about his C++ programming language where this value is used in
 examples (and perhaps some AT&T headers contain this value).  But due to
 possible name space problems (@code{PI} is a quite frequently used name)
 this value is not added to @file{math.h}.  Every program should use
-@code{M_PI} instead or add on the the compiler command line
+@code{M_PI} instead or add on the compiler command line
 @code{-DPI=M_PI}.
 
 
@@ -727,15 +645,15 @@ double} type.
 @comment ISO
 @deftypefn {Macro} int isgreater (@emph{real-floating} @var{x}, @emph{real-floating} @var{y})
 This macro determines whether the argument @var{x} is greater than
-@var{y}.  This is equivalent to @math{(x) > (y)} but no exception is
-raised if @var{x} or @var{y} are unordered.
+@var{y}.  This is equivalent to @code{(@var{x}) > (@var{y})} but no
+exception is raised if @var{x} or @var{y} are unordered.
 @end deftypefn
 
 @comment math.h
 @comment ISO
 @deftypefn {Macro} int isgreaterequal (@emph{real-floating} @var{x}, @emph{real-floating} @var{y})
 This macro determines whether the argument @var{x} is greater than or
-equal to @var{y}.  This is equivalent to @math{(x) >= (y)} but no
+equal to @var{y}.  This is equivalent to @code{(@var{x}) >= (@var{y})} but no
 exception is raised if @var{x} or @var{y} are unordered.
 @end deftypefn
 
@@ -743,7 +661,7 @@ exception is raised if @var{x} or @var{y} are unordered.
 @comment ISO
 @deftypefn {Macro} int isless (@emph{real-floating} @var{x}, @emph{real-floating} @var{y})
 This macro determines whether the argument @var{x} is less than @var{y}.
-This is equivalent @math{(x) < (y)} but no exception is raised if
+This is equivalent @code{(@var{x}) < (@var{y})} but no exception is raised if
 @var{x} or @var{y} are unordered.
 @end deftypefn
 
@@ -751,17 +669,18 @@ This is equivalent @math{(x) < (y)} but no exception is raised if
 @comment ISO
 @deftypefn {Macro} int islessequal (@emph{real-floating} @var{x}, @emph{real-floating} @var{y})
 This macro determines whether the argument @var{x} is less than or equal
-to @var{y}.  This is equivalent to @math{(x) <= (y)} but no exception
-is raised if @var{x} or @var{y} are unordered.
+to @var{y}.  This is equivalent to @code{(@var{x}) <= (@var{y})} but no
+exception is raised if @var{x} or @var{y} are unordered.
 @end deftypefn
 
 @comment math.h
 @comment ISO
 @deftypefn {Macro} int islessgreater (@emph{real-floating} @var{x}, @emph{real-floating} @var{y})
 This macro determines whether the argument @var{x} is less or greater
-than @var{y}.  This is equivalent to @math{(x) < (y) || (x) > (y)}
-(except that @var{x} and @var{y} are only evaluated once) but no
-exception is raised if @var{x} or @var{y} are unordered.
+than @var{y}.  This is equivalent to @code{(@var{x}) < (@var{y}) ||
+(@var{x}) > (@var{y})} (except that @var{x} and @var{y} are only
+evaluated once) but no exception is raised if @var{x} or @var{y} are
+unordered.
 @end deftypefn
 
 @comment math.h
@@ -774,7 +693,7 @@ All the macros are defined in a way to ensure that both arguments are
 evaluated exactly once and so they can be used exactly like the builtin
 operators.
 
-On several platform these macros are mapped to very efficient functions
+On several platform these macros are mapped to efficient instructions
 the processor understands.  But on machines missing these functions, the
 macros above might be rather slow.  So it is best to use the builtin
 operators unless it is necessary to use unordered comparisons.
@@ -855,6 +774,10 @@ 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
 the range of @code{-1} to @code{1}.
+
+This function is a GNU extension.  It should be used whenever both sine
+and cosine are needed but in protable applications there should be a
+fallback method for systems without this function.
 @end deftypefun
 
 @cindex complex trigonometric functions
@@ -1533,7 +1456,7 @@ may be as low as @code{32767}.
 
 @comment stdlib.h
 @comment ISO
-@deftypefun int rand ()
+@deftypefun int rand (void)
 The @code{rand} function returns the next pseudo-random number in the
 series.  The value is in the range from @code{0} to @code{RAND_MAX}.
 @end deftypefun
@@ -1562,9 +1485,14 @@ The prototypes for these functions are in @file{stdlib.h}.
 
 @comment stdlib.h
 @comment BSD
-@deftypefun {long int} random ()
+@deftypefun {int32_t} random (void)
 This function returns the next pseudo-random number in the sequence.
 The range of values returned is from @code{0} to @code{RAND_MAX}.
+
+@strong{Please note:} Historically this function returned a @code{long
+int} value.  But with the appearence of 64bit machines this could lead
+to severe compatibility problems and therefore the type now explicitly
+limits the return value to 32bit.
 @end deftypefun
 
 @comment stdlib.h