sroti - Apply an indexed Givens rotation.
SUBROUTINE SROTI(NZ, X, INDX, Y, C, S) INTEGER NZ INTEGER INDX(*) REAL C, S REAL X(*), Y(*) SUBROUTINE SROTI_64(NZ, X, INDX, Y, C, S) INTEGER*8 NZ INTEGER*8 INDX(*) REAL C, S REAL X(*), Y(*) F95 INTERFACE SUBROUTINE ROTI(NZ, X, INDX, Y, C, S) INTEGER :: NZ INTEGER, DIMENSION(:) :: INDX REAL :: C, S REAL, DIMENSION(:) :: X, Y SUBROUTINE ROTI_64(NZ, X, INDX, Y, C, S) INTEGER(8) :: NZ INTEGER(8), DIMENSION(:) :: INDX REAL :: C, S REAL, DIMENSION(:) :: X, Y C INTERFACE #include <sunperf.h> void sroti (const int nz, const float* x, const int* indx, float* y, const float c, const float s); void sroti_64 (const long nz, const float* x, const long* indx, float* y, const float c, const float s);
Oracle Solaris Studio Performance Library sroti(3P) NAME sroti - Apply an indexed Givens rotation. SYNOPSIS SUBROUTINE SROTI(NZ, X, INDX, Y, C, S) INTEGER NZ INTEGER INDX(*) REAL C, S REAL X(*), Y(*) SUBROUTINE SROTI_64(NZ, X, INDX, Y, C, S) INTEGER*8 NZ INTEGER*8 INDX(*) REAL C, S REAL X(*), Y(*) F95 INTERFACE SUBROUTINE ROTI(NZ, X, INDX, Y, C, S) INTEGER :: NZ INTEGER, DIMENSION(:) :: INDX REAL :: C, S REAL, DIMENSION(:) :: X, Y SUBROUTINE ROTI_64(NZ, X, INDX, Y, C, S) INTEGER(8) :: NZ INTEGER(8), DIMENSION(:) :: INDX REAL :: C, S REAL, DIMENSION(:) :: X, Y C INTERFACE #include <sunperf.h> void sroti (const int nz, const float* x, const int* indx, float* y, const float c, const float s); void sroti_64 (const long nz, const float* x, const long* indx, float* y, const float c, const float s); PURPOSE SROTI - Applies a Givens rotation to a sparse vector x stored in com- pressed form and another vector y in full storage form do i = 1, n temp = -s * x(i) + c * y(indx(i)) x(i) = c * x(i) + s * y(indx(i)) y(indx(i)) = temp enddo ARGUMENTS NZ (input) - INTEGER Number of elements in the compressed form. Unchanged on exit. X (input) Vector containing the values of the compressed form. INDX (input) - INTEGER Vector containing the indices of the compressed form. It is assumed that the elements in INDX are distinct and greater than zero. Unchanged on exit. Y (input/output) Vector on input which contains the vector Y in full storage form. On exit, only the elements corresponding to the indices in INDX have been modified. C (input) Scalar defining the Givens rotation S (input) Scalar defining the Givens rotation 3rd Berkeley Distribution 7 Nov 2015 sroti(3P)