diff --git a/groth16/dynamic/finish.nim b/groth16/dynamic/finish.nim index 5f59a92..5976a4a 100644 --- a/groth16/dynamic/finish.nim +++ b/groth16/dynamic/finish.nim @@ -47,17 +47,9 @@ func crossTermCoeffs*(D: Domain, As: seq[F], Bs: seq[F]) : seq[F] = let ABs = pointwiseProdFr( As, Bs ) - var Ahat = forwardNTT( As , D ) - var Bhat = forwardNTT( Bs , D ) - var ABhat = forwardNTT( ABs , D ) - - inplaceMulByFFTofWVecBar( Ahat ) - inplaceMulByFFTofWVecBar( Bhat ) - inplaceMulByFFTofWVecBar( ABhat ) - - let Aconv = inverseNTT( Ahat , D) - let Bconv = inverseNTT( Bhat , D) - let ABconv = inverseNTT( ABhat , D) + let Aconv = fieldConvolveWithWVecBar( D , As ) + let Bconv = fieldConvolveWithWVecBar( D , Bs ) + let ABconv = fieldConvolveWithWVecBar( D , ABs ) let sumW = sumOfWVec( N ) diff --git a/groth16/dynamic/preprocess.nim b/groth16/dynamic/preprocess.nim index 3fbbd7e..ce51ea6 100644 --- a/groth16/dynamic/preprocess.nim +++ b/groth16/dynamic/preprocess.nim @@ -30,64 +30,25 @@ import groth16/dynamic/shared #------------------------------------------------------------------------------- -# computes the vectors A*z, B*z (but skips C*z) -func buildPartialAB*( zkey: ZKey, pwitness: seq[Option[Fr[BN254_Snarks]]] ): PartialAB = - let hdr: GrothHeader = zkey.header - let domSize = hdr.domainSize - - var valuesAz = newSeq[Fr[BN254_Snarks]](domSize) - var valuesBz = newSeq[Fr[BN254_Snarks]](domSize) - - # we also compute the image of the complement of the partial witness under A and B - var complImageA = newSeq[bool](domSize) - var complImageB = newSeq[bool](domSize) - for i in 0..