In http://perl5.git.perl.org/perl.git/commitdiff/ab455f6077c4f8e6e59a143e82bbdc3535ce31e5 why is THREEWAY_SQUARE constantly casting to float to loose precision after every op? That is a huge amount of x87 FP asm ops to do the forced precision loss between every math op.