b?laapp

Multiplies a matrix with an orthogonal matrix.

Syntax

call bslaapp( iside, m, n, nb, a, lda, nitraf, itraf, dtraf, work )

call bdlaapp( iside, m, n, nb, a, lda, nitraf, itraf, dtraf, work )

Description

b?laapp computes

B = QTA or B = AQ

where A is an m-by-n matrix and Q is an orthogonal matrix represented by the parameters in the arrays itraf and dtraf as described in b?trexc.

This is an auxiliary routine called by p?trord.

Input Parameters

iside

INTEGER

Specifies whether Q multiplies A from the left or right as follows:

= 0: compute B = QTA;

= 1: compute B = AQ.

m

INTEGER

The number of rows of A.

n

INTEGER

The number of columns of A.

nb

INTEGER

If iside = 0, the Q is applied block column-wise to the rows of A and nb specifies the maximal width of the block columns.

If iside = 1, this variable is not referenced.

a

REAL for bslaapp

DOUBLE PRECISION for bdlaapp

Array of size (lda,n).

On entry, the matrix A.

lda

INTEGER

The leading dimension of the array a. lda max(1,n).

nitraf

INTEGER

Length of the array itraf. nitraf 0.

itraf

INTEGER array, length nitraf

List of parameters for representing the transformation matrix Q, see b?trexc.

work

(workspace) REAL array of size n.

OUTPUT Parameters

a

a is overwritten by B.

dtraf

REAL for bslaapp

DOUBLE PRECISION for bdlaapp

Array, length k.

If iside=0, k = 3*(n/nb).

If iside=1, k = 3*nitraf.

List of parameters for representing the transformation matrix Q, see b?trexc

See Also

For more complete information about compiler optimizations, see our Optimization Notice.