BEPUutilitiesTests.AffineTests.TestInversionCorrectness C# (CSharp) Method

TestInversionCorrectness() public static method

public static TestInversionCorrectness ( ) : void
return void
        public static unsafe void TestInversionCorrectness()
        {
            Random random = new Random(5);
            for (int iterationIndex = 0; iterationIndex < 1000; ++iterationIndex)
            {
                bAffineTransform scalar;
                AffineTransform simd;
                var scalarPointer = (float*)&scalar;
                var simdPointer = (float*)&simd;

                //Create a guaranteed invertible transform.
                scalar.LinearTransform = bMatrix3x3.CreateFromAxisAngle(
                    bVector3.Normalize(new bVector3(
                        0.1f + (float)random.NextDouble(),
                        0.1f + (float)random.NextDouble(),
                        0.1f + (float)random.NextDouble())),
                    (float)random.NextDouble());
                scalar.Translation = new bVector3((float)random.NextDouble() * 10, (float)random.NextDouble() * 10, (float)random.NextDouble() * 10);

                for (int i = 0; i < 12; ++i)
                {
                    simdPointer[i] = scalarPointer[i];
                }

                bAffineTransform.Invert(ref scalar, out scalar);
                AffineTransform.Invert(ref simd, out simd);

                for (int i = 0; i < 12; ++i)
                {
                    var errorSimd = Math.Abs(simdPointer[i] - scalarPointer[i]);
                    Assert.IsTrue(errorSimd < 1e-5f);
                }
            }
        }