public static Vec4 operator*(Mat4 a, Vec4 v) { Vec4 result = new Vec4(); for (int i = 0; i < 4; ++i) { result[i] = Vec4.dot(a.row(i), v); } return(result); }
public static Vec4 operator*(Vec4 v, Mat4 a) { Vec4 result = new Vec4(); for (int i = 0; i < 4; ++i) { result[i] = Vec4.dot(a.column(i), v); } return(result); }
public static Mat4 operator*(Mat4 a, Mat4 b) { Mat4 mat = new Mat4(); for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) { mat[i, j] = Vec4.dot(a.row(i), b.column(j)); } } return(mat); }