# Mathematical Acceleration Subsystem (MASS) libraries for Linux previous versions

## Downloadable files

## Abstract

The MASS libraries for Linux consist of a set of mathematical functions for C, C++, and Fortran-language applications that are tuned for specific POWER architectures.

## Download Description

Unless noted otherwise, each successive MASS version includes the material from previous versions that has not been changed.

Version 4.1

- Introduces 32- and 64-bit scalar libraries of mathematical intrinsic functions, libmass.a, and libmass_64.a, and 32- and 64-bit vector libraries libmassv.a, libmassv_64.a, libmassvp3.a, libmassvp3_64.a, libmassvp4.a, and libmassvp4_64.a (for generic POWER, POWER3, and POWER4, respectively), that offer tuned alternatives for functions in the Linux system math library. The vector functions vrec, vsqrt, vrsqrt, vsrec, vssqrt, and vsrsqrt are provided.

Version 4.1 Scalar (scalar_prelim)

- A preliminary release consisting of scalar libraries libmass.a, and libmass_64.a, containing exp and log functions. (Does not include the vector libraries.)

Version 4.2

- Contains scalar and vector libraries including all functions in the previous versions, plus the following new functions. Scalar functions: atan, atan2, cos, cosh, dnint, pow, rsqrt, sin, sinh, sqrt, tan, tanh. Vector functions: vacos, vasin, vatan2, vcbrt, vcosh, vcosisin, vcos, vdint, vdiv, vdnint, vexpm1, vexp, vlog10, vlog1p, vlog, vpow, vrcbrt, vsin, vsinh, vtanh, vtan, vsacos, vsasin, vsatan2, vscbrt, vscosh, vscosisin, vscos, vsdiv, vsexpm1, vsexp, vslog10, vslog1p, vslog, vspow, vsrcbrt, vssin, vssinh, vstanh, vstan.

Version 4.3

- Adds 14 new functions: sincos, cosisin, vacosh, vasinh, vatanh, vpopcnt4, vpopcnt8, vqdrt, vrqdrt, vsacosh, vsasinh, vsatanh, vsqdrt, and vsrqdrt.

- Adds a new library libmassvp4gp.a, which contains the following functions tuned for the POWER4 (GP) architecture: vdiv, vrec, vsdiv, vsrec.

- Adds a new library libmassvp5.a, which contains functions tuned for the POWER5 architecture.

- Improves the performance of many functions.

- Contains various bug fixes.

- The libmassv.a, libmassv_64.a, libmassvp3.a, and libmassvp3_64.a present in v4.2 are no longer included.

Version 4.4

- Adds new vector libraries libmassvp6.a and libmassvp6_64.a that contain the full set of 60 MASS vector routines tuned for POWER6: vacos, vacosh, vasin, vasinh, vatan2, vatanh, vcbrt, vcos, vcosh, vcosisin, vdint, vdiv, vdnint, vexp, vexpm1, vlog, vlog10, vlog1p, vpopcnt4, vpopcnt8, vpow, vqdrt, vrcbrt, vrec, vrqdrt, vrsqrt, vsin, vsincos, vsinh, vsqrt, vtan, vtanh, vsacos, vsacosh, vsasin, vsasinh, vsatan2, vsatanh, vscbrt, vscos, vscosh, vscosisin, vsdiv, vsexp, vsexpm1, vslog, vslog10, vslog1p, vspow, vsqdrt, vsrcbrt, vsrec, vsrqdrt, vsrsqrt, vssin, vssincos, vssinh, vssqrt, vstan, vstanh.

- Adds 25 new single-precision scalar routines to libmass.a and libmass_64.a: acosf, acoshf, asinf, asinhf, atan2f, atanf, cbrtf, copysignf, atanhf, cosf, coshf, erfcf, erff, expf, expm1f, hypotf, lgammaf, log10f, log1pf, logf, powf, sinf, sinhf, tanf, tanhf.

- Adds 15 new double-precision scalar routines to libmass.a and libmass_64.a: acos, acosh, anint, asin, asinh, atanh, cbrt, copysign, cosisin, erf, erfc, hypot, lgamma, log10, sincos.

