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); } }
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); } }