From cce9c13a043e6ff488cbc33d2bb51b1e50e24ea9 Mon Sep 17 00:00:00 2001 From: Mark Spanbroek Date: Mon, 13 Nov 2023 14:15:38 +0100 Subject: [PATCH] Remove if statement at compile time --- poseidon2/merkle.nim | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/poseidon2/merkle.nim b/poseidon2/merkle.nim index ad5e3b4..b24c83f 100644 --- a/poseidon2/merkle.nim +++ b/poseidon2/merkle.nim @@ -15,28 +15,28 @@ func merkleRoot(xs: openArray[F], isBottomLayer: static bool) : F = let b = high(xs) let m = b-a+1 - if m==1 and not isBottomLayer: - return xs[a] + when not isBottomLayer: + if m==1: + return xs[a] + let halfn : int = m div 2 + let n : int = 2*halfn + let isOdd : bool = (n != m) + + var ys : seq[F] + if not isOdd: + ys = newSeq[F](halfn) else: - let halfn : int = m div 2 - let n : int = 2*halfn - let isOdd : bool = (n != m) + ys = newSeq[F](halfn+1) - var ys : seq[F] - if not isOdd: - ys = newSeq[F](halfn) - else: - ys = newSeq[F](halfn+1) + for i in 0..