From cfd30a045ee53ac3739d1e506a4ab0b65f0d8f3f Mon Sep 17 00:00:00 2001 From: Balazs Komuves Date: Thu, 29 Feb 2024 20:13:50 +0100 Subject: [PATCH] optimized the NTT routines --- groth16/math/ntt.nim | 63 ++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 25 deletions(-) diff --git a/groth16/math/ntt.nim b/groth16/math/ntt.nim index 0173a1b..cea1281 100644 --- a/groth16/math/ntt.nim +++ b/groth16/math/ntt.nim @@ -16,7 +16,7 @@ import groth16/math/domain func forwardNTT_worker( m: int , srcStride: int - , gen: Fr + , gpows: seq[Fr] , src: seq[Fr] , srcOfs: int , buf: var seq[Fr] , bufOfs: int , tgt: var seq[Fr] , tgtOfs: int ) = @@ -32,26 +32,22 @@ func forwardNTT_worker( m: int else: let N : int = 1 shl m let halfN : int = 1 shl (m-1) - var gpow : Fr = gen - square(gpow) forwardNTT_worker( m-1 , srcStride shl 1 - , gpow + , gpows , src , srcOfs , buf , bufOfs + N , buf , bufOfs ) forwardNTT_worker( m-1 , srcStride shl 1 - , gpow + , gpows , src , srcOfs + srcStride , buf , bufOfs + N , buf , bufOfs + halfN ) - gpow = oneFr for j in 0..