Removed "Real" from class names in package "o.a.c.m.analysis.solvers".


git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1234784 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Gilles Sadowski 2012-01-23 13:33:30 +00:00
parent cd57ad4c3d
commit a04a6c16c6
38 changed files with 142 additions and 142 deletions

View File

@ -17,7 +17,7 @@
package org.apache.commons.math.analysis.integration; package org.apache.commons.math.analysis.integration;
import org.apache.commons.math.analysis.UnivariateFunction; import org.apache.commons.math.analysis.UnivariateFunction;
import org.apache.commons.math.analysis.solvers.UnivariateRealSolverUtils; import org.apache.commons.math.analysis.solvers.UnivariateSolverUtils;
import org.apache.commons.math.exception.MathIllegalArgumentException; import org.apache.commons.math.exception.MathIllegalArgumentException;
import org.apache.commons.math.exception.MaxCountExceededException; import org.apache.commons.math.exception.MaxCountExceededException;
import org.apache.commons.math.exception.NotStrictlyPositiveException; import org.apache.commons.math.exception.NotStrictlyPositiveException;
@ -226,7 +226,7 @@ public abstract class UnivariateRealIntegratorImpl implements UnivariateRealInte
// Checks. // Checks.
MathUtils.checkNotNull(f); MathUtils.checkNotNull(f);
UnivariateRealSolverUtils.verifyInterval(lower, upper); UnivariateSolverUtils.verifyInterval(lower, upper);
// Reset. // Reset.
this.min = lower; this.min = lower;

View File

