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
);
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

in
side

‘L’: Left, compute A := P*A ‘R’: Right, compute A := A*P**T

in
pivot

‘V’: Variable pivot, the plane (k,k+1) ‘T’: Top pivot, the plane (1,k+1) ‘B’: Bottom pivot, the plane (k,z)

in
direct

‘F’: Forward, P = P(z-1)*…*P(2)*P(1) ‘B’: Backward, P = P(1)*P(2)*…*P(z-1)

in
m

The number of rows of the matrix A.

in
n

The number of columns of the matrix A.

in
C_rot

The cosines c(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.

in
S_rot

The sines s(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.

inout
A

Double precision array, dimension (lda, n). On exit, A is overwritten by P*A or A*P**T.

in
lda

The leading dimension of A. lda >= max(1,m).

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
);
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

in
side

‘L’: Left, compute A := P*A ‘R’: Right, compute A := A*P**T

in
pivot

‘V’: Variable pivot, the plane (k,k+1) ‘T’: Top pivot, the plane (1,k+1) ‘B’: Bottom pivot, the plane (k,z)

in
direct

‘F’: Forward, P = P(z-1)*…*P(2)*P(1) ‘B’: Backward, P = P(1)*P(2)*…*P(z-1)

in
m

The number of rows of the matrix A.

in
n

The number of columns of the matrix A.

in
C_rot

The cosines c(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.

in
S_rot

The sines s(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.

inout
A

Double precision array, dimension (lda, n). On exit, A is overwritten by P*A or A*P**T.

in
lda

The leading dimension of A. lda >= max(1,m).

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
);
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

in
side

‘L’: Left, compute A := P*A ‘R’: Right, compute A := A*P**T

in
pivot

‘V’: Variable pivot, the plane (k,k+1) ‘T’: Top pivot, the plane (1,k+1) ‘B’: Bottom pivot, the plane (k,z)

in
direct

‘F’: Forward, P = P(z-1)*…*P(2)*P(1) ‘B’: Backward, P = P(1)*P(2)*…*P(z-1)

in
m

The number of rows of the matrix A.

in
n

The number of columns of the matrix A.

in
C_rot

The cosines c(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.

in
S_rot

The sines s(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.

inout
A

Complex*16 array, dimension (lda, n). On exit, A is overwritten by P*A or A*P**T.

in
lda

The leading dimension of A. lda >= max(1,m).

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
);
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

in
side

‘L’: Left, compute A := P*A ‘R’: Right, compute A := A*P**T

in
pivot

‘V’: Variable pivot, the plane (k,k+1) ‘T’: Top pivot, the plane (1,k+1) ‘B’: Bottom pivot, the plane (k,z)

in
direct

‘F’: Forward, P = P(z-1)*…*P(2)*P(1) ‘B’: Backward, P = P(1)*P(2)*…*P(z-1)

in
m

The number of rows of the matrix A.

in
n

The number of columns of the matrix A.

in
C_rot

The cosines c(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.

in
S_rot

The sines s(k) of the plane rotations. Dimension (m-1) if SIDE=’L’, (n-1) if SIDE=’R’.

inout
A

Complex*16 array, dimension (lda, n). On exit, A is overwritten by P*A or A*P**T.

in
lda

The leading dimension of A. lda >= max(1,m).