Skip to content

Commit cb5524a

Browse files
committed
Add benchmark for secp256k1_ge_set_gej_var
1 parent 5c6af60 commit cb5524a

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/bench_internal.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,24 @@ void bench_group_jacobi_var(void* arg, int iters) {
277277
CHECK(j <= iters);
278278
}
279279

280+
void bench_group_to_affine_var(void* arg, int iters) {
281+
int i;
282+
bench_inv *data = (bench_inv*)arg;
283+
284+
for (i = 0; i < iters; ++i) {
285+
secp256k1_ge_set_gej_var(&data->ge[1], &data->gej[0]);
286+
/* Use the output affine X/Y coordinates to vary the input X/Y/Z coordinates.
287+
Similar to bench_group_jacobi_var, this approach does not result in
288+
coordinates of points on the curve. */
289+
secp256k1_fe_add(&data->gej[0].x, &data->ge[1].y);
290+
secp256k1_fe_add(&data->gej[0].y, &data->fe[2]);
291+
secp256k1_fe_add(&data->gej[0].z, &data->ge[1].x);
292+
secp256k1_fe_normalize_var(&data->gej[0].x);
293+
secp256k1_fe_normalize_var(&data->gej[0].y);
294+
secp256k1_fe_normalize_var(&data->gej[0].z);
295+
}
296+
}
297+
280298
void bench_ecmult_wnaf(void* arg, int iters) {
281299
int i, bits = 0, overflow = 0;
282300
bench_inv *data = (bench_inv*)arg;
@@ -398,6 +416,7 @@ int main(int argc, char **argv) {
398416
if (have_flag(argc, argv, "group") || have_flag(argc, argv, "add")) run_benchmark("group_add_affine", bench_group_add_affine, bench_setup, NULL, &data, 10, iters*10);
399417
if (have_flag(argc, argv, "group") || have_flag(argc, argv, "add")) run_benchmark("group_add_affine_var", bench_group_add_affine_var, bench_setup, NULL, &data, 10, iters*10);
400418
if (have_flag(argc, argv, "group") || have_flag(argc, argv, "jacobi")) run_benchmark("group_jacobi_var", bench_group_jacobi_var, bench_setup, NULL, &data, 10, iters);
419+
if (have_flag(argc, argv, "group") || have_flag(argc, argv, "to_affine")) run_benchmark("group_to_affine_var", bench_group_to_affine_var, bench_setup, NULL, &data, 10, iters);
401420

402421
if (have_flag(argc, argv, "ecmult") || have_flag(argc, argv, "wnaf")) run_benchmark("wnaf_const", bench_wnaf_const, bench_setup, NULL, &data, 10, iters);
403422
if (have_flag(argc, argv, "ecmult") || have_flag(argc, argv, "wnaf")) run_benchmark("ecmult_wnaf", bench_ecmult_wnaf, bench_setup, NULL, &data, 10, iters);

0 commit comments

Comments
 (0)