add method

PallasFp add(
  1. PallasFp rhs
)

Implementation

PallasFp add(PallasFp rhs) {
  // Limbwise addition
  var r0 = BigintUtils.adc(limbs[0], rhs.limbs[0], BigInt.zero);
  var d0 = r0[0];
  var carry = r0[1];

  var r1 = BigintUtils.adc(limbs[1], rhs.limbs[1], carry);
  var d1 = r1[0];
  carry = r1[1];

  var r2 = BigintUtils.adc(limbs[2], rhs.limbs[2], carry);
  var d2 = r2[0];
  carry = r2[1];

  var r3 = BigintUtils.adc(limbs[3], rhs.limbs[3], carry);
  var d3 = r3[0];
  // ignore final carry — reduction handles it

  // Reduce by subtracting modulus
  return PallasFp([d0, d1, d2, d3]).sub(PallasFPConst.modulus.clone());
}