private Parameter(Bellard.Parameter p) { this.isplus = !p.isplus; this.j = p.j + (p.deltaN >> 1); this.deltaN = p.deltaN; this.deltaE = p.deltaE; this.offsetE = p.offsetE + (p.deltaE >> 1); }
/// <summary>Constructor</summary> private Sum(long b, Bellard.Parameter p, int nParts, IList <T> existing) { if (b < 0) { throw new ArgumentException("b = " + b + " < 0"); } if (nParts < 1) { throw new ArgumentException("nParts = " + nParts + " < 1"); } long i = p.j == 1 && p.offsetE >= 0 ? 1 : 0; long e = b + i * p.deltaE + p.offsetE; long n = i * p.deltaN + p.j; this.parameter = p; this.sigma = new Summation(n, p.deltaN, e, p.deltaE, 0); this.parts = Partition(sigma, nParts, existing); this.tail = new Bellard.Sum.Tail(this, n, e); }