ilaenv.c
来自「InsightToolkit-1.4.0(有大量的优化算法程序)」· C语言 代码 · 共 551 行 · 第 1/2 页
C
551 行
s_cmp(c4, "LQ", 2L, 2L) == 0 ||
s_cmp(c4, "QL", 2L, 2L) == 0 ||
s_cmp(c4, "HR", 2L, 2L) == 0 ||
s_cmp(c4, "TR", 2L, 2L) == 0 ||
s_cmp(c4, "BR", 2L, 2L) == 0) {
nb = 32;
}
}
} else if (cname && s_cmp(c2, "UN", 2L, 2L) == 0) {
if (*c3 == 'G') {
if (s_cmp(c4, "QR", 2L, 2L) == 0 ||
s_cmp(c4, "RQ", 2L, 2L) == 0 ||
s_cmp(c4, "LQ", 2L, 2L) == 0 ||
s_cmp(c4, "QL", 2L, 2L) == 0 ||
s_cmp(c4, "HR", 2L, 2L) == 0 ||
s_cmp(c4, "TR", 2L, 2L) == 0 ||
s_cmp(c4, "BR", 2L, 2L) == 0) {
nb = 32;
}
} else if (*c3 == 'M') {
if (s_cmp(c4, "QR", 2L, 2L) == 0 ||
s_cmp(c4, "RQ", 2L, 2L) == 0 ||
s_cmp(c4, "LQ", 2L, 2L) == 0 ||
s_cmp(c4, "QL", 2L, 2L) == 0 ||
s_cmp(c4, "HR", 2L, 2L) == 0 ||
s_cmp(c4, "TR", 2L, 2L) == 0 ||
s_cmp(c4, "BR", 2L, 2L) == 0) {
nb = 32;
}
}
} else if (s_cmp(c2, "GB", 2L, 2L) == 0) {
if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
if (sname) {
if (*n4 <= 64) {
nb = 1;
} else {
nb = 32;
}
} else {
if (*n4 <= 64) {
nb = 1;
} else {
nb = 32;
}
}
}
} else if (s_cmp(c2, "PB", 2L, 2L) == 0) {
if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
if (sname) {
if (*n2 <= 64) {
nb = 1;
} else {
nb = 32;
}
} else {
if (*n2 <= 64) {
nb = 1;
} else {
nb = 32;
}
}
}
} else if (s_cmp(c2, "TR", 2L, 2L) == 0) {
if (s_cmp(c3, "TRI", 3L, 3L) == 0) {
if (sname) {
nb = 64;
} else {
nb = 64;
}
}
} else if (s_cmp(c2, "LA", 2L, 2L) == 0) {
if (s_cmp(c3, "UUM", 3L, 3L) == 0) {
if (sname) {
nb = 64;
} else {
nb = 64;
}
}
} else if (sname && s_cmp(c2, "ST", 2L, 2L) == 0) {
if (s_cmp(c3, "EBZ", 3L, 3L) == 0) {
nb = 1;
}
}
return nb;
L200:
/* ISPEC = 2: minimum block size */
nbmin = 2;
if (s_cmp(c2, "GE", 2L, 2L) == 0) {
if (s_cmp(c3, "QRF", 3L, 3L) == 0 ||
s_cmp(c3, "RQF", 3L, 3L) == 0 ||
s_cmp(c3, "LQF", 3L, 3L) == 0 ||
s_cmp(c3, "QLF", 3L, 3L) == 0) {
if (sname) {
nbmin = 2;
} else {
nbmin = 2;
}
} else if (s_cmp(c3, "HRD", 3L, 3L) == 0) {
if (sname) {
nbmin = 2;
} else {
nbmin = 2;
}
} else if (s_cmp(c3, "BRD", 3L, 3L) == 0) {
if (sname) {
nbmin = 2;
} else {
nbmin = 2;
}
} else if (s_cmp(c3, "TRI", 3L, 3L) == 0) {
if (sname) {
nbmin = 2;
} else {
nbmin = 2;
}
}
} else if (s_cmp(c2, "SY", 2L, 2L) == 0) {
if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
if (sname) {
nbmin = 8;
} else {
nbmin = 8;
}
} else if (sname && s_cmp(c3, "TRD", 3L, 3L) == 0) {
nbmin = 2;
}
} else if (cname && s_cmp(c2, "HE", 2L, 2L) == 0) {
if (s_cmp(c3, "TRD", 3L, 3L) == 0) {
nbmin = 2;
}
} else if (sname && s_cmp(c2, "OR", 2L, 2L) == 0) {
if (*c3 == 'G') {
if (s_cmp(c4, "QR", 2L, 2L) == 0 ||
s_cmp(c4, "RQ", 2L, 2L) == 0 ||
s_cmp(c4, "LQ", 2L, 2L) == 0 ||
s_cmp(c4, "QL", 2L, 2L) == 0 ||
s_cmp(c4, "HR", 2L, 2L) == 0 ||
s_cmp(c4, "TR", 2L, 2L) == 0 ||
s_cmp(c4, "BR", 2L, 2L) == 0) {
nbmin = 2;
}
} else if (*c3 == 'M') {
if (s_cmp(c4, "QR", 2L, 2L) == 0 ||
s_cmp(c4, "RQ", 2L, 2L) == 0 ||
s_cmp(c4, "LQ", 2L, 2L) == 0 ||
s_cmp(c4, "QL", 2L, 2L) == 0 ||
s_cmp(c4, "HR", 2L, 2L) == 0 ||
s_cmp(c4, "TR", 2L, 2L) == 0 ||
s_cmp(c4, "BR", 2L, 2L) == 0) {
nbmin = 2;
}
}
} else if (cname && s_cmp(c2, "UN", 2L, 2L) == 0) {
if (*c3 == 'G') {
if (s_cmp(c4, "QR", 2L, 2L) == 0 ||
s_cmp(c4, "RQ", 2L, 2L) == 0 ||
s_cmp(c4, "LQ", 2L, 2L) == 0 ||
s_cmp(c4, "QL", 2L, 2L) == 0 ||
s_cmp(c4, "HR", 2L, 2L) == 0 ||
s_cmp(c4, "TR", 2L, 2L) == 0 ||
s_cmp(c4, "BR", 2L, 2L) == 0) {
nbmin = 2;
}
} else if (*c3 == 'M') {
if (s_cmp(c4, "QR", 2L, 2L) == 0 ||
s_cmp(c4, "RQ", 2L, 2L) == 0 ||
s_cmp(c4, "LQ", 2L, 2L) == 0 ||
s_cmp(c4, "QL", 2L, 2L) == 0 ||
s_cmp(c4, "HR", 2L, 2L) == 0 ||
s_cmp(c4, "TR", 2L, 2L) == 0 ||
s_cmp(c4, "BR", 2L, 2L) == 0) {
nbmin = 2;
}
}
}
return nbmin;
L300:
/* ISPEC = 3: crossover point */
nx = 0;
if (s_cmp(c2, "GE", 2L, 2L) == 0) {
if (s_cmp(c3, "QRF", 3L, 3L) == 0 ||
s_cmp(c3, "RQF", 3L, 3L) == 0 ||
s_cmp(c3, "LQF", 3L, 3L) == 0 ||
s_cmp(c3, "QLF", 3L, 3L) == 0) {
if (sname) {
nx = 128;
} else {
nx = 128;
}
} else if (s_cmp(c3, "HRD", 3L, 3L) == 0) {
if (sname) {
nx = 128;
} else {
nx = 128;
}
} else if (s_cmp(c3, "BRD", 3L, 3L) == 0) {
if (sname) {
nx = 128;
} else {
nx = 128;
}
}
} else if (s_cmp(c2, "SY", 2L, 2L) == 0) {
if (sname && s_cmp(c3, "TRD", 3L, 3L) == 0) {
nx = 1;
}
} else if (cname && s_cmp(c2, "HE", 2L, 2L) == 0) {
if (s_cmp(c3, "TRD", 3L, 3L) == 0) {
nx = 1;
}
} else if (sname && s_cmp(c2, "OR", 2L, 2L) == 0) {
if (*c3 == 'G') {
if (s_cmp(c4, "QR", 2L, 2L) == 0 ||
s_cmp(c4, "RQ", 2L, 2L) == 0 ||
s_cmp(c4, "LQ", 2L, 2L) == 0 ||
s_cmp(c4, "QL", 2L, 2L) == 0 ||
s_cmp(c4, "HR", 2L, 2L) == 0 ||
s_cmp(c4, "TR", 2L, 2L) == 0 ||
s_cmp(c4, "BR", 2L, 2L) == 0) {
nx = 128;
}
}
} else if (cname && s_cmp(c2, "UN", 2L, 2L) == 0) {
if (*c3 == 'G') {
if (s_cmp(c4, "QR", 2L, 2L) == 0 ||
s_cmp(c4, "RQ", 2L, 2L) == 0 ||
s_cmp(c4, "LQ", 2L, 2L) == 0 ||
s_cmp(c4, "QL", 2L, 2L) == 0 ||
s_cmp(c4, "HR", 2L, 2L) == 0 ||
s_cmp(c4, "TR", 2L, 2L) == 0 ||
s_cmp(c4, "BR", 2L, 2L) == 0) {
nx = 128;
}
}
}
return nx;
L400:
/* ISPEC = 4: number of shifts (used by xHSEQR) */
return 6;
L500:
/* ISPEC = 5: minimum column dimension (not used) */
return 2;
L600:
/* ISPEC = 6: crossover point for SVD (used by xGELSS and xGESVD) */
return (integer) ((real) min(*n1,*n2) * 1.6f);
L700:
/* ISPEC = 7: number of processors (not used) */
return 1;
L800:
/* ISPEC = 8: crossover point for multishift (used by xHSEQR) */
return 50;
} /* ilaenv_ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?