int main(void)
{
    Matrix4x4 mat;
    const double v[]=
    {
        6.0,1.0,4.0,9.0,
        9.0,8.0,6.0,1.0,
        7.0,2.0,9.0,4.0,
        1.0,7.0,5.0,9.0
    };
    for(int i=0; i<16; ++i)
    {
        const int r=1+i/4;
        const int c=1+i%4;
        mat.Set(r,c,v[i]);
    }
    mat.Print();
    mat.Transpose();
    printf("\n");
    mat.Print();
    // If you go for extra credit, uncomment the following three lines.
    // printf("\n");
    // mat.Invert();
    // mat.Print();
    return 0;
}