public double TaylorPolynomialValue(double currentX) { int highestDerivativeOrder = 4; double taylorPolynomialValue = 0; int factorial = 1; double deviationBracket = 1; for (var i = 0; i <= highestDerivativeOrder; ++i) { if (i > 0) { factorial *= i; } taylorPolynomialValue += function.DerivativeValue(i, x, y) * deviationBracket / factorial; deviationBracket *= currentX - x; } return(taylorPolynomialValue); }