HP OpenVMS Systems Documentation 
OpenVMS VAX RTL Mathematics (MTH$) Manual
Part 3
The Vector MTH$ Reference Section provides detailed descriptions of two
sets of vector routines provided by the OpenVMS RTL Mathematics (MTH$)
Facility, BLAS Level 1 and FOLR. The BLAS Level 1 are the Basic Linear
Algebraic Subroutines designed by Lawson, Hanson, Kincaid, and Krogh
(1978). The FOLR (First Order Linear Recurrence) routines provide a
vectorized algorithm for the linear recurrence relation.

OpenVMS usage:  longword_signed 
type:  longword integer (signed) 
access:  write only 
mechanism:  by value 
For the real versions of this routine, the function value is the index of the first occurrence of a vector element having the maximum absolute value, as follows:
For the complex versions of this routine, the function value is the index of the first occurrence of a vector element having the largest sum of the absolute values of the real and imaginary parts of the vector elements, as follows:
n
OpenVMS usage: longword_signed type: longword integer (signed) access: read only mechanism: by reference
Number of elements in vector x . The n argument is the address of a signed longword integer containing the number of elements. If you specify a negative value or 0 for n, 0 is returned.x
OpenVMS usage: floating_point or complex_number type: F_floating, D_floating, G_floating real or F_floating, D_floating, G_floating complex access: read only mechanism: by reference, array reference
Array containing the elements to be accessed. All elements of array x are accessed only if the increment argument of x, called incx, is 1. The x argument is the address of a floatingpoint or floatingpoint complex number that is this array. This argument is an array of length at least:
where:
n  =  number of vector elements specified in n 
incx  =  increment argument for the array x specified in incx 
Specify the data type as follows:
Routine  Data Type for x 

BLAS1$VISAMAX  Ffloating real 
BLAS1$VIDAMAX  Dfloating real 
BLAS1$VIGAMAX  Gfloating real 
BLAS1$VICAMAX  Ffloating complex 
BLAS1$VIZAMAX  Dfloating complex 
BLAS1$VIWAMAX  Gfloating complex 
If n is less than or equal to 0, then imax is 0.
OpenVMS usage:  longword_signed 
type:  longword integer (signed) 
access:  read only 
mechanism:  by reference 
where:
x  =  array specified in x 
i  =  element of the vector x 
incx  =  increment argument for the array x specified in incx 
If you specify a negative value for incx, it is interpreted as the absolute value of incx.
BLAS1$VISAMAX, BLAS1$VIDAMAX, and BLAS1$VIGAMAX find the index, i, of the first occurrence of a vector element having the maximum absolute value. BLAS1$VICAMAX, BLAS1$VIZAMAX, and BLAS1$VIWAMAX find the index, i, of the first occurrence of a vector element having the largest sum of the absolute values of the real and imaginary parts of the vector elements.Vector x contains n elements that are accessed from array x by stepping incx elements at a time. The vector x is a real or complex singleprecision or doubleprecision (D and G) nelement vector. The vector can be a row or a column of a matrix. Both forward and backward indexing are permitted.
BLAS1$VISAMAX, BLAS1$VIDAMAX, and BLAS1$VIGAMAX determine the smallest integer i of the nelement vector x such that:
BLAS1$VICAMAX, BLAS1$VIZAMAX, and BLAS1$VIWAMAX determine the smallest integer i of the nelement vector x such that:
You can use the BLAS1$VIxAMAX routines to obtain the pivots in Gaussian elimination.
The publicdomain BLAS Level 1 IxAMAX routines require a positive value for incx. The RunTime Library BLAS Level 1 routines interpret a negative value for incx as the absolute value of incx.
The algorithm does not provide a special case for incx = 0. Therefore, specifying 0 for incx has the effect of setting imax equal to 1 using vector operations.
C C To obtain the index of the element with the maximum C absolute value. C INTEGER IMAX,N,INCX REAL X(40) INCX = 2 N = 20 IMAX = BLAS1$VISAMAX(N,X,INCX) 
The Obtain the Sum of the Absolute Values of the Elements of a Vector routine determines the sum of the absolute values of the elements of the nelement vector x .
BLAS1$VSASUM n ,x ,incxBLAS1$VDASUM n ,x ,incx
BLAS1$VGASUM n ,x ,incx
BLAS1$VSCASUM n ,x ,incx
BLAS1$VDZASUM n ,x ,incx
BLAS1$VGWASUM n ,x ,incx
Use BLAS1$VSASUM for singleprecision real operations.
Use BLAS1$VDASUM for doubleprecision real (Dfloating) operations.
Use BLAS1$VGASUM for doubleprecision real (Gfloating) operations. Use BLAS1$VSCASUM for singleprecision complex operations.
Use BLAS1$VDZASUM for doubleprecision complex (Dfloating) operations.
Use BLAS1$VGWASUM for doubleprecision complex (Gfloating) operations.
OpenVMS usage: floating_point type: F_floating, D_floating, or G_floating real access: write only mechanism: by value
The function value, called sum, is the sum of the absolute values of the elements of the vector x . The data type of the function value is a real number; for the BLAS1$VSCASUM, BLAS1$VDZASUM, and BLAS1$VGWASUM routines, the data type of the function value is the real data type corresponding to the complex argument data type.
n
OpenVMS usage: longword_signed type: longword integer (signed) access: read only mechanism: by reference
Number of elements in vector x to be added. The n argument is the address of a signed longword integer containing the number of elements.x
OpenVMS usage: floating_point or complex_number type: F_floating, D_floating, G_floating real or F_floating, D_floating, G_floating complex access: read only mechanism: by reference, array reference
Array containing the elements to be accessed. All elements of array x are accessed only if the increment argument of x, called incx, is 1. The x argument is the address of a floatingpoint or floatingpoint complex number that is this array. This argument is an array of length at least:
where:
n  =  number of vector elements specified in n 
incx  =  increment argument for the array x specified in incx 
Specify the data type as follows:
Routine  Data Type for x 

