ModuleWorks switching to Visual Studio 2013
We have recently switched our main development environment to Visual Studio 2013 because we are seeing a continuous shift to this platform among our partners.
As part of the continuous regression testing process, we have identified changes in the behavior of the standard trigonometric functions. We see different results not only across different compilers, but even across different CPUs. CPUs that support the AVX2 advanced vector extensions give slightly different results when using the sine, cosine or tangent functions inside Visual Studio 2013.
To solve these issues, we have created our own implementation of these functions and we now see consistent behavior across different compilers and hardware platforms. Although differing slightly from standard implementations, we believe these new functions will result in more stable and reliable calculations from now on and for the foreseeable future.
We have included these functions in our API to make them available to our partners, in case they would like to re-use our implementation and not have to worry about re-inventing the wheel.