daily update on 20230807 by nitload youmu

This commit is contained in:
Nitload
2023-08-07 22:12:37 +08:00
parent 0601a6dcce
commit f9f339405e
16 changed files with 573 additions and 355 deletions
@@ -5,6 +5,7 @@ namespace StgSharp.Math
{
public static unsafe partial class VectorCalc
{
public static unsafe float Multiple(Vec3d vec1, Vec3d vec2)
{
@@ -18,8 +19,6 @@ namespace StgSharp.Math
m128.single_2;
}
public static unsafe float Multiple(Vec4d vec1,Vec3d vec2)
{
IntPtr retPtr = internalIO.mulps_internal(vec1._m128Ptr,vec2._m128Ptr);
@@ -34,6 +33,14 @@ namespace StgSharp.Math
public static Matrix2x2 Multiple(Matrix2x2 matrix1, Matrix2x2 matrix2)
{
if (matrix2 == Matrix2x2.Unit)
{
return new Matrix2x2(
internalIO.load_cpy_internal(matrix1._colum0Ptr),
internalIO.load_cpy_internal(matrix1._colum1Ptr)
);
}
Matrix2x2 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix2x2(
@@ -45,6 +52,19 @@ namespace StgSharp.Math
);
}
public static Matrix2x2 Multiple(Matrix2x3 matrix1, Matrix3x2 matrix2)
{
Matrix3x2 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix2x2(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr)
);
}
public static Matrix2x2 Multiple(Matrix2x4 matrix1, Matrix4x2 matrix2)
{
Matrix4x2 trans = matrix1.Transpose(TransposeMode.Copy);
@@ -58,6 +78,51 @@ namespace StgSharp.Math
);
}
public static Matrix2x3 Multiple(Matrix2x2 matrix1, Matrix2x3 matrix2)
{
Matrix2x2 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix2x3(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum2Ptr)
);
}
public static Matrix2x3 Multiple(Matrix2x3 matrix1, Matrix3x3 matrix2)
{
Matrix3x2 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix2x3(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum2Ptr)
);
}
public static Matrix2x3 Multiple(Matrix2x4 matrix1, Matrix4x3 matrix2)
{
Matrix4x2 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix2x3(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum2Ptr)
);
}
public static Matrix2x4 Multiple(Matrix2x2 matrix1, Matrix2x4 matrix2)
{
Matrix2x2 trans = matrix1.Transpose(TransposeMode.Copy);
@@ -75,6 +140,107 @@ namespace StgSharp.Math
);
}
public static Matrix2x4 Multiple(Matrix2x3 matrix1, Matrix3x4 matrix2)
{
Matrix3x2 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix2x4(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum3Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum3Ptr)
);
}
public static Matrix2x4 Multiple(Matrix2x4 matrix1, Matrix4x4 matrix2)
{
Matrix4x2 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix2x4(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum3Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum3Ptr)
);
}
public static Matrix3x2 Multiple(Matrix3x2 matrix1, Matrix2x2 matrix2)
{
Matrix2x3 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix3x2(
internalIO.mulps_sum_internal(trans._colum0Ptr,matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr,matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr,matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr,matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr,matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr,matrix2._colum1Ptr)
);
}
public static Matrix3x2 Multiple(Matrix3x3 matrix1, Matrix3x2 matrix2)
{
Matrix3x3 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix3x2(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum1Ptr)
);
}
public static Matrix3x2 Multiple(Matrix3x4 matrix1, Matrix4x2 matrix2)
{
Matrix4x3 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix3x2(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum1Ptr)
);
}
public static Matrix3x3 Multiple(Matrix3x2 matrix1, Matrix2x3 matrix2)
{
Matrix2x3 transpose = matrix1.Transpose(TransposeMode.Copy);
return new Matrix3x3(
internalIO.mulps_sum_internal(transpose._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(transpose._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(transpose._colum0Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(transpose._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(transpose._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(transpose._colum1Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(transpose._colum2Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(transpose._colum2Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(transpose._colum2Ptr, matrix2._colum2Ptr)
);
}
public static Matrix3x3 Multiple(Matrix3x3 matrix1, Matrix3x3 matrix2)
{
Matrix3x3 transpose = matrix2.Transpose(TransposeMode.Copy);
@@ -113,11 +279,199 @@ namespace StgSharp.Math
);
}
public static Matrix3x4 Multiple(Matrix3x2 matrix1, Matrix2x4 matrix2)
{
Matrix2x3 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix3x4(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum3Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum3Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum3Ptr)
);
}
public static Matrix3x4 Multiple(Matrix3x3 matrix1, Matrix3x4 matrix2)
{
Matrix3x3 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix3x4(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum3Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum3Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum3Ptr)
);
}
public static Matrix3x4 Multiple(Matrix3x4 matrix1, Matrix4x4 matrix2)
{
Matrix4x3 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix3x4(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum3Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum3Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum3Ptr)
);
}
public static Matrix4x2 Multiple(Matrix4x2 matrix1, Matrix2x2 matrix2)
{
Matrix2x4 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix4x2(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum1Ptr)
);
}
public static Matrix4x2 Multiple(Matrix4x3 matrix1, Matrix3x2 matrix2)
{
Matrix3x4 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix4x2(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum1Ptr)
);
}
public static Matrix4x2 Multiple(Matrix4x4 matrix1, Matrix4x2 matrix2)
{
Matrix4x4 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix4x2(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum1Ptr)
);
}
public static Matrix4x3 Multiple(Matrix4x2 matrix1, Matrix2x3 matrix2)
{
Matrix2x4 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix4x3(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum2Ptr)
);
}
public static Matrix4x3 Multiple(Matrix4x3 matrix1, Matrix3x3 matrix2)
{
Matrix3x4 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix4x3(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum2Ptr)
);
}
public static Matrix4x3 Multiple(Matrix4x4 matrix1, Matrix4x3 matrix2)
{
Matrix4x4 trans = matrix1.Transpose(TransposeMode.Copy);
return new Matrix4x3(
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum0Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum1Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum2Ptr, matrix2._colum2Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum0Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum1Ptr),
internalIO.mulps_sum_internal(trans._colum3Ptr, matrix2._colum2Ptr)
);
}
public static Matrix4x4 Multiple(Matrix4x2 matrix1, Matrix2x4 matrix2)
@@ -146,7 +500,7 @@ namespace StgSharp.Math
);
}
public static Matrix4x4 Multiple( Matrix4x3 matrix1, Matrix3x4 matrix2 )
public static Matrix4x4 Multiple( Matrix4x3 matrix1, Matrix3x4 matrix2)
{
Matrix3x4 trans = matrix1.Transpose(TransposeMode.Copy);
@@ -173,7 +527,7 @@ namespace StgSharp.Math
);
}
public static Matrix4x4 Multiple( Matrix4x4 matrix1, Matrix4x4 matrix2 )
public static Matrix4x4 Multiple( Matrix4x4 matrix1, Matrix4x4 matrix2)
{
Matrix4x4 transpose = matrix1.Transpose(TransposeMode.Copy);
return new Matrix4x4(