private Polynomial reduceExponent( final int p ) {
		// compute (x^q^p mod f)
		BigInteger q_to_p = Q.pow( p );
		Polynomial x_to_q_to_p = X.modPow( q_to_p, this );

		// subtract (x mod f)
		return x_to_q_to_p.xor( X ).mod( this );
	}