Reminds me that I wanted to port this to OpenMCL ...

At lemonodor there is the original article.