internal override IEnumerable<(BigInteger, Fractional)> Yielder() { List<Fractional> bernoulli = new List<Fractional>(); bernoulli.Add(1); Console.WriteLine($"B_{0}: {bernoulli[0]}"); for (int n = 1; ; n++) { Fractional currentSum = 0; for (int k = 0; k < n; k++) { currentSum += MoreMath.Choose(n + 1, k) * bernoulli[k]; } Fractional newVal = (-currentSum / MoreMath.Choose(n + 1, n)).Shorten(); bernoulli.Add(newVal); yield return (n, newVal); } }
public BernoulliPolynomial(int n) { this.n = n; BernoulliNumbers bernoulli = new BernoulliNumbers(); constants = bernoulli[0, n+1].Select(x => (BigDecimal)x.value * MoreMath.Choose(n, x.index)).ToArray(); }