9 int qrbdi(
double *dm, 
double *em, 
int m)
 
   13     double u, 
x, y, a, 
b, c, s, 
t;
 
   15     for (j = 1, 
t = fabs(dm[0]); j < m; ++j)
 
   16         if ((s = fabs(dm[j]) + fabs(em[j - 1])) > 
t)
 
   20     for (j = 0; m > 1 && j < n; ++j) {
 
   21         for (k = m - 1; k > 0; --k) {
 
   22             if (fabs(em[k - 1]) < 
t)
 
   24             if (fabs(dm[k - 1]) < 
t) {
 
   25                 for (i = k, s = 1., c = 0.; i < m; ++i) {
 
   29                     dm[i] = u = sqrt(a * a + 
b * 
b);
 
   39         a = (y + 
x) * (y - 
x) - u * u;
 
   42         u = sqrt(a * a + 
b * 
b);
 
   44             c = sqrt((u + a) / (u + u));
 
   49             for (i = k; i < m - 1; ++i) {
 
   54                     em[i - 1] = u = sqrt(
x * 
x + a * a);
 
   61                 dm[i] = u = sqrt(a * a + s * s);
 
int qrbdi(double *dm, double *em, int m)