[
https://issues.apache.org/jira/browse/MATH-1658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17737792#comment-17737792
]
Gilles Sadowski commented on MATH-1658:
---------------------------------------
bq. I would just add (as you suggested earlier) a protected default constructor
(with no parameters).
Yes, I thought that it was necessary, but it works fine without it: Users who
want to pass their convergence checker as {{OptimizationData}} (via the call to
{{optimize}}) would just pass {{null}} to the current constructor. [That makes
usage slightly safer too.]
> ConvergenceChecker should implement OptimizationData
> ----------------------------------------------------
>
> Key: MATH-1658
> URL: https://issues.apache.org/jira/browse/MATH-1658
> Project: Commons Math
> Issue Type: Improvement
> Components: legacy
> Affects Versions: 4.0-beta1
> Reporter: François Laferrière
> Priority: Minor
> Attachments:
> MATH-1658-ConvergenceChecker-implements-OptimizationData.patch,
> MATH-1658.patch
>
>
> It is a bit peculiar that with BaseOptimizer, ConvergenceChecker can be
> passed only in constructor.
> It should be possible to change ConvergenceChecker at any other time.
> Further it is a bit strange that the constructor do not accept other
> OptimizationData.
> In my use cases, I need to create an optimizer once with complex
> OptimizationData and reuse it many time with very few changes (including
> changing the ConvergenceChecker).
> So, I suggest that
> * ConvergenceChecker implements OptimizationData.
> * protected BaseOptimizer(ConvergenceChecker<PAIR> checker) is replaced by
> protected BaseOptimizer(OptimizationData... optData)
> Doing so is compatible with existing code and provide much more flexibility.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)