Beispiel #1
0
        public void Rot12(ref float c, ref float s)
        {
            Mat3.CalcSymmetricGivensCoefficients(m11, m12, m22, out c, out s);
            float cc  = c * c;
            float ss  = s * s;
            float mix = 2 * c * s * m12;

            SetSymmetric(m00, c * m01 - s * m02, s * m01 + c * m02,
                         cc * m11 - mix + ss * m22, 0, ss * m11 + mix + cc * m22);
        }
Beispiel #2
0
        public void Rot01(ref float c, ref float s)
        {
            Mat3.CalcSymmetricGivensCoefficients(m00, m01, m11, out c, out s);
            float cc  = c * c;
            float ss  = s * s;
            float mix = 2 * c * s * m01;

            SetSymmetric(cc * m00 - mix + ss * m11, 0, c * m02 - s * m12,
                         ss * m00 + mix + cc * m11, s * m02 + c * m12, m22);
        }