Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

camblas/ilaenv.c

Go to the documentation of this file.
00001 /* ILAENV.F -- translated by f2c (version 19941215).
00002    You must link the resulting object file with the libraries:
00003         -lf2c -lm   (in that order)
00004 */
00005 
00006 #include "f2c.h"
00007 #include "cblasimpexp.h"
00008 
00009 integer __IMPEXP__ ilaenv_(ispec, name, opts, n1, n2, n3, n4, name_len, opts_len)
00010 integer *ispec;
00011 char *name, *opts;
00012 integer *n1, *n2, *n3, *n4;
00013 ftnlen name_len;
00014 ftnlen opts_len;
00015 {
00016     /* System generated locals */
00017     integer ret_val;
00018 
00019     /* Builtin functions */
00020     /* Subroutine */ int s_copy();
00021     integer s_cmp();
00022 
00023     /* Local variables */
00024     static integer i;
00025     static logical cname, sname;
00026     static integer nbmin;
00027     static char c1[1], c2[2], c3[3], c4[2];
00028     static integer ic, nb, iz, nx;
00029     static char subnam[6];
00030 
00031 
00032 /*  -- LAPACK auxiliary routine (preliminary version) -- */
00033 /*     Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., */
00034 /*     Courant Institute, Argonne National Lab, and Rice University */
00035 /*     February 20, 1992 */
00036 
00037 /*     .. Scalar Arguments .. */
00038 /*     .. */
00039 
00040 /*  Purpose */
00041 /*  ======= */
00042 
00043 /*  ILAENV is called from the LAPACK routines to choose problem-dependent 
00044 */
00045 /*  parameters for the local environment.  See ISPEC for a description of 
00046 */
00047 /*  the parameters. */
00048 
00049 /*  This version provides a set of parameters which should give good, */
00050 /*  but not optimal, performance on many of the currently available */
00051 /*  computers.  Users are encouraged to modify this subroutine to set */
00052 /*  the tuning parameters for their particular machine using the option */
00053 /*  and problem size information in the arguments. */
00054 
00055 /*  This routine will not function correctly if it is converted to all */
00056 /*  lower case.  Converting it to all upper case is allowed. */
00057 
00058 /*  Arguments */
00059 /*  ========= */
00060 
00061 /*  ISPEC   (input) INTEGER */
00062 /*          Specifies the parameter to be returned as the value of */
00063 /*          ILAENV. */
00064 /*          = 1: the optimal blocksize; if this value is 1, an unblocked 
00065 */
00066 /*               algorithm will give the best performance. */
00067 /*          = 2: the minimum block size for which the block routine */
00068 /*               should be used; if the usable block size is less than */
00069 /*               this value, an unblocked routine should be used. */
00070 /*          = 3: the crossover point (in a block routine, for N less */
00071 /*               than this value, an unblocked routine should be used) */
00072 /*          = 4: the number of shifts, used in the nonsymmetric */
00073 /*               eigenvalue routines */
00074 /*          = 5: the minimum column dimension for blocking to be used; */
00075 /*               rectangular blocks must have dimension at least k by m, 
00076 */
00077 /*               where k is given by ILAENV(2,...) and m by ILAENV(5,...) 
00078 */
00079 /*          = 6: the crossover point for the SVD (when reducing an m by n 
00080 */
00081 /*               matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds 
00082 */
00083 /*               this value, a QR factorization is used first to reduce */
00084 /*               the matrix to a triangular form.) */
00085 /*          = 7: the number of processors */
00086 /*          = 8: the crossover point for the multishift QR and QZ methods 
00087 */
00088 /*               for nonsymmetric eigenvalue problems. */
00089 
00090 /*  NAME    (input) CHARACTER*(*) */
00091 /*          The name of the calling subroutine, in either upper case or */
00092 /*          lower case. */
00093 
00094 /*  OPTS    (input) CHARACTER*(*) */
00095 /*          The character options to the subroutine NAME, concatenated */
00096 /*          into a single character string.  For example, UPLO = 'U', */
00097 /*          TRANS = 'T', and DIAG = 'N' for a triangular routine would */
00098 /*          be specified as OPTS = 'UTN'. */
00099 
00100 /*  N1      (input) INTEGER */
00101 /*  N2      (input) INTEGER */
00102 /*  N3      (input) INTEGER */
00103 /*  N4      (input) INTEGER */
00104 /*          Problem dimensions for the subroutine NAME; these may not all 
00105 */
00106 /*          be required. */
00107 
00108 /* (ILAENV) (output) INTEGER */
00109 /*          >= 0: the value of the parameter specified by ISPEC */
00110 /*          < 0:  if ILAENV = -k, the k-th argument had an illegal value. 
00111 */
00112 
00113 /*  Further Details */
00114 /*  =============== */
00115 
00116 /*  The following conventions have been used when calling ILAENV from the 
00117 */
00118 /*  LAPACK routines: */
00119 /*  1)  OPTS is a concatenation of all of the character options to */
00120 /*      subroutine NAME, in the same order that they appear in the */
00121 /*      argument list for NAME, even if they are not used in determining 
00122 */
00123 /*      the value of the parameter specified by ISPEC. */
00124 /*  2)  The problem dimensions N1, N2, N3, N4 are specified in the order 
00125 */
00126 /*      that they appear in the argument list for NAME.  N1 is used */
00127 /*      first, N2 second, and so on, and unused problem dimensions are */
00128 /*      passed a value of -1. */
00129 /*  3)  The parameter value returned by ILAENV is checked for validity in 
00130 */
00131 /*      the calling subroutine.  For example, ILAENV is used to retrieve 
00132 */
00133 /*      the optimal blocksize for STRTRI as follows: */
00134 
00135 /*      NB = ILAENV( 1, 'STRTRI', UPLO // DIAG, N, -1, -1, -1 ) */
00136 /*      IF( NB.LE.1 ) NB = MAX( 1, N ) */
00137 
00138 /*  ===================================================================== 
00139 */
00140 
00141 /*     .. Local Scalars .. */
00142 /*     .. */
00143 /*     .. Intrinsic Functions .. */
00144 /*     .. */
00145 /*     .. Executable Statements .. */
00146 
00147     switch ((int)*ispec) {
00148         case 1:  goto L100;
00149         case 2:  goto L100;
00150         case 3:  goto L100;
00151         case 4:  goto L400;
00152         case 5:  goto L500;
00153         case 6:  goto L600;
00154         case 7:  goto L700;
00155         case 8:  goto L800;
00156     }
00157 
00158 /*     Invalid value for ISPEC */
00159 
00160     ret_val = -1;
00161     return ret_val;
00162 
00163 L100:
00164 
00165 /*     Convert NAME to upper case if the first character is lower case. */
00166 
00167     ret_val = 1;
00168     s_copy(subnam, name, 6L, name_len);
00169     ic = *(unsigned char *)subnam;
00170     iz = 'Z';
00171     if (iz == 90 || iz == 122) {
00172 
00173 /*        ASCII character set */
00174 
00175         if (ic >= 97 && ic <= 122) {
00176             *(unsigned char *)subnam = (char) (ic - 32);
00177             for (i = 2; i <= 6; ++i) {
00178                 ic = *(unsigned char *)&subnam[i - 1];
00179                 if (ic >= 97 && ic <= 122) {
00180                     *(unsigned char *)&subnam[i - 1] = (char) (ic - 32);
00181                 }
00182 /* L10: */
00183             }
00184         }
00185 
00186     } else if (iz == 233 || iz == 169) {
00187 
00188 /*        EBCDIC character set */
00189 
00190         if (ic >= 129 && ic <= 137 || ic >= 145 && ic <= 153 || ic >= 162 && 
00191                 ic <= 169) {
00192             *(unsigned char *)subnam = (char) (ic + 64);
00193             for (i = 2; i <= 6; ++i) {
00194                 ic = *(unsigned char *)&subnam[i - 1];
00195                 if (ic >= 129 && ic <= 137 || ic >= 145 && ic <= 153 || ic >= 
00196                         162 && ic <= 169) {
00197                     *(unsigned char *)&subnam[i - 1] = (char) (ic + 64);
00198                 }
00199 /* L20: */
00200             }
00201         }
00202 
00203     } else if (iz == 218 || iz == 250) {
00204 
00205 /*        Prime machines:  ASCII+128 */
00206 
00207         if (ic >= 225 && ic <= 250) {
00208             *(unsigned char *)subnam = (char) (ic - 32);
00209             for (i = 2; i <= 6; ++i) {
00210                 ic = *(unsigned char *)&subnam[i - 1];
00211                 if (ic >= 225 && ic <= 250) {
00212                     *(unsigned char *)&subnam[i - 1] = (char) (ic - 32);
00213                 }
00214 /* L30: */
00215             }
00216         }
00217     }
00218 
00219     *(unsigned char *)c1 = *(unsigned char *)subnam;
00220     sname = *(unsigned char *)c1 == 'S' || *(unsigned char *)c1 == 'D';
00221     cname = *(unsigned char *)c1 == 'C' || *(unsigned char *)c1 == 'Z';
00222     if (! (cname || sname)) {
00223         return ret_val;
00224     }
00225     s_copy(c2, subnam + 1, 2L, 2L);
00226     s_copy(c3, subnam + 3, 3L, 3L);
00227     s_copy(c4, c3 + 1, 2L, 2L);
00228 
00229     switch ((int)*ispec) {
00230         case 1:  goto L110;
00231         case 2:  goto L200;
00232         case 3:  goto L300;
00233     }
00234 
00235 L110:
00236 
00237 /*     ISPEC = 1:  block size */
00238 
00239 /*     In these examples, separate code is provided for setting NB for */
00240 /*     real and complex.  We assume that NB will take the same value in */
00241 /*     single or double precision. */
00242 
00243     nb = 1;
00244 
00245     if (s_cmp(c2, "GE", 2L, 2L) == 0) {
00246         if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00247             if (sname) {
00248                 nb = 64;
00249             } else {
00250                 nb = 64;
00251             }
00252         } else if (s_cmp(c3, "QRF", 3L, 3L) == 0 || s_cmp(c3, "RQF", 3L, 3L) 
00253                 == 0 || s_cmp(c3, "LQF", 3L, 3L) == 0 || s_cmp(c3, "QLF", 3L, 
00254                 3L) == 0) {
00255             if (sname) {
00256                 nb = 32;
00257             } else {
00258                 nb = 32;
00259             }
00260         } else if (s_cmp(c3, "HRD", 3L, 3L) == 0) {
00261             if (sname) {
00262                 nb = 32;
00263             } else {
00264                 nb = 32;
00265             }
00266         } else if (s_cmp(c3, "BRD", 3L, 3L) == 0) {
00267             if (sname) {
00268                 nb = 32;
00269             } else {
00270                 nb = 32;
00271             }
00272         } else if (s_cmp(c3, "TRI", 3L, 3L) == 0) {
00273             if (sname) {
00274                 nb = 64;
00275             } else {
00276                 nb = 64;
00277             }
00278         }
00279     } else if (s_cmp(c2, "PO", 2L, 2L) == 0) {
00280         if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00281             if (sname) {
00282                 nb = 64;
00283             } else {
00284                 nb = 64;
00285             }
00286         }
00287     } else if (s_cmp(c2, "SY", 2L, 2L) == 0) {
00288         if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00289             if (sname) {
00290                 nb = 64;
00291             } else {
00292                 nb = 64;
00293             }
00294         } else if (sname && s_cmp(c3, "TRD", 3L, 3L) == 0) {
00295             nb = 1;
00296         } else if (sname && s_cmp(c3, "GST", 3L, 3L) == 0) {
00297             nb = 64;
00298         }
00299     } else if (cname && s_cmp(c2, "HE", 2L, 2L) == 0) {
00300         if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00301             nb = 64;
00302         } else if (s_cmp(c3, "TRD", 3L, 3L) == 0) {
00303             nb = 1;
00304         } else if (s_cmp(c3, "GST", 3L, 3L) == 0) {
00305             nb = 64;
00306         }
00307     } else if (sname && s_cmp(c2, "OR", 2L, 2L) == 0) {
00308         if (*(unsigned char *)c3 == 'G') {
00309             if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0 
00310                     || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00311                      == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR", 
00312                     2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00313                 nb = 32;
00314             }
00315         } else if (*(unsigned char *)c3 == 'M') {
00316             if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0 
00317                     || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00318                      == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR", 
00319                     2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00320                 nb = 32;
00321             }
00322         }
00323     } else if (cname && s_cmp(c2, "UN", 2L, 2L) == 0) {
00324         if (*(unsigned char *)c3 == 'G') {
00325             if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0 
00326                     || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00327                      == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR", 
00328                     2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00329                 nb = 32;
00330             }
00331         } else if (*(unsigned char *)c3 == 'M') {
00332             if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0 
00333                     || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00334                      == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR", 
00335                     2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00336                 nb = 32;
00337             }
00338         }
00339     } else if (s_cmp(c2, "GB", 2L, 2L) == 0) {
00340         if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00341             if (sname) {
00342                 if (*n4 <= 64) {
00343                     nb = 1;
00344                 } else {
00345                     nb = 32;
00346                 }
00347             } else {
00348                 if (*n4 <= 64) {
00349                     nb = 1;
00350                 } else {
00351                     nb = 32;
00352                 }
00353             }
00354         }
00355     } else if (s_cmp(c2, "PB", 2L, 2L) == 0) {
00356         if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00357             if (sname) {
00358                 if (*n2 <= 64) {
00359                     nb = 1;
00360                 } else {
00361                     nb = 32;
00362                 }
00363             } else {
00364                 if (*n2 <= 64) {
00365                     nb = 1;
00366                 } else {
00367                     nb = 32;
00368                 }
00369             }
00370         }
00371     } else if (s_cmp(c2, "TR", 2L, 2L) == 0) {
00372         if (s_cmp(c3, "TRI", 3L, 3L) == 0) {
00373             if (sname) {
00374                 nb = 64;
00375             } else {
00376                 nb = 64;
00377             }
00378         }
00379     } else if (s_cmp(c2, "LA", 2L, 2L) == 0) {
00380         if (s_cmp(c3, "UUM", 3L, 3L) == 0) {
00381             if (sname) {
00382                 nb = 64;
00383             } else {
00384                 nb = 64;
00385             }
00386         }
00387     } else if (sname && s_cmp(c2, "ST", 2L, 2L) == 0) {
00388         if (s_cmp(c3, "EBZ", 3L, 3L) == 0) {
00389             nb = 1;
00390         }
00391     }
00392     ret_val = nb;
00393     return ret_val;
00394 
00395 L200:
00396 
00397 /*     ISPEC = 2:  minimum block size */
00398 
00399     nbmin = 2;
00400     if (s_cmp(c2, "GE", 2L, 2L) == 0) {
00401         if (s_cmp(c3, "QRF", 3L, 3L) == 0 || s_cmp(c3, "RQF", 3L, 3L) == 0 || 
00402                 s_cmp(c3, "LQF", 3L, 3L) == 0 || s_cmp(c3, "QLF", 3L, 3L) == 
00403                 0) {
00404             if (sname) {
00405                 nbmin = 2;
00406             } else {
00407                 nbmin = 2;
00408             }
00409         } else if (s_cmp(c3, "HRD", 3L, 3L) == 0) {
00410             if (sname) {
00411                 nbmin = 2;
00412             } else {
00413                 nbmin = 2;
00414             }
00415         } else if (s_cmp(c3, "BRD", 3L, 3L) == 0) {
00416             if (sname) {
00417                 nbmin = 2;
00418             } else {
00419                 nbmin = 2;
00420             }
00421         } else if (s_cmp(c3, "TRI", 3L, 3L) == 0) {
00422             if (sname) {
00423                 nbmin = 2;
00424             } else {
00425                 nbmin = 2;
00426             }
00427         }
00428     } else if (s_cmp(c2, "SY", 2L, 2L) == 0) {
00429         if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
00430             if (sname) {
00431                 nbmin = 2;
00432             } else {
00433                 nbmin = 2;
00434             }
00435         } else if (sname && s_cmp(c3, "TRD", 3L, 3L) == 0) {
00436             nbmin = 2;
00437         }
00438     } else if (cname && s_cmp(c2, "HE", 2L, 2L) == 0) {
00439         if (s_cmp(c3, "TRD", 3L, 3L) == 0) {
00440             nbmin = 2;
00441         }
00442     } else if (sname && s_cmp(c2, "OR", 2L, 2L) == 0) {
00443         if (*(unsigned char *)c3 == 'G') {
00444             if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0 
00445                     || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00446                      == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR", 
00447                     2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00448                 nbmin = 2;
00449             }
00450         } else if (*(unsigned char *)c3 == 'M') {
00451             if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0 
00452                     || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00453                      == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR", 
00454                     2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00455                 nbmin = 2;
00456             }
00457         }
00458     } else if (cname && s_cmp(c2, "UN", 2L, 2L) == 0) {
00459         if (*(unsigned char *)c3 == 'G') {
00460             if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0 
00461                     || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00462                      == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR", 
00463                     2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00464                 nbmin = 2;
00465             }
00466         } else if (*(unsigned char *)c3 == 'M') {
00467             if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0 
00468                     || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00469                      == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR", 
00470                     2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00471                 nbmin = 2;
00472             }
00473         }
00474     }
00475     ret_val = nbmin;
00476     return ret_val;
00477 
00478 L300:
00479 
00480 /*     ISPEC = 3:  crossover point */
00481 
00482     nx = 0;
00483     if (s_cmp(c2, "GE", 2L, 2L) == 0) {
00484         if (s_cmp(c3, "QRF", 3L, 3L) == 0 || s_cmp(c3, "RQF", 3L, 3L) == 0 || 
00485                 s_cmp(c3, "LQF", 3L, 3L) == 0 || s_cmp(c3, "QLF", 3L, 3L) == 
00486                 0) {
00487             if (sname) {
00488                 nx = 128;
00489             } else {
00490                 nx = 128;
00491             }
00492         } else if (s_cmp(c3, "HRD", 3L, 3L) == 0) {
00493             if (sname) {
00494                 nx = 128;
00495             } else {
00496                 nx = 128;
00497             }
00498         } else if (s_cmp(c3, "BRD", 3L, 3L) == 0) {
00499             if (sname) {
00500                 nx = 128;
00501             } else {
00502                 nx = 128;
00503             }
00504         }
00505     } else if (s_cmp(c2, "SY", 2L, 2L) == 0) {
00506         if (sname && s_cmp(c3, "TRD", 3L, 3L) == 0) {
00507             nx = 1;
00508         }
00509     } else if (cname && s_cmp(c2, "HE", 2L, 2L) == 0) {
00510         if (s_cmp(c3, "TRD", 3L, 3L) == 0) {
00511             nx = 1;
00512         }
00513     } else if (sname && s_cmp(c2, "OR", 2L, 2L) == 0) {
00514         if (*(unsigned char *)c3 == 'G') {
00515             if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0 
00516                     || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00517                      == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR", 
00518                     2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00519                 nx = 128;
00520             }
00521         }
00522     } else if (cname && s_cmp(c2, "UN", 2L, 2L) == 0) {
00523         if (*(unsigned char *)c3 == 'G') {
00524             if (s_cmp(c4, "QR", 2L, 2L) == 0 || s_cmp(c4, "RQ", 2L, 2L) == 0 
00525                     || s_cmp(c4, "LQ", 2L, 2L) == 0 || s_cmp(c4, "QL", 2L, 2L)
00526                      == 0 || s_cmp(c4, "HR", 2L, 2L) == 0 || s_cmp(c4, "TR", 
00527                     2L, 2L) == 0 || s_cmp(c4, "BR", 2L, 2L) == 0) {
00528                 nx = 128;
00529             }
00530         }
00531     }
00532     ret_val = nx;
00533     return ret_val;
00534 
00535 L400:
00536 
00537 /*     ISPEC = 4:  number of shifts (used by xHSEQR) */
00538 
00539     ret_val = 6;
00540     return ret_val;
00541 
00542 L500:
00543 
00544 /*     ISPEC = 5:  minimum column dimension (not used) */
00545 
00546     ret_val = 2;
00547     return ret_val;
00548 
00549 L600:
00550 
00551 /*     ISPEC = 6:  crossover point for SVD (used by xGELSS and xGESVD) */
00552 
00553     ret_val = (integer) ((real) min(*n1,*n2) * (float)1.6);
00554     return ret_val;
00555 
00556 L700:
00557 
00558 /*     ISPEC = 7:  number of processors (not used) */
00559 
00560     ret_val = 1;
00561     return ret_val;
00562 
00563 L800:
00564 
00565 /*     ISPEC = 8:  crossover point for multishift (used by xHSEQR) */
00566 
00567     ret_val = 50;
00568     return ret_val;
00569 
00570 /*     End of ILAENV */
00571 
00572 } /* ilaenv_ */
00573 

Generated on Wed Sep 5 12:54:21 2007 for DSACSS Operational Code by  doxygen 1.3.9.1