Skip to content

Commit

Permalink
Fix/incorrect polynomial evaluation (#539)
Browse files Browse the repository at this point in the history
* fix: fixed point shifting bn254

* feat: code gen

* fix: moved err outside of the if scope
  • Loading branch information
ThomasPiellard authored Sep 25, 2024
1 parent 703a260 commit 11d2ed4
Show file tree
Hide file tree
Showing 8 changed files with 48 additions and 40 deletions.
11 changes: 6 additions & 5 deletions ecc/bls12-377/fr/iop/polynomial.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions ecc/bls12-381/fr/iop/polynomial.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions ecc/bls24-315/fr/iop/polynomial.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions ecc/bls24-317/fr/iop/polynomial.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions ecc/bn254/fr/iop/polynomial.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions ecc/bw6-633/fr/iop/polynomial.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions ecc/bw6-761/fr/iop/polynomial.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions internal/generator/iop/template/polynomial.go.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -152,19 +152,20 @@ func (p *Polynomial) Evaluate(x fr.Element) fr.Element {
}

var g fr.Element
gen, err := fft.Generator(uint64(p.size))
if err != nil {
panic(err)
}
if p.shift <= 5 {
gen, err := fft.Generator(uint64(p.size))
if err != nil {
panic(err)
}
g = smallExp(gen, p.shift)
x.Mul(&x, &g)
return p.polynomial.evaluate(x)
}

bs := big.NewInt(int64(p.shift))
g = *g.Exp(g, bs)
g = *g.Exp(gen, bs)
x.Mul(&x, &g)

return p.polynomial.evaluate(x)
}

Expand Down

0 comments on commit 11d2ed4

Please sign in to comment.