MASS scalar library for Blue Gene -- Overview

Product documentation


Abstract

This document provides an overview of the MASS scalar library for Blue Gene®.

Content

The MASS scalar library, libmass.a, contains an accelerated set of frequently-used mathematical functions.

MASS Scalar Library for Blue Gene/Q

For information on the MASS scalar library for Blue Gene/Q, click on the following links:
Using the scalar library (C/C++)
Using the scalar library (Fortran)

MASS Scalar Library for Blue Gene/L and Blue Gene/P

The libmass.a library can be used with either Fortran or C/C++ applications and will run in 32-bit mode on Blue Gene/L or Blue Gene/P processors.

C/C++ prototypes not already in math.h are available in mass.h. Fortran interfaces for functions that are not Fortran intrinsic functions are available in mass.include. A C/C++ calling program can obtain prototypes for all the scalar MASS functions by including both math.h and mass.h. A Fortran calling program should include mass.include.

Scalar library functions -- double precision
acos(x) returns the arc cosine of x
acosh(x) returns the arc hyperbolic cosine of x
asin(x) returns the arc sine of x
asinh(x) returns the arc hyperbolic sine of x
atan(x) returns the arc tangent of x
atan2(x,y) returns the arc tangent of x/y
atanh(x) returns the arc hyperbolic tangent of x
cbrt(x) returns the cube root of x
copysign(x,y) returns x with the sign of y
cos(x) returns the cosine of x
cosh(x) returns the hyperbolic cosine of x
cosisin(x) returns a complex number with real part cos(x) and imaginary part sin(x)
dnint(x) returns the nearest integer to x as a double
erf(x) returns the error function of x
erfc(x) returns the complimentary error function of x
exp(x) returns the exponential function of x
expm1(x) returns (the exponential function of x) - 1
hypot(x,y) returns the square root of x*x + y*y
lgamma(x) returns the natural logarithm of the absolute value of the gamma function of x
log(x) returns the natural logarithm of x
log10(x) returns the base-10 logarithm of x
log1p(x) returns the natural logarithm of (x+1)
pow(x,y) (C/C++) or x**y (Fortran) returns x raised to the power y
rint(x) returns the nearest integer to x as a double
rsqrt(x) returns the reciprocal of the square root of x
sincos(x, s, c) sets s to the sine of x and c to the cosine of x
sin(x) returns the sine of x
sinh(x) returns the hyperbolic sine of x
sqrt(x) returns the square root of x
tan(x) returns the tangent of x
tanh(x) returns the hyperbolic tangent of x

Scalar library functions -- single precision
(Unless otherwise noted, these compute the same operation as the corresponding double-precision versions above.)
acosf
acoshf
anint(x) returns the nearest integer to x as a float
asinf
asinhf
atan2f
atanf
atanhf
cbrtf
copysignf
cosf
coshf
erfcf
erff
expf
expm1f
hypotf
lgammaf
log10f
log1pf
logf
powf (C/C++) or ** (Fortran)
rintf(x) returns the nearest integer to x as a float
sinf
sinhf
tanf
tanhf

Example C/C++ prototypes and Fortran interfaces

When called from C, all the scalar MASS functions except dnint accept double arguments and return a double result. The dnint function takes a pointer to a double argument. When called from Fortran, all the scalar MASS functions accept real(8) arguments and return a real(8) result.

The C/C++ prototype or Fortran interface for the MASS scalar functions each has the form of the applicable one of the following examples:

Example C/C++ prototypes for the MASS scalar functions (double precision)
        double acos (double x);
    double atan2 (double x, double y);
    double _Complex cosisin (double x);
    void sincos (double x, double *s, double *c);
 
Example C/C++ prototypes for the MASS scalar functions (single precision)
        float acosf (float x);
        float atan2f (float x, float y);
        float _Complex cosisin (float);
        void sincos (float x, float *s, float *c);
 
Example Fortran interfaces for the MASS scalar functions (double precision)
        real*8 function acos (x)
          real*8, value :: x
        end function
        real*8 function atan2 (x, y)
          real*8, value ::  x, y
        end function
        complex*16 function cosisin (x)
          real*8, value ::  x
        end function
        subroutine sincos (x, s, c)
          real*8, value :: x
          real*8 s, c
        end function

Example Fortran interfaces for the MASS scalar functions (single precision)

        real*4 function acosf (x)
          real*4, value :: x
        end function
        real*4 function atan2f (x, y)
          real*4, value ::  x, y
        end function
        complex*8 function cosisinf (x)
          real*4, value ::  x
        end function
        subroutine sincosf (x, s, c)
          real*4, value :: x
          real*4 s, c
        end function

The trigonometric functions (sin, cos, tan) return NaN (Not-a-Number) for large arguments (abs(x)>2**50*pi). The pow (C/C++) and x**y (Fortran) functions accept negative x arguments with integer y arguments.

Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

Mathematical Acceleration Subsystem
Libraries

Software version:

4.4, 7.3

Operating system(s):

Linux

Reference #:

7018496

Modified date:

2012-06-16

Translate my page

Machine Translation

Content navigation