BLAS1$VSASUM  Ffloating real 
BLAS1$VDASUM  Dfloating real 
BLAS1$VGASUM  Gfloating real 
BLAS1$VSCASUM  Ffloating complex 
BLAS1$VDZASUM  Dfloating complex 
BLAS1$VGWASUM  Gfloating complex 
If n is less than or equal to 0, then sum is 0.0.
OpenVMS usage:  longword_signed 
type:  longword integer (signed) 
access:  read only 
mechanism:  by reference 
where:
x  =  array specified in x 
i  =  element of the vector x 
incx  =  increment argument for the array x specified in incx 
If you specify a negative value for incx, it is interpreted as the absolute value of incx.
BLAS1$VSASUM, BLAS1$VDASUM, and BLAS1$VGASUM obtain the sum of the absolute values of the elements of the nelement vector x . BLAS1$VSCASUM, BLAS1$VDZASUM, and BLAS1$VGWASUM obtain the sum of the absolute values of the real and imaginary parts of the elements of the nelement vector x .Vector x contains n elements that are accessed from array x by stepping incx elements at a time. The vector x is a real or complex singleprecision or doubleprecision (D and G) nelement vector. The vector can be a row or a column of a matrix. Both forward and backward indexing are permitted.
BLAS1$VSASUM, BLAS1$VDASUM, and BLAS1$VGASUM compute the sum of the absolute values of the elements of x , which is expressed as follows:
BLAS1$VSCASUM, BLAS1$VDZASUM, and BLAS1$VGWASUM compute the sum of the absolute values of the real and imaginary parts of the elements of x , which is expressed as follows:
The publicdomain BLAS Level 1 xASUM routines require a positive value for incx. The RunTime Library BLAS Level 1 routines interpret a negative value for incx as the absolute value of incx.
The algorithm does not provide a special case for incx = 0. Therefore, specifying 0 for incx has the effect of computing n*x[1] using vector operations.
Rounding in the summation occurs in a different order than in a sequential evaluation of the sum, so the final result may differ from the result of a sequential evaluation.
C C To obtain the sum of the absolute values of the C elements of vector x: C INTEGER N,INCX REAL X(20),SUM INCX = 1 N = 20 SUM = BLAS1$VSASUM(N,X,INCX) 
The Multiply a Vector by a Scalar and Add a Vector routine computes ax + y , where a is a scalar number and x and y are nelement vectors.
BLAS1$VSAXPY n ,a ,x ,incx ,y ,incyBLAS1$VDAXPY n ,a ,x ,incx ,y ,incy
BLAS1$VGAXPY n ,a ,x ,incx ,y ,incy
BLAS1$VCAXPY n ,a ,x ,incx ,y ,incy
BLAS1$VZAXPY n ,a ,x ,incx ,y ,incy
BLAS1$VWAXPY n ,a ,x ,incx ,y ,incy
Use BLAS1$VSAXPY for singleprecision real operations.
Use BLAS1$VDAXPY for doubleprecision real (Dfloating) operations.
Use BLAS1$VGAXPY for doubleprecision real (Gfloating) operations. Use BLAS1$VCAXPY for singleprecision complex operations.
Use BLAS1$VZAXPY for doubleprecision complex (Dfloating) operations.
Use BLAS1$VWAXPY for doubleprecision complex (Gfloating) operations.
None.
n
OpenVMS usage: longword_signed type: longword integer (signed) access: read only mechanism: by reference
Number of elements in vectors x and y . The n argument is the address of a signed longword integer containing the number of elements. If n is less than or equal to 0, then y is unchanged.a
OpenVMS usage: floating_point or complex_number type: F_floating, D_floating, G_floating real or F_floating, D_floating, G_floating complex access: read only mechanism: by reference, array reference
Scalar multiplier for the array x. The a argument is the address of a floatingpoint or floatingpoint complex number that is this multiplier. If a equals 0, then y is unchanged. If a shares a memory location with any element of the vector y , results are unpredictable. Specify the same data type for arguments a, x, and y.
x
OpenVMS usage: floating_point or complex_number type: F_floating, D_floating, G_floating real or F_floating, D_floating, G_floating complex access: read only mechanism: by reference, array reference
Array containing the elements to be accessed. All elements of array x are accessed only if the increment argument of x, called incx, is 1. The x argument is the address of a floatingpoint or floatingpoint complex number that is this array. The length of this array is at least:
where:
n  =  number of vector elements specified in n 
incx  =  increment argument for the array x specified in incx 
Specify the data type as follows:
Routine  Data Type for x 

