diff --git a/benchmarks/bench_fields_template.nim b/benchmarks/bench_fields_template.nim index 0f0395f..b06c083 100644 --- a/benchmarks/bench_fields_template.nim +++ b/benchmarks/bench_fields_template.nim @@ -128,6 +128,11 @@ proc invBench*(T: typedesc, iters: int) = bench("Inversion (constant-time)", T, iters): r.inv(x) +proc isSquareBench*(T: typedesc, iters: int) = + let x = rng.random_unsafe(T) + bench("isSquare (constant-time)", T, iters): + let qrt = x.isSquare() + proc sqrtBench*(T: typedesc, iters: int) = let x = rng.random_unsafe(T) diff --git a/benchmarks/bench_fp.nim b/benchmarks/bench_fp.nim index db514e7..d2eefe3 100644 --- a/benchmarks/bench_fp.nim +++ b/benchmarks/bench_fp.nim @@ -59,6 +59,7 @@ proc main() = toFieldBench(Fp[curve], Iters) smallSeparator() invBench(Fp[curve], ExponentIters) + isSquareBench(Fp[curve], ExponentIters) sqrtBench(Fp[curve], ExponentIters) sqrtRatioBench(Fp[curve], ExponentIters) # Exponentiation by a "secret" of size ~the curve order diff --git a/benchmarks/bench_fp2.nim b/benchmarks/bench_fp2.nim index 69447fd..0f0eb5f 100644 --- a/benchmarks/bench_fp2.nim +++ b/benchmarks/bench_fp2.nim @@ -50,6 +50,7 @@ proc main() = sqrUnrBench(Fp2[curve], Iters) smallSeparator() invBench(Fp2[curve], InvIters) + isSquareBench(Fp2[curve], InvIters) sqrtBench(Fp2[curve], InvIters) separator()