])\r
\r
static modL (r: Uint8Array, x: BigInt64Array): void {\r
- let carry: bigint, i, j, k\r
- for (i = 63; i >= 32; --i) {\r
- carry = 0n\r
- for (j = i - 32, k = i - 12; j < k; ++j) {\r
- x[j] += carry - 16n * x[i] * this.L[j - (i - 32)]\r
- carry = (x[j] + 128n) / 256n\r
- x[j] -= carry * 256n\r
+ let c: bigint, v: bigint\r
+ for (let i = 63; i >= 32; --i) {\r
+ c = 0n\r
+ for (let j = i - 32, k = i - 12; j < k; j++) {\r
+ x[j] += c - 16n * x[i] * this.L[j - (i - 32)]\r
+ c = (x[j] + 128n) / 256n\r
+ x[j] -= c * 256n\r
}\r
- x[j] += carry\r
+ x[i - 12] += c\r
x[i] = 0n\r
}\r
- carry = 0n\r
- for (j = 0; j < 32; j++) {\r
- x[j] += carry - (x[31] >> 4n) * this.L[j]\r
- carry = x[j] >> 8n\r
+ c = 0n\r
+ for (let j = 0; j < 32; j++) {\r
+ x[j] += c - (x[31] >> 4n) * this.L[j]\r
+ c = x[j] >> 8n\r
x[j] &= 255n\r
}\r
- for (j = 0; j < 32; j++) {\r
- x[j] -= carry * this.L[j]\r
+ for (let j = 0; j < 32; j++) {\r
+ x[j] -= c * this.L[j]\r
}\r
- for (i = 0; i < 32; i++) {\r
+ for (let i = 0; i < 32; i++) {\r
x[i + 1] += x[i] >> 8n\r
r[i] = Number(x[i] & 255n)\r
}\r