Version 6.0

- Adds new vector libraries libmassvp7.a and libmassvp7_64.a that contain the following routines tuned for POWER7 processors (functions new in this version are followed by *): vacos, vacosh, vasin, vasinh, vatan2, vatan*, vatanh, vcbrt, vcos, vcosisin, vcosh, vdint, vdiv, vdnint, verfc*, verf*, vexp2*, vexp2m1*, vexp, vexpm1, vhypot*, vlgamma*, vlog10, vlog1p, vlog2*, vlog21p*, vlog, vpow, vqdrt, vrcbrt, vrec, vrqdrt, vrsqrt, vsin, vsincos, vsinh, vsqrt, vtan, vtanh, vsacos, vsacosh, vsasin, vsasinh, vsatan2, vsatan*, vsatanh, vscbrt, vscos, vscosisin, vscosh, vsdiv, vserfc*, vserf*, vsexp2*, vsexp2m1*, vsexp, vsexpm1, vshypot*, vslog10, vslog1p, vslog2*, vslog21p*, vslog, vspow, vsqdrt, vsrcbrt, vsrec, vsrqdrt, vsrsqrt, vssin, vssincos, vssinh, vssqrt, vstan, vstanh, vpopcnt4, vpopcnt8.

- Adds new SIMD libraries libmass_simdp7.a and libmass_simdp7_64.a that contain the following routines tuned for POWER7 processors (all these functions are new in this version): acosd2, asind2, atan2d2, atand2, atanhd2, cbrtd2, cosd2, coshd2, divd2, erfcd2, erfd2, exp2d2, exp2m1d2, expd2, expm1d2, hypotd2, lgammad2, log10d2, log1pd2, log2d2, log21pd2, logd2, powd2, qdrtd2, rcbrtd2, recipd2, rqdrtd2, rsqrtd2, sind2,

sincosd2, sinhd2, sqrtd2, tand2, tanhd2, acosf4, acoshf4, asinf4, asinhf4, atan2f4, atanf4, atanhf4, cbrtf4, cosf4, coshf4, divf4, erfcf4, erff4, expf4, exp2f4, expm1f4, exp2m1f4, hypotf4, log10f4, log1pf4, log2f4, log21pf4, logf4, powf4, qdrtf4, rcbrtf4, recipf4, rqdrtf4, rsqrtf4, sinf4, sincosf4, sinhf4, sqrtf4, tanf4, tanhf4.

## Prerequisites

Note: If you are using any of the following products, be aware that a fully-supported version of the MASS libraries is shipped with the product, while any MASS libraries obtained from this download are not officially supported.

* IBM XL C/C++ Enterprise Edition for Linux, V7.0 or higher

* IBM XL C Enterprise Edition for Linux, V7.0 or higher

* IBM XL Fortran Enterprise for Linux, V9.1 or higher

## Installation Instructions

The MASS libraries are packaged as a compressed tar file, MASS_N_OS.tar.gz, where N represents the MASS version (e.g. scalar_prelim or 4.2) and OS represents the Linux distribution and version number (e.g. RHEL3 or SLES9).

The .tar package contains the following files, depending on the version:

* libmass.a - 32-bit MASS scalar library for general use (version scalar_prelim, v4.2, and up).

* libmass_64.a - 64-bit MASS scalar library for general use (version scalar_prelim, v4.2, and up).

* LICENSE - MASS license.

* libmassv.a - 32-bit MASS vector library for general use (v4.2 and lower).

* libmassv_64.a - 64-bit MASS vector library for general use (v4.2 and lower).

* libmassvp3.a - 32-bit MASS vector library with functions tuned for the POWER3 architecture (v4.2 and lower).

* libmassvp3_64.a - 64-bit MASS vector library with functions tuned for the POWER3 architecture (v4.2 and lower).

* libmassvp4.a - 32-bit MASS vector library with functions tuned for the POWER4 architecture.

* libmassvp4_64.a - 64-bit MASS vector library with functions tuned for the POWER4 architecture.

