Exemplo n.º 1
0
        public Matrix2x2 Orthogonalize(Matrix2x2 defaultResult)
        {
            // Gram-Schmidtmethod
            // ToDo: Improve with Singular Value Decomposition A = UWVT, and set W = I
            Matrix2x2 result = defaultResult;
            Double2   x1 = Row1, x2 = Row2;
            Double2   y1 = x1;

            if (Double2.IsZero(y1))
            {
                return(result);
            }
            y1 = y1.Normalize();
            Double2 y2 = x2 - (x2 * y1) * y1;

            if (Double2.IsZero(y2))
            {
                return(result);
            }
            y2 = y2.Normalize();
            return(new Matrix2x2(
                       y1.X, y1.Y,
                       y2.X, y2.Y
                       ));
        }
Exemplo n.º 2
0
        public override bool Equals(object o)
        {
            Matrix2x2 value = (Matrix2x2)o;

            if (XX != value.XX)
            {
                return(false);
            }
            if (XY != value.XY)
            {
                return(false);
            }
            if (YX != value.YX)
            {
                return(false);
            }
            if (YY != value.YY)
            {
                return(false);
            }
            return(true);
        }