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);
        }