* libmassvp5.a - 32-bit MASS vector library with functions tuned for the POWER5 architecture (v4.3 and up).

* libmassvp5_64.a - 64-bit MASS vector library with functions tuned for the POWER5 architecture (v4.3 and up).

* libmassvp6.a - 32-bit MASS vector library with functions tuned for the POWER6 architecture (v4.4 and up).

* libmassvp6_64.a - 64-bit MASS vector library with functions tuned for the POWER6 architecture (v4.4 and up).

* libmassvp7.a - 32-bit MASS vector library with functions tuned for the POWER6 architecture (v6.0 and up).

* libmassvp7_64.a - 64-bit MASS vector library with functions tuned for the POWER6 architecture (v6.0 and up).

* libmassv.f - Fortran source file of simple loops for the MASS vector functions, for use on non-IBM machines.

* libmassv.c - C/C++ source file of simple loops for the MASS vector functions, for use on non-IBM machines.

* mass.include - Header file containing the Fortran interface block for scalar functions that are not Fortran intrinsics (v4.2 and up).

* massv.include - Header file containing the Fortran interface blocks for the vector functions.

* mass.h - Header file containing the C/C++ prototype for scalar functions not in math.h (v4.2 and up).

* massv.h - Header file containing C/C++ prototypes for the vector functions.

The MASS libraries are more convenient to use when they are installed with root access and linked to the conventional /usr/lib/ directory because the user can specify the shorthand -lmass flags during compilation, instead of specifying an explicit path for the libraries.

The tar file creates the directory mass/N/OS/ with subdirectories lib, lib64, include, and src, in the current directory, where N is the MASS version number and OS is the Linux distribution and version number.

To download and install the MASS libraries:

1. Download the correct tar ball based on your Linux distribution and version number.

2. Place the tar ball in a temporary directory (e.g. /tmp).

3. Go to the directory where you would like the MASS libraries to exist on the system (e.g. /home/userA/):

(You will need root authority if you try to place the MASS libraries in some system directories, such as /usr/local)

cd /home/userA/

4. Uncompress and untar the tar ball:

tar -xzvf MASS_N_OS.tar.gz

where OS represents the Linux distribution and version number.

5. If you need to link without using the -L path at compile time, you will need to create symbolic links as follows (you require

root authority in this step):

ln -s /home/userA/mass/N/OS/lib/* /usr/lib/

ln -s /home/userA/mass/N/OS/lib64/* /usr/lib64/

## Download package

Download | RELEASE DATE | LANGUAGE | SIZE(Bytes) | Download Options |
---|---|---|---|---|

MASS 4.1 for RHEL3 | 10/5/2004 | English | 95531 | FTP |

MASS 4.1 for SLES9 | 10/5/2004 | English | 96888 | FTP |

MASS 4.1 Scalar for RHEL3 | 1/14/2005 | English | 9202 | FTP |

MASS 4.1 Scalar for SLES9 | 1/14/2005 | English | 9216 | FTP |

MASS 4.2 for RHEL3 | 4/6/2005 | English | 826739 | FTP |

MASS 4.2 for RHEL4 | 4/6/2005 | English | 826956 | FTP |

MASS 4.2 for SLES9 | 4/6/2005 | English | 826898 | FTP |

MASS 4.3 for RHEL4 | 23/12/2005 | English | 1621592 | FTP |

MASS 4.3 for SLES9 | 23/12/2005 | English | 1622105 | FTP |

MASS 4.4 for RHEL5 | 7/27/2007 | English | 2993562 | FTP |

MASS 4.4 for SLES10 | 7/27/2007 | English | 2992571 | FTP |

MASS 6.0 for RHEL5/SLES10 | 10-12-23 | English | 8702282 | FTP |

## Technical support

The software provided in this Web download is not officially supported by IBM. However, you can send queries to the following e-mail address:

masslib@ca.ibm.com

### Document information

**More support for:**
Mathematical Acceleration Subsystem

Libraries

**Software version:**
4.1, 4.2, 4.3, 4.4, 6.0

**Operating system(s):**
Linux

**Reference #:**
4011315

**Modified date:**
14 January 2011