IBM Support

MASS SIMD library for AIX -- Overview

Product Documentation


Abstract

This document provides an overview of the MASS SIMD library for AIX.

Content

The MASS SIMD library, libmass_simdp7.a, contain an accelerated set of frequently used mathematical functions for the POWER7™ processor, that provide improved performance over the corresponding standard system library functions. The functions compute the same mathematical operation for each element of the SIMD vector operands.

AIX MASS SIMD functions -- single precision


acosf4(vx) computes the arc cosine of each element of vx
acoshf4(vx) computes the arc hyperbolic cosine of each element of vx
asinf4(vx) computes the arc sine of each element of vx
asinhf4(vx) computes the arc hyperbolic sine of each element of vx
atan2f4(vx, vy) computes the arc tangent of each element of vx
atanf4(vx) computes the arc tangent of each element of vx
atanhf4(vx) computes the arc hyperbolic tangent of each element of vx
cbrtf4(vx) computes the cube root of each element of vx
cosf4(vx) computes the cosine of each element of vx
coshf4(vx) computes the hyperbolic cosine of each element of vx
divf4(vx) computes the quotient vx/vy
erfcf4(vx) computes the complimentary error function of each element of vx
erff4(vx) computes the error function of each element of vx
expf4(vx) computes the exponential of each element of vx
exp2f4(vx) computes 2 raised to the power of each element of vx
expm1f4(vx) computes (the exponential of each element of vx) -1
exp2m1f4 computes (2 raised to the power of each element of vx) - 1
hypotf4(vx,vy) computes the square root of each element of vx*vx + vy*vy
log10f4(vx) computes the base-10 logarithm of each element of vx
log1pf4(vx) computes the natural logarithm of each element of (vx+1)
log2f4(vx) computes the base-2 logarithm of each element of vx
log21pf4 computes the base-2 logarithm of each element of (vx+1)
logf4(vx) computes the natural logarithm of each element of vx
powf4(vx) computes each element of vx raised to the power of the corresponding element of vy
qdrtf4(vx) computes the 4th root of each element of vx
rcbrtf4(vx) computes the reciprocal of the cube root of each element of vx
recipf4(vx) computes the reciprocal of each element of vx
rqdrtf4(vx) computes the reciprocal of the 4th root of each element of vx
rsqrtf4(vx) computes the reciprocal of the square root of each element of vx
sinf4(vx) computes the sine of each element of vx 
sincosf4(vx,vs,vc) sets each element of vs and vc to the sine and cosine of the corresponding element of vx
sinhf4(vx) computes the hyperbolic sine of each element of vx
sqrtf4(vx) computes the square root of each element of vx
tanf4(vx) computes the tangent of each element of vx
tanhf4(vx) computes the hyperbolic tangent of each element of vx

AIX MASS SIMD functions -- double precision
(These compute the same operation as the corresponding single-precision function above.)


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

Example C/C++ prototypes and Fortran interfaces

C/C++ prototypes are available in mass_simdp7.h. Fortran interfaces are available in mass_simdp7.include.

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



Example C/C++ prototypes (double precision)
             vector double acosd2 (vector double vx);
        vector double atan2d2 (vector double vx, vector double vy);
        void sincosf4 (vector float vx, vector float *vs, vector float *vc);

Example C/C++ prototypes (single precision)
        vector float acosf4 (vector float vx);
        vector float atan2f4 (vector float vx, vector float vy);
        void sincosf4 (vector float vx, vector float *vs, vector float *vc);

Example Fortran interfaces (double precision)
        vector(real*8) function acosd2 (x)
          vector(real*8), value :: x
        end function
        vector(real*8) function atan2d2 (x,y)
          vector(real*8), value :: x,y
        end function
        subroutine sincosd2 (x,s,c)
          vector(real*8), value :: x
        vector(real*8) s,c
        end subroutine

Example Fortran interfaces (single precision)
        vector(real*4) function acosf4 (x)
          vector(real*4), value :: x
        end function
        vector(real*4) function atan2f4 (x,y)
          vector(real*4), value :: x,y
        end function
        subroutine sincosf4 (x,s,c)
          vector(real*4), value :: x
          vector(real*4) s,c
        end subroutine

[{"Product":{"code":"SSVKBV","label":"Mathematical Acceleration Subsystem"},"Business Unit":{"code":"BU050","label":"BU NOT IDENTIFIED"},"Component":"Libraries","Platform":[{"code":"PF002","label":"AIX"}],"Version":"6.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
17 June 2018

UID

swg27018492