commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles Sadowski <>
Subject Re: [math] MullerSolver() empty constructor deprecated. Replacement?
Date Wed, 20 Apr 2011 10:45:01 GMT
Hello Nick.

> MullerSolver() and other Univariate solvers (NewtonSolver,
> SecantSolver) have had their no argument constructor deprecated. In
> the deprecation comment it says "to be removed in 3.0". I can see no
> mention in the javadocs for commons-math 2.2 or 3.0 of any replacement
> mechanism for constructing, and the method still exists in the 3.0
> javadoc.
> I can think of 4 possibilities:
> 1) The deprecation of this method was a mistake and added at the same
> time as the constructor which took a function.
> 2) The proposal is that construction be moved to a factory class, but
> the Factory class has not been added yet.
> 3) There is an alternative way of constructing a MullerSolver I
> haven't found yet.
> 4) Deprecation has been decided with no migration route yet decided upon.
> Can anyone tell me which of these is correct, or a fifth option, and
> tell me how code which uses "new MullerSolver()" should be changed?
> I really hope it isn't 4! My guess is 2, as SecantSolver has
> UnivariateRealSolverFactoryImpl.newSecantColver(). While I might
> disagree with this design (force the use of the Factory) at least
> there is the hope of migration.

It's not 2) because "UnivariateRealSolverFactory" has been removed in the
development code. Cf.

The indication of future removal was a mistake: A default constructor still
exist (setting a default value for the absolute accuracy) but it does not
behave as in 2.2 (where there was also a default "maximum iteration count",
which is now replaced with a "maximum evaluation count" to be passed to the
"solve" method).

Best regards,

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message