Floating Point Operations in Xamarin.iOS

Xamarin.iOS will by default perform 32-bit and 64-bit floating point operations using 64-bit precision on ARM.

While this higher precision is closer to what developers expect from floating point operations in C# on the desktop, on mobile, the performance impact can be significant.

It is possible to compile your 32-bit floating point code to use 32-bit floating point operations. To do this, you can either uncheck the "Perform all 32-bit float operations as 64-float." option in the iOS Build property page in Visual Studio, or set the MtouchFloat32 property in the project file to true (create the property if it doesn't already exist):

<MtouchFloat32>true</MtouchFloat32>

This will inform the static compilers (either Mono's built-in static compiler, or the LLVM-powered one) to perform floating point operations using 32-bit floats.