In the Swift Standard Library, Double and Float both conform to the FloatingPointType protocol, while Float80 doesn't. Why?
Why doesn't Float80 conform to the FloatingPointType protocol?
In a thread on the older forums, one of the Apple engineers stated that the reason Float80 is only available on OS X and simulated iOS (not on iOS hardware) is because it isn't built in to the ARM processors.
It doesn't sound like they are planning to put much work into Float80 at this point, if it isn't even going to to be availble on iOS devices. Since it It doesn't already have the right methods to conform to the protocol on OS X, it might not be worth the effort to them to make it conform.
https://devforums.apple.com/message/1118295
------------
Swift's current design/policy for floating point types is to expose the capabilities of the processor. This doesn't preclude providing software floating point implementations of other floating point formats, but we cannot comment on future plans (or lack thereof) to add them.
One thing I will point out though: Float is much more than just a space optimization. All modern hardware supports SIMD vectors, and using Float instead of Double enables 2x the auto-vectorization capabilities, because modern processors can operate on 4 or 8 Floats at a time. This can make a significant difference in performance of numerical algorithms.
-Chris
------------
One of the engineers is good - Chris is head of the Developer Tools unit at Apple and boss honcho of LLVM and Clang 😉
Well, I typed that before I decided to go back and find the thread in the old forums, and I didn't remember specifically who had said it.
But yes, it was Chris Lattner.