# sort03.f - Man Page

TESTING/EIG/sort03.f

## Synopsis

### Functions/Subroutines

subroutine **sort03** (rc, mu, mv, n, k, u, ldu, v, ldv, work, lwork, result, info)**SORT03**

## Function/Subroutine Documentation

### subroutine sort03 (character*( * ) rc, integer mu, integer mv, integer n, integer k, real, dimension( ldu, * ) u, integer ldu, real, dimension( ldv, * ) v, integer ldv, real, dimension( * ) work, integer lwork, real result, integer info)

**SORT03**

**Purpose:**

SORT03 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.

**Parameters***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.

*MU*MU is INTEGER The number of rows of U if RC = 'R', and the number of columns if RC = 'C'. If MU = 0 SORT03 does nothing. MU must be at least zero.

*MV*MV is INTEGER The number of rows of V if RC = 'R', and the number of columns if RC = 'C'. If MV = 0 SORT03 does nothing. MV must be at least zero.

*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 SORT03 does nothing. N must be at least zero.

*K*K is INTEGER The number of rows or columns of U and V to compare. 0 <= K <= max(MU,MV).

*U*U is REAL 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.

*LDU*LDU is INTEGER The leading dimension of U. If RC = 'R', LDU >= max(1,MU), and if RC = 'C', LDU >= max(1,N).

*V*V is REAL 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.

*LDV*LDV is INTEGER The leading dimension of V. If RC = 'R', LDV >= max(1,MV), and if RC = 'C', LDV >= max(1,N).

*WORK*WORK is REAL array, dimension (LWORK)

*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.

*RESULT*RESULT is REAL The value computed by the test described above. RESULT is limited to 1/ulp to avoid overflow.

*INFO*INFO is INTEGER 0 indicates a successful exit -k indicates the k-th parameter had an illegal value

**Author**Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **154** of file **sort03.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.

## Referenced By

The man page sort03(3) is an alias of sort03.f(3).

Tue Nov 28 2023 12:08:42 Version 3.12.0 LAPACK