private static void squareInPlace(long[] x, int xLen, int m, int[] ks) { int pos = xLen << 1; while (--xLen >= 0) { long xVal = x[xLen]; x[--pos] = interleave2_32to64((int)(xVal >>> 32)); x[--pos] = interleave2_32to64((int)xVal); } }
private static void squareInPlace(long[] x, int xLen, int m, int[] ks) { int pos = xLen << 1; while (--xLen >= 0) { long xVal = x[xLen]; x[--pos] = interleave2_32to64((int)(xVal >>> 32)); x[--pos] = interleave2_32to64((int)xVal); } }
public LongArray square(int m, int[] ks) { int len = getUsedLength(); if (len == 0) { return this; } int _2len = len << 1; long[] r = new long[_2len]; int pos = 0; while (pos < _2len) { long mi = m_ints[pos >>> 1]; r[pos++] = interleave2_32to64((int)mi); r[pos++] = interleave2_32to64((int)(mi >>> 32)); } return new LongArray(r, 0, r.length); }
public LongArray square(int m, int[] ks) { int len = getUsedLength(); if (len == 0) { return this; } int _2len = len << 1; long[] r = new long[_2len]; int pos = 0; while (pos < _2len) { long mi = m_ints[pos >>> 1]; r[pos++] = interleave2_32to64((int)mi); r[pos++] = interleave2_32to64((int)(mi >>> 32)); } return new LongArray(r, 0, r.length); }
public LongArray modSquare(int m, int[] ks) { int len = getUsedLength(); if (len == 0) { return this; } int _2len = len << 1; long[] r = new long[_2len]; int pos = 0; while (pos < _2len) { long mi = m_ints[pos >>> 1]; r[pos++] = interleave2_32to64((int)mi); r[pos++] = interleave2_32to64((int)(mi >>> 32)); } return new LongArray(r, 0, reduceInPlace(r, 0, r.length, m, ks)); }
public LongArray modSquare(int m, int[] ks) { int len = getUsedLength(); if (len == 0) { return this; } int _2len = len << 1; long[] r = new long[_2len]; int pos = 0; while (pos < _2len) { long mi = m_ints[pos >>> 1]; r[pos++] = interleave2_32to64((int)mi); r[pos++] = interleave2_32to64((int)(mi >>> 32)); } return new LongArray(r, 0, reduceInPlace(r, 0, r.length, m, ks)); }
private static long interleave2_n(long x, int rounds) { while (rounds > 1) { rounds -= 2; x = interleave4_16to64((int)x & 0xFFFF) | interleave4_16to64((int)(x >>> 16) & 0xFFFF) << 1 | interleave4_16to64((int)(x >>> 32) & 0xFFFF) << 2 | interleave4_16to64((int)(x >>> 48) & 0xFFFF) << 3; } if (rounds > 0) { x = interleave2_32to64((int)x) | interleave2_32to64((int)(x >>> 32)) << 1; } return x; }
private static long interleave2_n(long x, int rounds) { while (rounds > 1) { rounds -= 2; x = interleave4_16to64((int)x & 0xFFFF) | interleave4_16to64((int)(x >>> 16) & 0xFFFF) << 1 | interleave4_16to64((int)(x >>> 32) & 0xFFFF) << 2 | interleave4_16to64((int)(x >>> 48) & 0xFFFF) << 3; } if (rounds > 0) { x = interleave2_32to64((int)x) | interleave2_32to64((int)(x >>> 32)) << 1; } return x; }