Author: psteitz
Date: Mon Dec 26 14:53:57 2005
New Revision: 359120
URL: http://svn.apache.org/viewcvs?rev=359120&view=rev
Log:
Coding style changes to match the rest of [math].
Modified:
jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/analysis/LaguerreSolver.java
Modified:
jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/analysis/LaguerreSolver.java
URL:
http://svn.apache.org/viewcvs/jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/analysis/LaguerreSolver.java?rev=359120&r1=359119&r2=359120&view=diff
==============================================================================
---
jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/analysis/LaguerreSolver.java
(original)
+++
jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/analysis/LaguerreSolver.java
Mon Dec 26 14:53:57 2005
@@ -17,7 +17,8 @@
import org.apache.commons.math.ConvergenceException;
import org.apache.commons.math.FunctionEvaluationException;
-import org.apache.commons.math.complex.*;
+import org.apache.commons.math.complex.Complex;
+import org.apache.commons.math.complex.ComplexUtils;
/**
* Implements the <a href="http://mathworld.wolfram.com/LaguerresMethod.html">
@@ -33,7 +34,7 @@
public class LaguerreSolver extends UnivariateRealSolverImpl {
/** serializable version identifier */
- static final long serialVersionUID = 5287689975005870178L;
+ private static final long serialVersionUID = 5287689975005870178L;
/** polynomial function to solve */
private PolynomialFunction p;
@@ -117,27 +118,25 @@
public double solve(double min, double max) throws ConvergenceException,
FunctionEvaluationException {
- Complex c[], root[], initial, z;
-
// check for zeros before verifying bracketing
if (p.value(min) == 0.0) { return min; }
if (p.value(max) == 0.0) { return max; }
verifyBracketing(min, max, p);
double coefficients[] = p.getCoefficients();
- c = new Complex[coefficients.length];
+ Complex c[] = new Complex[coefficients.length];
for (int i = 0; i < coefficients.length; i++) {
c[i] = new Complex(coefficients[i], 0.0);
}
- initial = new Complex(0.5 * (min + max), 0.0);
- z = solve(c, initial);
+ Complex initial = new Complex(0.5 * (min + max), 0.0);
+ Complex z = solve(c, initial);
if (isRootOK(min, max, z)) {
setResult(z.getReal(), iterationCount);
return result;
}
// solve all roots and select the one we're seeking
- root = solveAll(c, initial);
+ Complex[] root = solveAll(c, initial);
for (int i = 0; i < root.length; i++) {
if (isRootOK(min, max, root[i])) {
setResult(root[i].getReal(), iterationCount);
@@ -205,28 +204,27 @@
public Complex[] solveAll(Complex coefficients[], Complex initial) throws
ConvergenceException, FunctionEvaluationException {
- int i, j, n, iterationCount = 0;
- Complex root[], c[], subarray[], oldc, newc;
-
- n = coefficients.length - 1;
+ int n = coefficients.length - 1;
+ int iterationCount = 0;
if (n < 1) {
throw new IllegalArgumentException
("Polynomial degree must be positive: degree=" + n);
}
- c = new Complex[n+1]; // coefficients for deflated polynomial
- for (i = 0; i <= n; i++) {
+ Complex c[] = new Complex[n+1]; // coefficients for deflated
polynomial
+ for (int i = 0; i <= n; i++) {
c[i] = coefficients[i];
}
// solve individual root successively
- root = new Complex[n];
- for (i = 0; i < n; i++) {
- subarray = new Complex[n-i+1];
+ Complex root[] = new Complex[n];
+ for (int i = 0; i < n; i++) {
+ Complex subarray[] = new Complex[n-i+1];
System.arraycopy(c, 0, subarray, 0, subarray.length);
root[i] = solve(subarray, initial);
// polynomial deflation using synthetic division
- newc = c[n-i];
- for (j = n-i-1; j >= 0; j--) {
+ Complex newc = c[n-i];
+ Complex oldc = null;
+ for (int j = n-i-1; j >= 0; j--) {
oldc = c[j];
c[j] = newc;
newc = oldc.add(newc.multiply(root[i]));
@@ -255,8 +253,6 @@
public Complex solve(Complex coefficients[], Complex initial) throws
ConvergenceException, FunctionEvaluationException {
- Complex z = initial, oldz, pv, dv, d2v, G, G2, H, delta, denominator;
-
int n = coefficients.length - 1;
if (n < 1) {
throw new IllegalArgumentException
@@ -266,12 +262,22 @@
Complex N1 = new Complex((double)(n-1), 0.0);
int i = 1;
- oldz = new Complex(Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY);
+ Complex pv = null;
+ Complex dv = null;
+ Complex d2v = null;
+ Complex G = null;
+ Complex G2 = null;
+ Complex H = null;
+ Complex delta = null;
+ Complex denominator = null;
+ Complex z = initial;
+ Complex oldz = new Complex(Double.POSITIVE_INFINITY,
Double.POSITIVE_INFINITY);
while (i <= maximalIterationCount) {
// Compute pv (polynomial value), dv (derivative value), and
// d2v (second derivative value) simultaneously.
pv = coefficients[n];
- dv = d2v = new Complex(0.0, 0.0);
+ dv = Complex.ZERO;
+ d2v = Complex.ZERO;
for (int j = n-1; j >= 0; j--) {
d2v = dv.add(z.multiply(d2v));
dv = pv.add(z.multiply(dv));
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]