Isosurface.QEFSolver.svd_rotate C# (CSharp) Method

svd_rotate() private method

private svd_rotate ( float &vtav, float &v, int a, int b ) : void
vtav float
v float
a int
b int
return void
        void svd_rotate(ref float[,] vtav, ref float[,] v, int a, int b)
        {
            if (vtav[a, b] == 0.0f) return;

            float c, s;
            givens_coeffs_sym(vtav[a, a], vtav[a, b], vtav[b, b], out c, out s);
            svd_rotateq_xy(ref vtav[a, a], ref vtav[b, b], ref vtav[a, b], c, s);
            svd_rotate_xy(ref vtav[0, 3 - b], ref vtav[1 - a, 2], c, s);
            vtav[a, b] = 0.0f;

            svd_rotate_xy(ref v[0, a], ref v[0, b], c, s);
            svd_rotate_xy(ref v[1, a], ref v[1, b], c, s);
            svd_rotate_xy(ref v[2, a], ref v[2, b], c, s);
        }