if (scale == 0.0)
{
- // e[i - 1] = value[i - 1][l - 1];
e[i - 1] = getValue(i - 1, l - 1);
}
else
{
for (k = 1; k <= l; k++)
{
- // value[i - 1][k - 1] /= scale;
- // h += (value[i - 1][k - 1] * value[i - 1][k - 1]);
double v = divideValue(i - 1, k - 1, scale);
h += v * v;
}
- // f = value[i - 1][l - 1];
f = getValue(i - 1, l - 1);
if (f > 0)
e[i - 1] = scale * g;
h -= (f * g);
- // value[i - 1][l - 1] = f - g;
setValue(i - 1, l - 1, f - g);
- // System.out.println(String.format("%d %d %f %f %f %f %f %.5e", i,
- // l,
- // scale, f, g, h, getValue(i - 1, l - 1), checksum()));
f = 0.0;
for (j = 1; j <= l; j++)
{
- // value[j - 1][i - 1] = value[i - 1][j - 1] / h;
double val = getValue(i - 1, j - 1) / h;
setValue(j - 1, i - 1, val);
g = 0.0;
for (k = 1; k <= j; k++)
{
- // g += (value[j - 1][k - 1] * value[i - 1][k - 1]);
g += (getValue(j - 1, k - 1) * getValue(i - 1, k - 1));
}
for (k = j + 1; k <= l; k++)
{
- // g += (value[k - 1][j - 1] * value[i - 1][k - 1]);
g += (getValue(k - 1, j - 1) * getValue(i - 1, k - 1));
}
e[j - 1] = g / h;
- // f += (e[j - 1] * value[i - 1][j - 1]);
f += (e[j - 1] * getValue(i - 1, j - 1));
}
for (j = 1; j <= l; j++)
{
- // f = value[i - 1][j - 1];
f = getValue(i - 1, j - 1);
g = e[j - 1] - (hh * f);
e[j - 1] = g;
for (k = 1; k <= j; k++)
{
- // value[j - 1][k - 1] -= ((f * e[k - 1]) + (g * value[i - 1][k -
- // 1]));
double val = (f * e[k - 1]) + (g * getValue(i - 1, k - 1));
addValue(j - 1, k - 1, -val);
}
}
else
{
- // e[i - 1] = value[i - 1][l - 1];
e[i - 1] = getValue(i - 1, l - 1);
}
for (k = 1; k <= l; k++)
{
- // g += (value[i - 1][k - 1] * value[k - 1][j - 1]);
g += (getValue(i - 1, k - 1) * getValue(k - 1, j - 1));
}
for (k = 1; k <= l; k++)
{
- // value[k - 1][j - 1] -= (g * value[k - 1][i - 1]);
- addValue(k - 1, j - 1, -(g * getValue(k - 1, i - 1)));
+ double x = addValue(k - 1, j - 1, -(g * getValue(k - 1, i - 1)));
}
}
}
- // d[i - 1] = value[i - 1][i - 1];
- // value[i - 1][i - 1] = 1.0;
d[i - 1] = getValue(i - 1, i - 1);
setValue(i - 1, i - 1, 1.0);
for (j = 1; j <= l; j++)
{
- // value[j - 1][i - 1] = 0.0;
- // value[i - 1][j - 1] = 0.0;
setValue(j - 1, i - 1, 0.0);
setValue(i - 1, j - 1, 0.0);
}