summaryrefslogtreecommitdiff
path: root/manual
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
parent0413b54c02d31cae62e8d13b3ee7ac109ceeff0e (diff)
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')
-rw-r--r--manual/creature.texi1
-rw-r--r--manual/math.texi200
2 files changed, 65 insertions, 136 deletions
diff --git a/manual/creature.texi b/manual/creature.texi
index 5eb665d2ef..edac770f6c 100644
--- a/manual/creature.texi
+++ b/manual/creature.texi
@@ -73,6 +73,7 @@ included as well as the @w{ISO C}, POSIX.1, POSIX.2, and X/Open material.
@comment (none)
@comment XOPEN
@defvr Macro _XOPEN_SOURCE
+@defvrx Macro _XOPEN_SOURCE_EXTENDED
If you define this macro, functionality described in the X/Open
Portability Guide is included. This is a superset of the POSIX.1 and
POSIX.2 functionality and in fact @code{_POSIX_SOURCE} and
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