public XInt Factorial(int N) { var n = (uint)N; var exp2 = (int)(n - MathFun.BitCount(n)); if (n < SmallOddFactorial.Length) { return new XInt(SmallOddFactorial[n]) << exp2; } if (n >= SmallOddSwing.Length) { this.prime = new Primes(n); this.factors = new Factors(n); } return this.OddFactorial(n) << exp2; }
public XInt Factorial(int N) { var n = (uint)N; var exp2 = (int)(n - MathFun.BitCount(n)); if (n < SmallOddFactorial.Length) { return(new XInt(SmallOddFactorial[n]) << exp2); } if (n >= SmallOddSwing.Length) { this.prime = new Primes(n); this.factors = new Factors(n); } return(this.OddFactorial(n) << exp2); }