LaguerreSolver extends AbstractPolynomialSolver { public Complex[] solveAllComplex(double[] coefficients, double initial) throws NullArgumentException, NoDataException, TooManyEvaluationsException { setup(Integer.MAX_VALUE, new PolynomialFunction(coefficients), Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, initial); return complexSolver.solveAll(ComplexUtils.convertToComplex(coefficients), new Complex(initial, 0d)); } LaguerreSolver();  LaguerreSolver(double absoluteAccuracy);  LaguerreSolver(double relativeAccuracy,
                          double absoluteAccuracy);  LaguerreSolver(double relativeAccuracy,
                          double absoluteAccuracy,
                          double functionValueAccuracy); @Override double doSolve(); @Deprecated double laguerre(double lo, double hi,
                           double fLo, double fHi); Complex[] solveAllComplex(double[] coefficients,
                                     double initial); Complex solveComplex(double[] coefficients,
                                double initial);  }
@Test public void testQuinticFunction2() { final double[] coefficients = { 4.0, 0.0, 1.0, 4.0, 0.0, 1.0 }; final LaguerreSolver solver = new LaguerreSolver(); final Complex[] result = solver.solveAllComplex(coefficients, 0); for (Complex expected : new Complex[] { new Complex(0, -2), new Complex(0, 2), new Complex(0.5, 0.5 * FastMath.sqrt(3)), new Complex(-1, 0), new Complex(0.5, -0.5 * FastMath.sqrt(3.0)) }) { final double tolerance = FastMath.max(solver.getAbsoluteAccuracy(), FastMath.abs(expected.abs() * solver.getRelativeAccuracy())); TestUtils.assertContains(result, expected, tolerance); } }