HP-UX Floating-Point Guide
112 Chapter 4
HP-UX Math Libraries on HP 9000 Systems
Contents of the HP-UX Math Libraries
Contents of the HP-UX Math Libraries
This section describes in some detail the contents of the math libraries.
These libraries include:
• Scalar math libraries (libm and libcl)
• The BLAS library libblas (provided with the HP Fortran 90 and HP
FORTRAN/9000 products only)
• The vector library libvec (provided with the HP FORTRAN/9000
product only) (obsolete)
Scalar Math Libraries (libm and libcl)
There are two sets of scalar math libraries, a 32-bit library implemented
using the PA1.1 instruction set and a 64-bit library implemented using
the PA2.0 instruction set. In both sets of libraries, the most important
functions are carefully optimized. See Table 1-3 on page 29 for the path
names of these libraries.
For even faster performance, a number of frequently used math
functions are implemented in the millicode library as well as in the
standard math library. See “Millicode Versions of Math Library
Functions” for details.
Millicode Versions of Math Library Functions
Several of the most frequently used math functions are implemented in
the millicode library as well as in the math library. The millicode
versions have a streamlined calling sequence and are usually faster than
their counterparts in the math library.
Like libm and libcl, the millicode library has both a 32-bit version and
a 64-bit version. The 32-bit version, /usr/lib/milli.a, contains PA1.1
functions, called when you compile with +DA1.1, and PA2.0 functions,
called when you compile with +DA2.0. The 64-bit version,
/usr/lib/pa20_64/milli.a, contains routines that are called when
you compile with +DA2.0W.
Millicode versions exist for the following Fortran and C functions. They
have double-precision versions only, unless otherwise specified.