Пример #1
0
        public static IFactorization SpawnFactorization(FactorizersEnum factorizer, CoordinationalMatrix M)
        {
            IFactorization factorization;

            switch (factorizer)

            {
            case FactorizersEnum.IncompleteCholesky:
                return(factorization = new IncompleteCholesky(M));

            case FactorizersEnum.IncompleteLU:
                return(factorization = new IncompleteLU(M));

            case FactorizersEnum.IncompleteLUsq:
                return(factorization = new IncompleteLUsq(M));

            case FactorizersEnum.DiagonalFactorization:
                return(factorization = new DioganalFactorization(M));

            case FactorizersEnum.SimpleFactorization:
                return(factorization = new SimpleFactorization(M));

            case FactorizersEnum.WithoutFactorization:
                return(factorization = null);

            default: return(null);
            }
        }
Пример #2
0
        public void FactorizationU()
        {
            SimpleFactorization simple = new SimpleFactorization(FA);
            var result = simple.UMult(new Vector(new double[] { 1, 1, 1 }));

            double[] resultActual = new double[]
            {
                Math.Sqrt(10) + 1 + 2,
                Math.Sqrt(10) + 3,
                Math.Sqrt(10)
            };

            foreach (var elem in result)
            {
                _testOutputHelper.WriteLine(elem.ToString());
            }

            for (int i = 0; i < result.Size; i++)
            {
                Assert.Equal(result[i], resultActual[i], 8);
            }
        }