Cleanup: use float versions of functions when in/output are floats