for i from 0 to N-1
cᵢ = 0
for i from 0 to N-1
for j from 0 to N-1
if i+j<N
cᵢ₊ⱼ += aᵢ⋅bⱼ
else
cᵢ₊ⱼ₋ₙ -= aᵢ⋅bⱼ (Nの下付きが打てないのでₙになっている)
Decomposition(c[X])
roundoffset = 1 << (32 - l * Bgbit - 1)
for i from 1 to l
for j from 0 to N-1
̂cᵢⱼ=(((cⱼ+roundoffset)>>(64-Bgbit*i))&(Bg-1))
for i from l to 1
for j from 0 to N-1
if ̂c ᵢⱼ ≥ Bg/2
c̄ᵢⱼ = ĉᵢⱼ - Bg
ĉ₍ᵢ₋₁₎ⱼ += 1
else
c̄ᵢⱼ = ĉᵢⱼ
return c̄[X]
Digit Extraction(z,e)
w₀,₀ ← z
For k ← 0 to e-1
y ← z
For j ← 0 to k
wⱼ,ₖ₊₁ ← (wⱼ,ₖ)ᵖ
y ← (y - wⱼ,ₖ₊₁)/p
wₖ₊₁,ₖ₊₁
return wₑ,ₑ
page_number: true