BLAS1$VSAXPY  Ffloating real 
BLAS1$VDAXPY  Dfloating real 
BLAS1$VGAXPY  Gfloating real 
BLAS1$VCAXPY  Ffloating complex 
BLAS1$VZAXPY  Dfloating complex 
BLAS1$VWAXPY  Gfloating complex 
If any element of x shares a memory location with an element of y , the results are unpredictable.
OpenVMS usage:  longword_signed 
type:  longword integer (signed) 
access:  read only 
mechanism:  by reference 
where:
x  =  array specified in x 
i  =  element of the vector x 
incx  =  increment argument for the array x specified in incx 
If incx is less than 0, then x is referenced backward in array x; that is, x[i] is referenced in:
where:
x  =  array specified in x 
n  =  number of vector elements specified in n 
i  =  element of the vector x 
incx  =  increment argument for the array x specified in incx 
OpenVMS usage:  floating_point or complex_number 
type:  F_floating, D_floating, G_floating real or F_floating, D_floating, G_floating complex 
access:  modify 
mechanism:  by reference, array reference 
where:
n  =  number of vector elements specified in n 
incy  =  increment argument for the array y specified in incy 
Specify the data type as follows:
Routine  Data Type for y 

BLAS1$VSAXPY  Ffloating real 
BLAS1$VDAXPY  Dfloating real 
BLAS1$VGAXPY  Gfloating real 
BLAS1$VCAXPY  Ffloating complex 
BLAS1$VZAXPY  Dfloating complex 
BLAS1$VWAXPY  Gfloating complex 
If n is less than or equal to 0, then y is unchanged. If any element of x shares a memory location with an element of y , the results are unpredictable.
On exit, y contains an array of length at least:
where:
n  =  number of vector elements specified in n 
incy  =  increment argument for the array y specified in incy 
After the call to BLAS1$VxAXPY, y[i] is set equal to:
where:
y  =  the vector y 
i  =  element of the vector x or y 
a  =  scalar multiplier for the vector x specified in a 
x  =  the vector x 
OpenVMS usage:  longword_signed 
type:  longword integer (signed) 
access:  read only 
mechanism:  by reference 
Previous  Next  Contents  Index 