Browse Source

fix for V-SCT-VUL-004

main
Kevin Jue 1 year ago
parent
commit
a6707ed714
1 changed files with 4 additions and 2 deletions
  1. +4
    -2
      goldilocks/base.go

+ 4
- 2
goldilocks/base.go

@ -131,7 +131,8 @@ func (p *Chip) MulAdd(a Variable, b Variable, c Variable) Variable {
quotient := NewVariable(result[0]) quotient := NewVariable(result[0])
remainder := NewVariable(result[1]) remainder := NewVariable(result[1])
lhs := p.api.MulAcc(c.Limb, a.Limb, b.Limb)
cLimbCopy := p.api.Mul(c.Limb, 1)
lhs := p.api.MulAcc(cLimbCopy, a.Limb, b.Limb)
rhs := p.api.MulAcc(remainder.Limb, MODULUS, quotient.Limb) rhs := p.api.MulAcc(remainder.Limb, MODULUS, quotient.Limb)
p.api.AssertIsEqual(lhs, rhs) p.api.AssertIsEqual(lhs, rhs)
@ -143,7 +144,8 @@ func (p *Chip) MulAdd(a Variable, b Variable, c Variable) Variable {
// Multiplies two field elements and adds a field element such that x * y + z = c within the // Multiplies two field elements and adds a field element such that x * y + z = c within the
// Golidlocks field without reducing. // Golidlocks field without reducing.
func (p *Chip) MulAddNoReduce(a Variable, b Variable, c Variable) Variable { func (p *Chip) MulAddNoReduce(a Variable, b Variable, c Variable) Variable {
return NewVariable(p.api.MulAcc(c.Limb, a.Limb, b.Limb))
cLimbCopy := p.api.Mul(c.Limb, 1)
return NewVariable(p.api.MulAcc(cLimbCopy, a.Limb, b.Limb))
} }
// The hint used to compute MulAdd. // The hint used to compute MulAdd.

Loading…
Cancel
Save