Late June progress update

The first evaluation is just in a few days. Here's a quick summary of what I've done so far:

  • I wrote and tested a decent prototype of the implementation, in my personal repository.
  • I forked the main repository and began working on integrating my code into the codebase.
    • I learned the basics of Sphinx and the NumPy docstring style, used in Colour.
    • I learned how to use Poetry to run unit tests (using Nosetests), and how to write my own tests.
    • I learned how to ensure a consistent code style using Flake8.
    • Code is now well integrated into the Colour codebase, including relevant tests. Not everything is done yet, though.
  • I opened a pull request, and I'm hoping to get it merged into the development branch (and eventually into master) before moving on to working on the next major goal.

What's left to do?

  • Improve the optimization process. It still has convergence problems and fails for many colors. This is despite me having written code computing the exact gradient (using analytic differentiation). An investigation into new algorithms is needed.
  • The code for looking up pre-computed tables isn't documented and has no unit tests. Because the tables are rather large (too big for inclusion in the main repository), testing can be challenging. An idea is to generate and use smaller tables for this purpose.
  • The code for generating new tables is almost complete.
  • There are still some minor stylistic issues to be discussed and fixed.

At the moment I'm still working on the solver. Hopefully the next blog entry is titled “no convergence problems.”