public int compareTo( Polynomial o ) {
		int cmp = degree().compareTo( o.degree() );
		if ( cmp != 0 ) return cmp;
		// get first degree difference
		Polynomial x = this.xor( o );
		if ( x.isEmpty() ) return 0;
		return this.hasDegree( x.degree() ) ? 1 : -1;
	}