LAPACK 3.3.0
|
00001 SUBROUTINE XLAENV( ISPEC, NVALUE ) 00002 * 00003 * -- LAPACK auxiliary routine (version 3.1) -- 00004 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. 00005 * November 2006 00006 * 00007 * .. Scalar Arguments .. 00008 INTEGER ISPEC, NVALUE 00009 * .. 00010 * 00011 * Purpose 00012 * ======= 00013 * 00014 * XLAENV sets certain machine- and problem-dependent quantities 00015 * which will later be retrieved by ILAENV. 00016 * 00017 * Arguments 00018 * ========= 00019 * 00020 * ISPEC (input) INTEGER 00021 * Specifies the parameter to be set in the COMMON array IPARMS. 00022 * = 1: the optimal blocksize; if this value is 1, an unblocked 00023 * algorithm will give the best performance. 00024 * = 2: the minimum block size for which the block routine 00025 * should be used; if the usable block size is less than 00026 * this value, an unblocked routine should be used. 00027 * = 3: the crossover point (in a block routine, for N less 00028 * than this value, an unblocked routine should be used) 00029 * = 4: the number of shifts, used in the nonsymmetric 00030 * eigenvalue routines 00031 * = 5: the minimum column dimension for blocking to be used; 00032 * rectangular blocks must have dimension at least k by m, 00033 * where k is given by ILAENV(2,...) and m by ILAENV(5,...) 00034 * = 6: the crossover point for the SVD (when reducing an m by n 00035 * matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds 00036 * this value, a QR factorization is used first to reduce 00037 * the matrix to a triangular form) 00038 * = 7: the number of processors 00039 * = 8: another crossover point, for the multishift QR and QZ 00040 * methods for nonsymmetric eigenvalue problems. 00041 * = 9: maximum size of the subproblems at the bottom of the 00042 * computation tree in the divide-and-conquer algorithm 00043 * (used by xGELSD and xGESDD) 00044 * =10: ieee NaN arithmetic can be trusted not to trap 00045 * =11: infinity arithmetic can be trusted not to trap 00046 * 12 <= ISPEC <= 16: 00047 * xHSEQR or one of its subroutines, 00048 * see IPARMQ for detailed explanation 00049 * 00050 * NVALUE (input) INTEGER 00051 * The value of the parameter specified by ISPEC. 00052 * 00053 * ===================================================================== 00054 * 00055 * .. Arrays in Common .. 00056 INTEGER IPARMS( 100 ) 00057 * .. 00058 * .. Common blocks .. 00059 COMMON / CLAENV / IPARMS 00060 * .. 00061 * .. Save statement .. 00062 SAVE / CLAENV / 00063 * .. 00064 * .. Executable Statements .. 00065 * 00066 IF( ISPEC.GE.1 .AND. ISPEC.LE.16 ) THEN 00067 IPARMS( ISPEC ) = NVALUE 00068 END IF 00069 * 00070 RETURN 00071 * 00072 * End of XLAENV 00073 * 00074 END