I don't think these need to be limited to float types.  Should be perfectly fine for integer types (as we do for add, mul, etc.)