docs: public static int multiply( int x , int y , int primitive , int domain ) {
  		int r = 0;
  		while( y > 0 ) {
  			if( (y&1) != 0 ) {
  				r = r ^ x;
  			}
  			y = y >> 1;
  			x = x << 1;
  
  			if( x >= domain) {
  				x ^= primitive;
  			}
  		}
  		return r;
  	}