Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ intro(3m) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cc(1)

intro(2)

intro(3)

math(5)



intro(3M)               LIBRARY FUNCTIONS               intro(3M)



NAME
     intro - introduction to math libraries

SYNOPSIS
     cc [flag ...] file ...  -lm [library ...]

     cc -O -Ksd [flag ...] file ...  -J sfm [library ...]

     #include <math.h>

DESCRIPTION
     This section describes the functions in the math  libraries,
     libm  and  libsfm.   Declarations for these functions may be
     obtained from the #include file math.h.   Several  generally
     useful  mathematical  constants  are also defined there [see
     intro(3) and math(5)].

     The math libraries are not automatically  loaded  by  the  C
     compilation system; use the -l or -J options to cc to access
     the libraries as follows:

             -lm       Search the regular math library, libm.

             -J sfm    Do in-line expansion of functions from the
                       fast single-precision assembly source math
                       library,  libsfm.   Specify  -O  -Ksd   to
                       optimize for speed.

     libm    Contains the full set of  double-precision  routines
             plus  some  single-precision routines (designated by
             the suffix f) that give better performance with less
             precision.  Selected routines are hand-optimized for
             performance.  The optimized  routines  include  sin,
             cos,  tan,  atan,  atan2,  exp, log, log10, pow, and
             sqrt and their single-precision equivalents.

     libsfm  Contains the  functions  sinf,  cosf,  tanf,  asinf,
             acosf,  atanf,  expf, logf, log10f, powf, and sqrtf.
             The source library routines are in-line expanded  by
             the  optimizer to provide faster execution by reduc-
             ing the overhead of argument passing, function  cal-
             ling  and  returning, and return value passing.  The
             source library is  designed  for  applications  that
             desire an increase in speed at the potential cost of
             size.

             libsfm should be used only when necessary  and  with
             extreme  caution.   It  is a special purpose library
             that does not do error checking or domain reduction.
             In  other words, these functions never call matherr,
             and arguments aren't reduced to be within  a  finite
             range.



                                                                1





intro(3M)               LIBRARY FUNCTIONS               intro(3M)


                               π
             Inputs to -
n
s
i<
n
f
xa<
n
d-
2
n
cosf
must be in the range Inputs t-
o
-
n
t
a<
n
f
xm<
u
s2
t
be in the range Inputs t-
o
sqrtf, logf, and log10f must be greater than 0. DEFINITIONS See intro(3) for C language definitions. FILES LIBDIR usually /usr/ccs/lib LIBDIR/libm.a LIBDIR/libsfm.sa SEE ALSO cc(1), intro(2), intro(3), math(5). The ``Floating Point Operations'' chapter in the Programmer's Guide: ANSI C and Programming Support Tools. DIAGNOSTICS Error handling varies according to compilation mode. Under the -Xt (default) option to cc, these functions return the conventional values 0, +HUGE, or NaN when the function is undefined for the given arguments or when the value is not representable. In the -Xa and -Xc compilation modes, +HUGEVAL is returned instead of +HUGE. (HUGEVAL and HUGE are defined in math.h to be infinity and the largest- magnitude single-precision number, respectively.) In every case, the external variable errno [see intro(2)] is set to the value EDOM or ERANGE, although the value may vary for a given error depending on compilation mode. See the table under matherr(3M) below. 2

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026