ilaenv.c
来自「算断裂的」· C语言 代码 · 共 555 行 · 第 1/2 页
C
555 行
}
} else if (cname && s_cmp(c2, "HE", 2L, 2L) == 0) {
if (s_cmp(c3, "TRF", 3L, 3L) == 0) {
nb = 64;
} else if (s_cmp(c3, "TRD", 3L, 3L) == 0) {
nb = 1;
} else if (s_cmp(c3, "GST", 3L, 3L) == 0) {
nb = 64;
}
} else if (sname && s_cmp(c2, "OR", 2L, 2L) == 0) {
if (*(unsigned char *)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 (*(unsigned char *)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 (cname && s_cmp(c2, "UN", 2L, 2L) == 0) {
if (*(unsigned char *)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 (*(unsigned char *)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;
}
}
ret_val = nb;
return ret_val;
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 (*(unsigned char *)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 (*(unsigned char *)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 (*(unsigned char *)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 (*(unsigned char *)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;
}
}
}
ret_val = nbmin;
return ret_val;
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 (*(unsigned char *)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 (*(unsigned char *)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;
}
}
}
ret_val = nx;
return ret_val;
L400:
/* ISPEC = 4: number of shifts (used by xHSEQR) */
ret_val = 6;
return ret_val;
L500:
/* ISPEC = 5: minimum column dimension (not used) */
ret_val = 2;
return ret_val;
L600:
/* ISPEC = 6: crossover point for SVD (used by xGELSS and xGESVD) */
ret_val = (integer) ((real) min(*n1,*n2) * 1.6f);
return ret_val;
L700:
/* ISPEC = 7: number of processors (not used) */
ret_val = 1;
return ret_val;
L800:
/* ISPEC = 8: crossover point for multishift (used by xHSEQR) */
ret_val = 50;
return ret_val;
/* End of ILAENV */
} /* ilaenv_ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?