35 #ifndef TEMPLATE_LAPACK_LASQ4_HEADER
36 #define TEMPLATE_LAPACK_LASQ4_HEADER
41 Treal *dmin2, Treal *dn, Treal *dn1, Treal *dn2,
42 Treal *tau,
integer *ttype, Treal *g)
53 Treal gam, gap1, gap2;
147 nn = (*n0 << 2) + *pp;
152 if (*dmin__ == *dn || *dmin__ == *dn1) {
156 a2 = z__[nn - 7] + z__[nn - 5];
160 if (*dmin__ == *dn && *dmin1 == *dn1) {
161 gap2 = *dmin2 - a2 - *dmin2 * .25;
162 if (gap2 > 0. && gap2 > b2) {
163 gap1 = a2 - *dn - b2 / gap2 * b2;
165 gap1 = a2 - *dn - (b1 + b2);
167 if (gap1 > 0. && gap1 > b1) {
169 d__1 = *dn - b1 / gap1 * b1, d__2 = *dmin__ * .5;
179 d__1 = s, d__2 = a2 - (b1 + b2);
183 d__1 = s, d__2 = *dmin__ * .333;
193 if (*dmin__ == *dn) {
196 if (z__[nn - 5] > z__[nn - 7]) {
199 b2 = z__[nn - 5] / z__[nn - 7];
202 np = nn - (*pp << 1);
205 if (z__[np - 4] > z__[np - 2]) {
208 a2 = z__[np - 4] / z__[np - 2];
209 if (z__[nn - 9] > z__[nn - 11]) {
212 b2 = z__[nn - 9] / z__[nn - 11];
219 i__1 = (*i0 << 2) - 1 + *pp;
220 for (i4 = np; i4 >= i__1; i4 += -4) {
225 if (z__[i4] > z__[i4 - 2]) {
228 b2 *= z__[i4] / z__[i4 - 2];
230 if (
maxMACRO(b2,b1) * 100. < a2 || .563 < a2) {
244 }
else if (*dmin__ == *dn2) {
253 np = nn - (*pp << 1);
257 if (z__[np - 8] > b2 || z__[np - 4] > b1) {
260 a2 = z__[np - 8] / b2 * (z__[np - 4] / b1 + 1.);
265 b2 = z__[nn - 13] / z__[nn - 15];
267 i__1 = (*i0 << 2) - 1 + *pp;
268 for (i4 = nn - 17; i4 >= i__1; i4 += -4) {
273 if (z__[i4] > z__[i4 - 2]) {
276 b2 *= z__[i4] / z__[i4 - 2];
278 if (
maxMACRO(b2,b1) * 100. < a2 || .563 < a2) {
295 *g += (1. - *g) * .333;
296 }
else if (*ttype == -18) {
297 *g = .083250000000000005;
305 }
else if (*n0in == *n0 + 1) {
309 if (*dmin1 == *dn1 && *dmin2 == *dn2) {
315 if (z__[nn - 5] > z__[nn - 7]) {
318 b1 = z__[nn - 5] / z__[nn - 7];
323 i__1 = (*i0 << 2) - 1 + *pp;
324 for (i4 = (*n0 << 2) - 9 + *pp; i4 >= i__1; i4 += -4) {
326 if (z__[i4] > z__[i4 - 2]) {
329 b1 *= z__[i4] / z__[i4 - 2];
340 a2 = *dmin1 / (d__1 * d__1 + 1.);
341 gap2 = *dmin2 * .5 - a2;
342 if (gap2 > 0. && gap2 > b2 * a2) {
344 d__1 = s, d__2 = a2 * (1. - a2 * 1.01 * (b2 / gap2) * b2);
348 d__1 = s, d__2 = a2 * (1. - b2 * 1.01);
357 if (*dmin1 == *dn1) {
363 }
else if (*n0in == *n0 + 2) {
369 if (*dmin2 == *dn2 && z__[nn - 5] * 2. < z__[nn - 7]) {
372 if (z__[nn - 5] > z__[nn - 7]) {
375 b1 = z__[nn - 5] / z__[nn - 7];
380 i__1 = (*i0 << 2) - 1 + *pp;
381 for (i4 = (*n0 << 2) - 9 + *pp; i4 >= i__1; i4 += -4) {
382 if (z__[i4] > z__[i4 - 2]) {
385 b1 *= z__[i4] / z__[i4 - 2];
387 if (b1 * 100. < b2) {
396 a2 = *dmin2 / (d__1 * d__1 + 1.);
399 if (gap2 > 0. && gap2 > b2 * a2) {
401 d__1 = s, d__2 = a2 * (1. - a2 * 1.01 * (b2 / gap2) * b2);
405 d__1 = s, d__2 = a2 * (1. - b2 * 1.01);
412 }
else if (*n0in > *n0 + 2) {