My 3D graphics software, written in C# using SlimDX, does a lot of vector operations on the CPU. (In this specific situation, it is not possible to offload the work to the GPU).
How can I make my vector math faster? So far, I have found these approaches:
- Run on Mono instead of Microsoft .NET, because they have SIMD support. Not an option for this project.
- SlimGen, a project that injects high-performance maths code at runtime. Unfortunately, the project is not in a usable state yet.
- Write a DLL in C++ using a compiler that utilizes SSE instructions. Interop with that DLL from C#.
Are there any other options to accomplish faster vector math in .NET?