Here you can find the source of multiplyP(int[] x)
public static void multiplyP(int[] x)
//package com.java2s; public class Main { private static final int E1 = 0xe1000000; public static void multiplyP(int[] x) { int m = shiftRight(x) >> 8; x[0] ^= (m & E1);// www. j a v a 2 s .c o m } public static void multiplyP(int[] x, int[] z) { int m = shiftRight(x, z) >> 8; z[0] ^= (m & E1); } static int shiftRight(int[] x) { // int c = 0; // for (int i = 0; i < 4; ++i) // { // int b = x[i]; // x[i] = (b >>> 1) | c; // c = b << 31; // } // return c; int b = x[0]; x[0] = b >>> 1; int c = b << 31; b = x[1]; x[1] = (b >>> 1) | c; c = b << 31; b = x[2]; x[2] = (b >>> 1) | c; c = b << 31; b = x[3]; x[3] = (b >>> 1) | c; return b << 31; } static int shiftRight(int[] x, int[] z) { // int c = 0; // for (int i = 0; i < 4; ++i) // { // int b = x[i]; // z[i] = (b >>> 1) | c; // c = b << 31; // } // return c; int b = x[0]; z[0] = b >>> 1; int c = b << 31; b = x[1]; z[1] = (b >>> 1) | c; c = b << 31; b = x[2]; z[2] = (b >>> 1) | c; c = b << 31; b = x[3]; z[3] = (b >>> 1) | c; return b << 31; } static long shiftRight(long[] x) { long b = x[0]; x[0] = b >>> 1; long c = b << 63; b = x[1]; x[1] = (b >>> 1) | c; return b << 63; } static long shiftRight(long[] x, long[] z) { long b = x[0]; z[0] = b >>> 1; long c = b << 63; b = x[1]; z[1] = (b >>> 1) | c; return b << 63; } }