.TH "single_blas_level1" 3 "Tue Dec 4 2018" "Version 3.8.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME single_blas_level1 .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .ti -1c .RI "real function \fBsasum\fP (N, SX, INCX)" .br .RI "\fBSASUM\fP " .ti -1c .RI "subroutine \fBsaxpy\fP (N, SA, SX, INCX, SY, INCY)" .br .RI "\fBSAXPY\fP " .ti -1c .RI "real function \fBscabs1\fP (Z)" .br .RI "\fBSCABS1\fP " .ti -1c .RI "real function \fBscasum\fP (N, CX, INCX)" .br .RI "\fBSCASUM\fP " .ti -1c .RI "real function \fBscnrm2\fP (N, X, INCX)" .br .RI "\fBSCNRM2\fP " .ti -1c .RI "subroutine \fBscopy\fP (N, SX, INCX, SY, INCY)" .br .RI "\fBSCOPY\fP " .ti -1c .RI "real function \fBsdot\fP (N, SX, INCX, SY, INCY)" .br .RI "\fBSDOT\fP " .ti -1c .RI "real function \fBsdsdot\fP (N, SB, SX, INCX, SY, INCY)" .br .RI "\fBSDSDOT\fP " .ti -1c .RI "real function \fBsnrm2\fP (N, X, INCX)" .br .RI "\fBSNRM2\fP " .ti -1c .RI "subroutine \fBsrot\fP (N, SX, INCX, SY, INCY, C, S)" .br .RI "\fBSROT\fP " .ti -1c .RI "subroutine \fBsrotg\fP (SA, SB, C, S)" .br .RI "\fBSROTG\fP " .ti -1c .RI "subroutine \fBsrotm\fP (N, SX, INCX, SY, INCY, SPARAM)" .br .RI "\fBSROTM\fP " .ti -1c .RI "subroutine \fBsrotmg\fP (SD1, SD2, SX1, SY1, SPARAM)" .br .RI "\fBSROTMG\fP " .ti -1c .RI "subroutine \fBsscal\fP (N, SA, SX, INCX)" .br .RI "\fBSSCAL\fP " .ti -1c .RI "subroutine \fBsswap\fP (N, SX, INCX, SY, INCY)" .br .RI "\fBSSWAP\fP " .in -1c .SH "Detailed Description" .PP This is the group of real LEVEL 1 BLAS routines\&. .SH "Function Documentation" .PP .SS "real function sasum (integer N, real, dimension(*) SX, integer INCX)" .PP \fBSASUM\fP .PP \fBPurpose: \fP .RS 4 .PP .nf SASUM takes the sum of the absolute values. uses unrolled loops for increment equal to one. .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIN\fP .PP .nf N is INTEGER number of elements in input vector(s) .fi .PP .br \fISX\fP .PP .nf SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) .fi .PP .br \fIINCX\fP .PP .nf INCX is INTEGER storage spacing between elements of SX .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP \fBFurther Details: \fP .RS 4 .PP .nf jack dongarra, linpack, 3/11/78. modified 3/93 to return if incx .le. 0. modified 12/3/93, array(1) declarations changed to array(*) .fi .PP .RE .PP .SS "subroutine saxpy (integer N, real SA, real, dimension(*) SX, integer INCX, real, dimension(*) SY, integer INCY)" .PP \fBSAXPY\fP .PP \fBPurpose: \fP .RS 4 .PP .nf SAXPY constant times a vector plus a vector. uses unrolled loops for increments equal to one. .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIN\fP .PP .nf N is INTEGER number of elements in input vector(s) .fi .PP .br \fISA\fP .PP .nf SA is REAL On entry, SA specifies the scalar alpha. .fi .PP .br \fISX\fP .PP .nf SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) .fi .PP .br \fIINCX\fP .PP .nf INCX is INTEGER storage spacing between elements of SX .fi .PP .br \fISY\fP .PP .nf SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) .fi .PP .br \fIINCY\fP .PP .nf INCY is INTEGER storage spacing between elements of SY .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP \fBFurther Details: \fP .RS 4 .PP .nf jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*) .fi .PP .RE .PP .SS "real function scabs1 (complex Z)" .PP \fBSCABS1\fP .PP \fBPurpose: \fP .RS 4 .PP .nf SCABS1 computes |Re(.)| + |Im(.)| of a complex number .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIZ\fP .PP .nf Z is COMPLEX .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP .SS "real function scasum (integer N, complex, dimension(*) CX, integer INCX)" .PP \fBSCASUM\fP .PP \fBPurpose: \fP .RS 4 .PP .nf SCASUM takes the sum of the (|Re(.)| + |Im(.)|)'s of a complex vector and returns a single precision result. .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIN\fP .PP .nf N is INTEGER number of elements in input vector(s) .fi .PP .br \fICX\fP .PP .nf CX is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) .fi .PP .br \fIINCX\fP .PP .nf INCX is INTEGER storage spacing between elements of SX .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP \fBFurther Details: \fP .RS 4 .PP .nf jack dongarra, linpack, 3/11/78. modified 3/93 to return if incx .le. 0. modified 12/3/93, array(1) declarations changed to array(*) .fi .PP .RE .PP .SS "real function scnrm2 (integer N, complex, dimension(*) X, integer INCX)" .PP \fBSCNRM2\fP .PP \fBPurpose: \fP .RS 4 .PP .nf SCNRM2 returns the euclidean norm of a vector via the function name, so that SCNRM2 := sqrt( x**H*x ) .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIN\fP .PP .nf N is INTEGER number of elements in input vector(s) .fi .PP .br \fIX\fP .PP .nf X is COMPLEX array, dimension (N) complex vector with N elements .fi .PP .br \fIINCX\fP .PP .nf INCX is INTEGER storage spacing between elements of X .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP \fBFurther Details: \fP .RS 4 .PP .nf -- This version written on 25-October-1982. Modified on 14-October-1993 to inline the call to CLASSQ. Sven Hammarling, Nag Ltd. .fi .PP .RE .PP .SS "subroutine scopy (integer N, real, dimension(*) SX, integer INCX, real, dimension(*) SY, integer INCY)" .PP \fBSCOPY\fP .PP \fBPurpose: \fP .RS 4 .PP .nf SCOPY copies a vector, x, to a vector, y. uses unrolled loops for increments equal to 1. .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIN\fP .PP .nf N is INTEGER number of elements in input vector(s) .fi .PP .br \fISX\fP .PP .nf SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) .fi .PP .br \fIINCX\fP .PP .nf INCX is INTEGER storage spacing between elements of SX .fi .PP .br \fISY\fP .PP .nf SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) .fi .PP .br \fIINCY\fP .PP .nf INCY is INTEGER storage spacing between elements of SY .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP \fBFurther Details: \fP .RS 4 .PP .nf jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*) .fi .PP .RE .PP .SS "real function sdot (integer N, real, dimension(*) SX, integer INCX, real, dimension(*) SY, integer INCY)" .PP \fBSDOT\fP .PP \fBPurpose: \fP .RS 4 .PP .nf SDOT forms the dot product of two vectors. uses unrolled loops for increments equal to one. .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIN\fP .PP .nf N is INTEGER number of elements in input vector(s) .fi .PP .br \fISX\fP .PP .nf SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) .fi .PP .br \fIINCX\fP .PP .nf INCX is INTEGER storage spacing between elements of SX .fi .PP .br \fISY\fP .PP .nf SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) .fi .PP .br \fIINCY\fP .PP .nf INCY is INTEGER storage spacing between elements of SY .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP \fBFurther Details: \fP .RS 4 .PP .nf jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*) .fi .PP .RE .PP .SS "real function sdsdot (integer N, real SB, real, dimension(*) SX, integer INCX, real, dimension(*) SY, integer INCY)" .PP \fBSDSDOT\fP .PP \fBPurpose: \fP .RS 4 .PP .nf .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIN\fP .PP .nf N is INTEGER number of elements in input vector(s) .fi .PP .br \fISB\fP .PP .nf SB is REAL single precision scalar to be added to inner product .fi .PP .br \fISX\fP .PP .nf SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) single precision vector with N elements .fi .PP .br \fIINCX\fP .PP .nf INCX is INTEGER storage spacing between elements of SX .fi .PP .br \fISY\fP .PP .nf SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) single precision vector with N elements .fi .PP .br \fIINCY\fP .PP .nf INCY is INTEGER storage spacing between elements of SY .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Lawson, C\&. L\&., (JPL), Hanson, R\&. J\&., (SNLA), .PP Kincaid, D\&. R\&., (U\&. of Texas), Krogh, F\&. T\&., (JPL) .RE .PP \fBFurther Details: \fP .RS 4 .PP .nf REFERENCES C. L. Lawson, R. J. Hanson, D. R. Kincaid and F. T. Krogh, Basic linear algebra subprograms for Fortran usage, Algorithm No. 539, Transactions on Mathematical Software 5, 3 (September 1979), pp. 308-323. REVISION HISTORY (YYMMDD) 791001 DATE WRITTEN 890531 Changed all specific intrinsics to generic. (WRB) 890831 Modified array declarations. (WRB) 890831 REVISION DATE from Version 3.2 891214 Prologue converted to Version 4.0 format. (BAB) 920310 Corrected definition of LX in DESCRIPTION. (WRB) 920501 Reformatted the REFERENCES section. (WRB) 070118 Reformat to LAPACK coding style .fi .PP .RE .PP \fBPurpose: \fP .RS 4 .PP .nf .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP .SS "real function snrm2 (integer N, real, dimension(*) X, integer INCX)" .PP \fBSNRM2\fP .PP \fBPurpose: \fP .RS 4 .PP .nf SNRM2 returns the euclidean norm of a vector via the function name, so that SNRM2 := sqrt( x'*x ). .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIN\fP .PP .nf N is INTEGER number of elements in input vector(s) .fi .PP .br \fIX\fP .PP .nf X is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) .fi .PP .br \fIINCX\fP .PP .nf INCX is INTEGER storage spacing between elements of SX .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP \fBFurther Details: \fP .RS 4 .PP .nf -- This version written on 25-October-1982. Modified on 14-October-1993 to inline the call to SLASSQ. Sven Hammarling, Nag Ltd. .fi .PP .RE .PP .SS "subroutine srot (integer N, real, dimension(*) SX, integer INCX, real, dimension(*) SY, integer INCY, real C, real S)" .PP \fBSROT\fP .PP \fBPurpose: \fP .RS 4 .PP .nf applies a plane rotation. .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIN\fP .PP .nf N is INTEGER number of elements in input vector(s) .fi .PP .br \fISX\fP .PP .nf SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) .fi .PP .br \fIINCX\fP .PP .nf INCX is INTEGER storage spacing between elements of SX .fi .PP .br \fISY\fP .PP .nf SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) .fi .PP .br \fIINCY\fP .PP .nf INCY is INTEGER storage spacing between elements of SY .fi .PP .br \fIC\fP .PP .nf C is REAL .fi .PP .br \fIS\fP .PP .nf S is REAL .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP \fBFurther Details: \fP .RS 4 .PP .nf jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*) .fi .PP .RE .PP .SS "subroutine srotg (real SA, real SB, real C, real S)" .PP \fBSROTG\fP .PP \fBPurpose: \fP .RS 4 .PP .nf SROTG construct givens plane rotation. .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fISA\fP .PP .nf SA is REAL .fi .PP .br \fISB\fP .PP .nf SB is REAL .fi .PP .br \fIC\fP .PP .nf C is REAL .fi .PP .br \fIS\fP .PP .nf S is REAL .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP \fBFurther Details: \fP .RS 4 .PP .nf jack dongarra, linpack, 3/11/78. .fi .PP .RE .PP .SS "subroutine srotm (integer N, real, dimension(*) SX, integer INCX, real, dimension(*) SY, integer INCY, real, dimension(5) SPARAM)" .PP \fBSROTM\fP .PP \fBPurpose: \fP .RS 4 .PP .nf APPLY THE MODIFIED GIVENS TRANSFORMATION, H, TO THE 2 BY N MATRIX (SX**T) , WHERE **T INDICATES TRANSPOSE. THE ELEMENTS OF SX ARE IN (SX**T) SX(LX+I*INCX), I = 0 TO N-1, WHERE LX = 1 IF INCX .GE. 0, ELSE LX = (-INCX)*N, AND SIMILARLY FOR SY USING USING LY AND INCY. WITH SPARAM(1)=SFLAG, H HAS ONE OF THE FOLLOWING FORMS.. SFLAG=-1.E0 SFLAG=0.E0 SFLAG=1.E0 SFLAG=-2.E0 (SH11 SH12) (1.E0 SH12) (SH11 1.E0) (1.E0 0.E0) H=( ) ( ) ( ) ( ) (SH21 SH22), (SH21 1.E0), (-1.E0 SH22), (0.E0 1.E0). SEE SROTMG FOR A DESCRIPTION OF DATA STORAGE IN SPARAM. .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIN\fP .PP .nf N is INTEGER number of elements in input vector(s) .fi .PP .br \fISX\fP .PP .nf SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) .fi .PP .br \fIINCX\fP .PP .nf INCX is INTEGER storage spacing between elements of SX .fi .PP .br \fISY\fP .PP .nf SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) .fi .PP .br \fIINCY\fP .PP .nf INCY is INTEGER storage spacing between elements of SY .fi .PP .br \fISPARAM\fP .PP .nf SPARAM is REAL array, dimension (5) SPARAM(1)=SFLAG SPARAM(2)=SH11 SPARAM(3)=SH21 SPARAM(4)=SH12 SPARAM(5)=SH22 .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP .SS "subroutine srotmg (real SD1, real SD2, real SX1, real SY1, real, dimension(5) SPARAM)" .PP \fBSROTMG\fP .PP \fBPurpose: \fP .RS 4 .PP .nf CONSTRUCT THE MODIFIED GIVENS TRANSFORMATION MATRIX H WHICH ZEROS THE SECOND COMPONENT OF THE 2-VECTOR (SQRT(SD1)*SX1,SQRT(SD2)*> SY2)**T. WITH SPARAM(1)=SFLAG, H HAS ONE OF THE FOLLOWING FORMS.. SFLAG=-1.E0 SFLAG=0.E0 SFLAG=1.E0 SFLAG=-2.E0 (SH11 SH12) (1.E0 SH12) (SH11 1.E0) (1.E0 0.E0) H=( ) ( ) ( ) ( ) (SH21 SH22), (SH21 1.E0), (-1.E0 SH22), (0.E0 1.E0). LOCATIONS 2-4 OF SPARAM CONTAIN SH11,SH21,SH12, AND SH22 RESPECTIVELY. (VALUES OF 1.E0, -1.E0, OR 0.E0 IMPLIED BY THE VALUE OF SPARAM(1) ARE NOT STORED IN SPARAM.) THE VALUES OF GAMSQ AND RGAMSQ SET IN THE DATA STATEMENT MAY BE INEXACT. THIS IS OK AS THEY ARE ONLY USED FOR TESTING THE SIZE OF SD1 AND SD2. ALL ACTUAL SCALING OF DATA IS DONE USING GAM. .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fISD1\fP .PP .nf SD1 is REAL .fi .PP .br \fISD2\fP .PP .nf SD2 is REAL .fi .PP .br \fISX1\fP .PP .nf SX1 is REAL .fi .PP .br \fISY1\fP .PP .nf SY1 is REAL .fi .PP .br \fISPARAM\fP .PP .nf SPARAM is REAL array, dimension (5) SPARAM(1)=SFLAG SPARAM(2)=SH11 SPARAM(3)=SH21 SPARAM(4)=SH12 SPARAM(5)=SH22 .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP .SS "subroutine sscal (integer N, real SA, real, dimension(*) SX, integer INCX)" .PP \fBSSCAL\fP .PP \fBPurpose: \fP .RS 4 .PP .nf SSCAL scales a vector by a constant. uses unrolled loops for increment equal to 1. .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIN\fP .PP .nf N is INTEGER number of elements in input vector(s) .fi .PP .br \fISA\fP .PP .nf SA is REAL On entry, SA specifies the scalar alpha. .fi .PP .br \fISX\fP .PP .nf SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) .fi .PP .br \fIINCX\fP .PP .nf INCX is INTEGER storage spacing between elements of SX .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP \fBFurther Details: \fP .RS 4 .PP .nf jack dongarra, linpack, 3/11/78. modified 3/93 to return if incx .le. 0. modified 12/3/93, array(1) declarations changed to array(*) .fi .PP .RE .PP .SS "subroutine sswap (integer N, real, dimension(*) SX, integer INCX, real, dimension(*) SY, integer INCY)" .PP \fBSSWAP\fP .PP \fBPurpose: \fP .RS 4 .PP .nf SSWAP interchanges two vectors. uses unrolled loops for increments equal to 1. .fi .PP .RE .PP \fBParameters:\fP .RS 4 \fIN\fP .PP .nf N is INTEGER number of elements in input vector(s) .fi .PP .br \fISX\fP .PP .nf SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) .fi .PP .br \fIINCX\fP .PP .nf INCX is INTEGER storage spacing between elements of SX .fi .PP .br \fISY\fP .PP .nf SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) .fi .PP .br \fIINCY\fP .PP .nf INCY is INTEGER storage spacing between elements of SY .fi .PP .RE .PP \fBAuthor:\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBDate:\fP .RS 4 November 2017 .RE .PP \fBFurther Details: \fP .RS 4 .PP .nf jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*) .fi .PP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.