lasr#
Functions
-
void slasr(const char *side, const char *pivot, const char *direct, const INT m, const INT n, const f32 *restrict C_rot, const f32 *restrict S_rot, f32 *restrict A, const INT lda)#
SLASR applies a sequence of plane rotations to a real matrix A, from either the left or the right.
When SIDE = ‘L’, the transformation takes the form A := P*A and when SIDE = ‘R’, the transformation takes the form A := A*P**T
where P is an orthogonal matrix consisting of a sequence of z plane rotations, with z = M when SIDE = ‘L’ and z = N when SIDE = ‘R’, and P**T is the transpose of P.
Parameters
inside‘L’: Left, compute A := P*A ‘R’: Right, compute A := A*P**T
inpivot‘V’: Variable pivot, the plane (k,k+1) ‘T’: Top pivot, the plane (1,k+1) ‘B’: Bottom pivot, the plane (k,z)
indirect‘F’: Forward, P = P(z-1)*…*P(2)*P(1) ‘B’: Backward, P = P(1)*P(2)*…*P(z-1)
inmThe number of rows of the matrix A.
innThe number of columns of the matrix A.
inC_rotThe cosines c(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.
inS_rotThe sines s(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.
inoutADouble precision array, dimension (lda, n). On exit, A is overwritten by P*A or A*P**T.
inldaThe leading dimension of A. lda >= max(1,m).
void slasr(
const char* side,
const char* pivot,
const char* direct,
const INT m,
const INT n,
const f32* restrict C_rot,
const f32* restrict S_rot,
f32* restrict A,
const INT lda
);
Functions
-
void dlasr(const char *side, const char *pivot, const char *direct, const INT m, const INT n, const f64 *restrict C_rot, const f64 *restrict S_rot, f64 *restrict A, const INT lda)#
DLASR applies a sequence of plane rotations to a real matrix A, from either the left or the right.
When SIDE = ‘L’, the transformation takes the form A := P*A and when SIDE = ‘R’, the transformation takes the form A := A*P**T
where P is an orthogonal matrix consisting of a sequence of z plane rotations, with z = M when SIDE = ‘L’ and z = N when SIDE = ‘R’, and P**T is the transpose of P.
Parameters
inside‘L’: Left, compute A := P*A ‘R’: Right, compute A := A*P**T
inpivot‘V’: Variable pivot, the plane (k,k+1) ‘T’: Top pivot, the plane (1,k+1) ‘B’: Bottom pivot, the plane (k,z)
indirect‘F’: Forward, P = P(z-1)*…*P(2)*P(1) ‘B’: Backward, P = P(1)*P(2)*…*P(z-1)
inmThe number of rows of the matrix A.
innThe number of columns of the matrix A.
inC_rotThe cosines c(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.
inS_rotThe sines s(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.
inoutADouble precision array, dimension (lda, n). On exit, A is overwritten by P*A or A*P**T.
inldaThe leading dimension of A. lda >= max(1,m).
void dlasr(
const char* side,
const char* pivot,
const char* direct,
const INT m,
const INT n,
const f64* restrict C_rot,
const f64* restrict S_rot,
f64* restrict A,
const INT lda
);
Functions
-
void clasr(const char *side, const char *pivot, const char *direct, const INT m, const INT n, const f32 *restrict C_rot, const f32 *restrict S_rot, c64 *restrict A, const INT lda)#
CLASR applies a sequence of real plane rotations to a complex matrix A, from either the left or the right.
When SIDE = ‘L’, the transformation takes the form A := P*A and when SIDE = ‘R’, the transformation takes the form A := A*P**T
where P is an orthogonal matrix consisting of a sequence of z plane rotations, with z = M when SIDE = ‘L’ and z = N when SIDE = ‘R’, and P**T is the transpose of P.
Parameters
inside‘L’: Left, compute A := P*A ‘R’: Right, compute A := A*P**T
inpivot‘V’: Variable pivot, the plane (k,k+1) ‘T’: Top pivot, the plane (1,k+1) ‘B’: Bottom pivot, the plane (k,z)
indirect‘F’: Forward, P = P(z-1)*…*P(2)*P(1) ‘B’: Backward, P = P(1)*P(2)*…*P(z-1)
inmThe number of rows of the matrix A.
innThe number of columns of the matrix A.
inC_rotThe cosines c(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.
inS_rotThe sines s(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.
inoutAComplex*16 array, dimension (lda, n). On exit, A is overwritten by P*A or A*P**T.
inldaThe leading dimension of A. lda >= max(1,m).
void clasr(
const char* side,
const char* pivot,
const char* direct,
const INT m,
const INT n,
const f32* restrict C_rot,
const f32* restrict S_rot,
c64* restrict A,
const INT lda
);
Functions
-
void zlasr(const char *side, const char *pivot, const char *direct, const INT m, const INT n, const f64 *restrict C_rot, const f64 *restrict S_rot, c128 *restrict A, const INT lda)#
ZLASR applies a sequence of real plane rotations to a complex matrix A, from either the left or the right.
When SIDE = ‘L’, the transformation takes the form A := P*A and when SIDE = ‘R’, the transformation takes the form A := A*P**T
where P is an orthogonal matrix consisting of a sequence of z plane rotations, with z = M when SIDE = ‘L’ and z = N when SIDE = ‘R’, and P**T is the transpose of P.
Parameters
inside‘L’: Left, compute A := P*A ‘R’: Right, compute A := A*P**T
inpivot‘V’: Variable pivot, the plane (k,k+1) ‘T’: Top pivot, the plane (1,k+1) ‘B’: Bottom pivot, the plane (k,z)
indirect‘F’: Forward, P = P(z-1)*…*P(2)*P(1) ‘B’: Backward, P = P(1)*P(2)*…*P(z-1)
inmThe number of rows of the matrix A.
innThe number of columns of the matrix A.
inC_rotThe cosines c(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.
inS_rotThe sines s(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.
inoutAComplex*16 array, dimension (lda, n). On exit, A is overwritten by P*A or A*P**T.
inldaThe leading dimension of A. lda >= max(1,m).
void zlasr(
const char* side,
const char* pivot,
const char* direct,
const INT m,
const INT n,
const f64* restrict C_rot,
const f64* restrict S_rot,
c128* restrict A,
const INT lda
);