/// @param r double /// @return DhbFunctionEvaluation.PolynomialFunction public PolynomialFunction[] DivideWithRemainder(PolynomialFunction p) { PolynomialFunction[] answer = new PolynomialFunction[2]; int m = this.Degree; int n = p.Degree; if (m < n) { answer[0] = new PolynomialFunction(new double[] { 0 }); answer[1] = p; return answer; } double[] quotient = new double[m - n + 1]; double[] coef = new double[m + 1]; for (int k = 0; k <= m; k++) coef[k] = _coefficients[k]; double norm = 1 / p[n]; for (int k = m - n; k >= 0; k--) { quotient[k] = coef[n + k] * norm; for (int j = n + k - 1; j >= k; j--) coef[j] -= quotient[k] * p[j - k]; } double[] remainder = new double[n]; for (int k = 0; k < n; k++) remainder[k] = coef[k]; answer[0] = new PolynomialFunction(quotient); answer[1] = new PolynomialFunction(remainder); return answer; }
static NormalDistribution() { double[] coeffs = { 0.31938153, -0.356563782, 1.781477937, -1.821255978, 1.330274429}; _errorFunctionSeries = new PolynomialFunction(coeffs); }