Gamma To Do List

Higher Priority Items

  • SWIG any remaining bits of the public interfaces. Convert some of the "friend" functions to regular functions - either member functions of the class or external to the class - and make them available via Swig.
  • Consider doing SWIGing AND building of C++ code using Distutils, from a new /gamma/trunk/src/pybuild directory.
  • Parallelize the code using OpenMPI and iPython.
  • Further speed up code by implementing CUDA, or new NVIDIA development libraries (part of Fermi Architecture).

Lower Priority Items

  • See if Linux Makefile works with Cygwin.
  • Shorten the run time on tests.
  • Move build intermediate output to a sub-directory of the "make" directory (/primal/Linux) and only put real build end products in the "build" directory, (e.g. i-686-pc-Linux).

*Completed Items * * Get code to compile on modern compilers [Linux, Windows, OSX]. (DCT)

  • SWIG the C++, exporting required methods to python for basic tests (DCT)
  • Create a testing facility for regression tests on C++ code (unit testing would be good eventually if we continue working on the C++ code-base) (DCT)
  • Integrate Code base with code received from Zurich and Matthias Ernst. (DCT)
  • Automatically create build directory on windows. (DCT)
  • Split DBwrite into a line blending procedure and code to output the results, and export the line blending code to python. (DCT)
  • Organize and clean up code base, eliminating clutter and unnecessary code. (Philip, DCT)
  • Fix runtests.py for non-matching numerical data. This is needed to get a complete match on tests run on windows. (DCT)
  • Explore the possibility of replacing the linear algebra code to speed up simulations (Blochlib, Atlas, LaPack++, etc). Considering the use of the Armadillo library ( http://arma.sourceforge.net/ ). (DCT)
  • Added a pytest target to run the python tests. (DCT)
  • Documented SWIG-ed code oddities, and also how to Swig. (DCT, aka David)
  • Much of the linear algebra code has been migrated to use the new lapack on OSX and the Makefiles have been modified to use them on other operating systems if some a few lines are uncommneted (assuming the libraries are installed). (Matthias)
  • Makefiles and Source code was cleaned up and the old pygamma code removed. (Philip, Matthias, Karl, David)
  • Most of the rest of the public API's were Swigged (still a bit more to be done there). (Karl, David)

Just a thought …

  • Add tests from the 2003 W.B. Blanton paper to our test suite.
  • Build some unit tests (need to add a C++ unit testing environment, like google's..http://code.google.com/p/googletest/ based on xUnit)
  • Is it worth exploring the potential benefits from using boost libraries to export interfaces to python.