As I already stated the reason is "bindings to large C/C++ libraries with numerous dependencies" for other libraries and "it is not intended to compete with large commercial solvers".
I didn't do comparison, but it will be helpfull to compare and tell us.
this boils down to the definition of pain. what is pain? i doubt you know even if you have experienced it. theres no reason to think that even llms are not guided by something that resembles pain.
It will be helpful, if you add comments discussing why certain functions are implemented in that way, and what algorithms (references) is used.
For example, there are some magic numbers without explanation:
if (cap < 1000) {
Have you looked at: https://github.com/davideberly/GeometricTools
Each algorithm is well documented and explained. There is even a short pdf papers for some of the algorithms explainimg why some decisions are taken and what numerical issues may be expected.
I think this might handle NaN differently than == does, I believe the comparisons would always be false with NaN. I’m not sure if that is the intent though.