00001 /* xlaenv.f -- translated by f2c (version 20061008). 00002 You must link the resulting object file with libf2c: 00003 on Microsoft Windows system, link with libf2c.lib; 00004 on Linux or Unix systems, link with .../path/to/libf2c.a -lm 00005 or, if you install libf2c.a in a standard place, with -lf2c -lm 00006 -- in that order, at the end of the command line, as in 00007 cc *.o -lf2c -lm 00008 Source for libf2c is in /netlib/f2c/libf2c.zip, e.g., 00009 00010 http://www.netlib.org/f2c/libf2c.zip 00011 */ 00012 00013 #include "f2c.h" 00014 #include "blaswrap.h" 00015 00016 /* Common Block Declarations */ 00017 00018 struct { 00019 integer iparms[100]; 00020 } claenv_; 00021 00022 #define claenv_1 claenv_ 00023 00024 /* Subroutine */ int xlaenv_(integer *ispec, integer *nvalue) 00025 { 00026 00027 /* -- LAPACK auxiliary routine (version 3.1) -- */ 00028 /* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */ 00029 /* November 2006 */ 00030 00031 /* .. Scalar Arguments .. */ 00032 /* .. */ 00033 00034 /* Purpose */ 00035 /* ======= */ 00036 00037 /* XLAENV sets certain machine- and problem-dependent quantities */ 00038 /* which will later be retrieved by ILAENV. */ 00039 00040 /* Arguments */ 00041 /* ========= */ 00042 00043 /* ISPEC (input) INTEGER */ 00044 /* Specifies the parameter to be set in the COMMON array IPARMS. */ 00045 /* = 1: the optimal blocksize; if this value is 1, an unblocked */ 00046 /* algorithm will give the best performance. */ 00047 /* = 2: the minimum block size for which the block routine */ 00048 /* should be used; if the usable block size is less than */ 00049 /* this value, an unblocked routine should be used. */ 00050 /* = 3: the crossover point (in a block routine, for N less */ 00051 /* than this value, an unblocked routine should be used) */ 00052 /* = 4: the number of shifts, used in the nonsymmetric */ 00053 /* eigenvalue routines */ 00054 /* = 5: the minimum column dimension for blocking to be used; */ 00055 /* rectangular blocks must have dimension at least k by m, */ 00056 /* where k is given by ILAENV(2,...) and m by ILAENV(5,...) */ 00057 /* = 6: the crossover point for the SVD (when reducing an m by n */ 00058 /* matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds */ 00059 /* this value, a QR factorization is used first to reduce */ 00060 /* the matrix to a triangular form) */ 00061 /* = 7: the number of processors */ 00062 /* = 8: another crossover point, for the multishift QR and QZ */ 00063 /* methods for nonsymmetric eigenvalue problems. */ 00064 /* = 9: maximum size of the subproblems at the bottom of the */ 00065 /* computation tree in the divide-and-conquer algorithm */ 00066 /* (used by xGELSD and xGESDD) */ 00067 /* =10: ieee NaN arithmetic can be trusted not to trap */ 00068 /* =11: infinity arithmetic can be trusted not to trap */ 00069 /* 12 <= ISPEC <= 16: */ 00070 /* xHSEQR or one of its subroutines, */ 00071 /* see IPARMQ for detailed explanation */ 00072 00073 /* NVALUE (input) INTEGER */ 00074 /* The value of the parameter specified by ISPEC. */ 00075 00076 /* ===================================================================== */ 00077 00078 /* .. Arrays in Common .. */ 00079 /* .. */ 00080 /* .. Common blocks .. */ 00081 /* .. */ 00082 /* .. Save statement .. */ 00083 /* .. */ 00084 /* .. Executable Statements .. */ 00085 00086 if (*ispec >= 1 && *ispec <= 16) { 00087 claenv_1.iparms[*ispec - 1] = *nvalue; 00088 } 00089 00090 return 0; 00091 00092 /* End of XLAENV */ 00093 00094 } /* xlaenv_ */