Great job done, first of all!
I would like to suggest an improvement. If k is close to 1.0, elliptic functions become difficult to calculate. It seems that K(k) is limited to ~70 in practice. Having 128bit floating point values will allow far greater values of K(k).