Accord.Tests.Math.OctaveEnvironmentTest.svdTest C# (CSharp) Method

svdTest() private method

private svdTest ( ) : void
return void
        public void svdTest()
        {
            // Declare local matrices
            mat u = _, s = _, v = _;

            // Compute a new mat
            mat M = magic(3) * 5;

            // Compute the SVD
            ret [u, s, v] = svd(M);

            string str = u;

            /*
                            0.577350269189626 -0.707106781186548     0.408248290463863 
                       U =  0.577350269189626 -1.48007149071427E-16 -0.816496580927726 
                            0.577350269189626  0.707106781186548     0.408248290463863
            */
            double[,] expectedU = 
            {
                { 0.577350269189626, -0.707106781186548,     0.408248290463863 },
                { 0.577350269189626, -1.48007149071427E-16, -0.816496580927726 }, 
                { 0.577350269189626,  0.707106781186548,     0.408248290463863 },
            };

            double[,] expectedS =
            {
                { 74.999999999999972, 0, 0 },
                { 0, 34.641016151377556, 0 },
                { 0, 0, 17.320508075688775 },
            };

            double[,] expectedV = 
            {
                { 0.57735026918962573, -0.4082482904638628, 0.70710678118654779 },
                { 0.57735026918962562, 0.81649658092772615, -0.000000000000000061130671974381729 },
                { 0.57735026918962584, -0.40824829046386324, -0.70710678118654757 },
            };

            Assert.IsTrue(expectedU.IsEqual(u, 1e-10));
            Assert.IsTrue(expectedS.IsEqual(s, 1e-10));
            Assert.IsTrue(expectedV.IsEqual(v, 1e-10));
        }
OctaveEnvironmentTest