OpenImageIO/oiio — pull request #953 by lgritz (2014-09-11 22:31:15+00:00)
Title: fmath.h overhaul and speed up TextureSystem with approximate ops

We just in the past few days committed lots of those fast, approximate math functions to OSL, and thereafter immediately discovered that we get a measurable texture system speedup (7% of the cost of anisotropic texture lookups) if we deploy them in a few selected spots in TextureSystem. So, we're moving them to the OIIO side so that they can easily be used in both packages. The changes to TextureSystem (just a few lines) that resulted in the speedup are also included in this review, but 99% of the change is a big reorg of fmath.h:

* Some things (like understanding the endianness of the platform) have moved to platform.h.

* The stuff particular to supplying things that should be in math.h or stdint.h, but aren't on some platforms, has all been moved to a new header, missing_math.h.

* Tons of safe_blah (clamped input range) and fast_blah (approximate but must faster) have been added, copied from a recent addition to Open Shading Language (OSL). (See https://github.com/imageworks/OpenShadingLanguage/pull/413)

* Moved a whole bunch of stuff around the file to give it some kind of sane overall organization.