public FiniteFieldPolynomial(IrreduciblePolynomial primePolynomial, params int[] setCoefficients) { _PrimePolynomial = primePolynomial; _PolynomialSetCoefficients = BigInteger.Zero; for (int i = 0; i < setCoefficients.Length; i++) { _PolynomialSetCoefficients = _PolynomialSetCoefficients.SetBit(setCoefficients[i]); } }
public IrreduciblePolynomial(int degreeOfIrreduciblePolynomial) { if (!IsValidDegree(degreeOfIrreduciblePolynomial)) { throw new ArgumentException(); } PolynomialValue = BigInteger.Zero.SetBit(degreeOfIrreduciblePolynomial); for (int i = 0; i < InnerTermsPerPolynomial; i++) { PolynomialValue = PolynomialValue.SetBit( _TermPowers[InnerTermsPerPolynomial*((degreeOfIrreduciblePolynomial/8) - 1) + i]); } PolynomialValue = PolynomialValue.SetBit(0); Degree = degreeOfIrreduciblePolynomial; }