@@ -59,7 +59,7 @@ var InvNTTReductions = [...]int{
59
59
// their proper order by calling Detangle().
60
60
func (p * Poly ) nttGeneric () {
61
61
// Note that ℤ_q does not have a primitive 512ᵗʰ root of unity (as 512
62
- // does not divide into q) and so we cannot do a regular NTT. ℤ_q
62
+ // does not divide into q-1 ) and so we cannot do a regular NTT. ℤ_q
63
63
// does have a primitive 256ᵗʰ root of unity, the smallest of which
64
64
// is ζ := 17.
65
65
//
@@ -73,12 +73,12 @@ func (p *Poly) nttGeneric() {
73
73
// ⋮
74
74
// = (x² - ζ)(x² + ζ)(x² - ζ⁶⁵)(x² + ζ⁶⁵) … (x² + ζ¹²⁷)
75
75
//
76
- // Note that the powers of ζ that appear (from th second line down) are
76
+ // Note that the powers of ζ that appear (from the second line down) are
77
77
// in binary
78
78
//
79
- // 010000 110000
80
- // 001000 101000 011000 111000
81
- // 000100 100100 010100 110100 001100 101100 011100 111100
79
+ // 0100000 1100000
80
+ // 0010000 1010000 0110000 1110000
81
+ // 0001000 1001000 0101000 1101000 0011000 1011000 0111000 1111000
82
82
// …
83
83
//
84
84
// That is: brv(2), brv(3), brv(4), …, where brv(x) denotes the 7-bit
@@ -89,7 +89,7 @@ func (p *Poly) nttGeneric() {
89
89
//
90
90
// ℤ_q[x]/(x²⁵⁶+1) → ℤ_q[x]/(x²-ζ) x … x ℤ_q[x]/(x²+ζ¹²⁷)
91
91
//
92
- // given by a ↦ ( a mod x²-z , …, a mod x²+z ¹²⁷ )
92
+ // given by a ↦ ( a mod x²-ζ , …, a mod x²+ζ ¹²⁷ )
93
93
// is an isomorphism, which is the "NTT". It can be efficiently computed by
94
94
//
95
95
//
@@ -105,7 +105,7 @@ func (p *Poly) nttGeneric() {
105
105
//
106
106
// Each cross is a Cooley-Tukey butterfly: it's the map
107
107
//
108
- // (a, b) ↦ (a + ζ , a - ζ )
108
+ // (a, b) ↦ (a + ζb , a - ζb )
109
109
//
110
110
// for the appropriate power ζ for that column and row group.
111
111
0 commit comments