public static Matrix2d operator *(Matrix2d m1, Matrix2d m2)
 {
     Matrix2d ret = new Matrix2d(
         m1.a * m2.a + m1.b * m2.c,
         m1.a * m2.b + m1.b * m2.d,
         m1.c * m2.a + m1.d * m2.c,
         m1.c * m2.b + m1.d * m2.d
         );
     return ret;
 }
 public static Matrix2d operator +(Matrix2d m1, Matrix2d m2)
 {
     Matrix2d ret = new Matrix2d(
         m1.a + m2.a,
         m1.b + m2.b,
         m1.c + m2.c,
         m1.d + m2.d
         );
     return ret;
 }