Exemplo n.º 1
0
        public static void mmul_ata(out SMat3 Out, DMat3 a)
        {
            Out = new SMat3();

            Out.setSymmetric(a.m00 * a.m00 + a.m10 * a.m10 + a.m20 * a.m20,
                             a.m00 * a.m01 + a.m10 * a.m11 + a.m20 * a.m21,
                             a.m00 * a.m02 + a.m10 * a.m12 + a.m20 * a.m22,
                             a.m01 * a.m01 + a.m11 * a.m11 + a.m21 * a.m21,
                             a.m01 * a.m02 + a.m11 * a.m12 + a.m21 * a.m22,
                             a.m02 * a.m02 + a.m12 * a.m12 + a.m22 * a.m22);
        }
Exemplo n.º 2
0
        public static void getSymmetricSvd(SMat3 a, SMat3 vtav, DMat3 v, double tol, int max_sweeps)
        {
            vtav.setSymmetric(a);
            v.set(1, 0, 0, 0, 1, 0, 0, 0, 1);
            var delta = tol * MatUtils.fnorm(vtav);

            for (var i = 0; i < max_sweeps && MatUtils.off(vtav) > delta; ++i)
            {
                rotate01(vtav, v);
                rotate02(vtav, v);
                rotate12(vtav, v);
            }
        }
Exemplo n.º 3
0
 private void setAta()
 {
     ata.setSymmetric(data.ata_00, data.ata_01, data.ata_02, data.ata_11, data.ata_12, data.ata_22);
 }