In some of the routines (e.g. ecc()) it is not 100% clear exactly what is
going on, however a good attempt has been made to understand the code and/or
the context with which it is used so as to provide documentation without
being misleading, even if the documentation isn't 100% in line with the
original author's intent.