示例#1
0
        public void NormalizeZero()
        {
            Assert.True(Sse.IsSupported);

            vec1 = new Vec3[8] {
                new Vec3(0, 0, 0), new Vec3(1, 1, 1), new Vec3(2, 3, 4), new Vec3(2, 3, 4), new Vec3(0, 0, 0), new Vec3(0, 0, 0), new Vec3(6, 5, 2), new Vec3(0, 0, 0)
            };
            vec2 = new Vec3[8] {
                new Vec3(1, 1, 1), new Vec3(0, 0, 0), new Vec3(0, 0, 0), Vec3.backward, Vec3.forward, Vec3.left, Vec3.down, Vec3.up
            };
            result = new Vec3[8];
            actual = new Vec3[8];


            Vector3Fallbacks.Normalize(vec1, result);
            Vector3Sse.Normalize(vec1, actual);

            for (int i = 0; i < 3; i++)
            {
                Assert.True(result[i].ApproximatelyEquals(actual[i]),
                            $"index: {i}, result: {result[i]}, actual: {actual[i]}");
            }

            Vector3Fallbacks.Normalize(vec2, result);
            Vector3Sse.Normalize(vec2, actual);

            for (int i = 0; i < 3; i++)
            {
                Assert.True(result[i].ApproximatelyEquals(actual[i]),
                            $"index: {i}, result: {result[i]}, actual: {actual[i]}");
            }
        }
示例#2
0
        public void Dot()
        {
            Assert.True(Sse.IsSupported);
            initializeArrays();

            Vector3Fallbacks.Dot(vec1, vec2, resultF);
            Vector3Sse.Dot(vec1, vec2, actualF);

            for (int i = 0; i < arrLength; i++)
            {
                Assert.InRange(actualF[i], resultF[i] - float.Epsilon, resultF[i] + float.Epsilon);
            }
        }
示例#3
0
        public void Multiply()
        {
            Assert.True(Sse.IsSupported);
            initializeArrays();

            Vector3Fallbacks.Multiply(vec1, vec2, result);
            Vector3Sse.Multiply(vec1, vec2, actual);

            for (int i = 0; i < arrLength; i++)
            {
                Assert.True(result[i].ApproximatelyEquals(actual[i]),
                            $"index: {i}, result: {result[i]}, actual: {actual[i]}");
            }
        }