summaryrefslogtreecommitdiff
path: root/newlib/libm/libm.texinfo
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libm/libm.texinfo')
-rw-r--r--newlib/libm/libm.texinfo161
1 files changed, 161 insertions, 0 deletions
diff --git a/newlib/libm/libm.texinfo b/newlib/libm/libm.texinfo
new file mode 100644
index 00000000000..ab527a2444c
--- /dev/null
+++ b/newlib/libm/libm.texinfo
@@ -0,0 +1,161 @@
+\input texinfo.tex
+@setfilename libm.info
+@tex
+% NOTE LOCAL KLUGE TO AVOID TOO MUCH WHITESPACE FROM "makedoc"
+\global\long\def\example{%
+\begingroup
+\let\aboveenvbreak=\par
+\let\afterenvbreak=\par
+\parskip=0pt
+\lisp}
+\global\long\def\Eexample{%
+\Elisp
+\endgroup
+\vskip -\parskip% to cancel out effect of following \par
+}
+% END LOCAL WHITESPACE KLUGE
+@end tex
+@syncodeindex fn cp
+
+@ifinfo
+@format
+START-INFO-DIR-ENTRY
+* libm:: An ANSI-C conforming mathematical library.
+END-INFO-DIR-ENTRY
+@end format
+@end ifinfo
+
+@ifinfo
+This file documents an ANSI-C conforming mathematical subroutine library.
+
+Copyright (C) 1992, 1993, 1995 Cygnus Support
+
+@file{libm} includes software developed at SunPro, a Sun Microsystems,
+Inc. business. Permission to use, copy, modify, and distribute this
+software is freely granted, provided that this notice is preserved.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+@ignore
+Permission is granted to process this file through Tex and print the
+results, provided the printed document carries copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+
+@end ignore
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, subject to the terms
+of the GNU General Public License, which includes the provision that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+@end ifinfo
+@iftex
+@finalout
+@setchapternewpage odd
+@settitle Cygnus C Math Library
+@titlepage
+@title The Cygnus C Math Library
+@sp 1
+@subtitle @code{libm} 1.4
+@subtitle December 1995
+@author {Steve Chamberlain}
+@author {Roland Pesch}
+@author {Cygnus Support}
+@page
+
+@tex
+{\parskip=0pt
+\hfill Cygnus Support\par
+\hfill sac@@cygnus.com\par
+\hfill pesch@@cygnus.com\par
+}
+\global\parindent=0pt % Steve likes it this way
+@end tex
+
+@vskip 0pt plus 1filll
+Copyright @copyright{} 1992, 1993 Cygnus Support
+
+@file{libm} includes software developed at SunPro, a Sun Microsystems,
+Inc. business. Permission to use, copy, modify, and distribute this
+software is freely granted, provided that this notice is preserved.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, subject to the terms
+of the GNU General Public License, which includes the provision that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+@end titlepage
+@end iftex
+
+@ifinfo
+@node Top
+@top LIBM
+@end ifinfo
+
+@menu
+* Math:: The mathematical functions (`math.h').
+* Reentrancy:: The functions in libm are not reentrant by default.
+* Index::
+@end menu
+
+@include targetdep.tex
+
+@node Reentrancy
+@chapter Reentrancy Properties of @code{libm}
+
+@cindex reentrancy
+@cindex @code{matherr} and reentrancy
+When a libm function detects an exceptional case, @code{errno} may be
+set, the @code{matherr} function may be called, and a error message
+may be written to the standard error stream. This behavior may not
+be reentrant.
+
+@c The exact behavior depends on the currently selected error handling
+@c mode (IEEE, POSIX, X/Open, or SVID).
+
+With reentrant C libraries like the Cygnus C library, @code{errno} is
+a macro which expands to the per-thread error value. This makes it thread
+safe.
+
+When the user provides his own @code{matherr} function it must be
+reentrant for the math library as a whole to be reentrant.
+
+In normal debugged programs, there are usually no math subroutine
+errors---and therefore no assignments to @code{errno} and no @code{matherr}
+calls; in that situation, the math functions behave reentrantly.
+
+@node Index
+@unnumbered Index
+@printindex cp
+
+@tex
+% I think something like @colophon should be in texinfo. In the
+% meantime:
+\long\def\colophon{\hbox to0pt{}\vfill
+\centerline{The body of this manual is set in}
+\centerline{\fontname\tenrm,}
+\centerline{with headings in {\bf\fontname\tenbf}}
+\centerline{and examples in {\tt\fontname\tentt}.}
+\centerline{{\it\fontname\tenit\/} and}
+\centerline{{\sl\fontname\tensl\/}}
+\centerline{are used for emphasis.}\vfill}
+\page\colophon
+% Blame: pesch@cygnus.com, 28mar91.
+@end tex
+
+@contents
+@bye
+
+