Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Floating-point is (almost) never necessary to achieve acceptable performance in one specific compute workload. The value of IEEE 754 floating-point is that it makes it much, much easier to write correct numerically stable programs, because the arithmetic has a scale-invariant rounding error model (assuming no over-/underflow), and the results in the case of over/underflow are fully defined, so no unpleasant surprises like UB for integers.

For (almost) any one fixed algorithm with specified input scaling and known error tolerance, you can choose an appropriate fixed-point format and come within a reasonable constant of floating-point performance on generic hardware, and exceed it on special-purpose hardware. The real value of floating-point is in writing libraries that deliver good performance and acceptable numeric results without any a priori knowledge of input data scaling. This is critical to allowing people to quickly re-use and repurpose all the existing numerical computing software for new problems, and allows engineering tools like Matlab to be useful to people who are not numerics experts.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: