2 #include "gmx_lapack.h"
5 F77_FUNC(slasq5,SLASQ5)(int *i0,
23 static float emin, temp;
27 if (*n0 - *i0 - 1 <= 0) {
31 j4 = (*i0 << 2) + *pp - 3;
41 for (j4 = *i0 << 2; j4 <= i__1; j4 += 4) {
42 z__[j4 - 2] = d__ + z__[j4 - 1];
43 temp = z__[j4 + 1] / z__[j4 - 2];
44 d__ = d__ * temp - *tau;
47 z__[j4] = z__[j4 - 1] * temp;
54 for (j4 = *i0 << 2; j4 <= i__1; j4 += 4) {
55 z__[j4 - 3] = d__ + z__[j4];
56 temp = z__[j4 + 2] / z__[j4 - 3];
57 d__ = d__ * temp - *tau;
60 z__[j4 - 1] = z__[j4] * temp;
69 j4 = 4*(*n0 - 2) - *pp;
70 j4p2 = j4 + (*pp << 1) - 1;
71 z__[j4 - 2] = *dnm2 + z__[j4p2];
72 z__[j4] = z__[j4p2 + 2] * (z__[j4p2] / z__[j4 - 2]);
73 *dnm1 = z__[j4p2 + 2] * (*dnm2 / z__[j4 - 2]) - *tau;
79 j4p2 = j4 + (*pp << 1) - 1;
80 z__[j4 - 2] = *dnm1 + z__[j4p2];
81 z__[j4] = z__[j4p2 + 2] * (z__[j4p2] / z__[j4 - 2]);
82 *dn = z__[j4p2 + 2] * (*dnm1 / z__[j4 - 2]) - *tau;
90 for (j4 = *i0 << 2; j4 <= i__1; j4 += 4) {
91 z__[j4 - 2] = d__ + z__[j4 - 1];
95 z__[j4] = z__[j4 + 1] * (z__[j4 - 1] / z__[j4 - 2]);
96 d__ = z__[j4 + 1] * (d__ / z__[j4 - 2]) - *tau;
100 d__1 = emin, d__2 = z__[j4];
101 emin = (d__1<d__2) ? d__1 : d__2;
105 for (j4 = *i0 << 2; j4 <= i__1; j4 += 4) {
106 z__[j4 - 3] = d__ + z__[j4];
110 z__[j4 - 1] = z__[j4 + 2] * (z__[j4] / z__[j4 - 3]);
111 d__ = z__[j4 + 2] * (d__ / z__[j4 - 3]) - *tau;
115 d__1 = emin, d__2 = z__[j4 - 1];
116 emin = (d__1<d__2) ? d__1 : d__2;
122 j4 = 4*(*n0 - 2) - *pp;
123 j4p2 = j4 + (*pp << 1) - 1;
124 z__[j4 - 2] = *dnm2 + z__[j4p2];
128 z__[j4] = z__[j4p2 + 2] * (z__[j4p2] / z__[j4 - 2]);
129 *dnm1 = z__[j4p2 + 2] * (*dnm2 / z__[j4 - 2]) - *tau;
136 j4p2 = j4 + (*pp << 1) - 1;
137 z__[j4 - 2] = *dnm1 + z__[j4p2];
141 z__[j4] = z__[j4p2 + 2] * (z__[j4p2] / z__[j4 - 2]);
142 *dn = z__[j4p2 + 2] * (*dnm1 / z__[j4 - 2]) - *tau;
150 z__[(*n0 << 2) - *pp] = emin;