LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
|
subroutine dort03 | ( | character*( * ) | rc, |
integer | mu, | ||
integer | mv, | ||
integer | n, | ||
integer | k, | ||
double precision, dimension( ldu, * ) | u, | ||
integer | ldu, | ||
double precision, dimension( ldv, * ) | v, | ||
integer | ldv, | ||
double precision, dimension( * ) | work, | ||
integer | lwork, | ||
double precision | result, | ||
integer | info | ||
) |
DORT03
DORT03 compares two orthogonal matrices U and V to see if their corresponding rows or columns span the same spaces. The rows are checked if RC = 'R', and the columns are checked if RC = 'C'. RESULT is the maximum of | V*V' - I | / ( MV ulp ), if RC = 'R', or | V'*V - I | / ( MV ulp ), if RC = 'C', and the maximum over rows (or columns) 1 to K of | U(i) - S*V(i) |/ ( N ulp ) where S is +-1 (chosen to minimize the expression), U(i) is the i-th row (column) of U, and V(i) is the i-th row (column) of V.
[in] | RC | RC is CHARACTER*1 If RC = 'R' the rows of U and V are to be compared. If RC = 'C' the columns of U and V are to be compared. |
[in] | MU | MU is INTEGER The number of rows of U if RC = 'R', and the number of columns if RC = 'C'. If MU = 0 DORT03 does nothing. MU must be at least zero. |
[in] | MV | MV is INTEGER The number of rows of V if RC = 'R', and the number of columns if RC = 'C'. If MV = 0 DORT03 does nothing. MV must be at least zero. |
[in] | N | N is INTEGER If RC = 'R', the number of columns in the matrices U and V, and if RC = 'C', the number of rows in U and V. If N = 0 DORT03 does nothing. N must be at least zero. |
[in] | K | K is INTEGER The number of rows or columns of U and V to compare. 0 <= K <= max(MU,MV). |
[in] | U | U is DOUBLE PRECISION array, dimension (LDU,N) The first matrix to compare. If RC = 'R', U is MU by N, and if RC = 'C', U is N by MU. |
[in] | LDU | LDU is INTEGER The leading dimension of U. If RC = 'R', LDU >= max(1,MU), and if RC = 'C', LDU >= max(1,N). |
[in] | V | V is DOUBLE PRECISION array, dimension (LDV,N) The second matrix to compare. If RC = 'R', V is MV by N, and if RC = 'C', V is N by MV. |
[in] | LDV | LDV is INTEGER The leading dimension of V. If RC = 'R', LDV >= max(1,MV), and if RC = 'C', LDV >= max(1,N). |
[out] | WORK | WORK is DOUBLE PRECISION array, dimension (LWORK) |
[in] | LWORK | LWORK is INTEGER The length of the array WORK. For best performance, LWORK should be at least N*N if RC = 'C' or M*M if RC = 'R', but the tests will be done even if LWORK is 0. |
[out] | RESULT | RESULT is DOUBLE PRECISION The value computed by the test described above. RESULT is limited to 1/ulp to avoid overflow. |
[out] | INFO | INFO is INTEGER 0 indicates a successful exit -k indicates the k-th parameter had an illegal value |
Definition at line 154 of file dort03.f.