public BigInteger toBigInteger() {
		BigInteger b = BigInteger.ZERO;
		for ( BigInteger degree : degrees ) {
			// technically accurate but slow as hell:
			// BigInteger term = BigInteger.ONE;
			// for ( BigInteger i = BigInteger.ONE; i.compareTo( degree ) >= 0;
			// i = i.add( BigInteger.ONE ) ) {
			// term = term.shiftLeft( 1 );
			// }
			b = b.setBit( (int) degree.longValue() );
		}
		return b;
	}