private static __mnnt__ Mgs(__mnnt__ m)
            {
                //# for (int j = 1; j < n; j++) {
                //# for (int k = 0; k < j; k++) {
                m.C__j__ -= (Vec.Dot(m.C__k__, m.C__j__) / Vec.Dot(m.C__k__, m.C__k__)) * m.C__k__;
                //# }

                //# }
                return(m);
            }
            private static __mnnt__ MgsNorm(__mnnt__ m)
            {
                m.C0 = m.C0.Normalized;

                //# for (int j = 1; j < n; j++) {
                //# for (int k = 0; k < j; k++) {
                m.C__j__ -= (Vec.Dot(m.C__k__, m.C__j__) / Vec.Dot(m.C__k__, m.C__k__)) * m.C__k__;
                //# }
                m.C__j__ = m.C__j__.Normalized;

                //# }
                return(m);
            }
 public __type__(__mnnt__ linear)
 {
     Debug.Assert(linear.Invertible);
     Linear = linear;
     Trans  = __vnt__.Zero;
 }
 public __type__(__mnnt__ linear, /*# nfields.ForEach(f => { */ __ftype__ t__f__ /*# }, comma); */)
 {
     Debug.Assert(linear.Invertible);
     Linear = linear;
     Trans  = new __vnt__(/*# nfields.ForEach(f => { */ t__f__ /*# }, comma); */);
 }
 public __type__(__mnnt__ linear, __vnt__ translation)
 {
     Debug.Assert(linear.Invertible);
     Linear = linear;
     Trans  = translation;
 }
 public __type__(__type__ affine)
 {
     Linear = affine.Linear;
     Trans  = affine.Trans;
 }