swap method

void swap(
  1. Element u,
  2. int cond
)

Swap swaps v and u if cond == 1 or leaves them unchanged if cond == 0, and returns v.

Implementation

void swap(Element u, int cond) {
  final BigInt m = mask64Bits(cond);
  BigInt t = m & (l0 ^ u.l0);
  l0 ^= t;
  u.l0 ^= t;
  t = m & (l1 ^ u.l1);
  l1 ^= t;
  u.l1 ^= t;
  t = m & (l2 ^ u.l2);
  l2 ^= t;
  u.l2 ^= t;
  t = m & (l3 ^ u.l3);
  l3 ^= t;
  u.l3 ^= t;
  t = m & (l4 ^ u.l4);
  l4 ^= t;
  u.l4 ^= t;
}