@ -27,9 +27,9 @@ import org.apache.commons.math.analysis.UnivariateFunction;
* @version $Id$ * @version $Id$
* @since 3.0 * @since 3.0
*/ */
public abstract class AbstractDifferentiableUnivariateRealSolver public abstract class AbstractDifferentiableUnivariateSolver
extends BaseAbstractUnivariateRealSolver<DifferentiableUnivariateFunction> extends BaseAbstractUnivariateSolver<DifferentiableUnivariateFunction>
implements DifferentiableUnivariateRealSolver { implements DifferentiableUnivariateSolver {
/** Derivative of the function to solve. */ /** Derivative of the function to solve. */
private UnivariateFunction functionDerivative; private UnivariateFunction functionDerivative;
@ -38,7 +38,7 @@ public abstract class AbstractDifferentiableUnivariateRealSolver
* *
* @param absoluteAccuracy Maximum absolute error. * @param absoluteAccuracy Maximum absolute error.
*/ */
protected AbstractDifferentiableUnivariateRealSolver(final double absoluteAccuracy) { protected AbstractDifferentiableUnivariateSolver(final double absoluteAccuracy) {
super(absoluteAccuracy); super(absoluteAccuracy);
} }
@ -49,7 +49,7 @@ public abstract class AbstractDifferentiableUnivariateRealSolver
* @param absoluteAccuracy Maximum absolute error. * @param absoluteAccuracy Maximum absolute error.
* @param functionValueAccuracy Maximum function value error. * @param functionValueAccuracy Maximum function value error.
*/ */
protected AbstractDifferentiableUnivariateRealSolver(final double relativeAccuracy, protected AbstractDifferentiableUnivariateSolver(final double relativeAccuracy,
final double absoluteAccuracy, final double absoluteAccuracy,
final double functionValueAccuracy) { final double functionValueAccuracy) {
super(relativeAccuracy, absoluteAccuracy, functionValueAccuracy); super(relativeAccuracy, absoluteAccuracy, functionValueAccuracy);

View File

@ -26,7 +26,7 @@ import org.apache.commons.math.analysis.polynomials.PolynomialFunction;
* @since 3.0 * @since 3.0
*/ */
public abstract class AbstractPolynomialSolver public abstract class AbstractPolynomialSolver
extends BaseAbstractUnivariateRealSolver<PolynomialFunction> extends BaseAbstractUnivariateSolver<PolynomialFunction>
implements PolynomialSolver { implements PolynomialSolver {
/** Function. */ /** Function. */
private PolynomialFunction polynomialFunction; private PolynomialFunction polynomialFunction;

View File

@ -25,15 +25,15 @@ import org.apache.commons.math.analysis.UnivariateFunction;
* @version $Id$ * @version $Id$
* @since 3.0 * @since 3.0
*/ */
public abstract class AbstractUnivariateRealSolver public abstract class AbstractUnivariateSolver
extends BaseAbstractUnivariateRealSolver<UnivariateFunction> extends BaseAbstractUnivariateSolver<UnivariateFunction>
implements UnivariateRealSolver { implements UnivariateSolver {
/** /**
* Construct a solver with given absolute accuracy. * Construct a solver with given absolute accuracy.
* *
* @param absoluteAccuracy Maximum absolute error. * @param absoluteAccuracy Maximum absolute error.
*/ */
protected AbstractUnivariateRealSolver(final double absoluteAccuracy) { protected AbstractUnivariateSolver(final double absoluteAccuracy) {
super(absoluteAccuracy); super(absoluteAccuracy);
} }
/** /**
@ -42,7 +42,7 @@ public abstract class AbstractUnivariateRealSolver
* @param relativeAccuracy Maximum relative error. * @param relativeAccuracy Maximum relative error.
* @param absoluteAccuracy Maximum absolute error. * @param absoluteAccuracy Maximum absolute error.
*/ */
protected AbstractUnivariateRealSolver(final double relativeAccuracy, protected AbstractUnivariateSolver(final double relativeAccuracy,
final double absoluteAccuracy) { final double absoluteAccuracy) {
super(relativeAccuracy, absoluteAccuracy); super(relativeAccuracy, absoluteAccuracy);
} }
@ -53,7 +53,7 @@ public abstract class AbstractUnivariateRealSolver
* @param absoluteAccuracy Maximum absolute error. * @param absoluteAccuracy Maximum absolute error.
* @param functionValueAccuracy Maximum function value error. * @param functionValueAccuracy Maximum function value error.
*/ */
protected AbstractUnivariateRealSolver(final double relativeAccuracy, protected AbstractUnivariateSolver(final double relativeAccuracy,
final double absoluteAccuracy, final double absoluteAccuracy,
final double functionValueAccuracy) { final double functionValueAccuracy) {
super(relativeAccuracy, absoluteAccuracy, functionValueAccuracy); super(relativeAccuracy, absoluteAccuracy, functionValueAccuracy);

View File

@ -18,7 +18,7 @@
package org.apache.commons.math.analysis.solvers; package org.apache.commons.math.analysis.solvers;
/** The kinds of solutions that a {@link BracketedUnivariateRealSolver /** The kinds of solutions that a {@link BracketedUnivariateSolver
* (bracketed univariate real) root-finding algorithm} may accept as solutions. * (bracketed univariate real) root-finding algorithm} may accept as solutions.
* This basically controls whether or not under-approximations and * This basically controls whether or not under-approximations and
* over-approximations are allowed. * over-approximations are allowed.
@ -34,7 +34,7 @@ package org.apache.commons.math.analysis.solvers;
* may be necessary to guarantee that a solution is returned that lies on a * may be necessary to guarantee that a solution is returned that lies on a
* specific side the solution.</p> * specific side the solution.</p>
* *
* @see BracketedUnivariateRealSolver * @see BracketedUnivariateSolver
* @since 3.0 * @since 3.0
* @version $Id$ * @version $Id$
*/ */

View File

@ -33,8 +33,8 @@ import org.apache.commons.math.util.MathUtils;
* @version $Id$ * @version $Id$
* @since 2.0 * @since 2.0
*/ */
public abstract class BaseAbstractUnivariateRealSolver<FUNC extends UnivariateFunction> public abstract class BaseAbstractUnivariateSolver<FUNC extends UnivariateFunction>
implements BaseUnivariateRealSolver<FUNC> { implements BaseUnivariateSolver<FUNC> {
/** Default relative accuracy. */ /** Default relative accuracy. */
private static final double DEFAULT_RELATIVE_ACCURACY = 1e-14; private static final double DEFAULT_RELATIVE_ACCURACY = 1e-14;
/** Default function value accuracy. */ /** Default function value accuracy. */
@ -61,7 +61,7 @@ public abstract class BaseAbstractUnivariateRealSolver<FUNC extends UnivariateFu
* *
* @param absoluteAccuracy Maximum absolute error. * @param absoluteAccuracy Maximum absolute error.
*/ */
protected BaseAbstractUnivariateRealSolver(final double absoluteAccuracy) { protected BaseAbstractUnivariateSolver(final double absoluteAccuracy) {
this(DEFAULT_RELATIVE_ACCURACY, this(DEFAULT_RELATIVE_ACCURACY,
absoluteAccuracy, absoluteAccuracy,
DEFAULT_FUNCTION_VALUE_ACCURACY); DEFAULT_FUNCTION_VALUE_ACCURACY);
@ -73,7 +73,7 @@ public abstract class BaseAbstractUnivariateRealSolver<FUNC extends UnivariateFu
* @param relativeAccuracy Maximum relative error. * @param relativeAccuracy Maximum relative error.
* @param absoluteAccuracy Maximum absolute error. * @param absoluteAccuracy Maximum absolute error.
*/ */
protected BaseAbstractUnivariateRealSolver(final double relativeAccuracy, protected BaseAbstractUnivariateSolver(final double relativeAccuracy,
final double absoluteAccuracy) { final double absoluteAccuracy) {
this(relativeAccuracy, this(relativeAccuracy,
absoluteAccuracy, absoluteAccuracy,
@ -87,7 +87,7 @@ public abstract class BaseAbstractUnivariateRealSolver<FUNC extends UnivariateFu
* @param absoluteAccuracy Maximum absolute error. * @param absoluteAccuracy Maximum absolute error.
* @param functionValueAccuracy Maximum function value error. * @param functionValueAccuracy Maximum function value error.
*/ */
protected BaseAbstractUnivariateRealSolver(final double relativeAccuracy, protected BaseAbstractUnivariateSolver(final double relativeAccuracy,
final double absoluteAccuracy, final double absoluteAccuracy,
final double functionValueAccuracy) { final double functionValueAccuracy) {
this.absoluteAccuracy = absoluteAccuracy; this.absoluteAccuracy = absoluteAccuracy;
@ -223,7 +223,7 @@ public abstract class BaseAbstractUnivariateRealSolver<FUNC extends UnivariateFu
*/ */
protected boolean isBracketing(final double lower, protected boolean isBracketing(final double lower,
final double upper) { final double upper) {
return UnivariateRealSolverUtils.isBracketing(function, lower, upper); return UnivariateSolverUtils.isBracketing(function, lower, upper);
} }
/** /**
@ -237,7 +237,7 @@ public abstract class BaseAbstractUnivariateRealSolver<FUNC extends UnivariateFu
protected boolean isSequence(final double start, protected boolean isSequence(final double start,
final double mid, final double mid,
final double end) { final double end) {
return UnivariateRealSolverUtils.isSequence(start, mid, end); return UnivariateSolverUtils.isSequence(start, mid, end);
} }
/** /**
@ -250,7 +250,7 @@ public abstract class BaseAbstractUnivariateRealSolver<FUNC extends UnivariateFu
*/ */
protected void verifyInterval(final double lower, protected void verifyInterval(final double lower,
final double upper) { final double upper) {
UnivariateRealSolverUtils.verifyInterval(lower, upper); UnivariateSolverUtils.verifyInterval(lower, upper);
} }
/** /**
@ -265,7 +265,7 @@ public abstract class BaseAbstractUnivariateRealSolver<FUNC extends UnivariateFu
protected void verifySequence(final double lower, protected void verifySequence(final double lower,
final double initial, final double initial,
final double upper) { final double upper) {
UnivariateRealSolverUtils.verifySequence(lower, initial, upper); UnivariateSolverUtils.verifySequence(lower, initial, upper);
} }
/** /**
@ -279,7 +279,7 @@ public abstract class BaseAbstractUnivariateRealSolver<FUNC extends UnivariateFu
*/ */
protected void verifyBracketing(final double lower, protected void verifyBracketing(final double lower,
final double upper) { final double upper) {
UnivariateRealSolverUtils.verifyBracketing(function, lower, upper); UnivariateSolverUtils.verifyBracketing(function, lower, upper);
} }
/** /**
@ -287,7 +287,7 @@ public abstract class BaseAbstractUnivariateRealSolver<FUNC extends UnivariateFu
* Method {@link #computeObjectiveValue(double)} calls this method internally. * Method {@link #computeObjectiveValue(double)} calls this method internally.
* It is provided for subclasses that do not exclusively use * It is provided for subclasses that do not exclusively use
* {@code computeObjectiveValue} to solve the function. * {@code computeObjectiveValue} to solve the function.
* See e.g. {@link AbstractDifferentiableUnivariateRealSolver}. * See e.g. {@link AbstractDifferentiableUnivariateSolver}.
*/ */
protected void incrementEvaluationCount() { protected void incrementEvaluationCount() {
try { try {

View File

@ -47,8 +47,8 @@ import org.apache.commons.math.exception.MathInternalError;
* @version $Id$ * @version $Id$
*/ */
public abstract class BaseSecantSolver public abstract class BaseSecantSolver
extends AbstractUnivariateRealSolver extends AbstractUnivariateSolver
implements BracketedUnivariateRealSolver<UnivariateFunction> { implements BracketedUnivariateSolver<UnivariateFunction> {
/** Default absolute accuracy. */ /** Default absolute accuracy. */
protected static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6; protected static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6;

View File

@ -25,17 +25,17 @@ import org.apache.commons.math.analysis.UnivariateFunction;
* *
* This class is not intended for use outside of the Apache Commons Math * This class is not intended for use outside of the Apache Commons Math
* library, regular user should rely on more specific interfaces like * library, regular user should rely on more specific interfaces like
* {@link UnivariateRealSolver}, {@link PolynomialSolver} or {@link * {@link UnivariateSolver}, {@link PolynomialSolver} or {@link
* DifferentiableUnivariateRealSolver}. * DifferentiableUnivariateSolver}.
* @param <FUNC> Type of function to solve. * @param <FUNC> Type of function to solve.
* *
* @version $Id$ * @version $Id$
* @since 3.0 * @since 3.0
* @see UnivariateRealSolver * @see UnivariateSolver
* @see PolynomialSolver * @see PolynomialSolver
* @see DifferentiableUnivariateRealSolver * @see DifferentiableUnivariateSolver
*/ */
public interface BaseUnivariateRealSolver<FUNC extends UnivariateFunction> { public interface BaseUnivariateSolver<FUNC extends UnivariateFunction> {
/** /**
* Get the maximum number of function evaluations. * Get the maximum number of function evaluations.
* *

View File

@ -26,7 +26,7 @@ import org.apache.commons.math.util.FastMath;
* *
* @version $Id$ * @version $Id$
*/ */
public class BisectionSolver extends AbstractUnivariateRealSolver { public class BisectionSolver extends AbstractUnivariateSolver {
/** Default absolute accuracy. */ /** Default absolute accuracy. */
private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6; private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6;
@ -69,7 +69,7 @@ public class BisectionSolver extends AbstractUnivariateRealSolver {
double fmin; double fmin;
while (true) { while (true) {
m = UnivariateRealSolverUtils.midpoint(min, max); m = UnivariateSolverUtils.midpoint(min, max);
fmin = computeObjectiveValue(min); fmin = computeObjectiveValue(min);
fm = computeObjectiveValue(m); fm = computeObjectiveValue(m);
@ -82,7 +82,7 @@ public class BisectionSolver extends AbstractUnivariateRealSolver {
} }
if (FastMath.abs(max - min) <= absoluteAccuracy) { if (FastMath.abs(max - min) <= absoluteAccuracy) {
m = UnivariateRealSolverUtils.midpoint(min, max); m = UnivariateSolverUtils.midpoint(min, max);
return m; return m;
} }
} }

View File

@ -19,7 +19,7 @@ package org.apache.commons.math.analysis.solvers;
import org.apache.commons.math.analysis.UnivariateFunction; import org.apache.commons.math.analysis.UnivariateFunction;
/** Interface for {@link UnivariateRealSolver (univariate real) root-finding /** Interface for {@link UnivariateSolver (univariate real) root-finding
* algorithms} that maintain a bracketed solution. There are several advantages * algorithms} that maintain a bracketed solution. There are several advantages
* to having such root-finding algorithms: * to having such root-finding algorithms:
* <ul> * <ul>
@ -44,8 +44,8 @@ import org.apache.commons.math.analysis.UnivariateFunction;
* @since 3.0 * @since 3.0
* @version $Id$ * @version $Id$
*/ */
public interface BracketedUnivariateRealSolver<FUNC extends UnivariateFunction> public interface BracketedUnivariateSolver<FUNC extends UnivariateFunction>
extends BaseUnivariateRealSolver<FUNC> { extends BaseUnivariateSolver<FUNC> {
/** /**
* Solve for a zero in the given interval. * Solve for a zero in the given interval.

View File

@ -41,8 +41,8 @@ import org.apache.commons.math.util.Precision;
* @version $Id$ * @version $Id$
*/ */
public class BracketingNthOrderBrentSolver public class BracketingNthOrderBrentSolver
extends AbstractUnivariateRealSolver extends AbstractUnivariateSolver
implements BracketedUnivariateRealSolver<UnivariateFunction> { implements BracketedUnivariateSolver<UnivariateFunction> {
/** Default absolute accuracy. */ /** Default absolute accuracy. */
private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6; private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6;

View File

@ -33,7 +33,7 @@ import org.apache.commons.math.util.Precision;
* *
* @version $Id$ * @version $Id$
*/ */
public class BrentSolver extends AbstractUnivariateRealSolver { public class BrentSolver extends AbstractUnivariateSolver {
/** Default absolute accuracy. */ /** Default absolute accuracy. */
private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6; private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6;

View File

@ -25,5 +25,5 @@ import org.apache.commons.math.analysis.DifferentiableUnivariateFunction;
* *
* @version $Id$ * @version $Id$
*/ */
public interface DifferentiableUnivariateRealSolver public interface DifferentiableUnivariateSolver
extends BaseUnivariateRealSolver<DifferentiableUnivariateFunction> {} extends BaseUnivariateSolver<DifferentiableUnivariateFunction> {}

View File

@ -44,7 +44,7 @@ import org.apache.commons.math.util.FastMath;
* @since 1.2 * @since 1.2
* @see MullerSolver2 * @see MullerSolver2
*/ */
public class MullerSolver extends AbstractUnivariateRealSolver { public class MullerSolver extends AbstractUnivariateSolver {
/** Default absolute accuracy. */ /** Default absolute accuracy. */
private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6; private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6;

View File

@ -45,7 +45,7 @@ import org.apache.commons.math.util.FastMath;
* @since 1.2 * @since 1.2
* @see MullerSolver * @see MullerSolver
*/ */
public class MullerSolver2 extends AbstractUnivariateRealSolver { public class MullerSolver2 extends AbstractUnivariateSolver {
/** Default absolute accuracy. */ /** Default absolute accuracy. */
private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6; private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6;

View File

@ -28,7 +28,7 @@ import org.apache.commons.math.util.FastMath;
* *
* @version $Id$ * @version $Id$
*/ */
public class NewtonSolver extends AbstractDifferentiableUnivariateRealSolver { public class NewtonSolver extends AbstractDifferentiableUnivariateSolver {
/** Default absolute accuracy. */ /** Default absolute accuracy. */
private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6; private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6;
@ -63,7 +63,7 @@ public class NewtonSolver extends AbstractDifferentiableUnivariateRealSolver {
@Override @Override
public double solve(int maxEval, final DifferentiableUnivariateFunction f, public double solve(int maxEval, final DifferentiableUnivariateFunction f,
final double min, final double max) { final double min, final double max) {
return super.solve(maxEval, f, UnivariateRealSolverUtils.midpoint(min, max)); return super.solve(maxEval, f, UnivariateSolverUtils.midpoint(min, max));
} }
/** /**

View File

@ -26,4 +26,4 @@ import org.apache.commons.math.analysis.polynomials.PolynomialFunction;
* @since 3.0 * @since 3.0
*/ */
public interface PolynomialSolver public interface PolynomialSolver
extends BaseUnivariateRealSolver<PolynomialFunction> {} extends BaseUnivariateSolver<PolynomialFunction> {}

View File

@ -30,7 +30,7 @@ import org.apache.commons.math.util.FastMath;
* @version $Id$ * @version $Id$
* @since 1.2 * @since 1.2
*/ */
public class RiddersSolver extends AbstractUnivariateRealSolver { public class RiddersSolver extends AbstractUnivariateSolver {
/** Default absolute accuracy. */ /** Default absolute accuracy. */
private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6; private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6;

View File

@ -38,7 +38,7 @@ import org.apache.commons.math.util.FastMath;
* *
* @version $Id$ * @version $Id$
*/ */
public class SecantSolver extends AbstractUnivariateRealSolver { public class SecantSolver extends AbstractUnivariateSolver {
/** Default absolute accuracy. */ /** Default absolute accuracy. */
protected static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6; protected static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6;

View File

@ -25,5 +25,5 @@ import org.apache.commons.math.analysis.UnivariateFunction;
* *
* @version $Id$ * @version $Id$
*/ */
public interface UnivariateRealSolver public interface UnivariateSolver
extends BaseUnivariateRealSolver<UnivariateFunction> {} extends BaseUnivariateSolver<UnivariateFunction> {}

View File

@ -25,15 +25,15 @@ import org.apache.commons.math.exception.util.LocalizedFormats;
import org.apache.commons.math.util.FastMath; import org.apache.commons.math.util.FastMath;
/** /**
* Utility routines for {@link UnivariateRealSolver} objects. * Utility routines for {@link UnivariateSolver} objects.
* *
* @version $Id$ * @version $Id$
*/ */
public class UnivariateRealSolverUtils { public class UnivariateSolverUtils {
/** /**
* Class contains only static methods. * Class contains only static methods.
*/ */
private UnivariateRealSolverUtils() {} private UnivariateSolverUtils() {}
/** /**
* Convenience method to find a zero of a univariate real function. A default * Convenience method to find a zero of a univariate real function. A default
@ -50,7 +50,7 @@ public class UnivariateRealSolverUtils {
if (function == null) { if (function == null) {
throw new NullArgumentException(LocalizedFormats.FUNCTION); throw new NullArgumentException(LocalizedFormats.FUNCTION);
} }
final UnivariateRealSolver solver = new BrentSolver(); final UnivariateSolver solver = new BrentSolver();
return solver.solve(Integer.MAX_VALUE, function, x0, x1); return solver.solve(Integer.MAX_VALUE, function, x0, x1);
} }
@ -73,7 +73,7 @@ public class UnivariateRealSolverUtils {
if (function == null) { if (function == null) {
throw new NullArgumentException(LocalizedFormats.FUNCTION); throw new NullArgumentException(LocalizedFormats.FUNCTION);
} }
final UnivariateRealSolver solver = new BrentSolver(absoluteAccuracy); final UnivariateSolver solver = new BrentSolver(absoluteAccuracy);
return solver.solve(Integer.MAX_VALUE, function, x0, x1); return solver.solve(Integer.MAX_VALUE, function, x0, x1);
} }
@ -92,7 +92,7 @@ public class UnivariateRealSolverUtils {
* @return a root approximation, on the specified side of the exact root * @return a root approximation, on the specified side of the exact root
*/ */
public static double forceSide(final int maxEval, final UnivariateFunction f, public static double forceSide(final int maxEval, final UnivariateFunction f,
final BracketedUnivariateRealSolver<UnivariateFunction> bracketing, final BracketedUnivariateSolver<UnivariateFunction> bracketing,
final double baseRoot, final double min, final double max, final double baseRoot, final double min, final double max,
final AllowedSolution allowedSolution) { final AllowedSolution allowedSolution) {

View File

@ -19,7 +19,7 @@ package org.apache.commons.math.distribution;
import java.io.Serializable; import java.io.Serializable;
import org.apache.commons.math.analysis.UnivariateFunction; import org.apache.commons.math.analysis.UnivariateFunction;
import org.apache.commons.math.analysis.solvers.UnivariateRealSolverUtils; import org.apache.commons.math.analysis.solvers.UnivariateSolverUtils;
import org.apache.commons.math.exception.NotStrictlyPositiveException; import org.apache.commons.math.exception.NotStrictlyPositiveException;
import org.apache.commons.math.exception.NumberIsTooLargeException; import org.apache.commons.math.exception.NumberIsTooLargeException;
import org.apache.commons.math.exception.OutOfRangeException; import org.apache.commons.math.exception.OutOfRangeException;
@ -153,7 +153,7 @@ implements RealDistribution, Serializable {
} }
}; };
double x = UnivariateRealSolverUtils.solve(toSolve, double x = UnivariateSolverUtils.solve(toSolve,
lowerBound, lowerBound,
upperBound, upperBound,
getSolverAbsoluteAccuracy()); getSolverAbsoluteAccuracy());

View File

@ -27,7 +27,7 @@ import java.util.SortedSet;
import java.util.TreeSet; import java.util.TreeSet;
import org.apache.commons.math.analysis.solvers.BracketingNthOrderBrentSolver; import org.apache.commons.math.analysis.solvers.BracketingNthOrderBrentSolver;
import org.apache.commons.math.analysis.solvers.UnivariateRealSolver; import org.apache.commons.math.analysis.solvers.UnivariateSolver;
import org.apache.commons.math.exception.DimensionMismatchException; import org.apache.commons.math.exception.DimensionMismatchException;
import org.apache.commons.math.exception.MathIllegalArgumentException; import org.apache.commons.math.exception.MathIllegalArgumentException;
import org.apache.commons.math.exception.MathIllegalStateException; import org.apache.commons.math.exception.MathIllegalStateException;
@ -135,7 +135,7 @@ public abstract class AbstractIntegrator implements FirstOrderIntegrator {
final double maxCheckInterval, final double maxCheckInterval,
final double convergence, final double convergence,
final int maxIterationCount, final int maxIterationCount,
final UnivariateRealSolver solver) { final UnivariateSolver solver) {
eventsStates.add(new EventState(handler, maxCheckInterval, convergence, eventsStates.add(new EventState(handler, maxCheckInterval, convergence,
maxIterationCount, solver)); maxIterationCount, solver));
} }

View File

@ -19,7 +19,7 @@ package org.apache.commons.math.ode;
import java.util.Collection; import java.util.Collection;
import org.apache.commons.math.analysis.solvers.UnivariateRealSolver; import org.apache.commons.math.analysis.solvers.UnivariateSolver;
import org.apache.commons.math.ode.events.EventHandler; import org.apache.commons.math.ode.events.EventHandler;
import org.apache.commons.math.ode.sampling.StepHandler; import org.apache.commons.math.ode.sampling.StepHandler;
@ -64,7 +64,7 @@ public interface ODEIntegrator {
void clearStepHandlers(); void clearStepHandlers();
/** Add an event handler to the integrator. /** Add an event handler to the integrator.
* Uses a default {@link UnivariateRealSolver} * Uses a default {@link UnivariateSolver}
* with an absolute accuracy equal to the given convergence threshold, * with an absolute accuracy equal to the given convergence threshold,
* as root-finding algorithm to detect the state events. * as root-finding algorithm to detect the state events.
* @param handler event handler * @param handler event handler
@ -95,7 +95,7 @@ public interface ODEIntegrator {
*/ */
void addEventHandler(EventHandler handler, double maxCheckInterval, void addEventHandler(EventHandler handler, double maxCheckInterval,
double convergence, int maxIterationCount, double convergence, int maxIterationCount,
UnivariateRealSolver solver); UnivariateSolver solver);
/** Get all the event handlers that have been added to the integrator. /** Get all the event handlers that have been added to the integrator.
* @return an unmodifiable collection of the added events handlers * @return an unmodifiable collection of the added events handlers

View File

@ -19,10 +19,10 @@ package org.apache.commons.math.ode.events;
import org.apache.commons.math.analysis.UnivariateFunction; import org.apache.commons.math.analysis.UnivariateFunction;
import org.apache.commons.math.analysis.solvers.AllowedSolution; import org.apache.commons.math.analysis.solvers.AllowedSolution;
import org.apache.commons.math.analysis.solvers.BracketedUnivariateRealSolver; import org.apache.commons.math.analysis.solvers.BracketedUnivariateSolver;
import org.apache.commons.math.analysis.solvers.PegasusSolver; import org.apache.commons.math.analysis.solvers.PegasusSolver;
import org.apache.commons.math.analysis.solvers.UnivariateRealSolver; import org.apache.commons.math.analysis.solvers.UnivariateSolver;
import org.apache.commons.math.analysis.solvers.UnivariateRealSolverUtils; import org.apache.commons.math.analysis.solvers.UnivariateSolverUtils;
import org.apache.commons.math.exception.ConvergenceException; import org.apache.commons.math.exception.ConvergenceException;
import org.apache.commons.math.ode.events.EventHandler; import org.apache.commons.math.ode.events.EventHandler;
import org.apache.commons.math.ode.sampling.StepInterpolator; import org.apache.commons.math.ode.sampling.StepInterpolator;
@ -85,7 +85,7 @@ public class EventState {
private EventHandler.Action nextAction; private EventHandler.Action nextAction;
/** Root-finding algorithm to use to detect state events. */ /** Root-finding algorithm to use to detect state events. */
private final UnivariateRealSolver solver; private final UnivariateSolver solver;
/** Simple constructor. /** Simple constructor.
* @param handler event handler * @param handler event handler
@ -99,7 +99,7 @@ public class EventState {
*/ */
public EventState(final EventHandler handler, final double maxCheckInterval, public EventState(final EventHandler handler, final double maxCheckInterval,
final double convergence, final int maxIterationCount, final double convergence, final int maxIterationCount,
final UnivariateRealSolver solver) { final UnivariateSolver solver) {
this.handler = handler; this.handler = handler;
this.maxCheckInterval = maxCheckInterval; this.maxCheckInterval = maxCheckInterval;
this.convergence = FastMath.abs(convergence); this.convergence = FastMath.abs(convergence);
@ -222,10 +222,10 @@ public class EventState {
// find the event time making sure we select a solution just at or past the exact root // find the event time making sure we select a solution just at or past the exact root
final double root; final double root;
if (solver instanceof BracketedUnivariateRealSolver<?>) { if (solver instanceof BracketedUnivariateSolver<?>) {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
BracketedUnivariateRealSolver<UnivariateFunction> bracketing = BracketedUnivariateSolver<UnivariateFunction> bracketing =
(BracketedUnivariateRealSolver<UnivariateFunction>) solver; (BracketedUnivariateSolver<UnivariateFunction>) solver;
root = forward ? root = forward ?
bracketing.solve(maxIterationCount, f, ta, tb, AllowedSolution.RIGHT_SIDE) : bracketing.solve(maxIterationCount, f, ta, tb, AllowedSolution.RIGHT_SIDE) :
bracketing.solve(maxIterationCount, f, tb, ta, AllowedSolution.LEFT_SIDE); bracketing.solve(maxIterationCount, f, tb, ta, AllowedSolution.LEFT_SIDE);
@ -234,12 +234,12 @@ public class EventState {
solver.solve(maxIterationCount, f, ta, tb) : solver.solve(maxIterationCount, f, ta, tb) :
solver.solve(maxIterationCount, f, tb, ta); solver.solve(maxIterationCount, f, tb, ta);
final int remainingEval = maxIterationCount - solver.getEvaluations(); final int remainingEval = maxIterationCount - solver.getEvaluations();
BracketedUnivariateRealSolver<UnivariateFunction> bracketing = BracketedUnivariateSolver<UnivariateFunction> bracketing =
new PegasusSolver(solver.getRelativeAccuracy(), solver.getAbsoluteAccuracy()); new PegasusSolver(solver.getRelativeAccuracy(), solver.getAbsoluteAccuracy());
root = forward ? root = forward ?
UnivariateRealSolverUtils.forceSide(remainingEval, f, bracketing, UnivariateSolverUtils.forceSide(remainingEval, f, bracketing,
baseRoot, ta, tb, AllowedSolution.RIGHT_SIDE) : baseRoot, ta, tb, AllowedSolution.RIGHT_SIDE) :
UnivariateRealSolverUtils.forceSide(remainingEval, f, bracketing, UnivariateSolverUtils.forceSide(remainingEval, f, bracketing,
baseRoot, tb, ta, AllowedSolution.LEFT_SIDE); baseRoot, tb, ta, AllowedSolution.LEFT_SIDE);
} }

View File

@ -17,7 +17,7 @@
package org.apache.commons.math.ode.nonstiff; package org.apache.commons.math.ode.nonstiff;
import org.apache.commons.math.analysis.solvers.UnivariateRealSolver; import org.apache.commons.math.analysis.solvers.UnivariateSolver;
import org.apache.commons.math.exception.MathIllegalArgumentException; import org.apache.commons.math.exception.MathIllegalArgumentException;
import org.apache.commons.math.exception.MathIllegalStateException; import org.apache.commons.math.exception.MathIllegalStateException;
import org.apache.commons.math.ode.ExpandableStatefulODE; import org.apache.commons.math.ode.ExpandableStatefulODE;
@ -348,7 +348,7 @@ public class GraggBulirschStoerIntegrator extends AdaptiveStepsizeIntegrator {
final double maxCheckInterval, final double maxCheckInterval,
final double convergence, final double convergence,
final int maxIterationCount, final int maxIterationCount,
final UnivariateRealSolver solver) { final UnivariateSolver solver) {
super.addEventHandler(function, maxCheckInterval, convergence, super.addEventHandler(function, maxCheckInterval, convergence,
maxIterationCount, solver); maxIterationCount, solver);

View File

@ -20,7 +20,7 @@ package org.apache.commons.math.optimization.general;
import org.apache.commons.math.exception.MathIllegalStateException; import org.apache.commons.math.exception.MathIllegalStateException;
import org.apache.commons.math.analysis.UnivariateFunction; import org.apache.commons.math.analysis.UnivariateFunction;
import org.apache.commons.math.analysis.solvers.BrentSolver; import org.apache.commons.math.analysis.solvers.BrentSolver;
import org.apache.commons.math.analysis.solvers.UnivariateRealSolver; import org.apache.commons.math.analysis.solvers.UnivariateSolver;
import org.apache.commons.math.exception.util.LocalizedFormats; import org.apache.commons.math.exception.util.LocalizedFormats;
import org.apache.commons.math.optimization.GoalType; import org.apache.commons.math.optimization.GoalType;
import org.apache.commons.math.optimization.RealPointValuePair; import org.apache.commons.math.optimization.RealPointValuePair;
@ -47,7 +47,7 @@ public class NonLinearConjugateGradientOptimizer
/** Preconditioner (may be null). */ /** Preconditioner (may be null). */
private final Preconditioner preconditioner; private final Preconditioner preconditioner;
/** solver to use in the line search (may be null). */ /** solver to use in the line search (may be null). */
private final UnivariateRealSolver solver; private final UnivariateSolver solver;
/** Initial step used to bracket the optimum in line search. */ /** Initial step used to bracket the optimum in line search. */
private double initialStep; private double initialStep;
/** Current point. */ /** Current point. */
@ -96,7 +96,7 @@ public class NonLinearConjugateGradientOptimizer
*/ */
public NonLinearConjugateGradientOptimizer(final ConjugateGradientFormula updateFormula, public NonLinearConjugateGradientOptimizer(final ConjugateGradientFormula updateFormula,
ConvergenceChecker<RealPointValuePair> checker, ConvergenceChecker<RealPointValuePair> checker,
final UnivariateRealSolver lineSearchSolver) { final UnivariateSolver lineSearchSolver) {
this(updateFormula, this(updateFormula,
checker, checker,
lineSearchSolver, lineSearchSolver,
@ -113,7 +113,7 @@ public class NonLinearConjugateGradientOptimizer
*/ */
public NonLinearConjugateGradientOptimizer(final ConjugateGradientFormula updateFormula, public NonLinearConjugateGradientOptimizer(final ConjugateGradientFormula updateFormula,
ConvergenceChecker<RealPointValuePair> checker, ConvergenceChecker<RealPointValuePair> checker,
final UnivariateRealSolver lineSearchSolver, final UnivariateSolver lineSearchSolver,
final Preconditioner preconditioner) { final Preconditioner preconditioner) {
super(checker); super(checker);

View File

@ -36,7 +36,7 @@ public abstract class BaseSecantSolverAbstractTest {
/** Returns the solver to use to perform the tests. /** Returns the solver to use to perform the tests.
* @return the solver to use to perform the tests * @return the solver to use to perform the tests
*/ */
protected abstract UnivariateRealSolver getSolver(); protected abstract UnivariateSolver getSolver();
/** Returns the expected number of evaluations for the /** Returns the expected number of evaluations for the
* {@link #testQuinticZero} unit test. A value of {@code -1} indicates that * {@link #testQuinticZero} unit test. A value of {@code -1} indicates that
@ -53,7 +53,7 @@ public abstract class BaseSecantSolverAbstractTest {
// still converge quadratically. // still converge quadratically.
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
double result; double result;
UnivariateRealSolver solver = getSolver(); UnivariateSolver solver = getSolver();
result = solver.solve(100, f, 3, 4); result = solver.solve(100, f, 3, 4);
//System.out.println( //System.out.println(
@ -79,7 +79,7 @@ public abstract class BaseSecantSolverAbstractTest {
// the solvers. // the solvers.
UnivariateFunction f = new QuinticFunction(); UnivariateFunction f = new QuinticFunction();
double result; double result;
UnivariateRealSolver solver = getSolver(); UnivariateSolver solver = getSolver();
double atol = solver.getAbsoluteAccuracy(); double atol = solver.getAbsoluteAccuracy();
int[] counts = getQuinticEvalCounts(); int[] counts = getQuinticEvalCounts();
@ -117,7 +117,7 @@ public abstract class BaseSecantSolverAbstractTest {
@Test @Test
public void testRootEndpoints() { public void testRootEndpoints() {
UnivariateFunction f = new XMinus5Function(); UnivariateFunction f = new XMinus5Function();
UnivariateRealSolver solver = getSolver(); UnivariateSolver solver = getSolver();
// End-point is root. This should be a special case in the solver, and // End-point is root. This should be a special case in the solver, and
// the initial end-point should be returned exactly. // the initial end-point should be returned exactly.
@ -137,7 +137,7 @@ public abstract class BaseSecantSolverAbstractTest {
@Test @Test
public void testBadEndpoints() { public void testBadEndpoints() {
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
UnivariateRealSolver solver = getSolver(); UnivariateSolver solver = getSolver();
try { // bad interval try { // bad interval
solver.solve(100, f, 1, -1); solver.solve(100, f, 1, -1);
Assert.fail("Expecting NumberIsTooLargeException - bad interval"); Assert.fail("Expecting NumberIsTooLargeException - bad interval");
@ -161,7 +161,7 @@ public abstract class BaseSecantSolverAbstractTest {
@Test @Test
public void testSolutionLeftSide() { public void testSolutionLeftSide() {
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
UnivariateRealSolver solver = getSolver(); UnivariateSolver solver = getSolver();
double left = -1.5; double left = -1.5;
double right = 0.05; double right = 0.05;
for(int i = 0; i < 10; i++) { for(int i = 0; i < 10; i++) {
@ -180,7 +180,7 @@ public abstract class BaseSecantSolverAbstractTest {
@Test @Test
public void testSolutionRightSide() { public void testSolutionRightSide() {
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
UnivariateRealSolver solver = getSolver(); UnivariateSolver solver = getSolver();
double left = -1.5; double left = -1.5;
double right = 0.05; double right = 0.05;
for(int i = 0; i < 10; i++) { for(int i = 0; i < 10; i++) {
@ -198,7 +198,7 @@ public abstract class BaseSecantSolverAbstractTest {
@Test @Test
public void testSolutionBelowSide() { public void testSolutionBelowSide() {
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
UnivariateRealSolver solver = getSolver(); UnivariateSolver solver = getSolver();
double left = -1.5; double left = -1.5;
double right = 0.05; double right = 0.05;
for(int i = 0; i < 10; i++) { for(int i = 0; i < 10; i++) {
@ -217,7 +217,7 @@ public abstract class BaseSecantSolverAbstractTest {
@Test @Test
public void testSolutionAboveSide() { public void testSolutionAboveSide() {
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
UnivariateRealSolver solver = getSolver(); UnivariateSolver solver = getSolver();
double left = -1.5; double left = -1.5;
double right = 0.05; double right = 0.05;
for(int i = 0; i < 10; i++) { for(int i = 0; i < 10; i++) {
@ -233,12 +233,12 @@ public abstract class BaseSecantSolverAbstractTest {
} }
} }
private double getSolution(UnivariateRealSolver solver, int maxEval, UnivariateFunction f, private double getSolution(UnivariateSolver solver, int maxEval, UnivariateFunction f,
double left, double right, AllowedSolution allowedSolution) { double left, double right, AllowedSolution allowedSolution) {
try { try {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
BracketedUnivariateRealSolver<UnivariateFunction> bracketing = BracketedUnivariateSolver<UnivariateFunction> bracketing =
(BracketedUnivariateRealSolver<UnivariateFunction>) solver; (BracketedUnivariateSolver<UnivariateFunction>) solver;
return bracketing.solve(100, f, left, right, allowedSolution); return bracketing.solve(100, f, left, right, allowedSolution);
} catch (ClassCastException cce) { } catch (ClassCastException cce) {
double baseRoot = solver.solve(maxEval, f, left, right); double baseRoot = solver.solve(maxEval, f, left, right);
@ -249,7 +249,7 @@ public abstract class BaseSecantSolverAbstractTest {
PegasusSolver bracketing = PegasusSolver bracketing =
new PegasusSolver(solver.getRelativeAccuracy(), solver.getAbsoluteAccuracy(), new PegasusSolver(solver.getRelativeAccuracy(), solver.getAbsoluteAccuracy(),
solver.getFunctionValueAccuracy()); solver.getFunctionValueAccuracy());
return UnivariateRealSolverUtils.forceSide(maxEval - solver.getEvaluations(), return UnivariateSolverUtils.forceSide(maxEval - solver.getEvaluations(),
f, bracketing, baseRoot, left, right, f, bracketing, baseRoot, left, right,
allowedSolution); allowedSolution);
} }

View File

@ -34,7 +34,7 @@ import org.junit.Test;
public final class BracketingNthOrderBrentSolverTest extends BaseSecantSolverAbstractTest { public final class BracketingNthOrderBrentSolverTest extends BaseSecantSolverAbstractTest {
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
protected UnivariateRealSolver getSolver() { protected UnivariateSolver getSolver() {
return new BracketingNthOrderBrentSolver(); return new BracketingNthOrderBrentSolver();
} }

View File

@ -46,7 +46,7 @@ public final class BrentSolverTest {
// still converge quadratically. // still converge quadratically.
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
double result; double result;
UnivariateRealSolver solver = new BrentSolver(); UnivariateSolver solver = new BrentSolver();
// Somewhat benign interval. The function is monotone. // Somewhat benign interval. The function is monotone.
result = solver.solve(100, f, 3, 4); result = solver.solve(100, f, 3, 4);
// System.out.println( // System.out.println(
@ -73,7 +73,7 @@ public final class BrentSolverTest {
UnivariateFunction f = new QuinticFunction(); UnivariateFunction f = new QuinticFunction();
double result; double result;
// Brent-Dekker solver. // Brent-Dekker solver.
UnivariateRealSolver solver = new BrentSolver(); UnivariateSolver solver = new BrentSolver();
// Symmetric bracket around 0. Test whether solvers can handle hitting // Symmetric bracket around 0. Test whether solvers can handle hitting
// the root in the first iteration. // the root in the first iteration.
result = solver.solve(100, f, -0.2, 0.2); result = solver.solve(100, f, -0.2, 0.2);

View File

@ -25,7 +25,7 @@ package org.apache.commons.math.analysis.solvers;
public final class IllinoisSolverTest extends BaseSecantSolverAbstractTest { public final class IllinoisSolverTest extends BaseSecantSolverAbstractTest {
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
protected UnivariateRealSolver getSolver() { protected UnivariateSolver getSolver() {
return new IllinoisSolver(); return new IllinoisSolver();
} }

View File

@ -46,7 +46,7 @@ public final class MullerSolver2Test {
@Test @Test
public void testSinFunction() { public void testSinFunction() {
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
UnivariateRealSolver solver = new MullerSolver2(); UnivariateSolver solver = new MullerSolver2();
double min, max, expected, result, tolerance; double min, max, expected, result, tolerance;
min = 3.0; max = 4.0; expected = FastMath.PI; min = 3.0; max = 4.0; expected = FastMath.PI;
@ -68,7 +68,7 @@ public final class MullerSolver2Test {
@Test @Test
public void testQuinticFunction() { public void testQuinticFunction() {
UnivariateFunction f = new QuinticFunction(); UnivariateFunction f = new QuinticFunction();
UnivariateRealSolver solver = new MullerSolver2(); UnivariateSolver solver = new MullerSolver2();
double min, max, expected, result, tolerance; double min, max, expected, result, tolerance;
min = -0.4; max = 0.2; expected = 0.0; min = -0.4; max = 0.2; expected = 0.0;
@ -98,7 +98,7 @@ public final class MullerSolver2Test {
@Test @Test
public void testExpm1Function() { public void testExpm1Function() {
UnivariateFunction f = new Expm1Function(); UnivariateFunction f = new Expm1Function();
UnivariateRealSolver solver = new MullerSolver2(); UnivariateSolver solver = new MullerSolver2();
double min, max, expected, result, tolerance; double min, max, expected, result, tolerance;
min = -1.0; max = 2.0; expected = 0.0; min = -1.0; max = 2.0; expected = 0.0;
@ -126,7 +126,7 @@ public final class MullerSolver2Test {
@Test @Test
public void testParameters() throws Exception { public void testParameters() throws Exception {
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
UnivariateRealSolver solver = new MullerSolver2(); UnivariateSolver solver = new MullerSolver2();
try { try {
// bad interval // bad interval

View File

@ -46,7 +46,7 @@ public final class MullerSolverTest {
@Test @Test
public void testSinFunction() { public void testSinFunction() {
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
UnivariateRealSolver solver = new MullerSolver(); UnivariateSolver solver = new MullerSolver();
double min, max, expected, result, tolerance; double min, max, expected, result, tolerance;
min = 3.0; max = 4.0; expected = FastMath.PI; min = 3.0; max = 4.0; expected = FastMath.PI;
@ -68,7 +68,7 @@ public final class MullerSolverTest {
@Test @Test
public void testQuinticFunction() { public void testQuinticFunction() {
UnivariateFunction f = new QuinticFunction(); UnivariateFunction f = new QuinticFunction();
UnivariateRealSolver solver = new MullerSolver(); UnivariateSolver solver = new MullerSolver();
double min, max, expected, result, tolerance; double min, max, expected, result, tolerance;
min = -0.4; max = 0.2; expected = 0.0; min = -0.4; max = 0.2; expected = 0.0;
@ -100,7 +100,7 @@ public final class MullerSolverTest {
@Test @Test
public void testExpm1Function() { public void testExpm1Function() {
UnivariateFunction f = new Expm1Function(); UnivariateFunction f = new Expm1Function();
UnivariateRealSolver solver = new MullerSolver(); UnivariateSolver solver = new MullerSolver();
double min, max, expected, result, tolerance; double min, max, expected, result, tolerance;
min = -1.0; max = 2.0; expected = 0.0; min = -1.0; max = 2.0; expected = 0.0;
@ -128,7 +128,7 @@ public final class MullerSolverTest {
@Test @Test
public void testParameters() throws Exception { public void testParameters() throws Exception {
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
UnivariateRealSolver solver = new MullerSolver(); UnivariateSolver solver = new MullerSolver();
try { try {
// bad interval // bad interval

View File

@ -25,7 +25,7 @@ package org.apache.commons.math.analysis.solvers;
public final class PegasusSolverTest extends BaseSecantSolverAbstractTest { public final class PegasusSolverTest extends BaseSecantSolverAbstractTest {
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
protected UnivariateRealSolver getSolver() { protected UnivariateSolver getSolver() {
return new PegasusSolver(); return new PegasusSolver();
} }

View File

@ -30,7 +30,7 @@ import org.junit.Assert;
public final class RegulaFalsiSolverTest extends BaseSecantSolverAbstractTest { public final class RegulaFalsiSolverTest extends BaseSecantSolverAbstractTest {
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
protected UnivariateRealSolver getSolver() { protected UnivariateSolver getSolver() {
return new RegulaFalsiSolver(); return new RegulaFalsiSolver();
} }
@ -52,7 +52,7 @@ public final class RegulaFalsiSolverTest extends BaseSecantSolverAbstractTest {
} }
}; };
final UnivariateRealSolver solver = new RegulaFalsiSolver(); final UnivariateSolver solver = new RegulaFalsiSolver();
final double root = solver.solve(3624, f, 1, 10); final double root = solver.solve(3624, f, 1, 10);
Assert.assertEquals(3.4341896575482003, root, 1e-15); Assert.assertEquals(3.4341896575482003, root, 1e-15);
} }

View File

@ -44,7 +44,7 @@ public final class RiddersSolverTest {
@Test @Test
public void testSinFunction() { public void testSinFunction() {
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
UnivariateRealSolver solver = new RiddersSolver(); UnivariateSolver solver = new RiddersSolver();
double min, max, expected, result, tolerance; double min, max, expected, result, tolerance;
min = 3.0; max = 4.0; expected = FastMath.PI; min = 3.0; max = 4.0; expected = FastMath.PI;
@ -66,7 +66,7 @@ public final class RiddersSolverTest {
@Test @Test
public void testQuinticFunction() { public void testQuinticFunction() {
UnivariateFunction f = new QuinticFunction(); UnivariateFunction f = new QuinticFunction();
UnivariateRealSolver solver = new RiddersSolver(); UnivariateSolver solver = new RiddersSolver();
double min, max, expected, result, tolerance; double min, max, expected, result, tolerance;
min = -0.4; max = 0.2; expected = 0.0; min = -0.4; max = 0.2; expected = 0.0;
@ -94,7 +94,7 @@ public final class RiddersSolverTest {
@Test @Test
public void testExpm1Function() { public void testExpm1Function() {
UnivariateFunction f = new Expm1Function(); UnivariateFunction f = new Expm1Function();
UnivariateRealSolver solver = new RiddersSolver(); UnivariateSolver solver = new RiddersSolver();
double min, max, expected, result, tolerance; double min, max, expected, result, tolerance;
min = -1.0; max = 2.0; expected = 0.0; min = -1.0; max = 2.0; expected = 0.0;
@ -122,7 +122,7 @@ public final class RiddersSolverTest {
@Test @Test
public void testParameters() { public void testParameters() {
UnivariateFunction f = new SinFunction(); UnivariateFunction f = new SinFunction();
UnivariateRealSolver solver = new RiddersSolver(); UnivariateSolver solver = new RiddersSolver();
try { try {
// bad interval // bad interval

View File

@ -25,7 +25,7 @@ package org.apache.commons.math.analysis.solvers;
public final class SecantSolverTest extends BaseSecantSolverAbstractTest { public final class SecantSolverTest extends BaseSecantSolverAbstractTest {
/** {@inheritDoc} */ /** {@inheritDoc} */
@Override @Override
protected UnivariateRealSolver getSolver() { protected UnivariateSolver getSolver() {
return new SecantSolver(); return new SecantSolver();
} }

View File

@ -28,25 +28,25 @@ import org.junit.Test;
/** /**
* @version $Id$ * @version $Id$
*/ */
public class UnivariateRealSolverUtilsTest { public class UnivariateSolverUtilsTest {
protected UnivariateFunction sin = new SinFunction(); protected UnivariateFunction sin = new SinFunction();
@Test(expected=MathIllegalArgumentException.class) @Test(expected=MathIllegalArgumentException.class)
public void testSolveNull() { public void testSolveNull() {
UnivariateRealSolverUtils.solve(null, 0.0, 4.0); UnivariateSolverUtils.solve(null, 0.0, 4.0);
} }
@Test(expected=MathIllegalArgumentException.class) @Test(expected=MathIllegalArgumentException.class)
public void testSolveBadEndpoints() { public void testSolveBadEndpoints() {
double root = UnivariateRealSolverUtils.solve(sin, 4.0, -0.1, 1e-6); double root = UnivariateSolverUtils.solve(sin, 4.0, -0.1, 1e-6);
System.out.println("root=" + root); System.out.println("root=" + root);
} }
@Test @Test
public void testSolveBadAccuracy() { public void testSolveBadAccuracy() {
try { // bad accuracy try { // bad accuracy
UnivariateRealSolverUtils.solve(sin, 0.0, 4.0, 0.0); UnivariateSolverUtils.solve(sin, 0.0, 4.0, 0.0);
// Assert.fail("Expecting MathIllegalArgumentException"); // TODO needs rework since convergence behaviour was changed // Assert.fail("Expecting MathIllegalArgumentException"); // TODO needs rework since convergence behaviour was changed
} catch (MathIllegalArgumentException ex) { } catch (MathIllegalArgumentException ex) {
// expected // expected
@ -55,32 +55,32 @@ public class UnivariateRealSolverUtilsTest {
@Test @Test
public void testSolveSin() { public void testSolveSin() {
double x = UnivariateRealSolverUtils.solve(sin, 1.0, 4.0); double x = UnivariateSolverUtils.solve(sin, 1.0, 4.0);
Assert.assertEquals(FastMath.PI, x, 1.0e-4); Assert.assertEquals(FastMath.PI, x, 1.0e-4);
} }
@Test(expected=MathIllegalArgumentException.class) @Test(expected=MathIllegalArgumentException.class)
public void testSolveAccuracyNull() { public void testSolveAccuracyNull() {
double accuracy = 1.0e-6; double accuracy = 1.0e-6;
UnivariateRealSolverUtils.solve(null, 0.0, 4.0, accuracy); UnivariateSolverUtils.solve(null, 0.0, 4.0, accuracy);
} }
@Test @Test
public void testSolveAccuracySin() { public void testSolveAccuracySin() {
double accuracy = 1.0e-6; double accuracy = 1.0e-6;
double x = UnivariateRealSolverUtils.solve(sin, 1.0, double x = UnivariateSolverUtils.solve(sin, 1.0,
4.0, accuracy); 4.0, accuracy);
Assert.assertEquals(FastMath.PI, x, accuracy); Assert.assertEquals(FastMath.PI, x, accuracy);
} }
@Test(expected=MathIllegalArgumentException.class) @Test(expected=MathIllegalArgumentException.class)
public void testSolveNoRoot() { public void testSolveNoRoot() {
UnivariateRealSolverUtils.solve(sin, 1.0, 1.5); UnivariateSolverUtils.solve(sin, 1.0, 1.5);
} }
@Test @Test
public void testBracketSin() { public void testBracketSin() {
double[] result = UnivariateRealSolverUtils.bracket(sin, double[] result = UnivariateSolverUtils.bracket(sin,
0.0, -2.0, 2.0); 0.0, -2.0, 2.0);
Assert.assertTrue(sin.value(result[0]) < 0); Assert.assertTrue(sin.value(result[0]) < 0);
Assert.assertTrue(sin.value(result[1]) > 0); Assert.assertTrue(sin.value(result[1]) > 0);
@ -88,31 +88,31 @@ public class UnivariateRealSolverUtilsTest {
@Test @Test
public void testBracketEndpointRoot() { public void testBracketEndpointRoot() {
double[] result = UnivariateRealSolverUtils.bracket(sin, 1.5, 0, 2.0); double[] result = UnivariateSolverUtils.bracket(sin, 1.5, 0, 2.0);
Assert.assertEquals(0.0, sin.value(result[0]), 1.0e-15); Assert.assertEquals(0.0, sin.value(result[0]), 1.0e-15);
Assert.assertTrue(sin.value(result[1]) > 0); Assert.assertTrue(sin.value(result[1]) > 0);
} }
@Test(expected=MathIllegalArgumentException.class) @Test(expected=MathIllegalArgumentException.class)
public void testNullFunction() { public void testNullFunction() {
UnivariateRealSolverUtils.bracket(null, 1.5, 0, 2.0); UnivariateSolverUtils.bracket(null, 1.5, 0, 2.0);
} }
@Test(expected=MathIllegalArgumentException.class) @Test(expected=MathIllegalArgumentException.class)
public void testBadInitial() { public void testBadInitial() {
UnivariateRealSolverUtils.bracket(sin, 2.5, 0, 2.0); UnivariateSolverUtils.bracket(sin, 2.5, 0, 2.0);
} }
@Test(expected=MathIllegalArgumentException.class) @Test(expected=MathIllegalArgumentException.class)
public void testBadEndpoints() { public void testBadEndpoints() {
// endpoints not valid // endpoints not valid
UnivariateRealSolverUtils.bracket(sin, 1.5, 2.0, 1.0); UnivariateSolverUtils.bracket(sin, 1.5, 2.0, 1.0);
} }
@Test(expected=MathIllegalArgumentException.class) @Test(expected=MathIllegalArgumentException.class)
public void testBadMaximumIterations() { public void testBadMaximumIterations() {
// bad maximum iterations // bad maximum iterations
UnivariateRealSolverUtils.bracket(sin, 1.5, 0, 2.0, 0); UnivariateSolverUtils.bracket(sin, 1.5, 0, 2.0, 0);
} }
@Test @Test
@ -120,27 +120,27 @@ public class UnivariateRealSolverUtilsTest {
UnivariateFunction f = new QuinticFunction(); UnivariateFunction f = new QuinticFunction();
double result; double result;
// Static solve method // Static solve method
result = UnivariateRealSolverUtils.solve(f, -0.2, 0.2); result = UnivariateSolverUtils.solve(f, -0.2, 0.2);
Assert.assertEquals(result, 0, 1E-8); Assert.assertEquals(result, 0, 1E-8);
result = UnivariateRealSolverUtils.solve(f, -0.1, 0.3); result = UnivariateSolverUtils.solve(f, -0.1, 0.3);
Assert.assertEquals(result, 0, 1E-8); Assert.assertEquals(result, 0, 1E-8);
result = UnivariateRealSolverUtils.solve(f, -0.3, 0.45); result = UnivariateSolverUtils.solve(f, -0.3, 0.45);
Assert.assertEquals(result, 0, 1E-6); Assert.assertEquals(result, 0, 1E-6);
result = UnivariateRealSolverUtils.solve(f, 0.3, 0.7); result = UnivariateSolverUtils.solve(f, 0.3, 0.7);
Assert.assertEquals(result, 0.5, 1E-6); Assert.assertEquals(result, 0.5, 1E-6);
result = UnivariateRealSolverUtils.solve(f, 0.2, 0.6); result = UnivariateSolverUtils.solve(f, 0.2, 0.6);
Assert.assertEquals(result, 0.5, 1E-6); Assert.assertEquals(result, 0.5, 1E-6);
result = UnivariateRealSolverUtils.solve(f, 0.05, 0.95); result = UnivariateSolverUtils.solve(f, 0.05, 0.95);
Assert.assertEquals(result, 0.5, 1E-6); Assert.assertEquals(result, 0.5, 1E-6);
result = UnivariateRealSolverUtils.solve(f, 0.85, 1.25); result = UnivariateSolverUtils.solve(f, 0.85, 1.25);
Assert.assertEquals(result, 1.0, 1E-6); Assert.assertEquals(result, 1.0, 1E-6);
result = UnivariateRealSolverUtils.solve(f, 0.8, 1.2); result = UnivariateSolverUtils.solve(f, 0.8, 1.2);
Assert.assertEquals(result, 1.0, 1E-6); Assert.assertEquals(result, 1.0, 1E-6);
result = UnivariateRealSolverUtils.solve(f, 0.85, 1.75); result = UnivariateSolverUtils.solve(f, 0.85, 1.75);
Assert.assertEquals(result, 1.0, 1E-6); Assert.assertEquals(result, 1.0, 1E-6);
result = UnivariateRealSolverUtils.solve(f, 0.55, 1.45); result = UnivariateSolverUtils.solve(f, 0.55, 1.45);
Assert.assertEquals(result, 1.0, 1E-6); Assert.assertEquals(result, 1.0, 1E-6);
result = UnivariateRealSolverUtils.solve(f, 0.85, 5); result = UnivariateSolverUtils.solve(f, 0.85, 5);
Assert.assertEquals(result, 1.0, 1E-6); Assert.assertEquals(result, 1.0, 1E-6);
} }
} }