public double[,] ParsedSolve(string formulaA, string formulaB, int columnA, int rowA, int columnB, int rowB, bool sparse, int opperation) { SymbolicExpression parsedA = SymbolicExpression.Parse(formulaA); SymbolicExpression parsedB = SymbolicExpression.Parse(formulaB); if (parsedA != null && parsedB != null) { Stopwatch stopwatch = new Stopwatch(); Matrix <double> mA, mB; Func <double, double, double> funcA = parsedA.Compile("x", "y"); Func <double, double, double> funcB = parsedB.Compile("x", "y"); IMatrix matrix = new MathnetMatrixSolver(); switch (opperation) { case 0: { if (!sparse) { mA = Matrix <double> .Build.Dense(columnA, rowA, (i, j) => funcA(i, j)); mB = Matrix <double> .Build.Dense(columnB, rowB, (i, j) => funcB(i, j)); return((mA * mB).ToArray()); } mA = Matrix <double> .Build.Sparse(columnA, rowA, (i, j) => funcA(i, j)); mB = Matrix <double> .Build.Sparse(columnB, rowB, (i, j) => funcB(i, j)); return((mA * mB).ToArray()); } case 1: { if (!sparse) { mA = Matrix <double> .Build.Dense(columnA, rowA, (i, j) => funcA(i, j)).Transpose(); return(mA.ToArray()); } mA = Matrix <double> .Build.Sparse(columnA, rowA, (i, j) => funcA(i, j)).Transpose(); return(mA.ToArray()); } } } double[,] err = { { 0.0 } }; return(err); }