public void NormalizeZero() { Assert.True(Avx.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); Vector3Avx.NormalizeAvx2(vec1, actual); for (int i = 0; i < 8; i++) { Assert.True(result[i].ApproximatelyEquals(actual[i]), $"index: {i}, result: {result[i]}, actual: {actual[i]}"); } Vector3Fallbacks.Normalize(vec2, result); Vector3Avx.Normalize(vec2, actual); for (int i = 0; i < 8; i++) { Assert.True(result[i].ApproximatelyEquals(actual[i]), $"index: {i}, result: {result[i]}, actual: {actual[i]}"); } }
public void Normalize() { initializeArrays(); Vector3Fallbacks.Normalize(vec1, result); for (int i = 0; i < arrLength; i++) { Assert.True(result[i].ApproximatelyEquals(vec1[i].Normalized())); } }
public void NormalizeAvx2() { Assert.True(Avx2.IsSupported); initializeArrays(); Vector3Fallbacks.Normalize(vec1, result); Vector3Avx.NormalizeAvx2(vec1, actual); for (int i = 0; i < arrLength; i++) { Assert.True(result[i].ApproximatelyEquals(actual[i]), $"index: {i}, result: {result[i]}, actual: {actual[i]}"); } }