[ https://issues.apache.org/jira/browse/MATH-655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13095971#comment-13095971 ]
Sébastien Brisard commented on MATH-655: ---------------------------------------- {quote} A solution would be that all these families have {{IterativeAlgorithm}} as their common ancestor; but it would have major (IMHO) drawbacks: {quote} yes, that was what I had (naively) in mind. An alternative would be to change {{IterativeAlgorithm}} into an interface, but I'm not so sure of the benefit it would have. I intially wanted to have a clean framework to handle events occuring during the iterations of *linear* solvers, and it came up on the ML that being a bit more general might be usefull. Maybe I over-did it... Anyway, what I can do for the time being is merge {{IterativeAlgorithm}} into {{IterativeLinearSolver}}. Then, experience would probably reveal whether or not {{IterativeLinearSolver}} has some interesting features which could be reused elsewhere, in which case an interface could be extracted later on. What do you think of that? > General framework for iterative algorithms > ------------------------------------------ > > Key: MATH-655 > URL: https://issues.apache.org/jira/browse/MATH-655 > Project: Commons Math > Issue Type: New Feature > Affects Versions: 3.0 > Reporter: Sébastien Brisard > Priority: Minor > Labels: algorithm, events > Attachments: iterative-algorithm.zip > > > Following the thread [Monitoring iterative > algorithms|http://mail-archives.apache.org/mod_mbox/commons-dev/201108.mbox/%3CCAGRH7HrgcgoBA=jcoKovjiQU=TjpQHnspBkOGNCu7oDdKk=k...@mail.gmail.com%3E], > here is a first attempt at defining a general enough framework for iterative > algorithms at large. At the moment, the classes provide support for > * maximum number of iterations > * events handling > ** initialization event (prior to entering the main loop), > ** iteration event (after completion of one iteration), > ** termination event (after termination of the main loop). > These classes do not yet provide support for a stopping criterion. > Some points worth to note > * For the time being, the classes are part of the o.a.c.m.linear package. > * For the time being, {{IterativeAlgorithm.incrementIterationCount()}} throws > a {{TooManyEvaluationsException}}. If the proposed new feature is integrated > into CM, then a proper {{TooManyIterationsException}} should be created, from > which the former could derive. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira