public static Mat4HighPrecision operator *(Mat4HighPrecision A, Mat4HighPrecision B) { return(new Mat4HighPrecision( Vec4.Dot(A.Row0, B.Col0), Vec4.Dot(A.Row0, B.Col1), Vec4.Dot(A.Row0, B.Col2), Vec4.Dot(A.Row0, B.Col3), Vec4.Dot(A.Row1, B.Col0), Vec4.Dot(A.Row1, B.Col1), Vec4.Dot(A.Row1, B.Col2), Vec4.Dot(A.Row1, B.Col3), Vec4.Dot(A.Row2, B.Col0), Vec4.Dot(A.Row2, B.Col1), Vec4.Dot(A.Row2, B.Col2), Vec4.Dot(A.Row2, B.Col3), Vec4.Dot(A.Row3, B.Col0), Vec4.Dot(A.Row3, B.Col1), Vec4.Dot(A.Row3, B.Col2), Vec4.Dot(A.Row3, B.Col3) )); }
public static double Dot(Vec4 a, Vec4 b) { return(a.X * b.X + a.Y * b.Y + a.Z * b.Z + a.W * b.W); }
public static Vec4 operator *(Mat4HighPrecision A, Vec4 B) { return(new Vec4(Vec4.Dot(A.Row0, B), Vec4.Dot(A.Row1, B), Vec4.Dot(A.Row2, B), Vec4.Dot(A.Row3, B))); }
public static Vec4 operator *(Vec4 A, Mat4HighPrecision B) { return(new Vec4(Vec4.Dot(A, B.Col0), Vec4.Dot(A, B.Col1), Vec4.Dot(A, B.Col2), Vec4.Dot(A, B.Col3))); }