+++++++++++ short term * use valgrind to test for memory leaks * ask Lydia Deng for test codes * learn about unit testing +++++++++++ source code cleanup * continue to replace calls to "new" with cooolvec or proper objects or auto_ptr LinForward.hh accepts jacob as constructor argument and does not do a new() or something, but does a delete in the constructor LineSearch::numericalGradient() creates a vector with new and passes it out creates a vector with new and pass it out: QuadraticObjFcn::getGradient() MultiTest::getGradient() DirectObjFcn::getGradient() cooollist/cooolvec::bread/bwrite have a new/delete pair Optima contains ObjectiveFunction* fp. QuaOptima creates/deletes it. All the others just get it from the constructor * get rid of ugly type conversions: see ChangeLog item from 3 April 2002 * optimize: make Matrices inline again?? * SlaveForward: * split in bidi logic and COOOL specific parts * replace bidi part with pipes? socketpair? * use autoconf/automake/libtool for arch-independant build * in demo programs, make shell scripts run w/o any arguments, if the user doesn't supply any * instead of only taking Model and Model, make stuff true templates unfortunately, virtual functions can not be templates. Need to think about that. +++++++++++ other +++++++++++++ * once COOOL works reliably, contact author of InvQuaNewton for fixup * test that the library actually still works (and not only compiles) * use CVS * unit testing, "make test" integrated with demos? * doc format right now is doc++ http://docpp.sourceforge.net/ try to stay compatible with javadoc! http://java.sun.com/j2se/javadoc/ probably switch to doxygen http://www.doxygen.org/ because it supports more output formats renew docs * update licence to LGPL * how much time is spend communicating between optimization algorithm and objective function with IO? * get it to run on NT Visual C++, IRIX, Solaris, AIX get a Solaris box to test it on * don't have really big .hh files, split 'em up (files in src/include)??? read up on this, whether its bad style * find a new & standard version of OO getopt +++++++++++++ design constraints * ANSI C++ compatibility * portability. main architectures: Linux/G++3, Win32/VC++ (if thats ANSI) * no external dependencies: comes with everything necessary besides ANSI C++ STL * documentation in javadoc compatible format