private static void flipVector(long[] x, int xOff, long[] y, int yOff, int yLen, int bits) { xOff += bits >>> 6; bits &= 0x3F; if (bits == 0) { add(x, xOff, y, yOff, yLen); } else { long carry = addShiftedDown(x, xOff + 1, y, yOff, yLen, 64 - bits); x[xOff] ^= carry; } }
private void addShiftedByBitsSafe(LongArray other, int otherDegree, int bits) { int otherLen = (otherDegree + 63) >>> 6; int words = bits >>> 6; int shift = bits & 0x3F; if (shift == 0) { add(m_ints, words, other.m_ints, 0, otherLen); return; } long carry = addShiftedUp(m_ints, words, other.m_ints, 0, otherLen, shift); if (carry != 0L) { m_ints[otherLen + words] ^= carry; } }
public void addShiftedByWords(LongArray other, int words) { int otherUsedLen = other.getUsedLength(); if (otherUsedLen == 0) { return; } int minLen = otherUsedLen + words; if (minLen > m_ints.length) { m_ints = resizedInts(minLen); } add(m_ints, words, other.m_ints, 0, otherUsedLen); }
add(T0, bMax, T0, tOff - bMax, T0, tOff, bMax);
add(T0, bMax, T0, tOff - bMax, T0, tOff, bMax);
add(T0, bMax, T0, tOff - bMax, T0, tOff, bMax);
private void addShiftedByBitsSafe(LongArray other, int otherDegree, int bits) { int otherLen = (otherDegree + 63) >>> 6; int words = bits >>> 6; int shift = bits & 0x3F; if (shift == 0) { add(m_ints, words, other.m_ints, 0, otherLen); return; } long carry = addShiftedUp(m_ints, words, other.m_ints, 0, otherLen, shift); if (carry != 0L) { m_ints[otherLen + words] ^= carry; } }
private static void flipVector(long[] x, int xOff, long[] y, int yOff, int yLen, int bits) { xOff += bits >>> 6; bits &= 0x3F; if (bits == 0) { add(x, xOff, y, yOff, yLen); } else { long carry = addShiftedDown(x, xOff + 1, y, yOff, yLen, 64 - bits); x[xOff] ^= carry; } }
add(T0, bMax, T0, tOff - bMax, T0, tOff, bMax);
public void addShiftedByWords(LongArray other, int words) { int otherUsedLen = other.getUsedLength(); if (otherUsedLen == 0) { return; } int minLen = otherUsedLen + words; if (minLen > m_ints.length) { m_ints = resizedInts(minLen); } add(m_ints, words, other.m_ints, 0, otherUsedLen); }
add(T0, bMax, T0, tOff - bMax, T0, tOff, bMax);
private static void multiplyWord(long a, long[] b, int bLen, long[] c, int cOff) { if ((a & 1L) != 0L) { add(c, cOff, b, 0, bLen); } int k = 1; while ((a >>>= 1) != 0L) { if ((a & 1L) != 0L) { long carry = addShiftedUp(c, cOff, b, 0, bLen, k); if (carry != 0L) { c[cOff + bLen] ^= carry; } } ++k; } }
add(T0, bMax, T0, tOff - bMax, T0, tOff, bMax);
private static void multiplyWord(long a, long[] b, int bLen, long[] c, int cOff) { if ((a & 1L) != 0L) { add(c, cOff, b, 0, bLen); } int k = 1; while ((a >>>= 1) != 0L) { if ((a & 1L) != 0L) { long carry = addShiftedUp(c, cOff, b, 0, bLen, k); if (carry != 0L) { c[cOff + bLen] ^= carry; } } ++k; } }
add(c, aPos + ci[index], c, bOff, bMax);
add(c, aPos + ci[index], c, bOff, bMax);