Skip to content

Commit b85156c

Browse files
committed
Rewrite how Matrix3x2 and Matrix4x4 are implemented
1 parent 0892659 commit b85156c

File tree

8 files changed

+2371
-2357
lines changed

8 files changed

+2371
-2357
lines changed

src/libraries/System.Numerics.Vectors/tests/Matrix3x2Tests.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -568,12 +568,15 @@ public void Matrix3x2EqualsTest()
568568
public void Matrix3x2GetHashCodeTest()
569569
{
570570
Matrix3x2 target = GenerateIncrementalMatrixNumber();
571-
int expected = HashCode.Combine(target.M11, target.M12,
572-
target.M21, target.M22,
573-
target.M31, target.M32);
574-
int actual;
575571

576-
actual = target.GetHashCode();
572+
int expected = HashCode.Combine(
573+
new Vector2(target.M11, target.M12),
574+
new Vector2(target.M21, target.M22),
575+
new Vector2(target.M31, target.M32)
576+
);
577+
578+
int actual = target.GetHashCode();
579+
577580
Assert.Equal(expected, actual);
578581
}
579582

src/libraries/System.Numerics.Vectors/tests/Matrix4x4Tests.cs

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1690,29 +1690,13 @@ public void Matrix4x4GetHashCodeTest()
16901690
{
16911691
Matrix4x4 target = GenerateIncrementalMatrixNumber();
16921692

1693-
HashCode hash = default;
1693+
int expected = HashCode.Combine(
1694+
new Vector4(target.M11, target.M12, target.M13, target.M14),
1695+
new Vector4(target.M21, target.M22, target.M23, target.M24),
1696+
new Vector4(target.M31, target.M32, target.M33, target.M34),
1697+
new Vector4(target.M41, target.M42, target.M43, target.M44)
1698+
);
16941699

1695-
hash.Add(target.M11);
1696-
hash.Add(target.M12);
1697-
hash.Add(target.M13);
1698-
hash.Add(target.M14);
1699-
1700-
hash.Add(target.M21);
1701-
hash.Add(target.M22);
1702-
hash.Add(target.M23);
1703-
hash.Add(target.M24);
1704-
1705-
hash.Add(target.M31);
1706-
hash.Add(target.M32);
1707-
hash.Add(target.M33);
1708-
hash.Add(target.M34);
1709-
1710-
hash.Add(target.M41);
1711-
hash.Add(target.M42);
1712-
hash.Add(target.M43);
1713-
hash.Add(target.M44);
1714-
1715-
int expected = hash.ToHashCode();
17161700
int actual = target.GetHashCode();
17171701

17181702
Assert.Equal(expected, actual);

src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -552,7 +552,9 @@
552552
<Compile Include="$(MSBuildThisFileDirectory)System\Number.Parsing.cs" />
553553
<Compile Include="$(MSBuildThisFileDirectory)System\Numerics\BitOperations.cs" />
554554
<Compile Include="$(MSBuildThisFileDirectory)System\Numerics\Matrix3x2.cs" />
555+
<Compile Include="$(MSBuildThisFileDirectory)System\Numerics\Matrix3x2.Impl.cs" />
555556
<Compile Include="$(MSBuildThisFileDirectory)System\Numerics\Matrix4x4.cs" />
557+
<Compile Include="$(MSBuildThisFileDirectory)System\Numerics\Matrix4x4.Impl.cs" />
556558
<Compile Include="$(MSBuildThisFileDirectory)System\Numerics\Plane.cs" />
557559
<Compile Include="$(MSBuildThisFileDirectory)System\Numerics\Quaternion.cs" />
558560
<Compile Include="$(MSBuildThisFileDirectory)System\Numerics\TotalOrderIeee754Comparer.cs" />
@@ -2530,4 +2532,4 @@
25302532
<Compile Include="$(MSBuildThisFileDirectory)System\Numerics\IUnaryPlusOperators.cs" />
25312533
<Compile Include="$(MSBuildThisFileDirectory)System\Numerics\IUnsignedNumber.cs" />
25322534
</ItemGroup>
2533-
</Project>
2535+
</Project>

0 commit comments

Comments
 (0)