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. https://issues.apache.org/jira/browse/MATH-439 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, Gilles --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
