Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/src/bench_internal.c
Show First 20 Lines • Show All 111 Lines • ▼ Show 20 Lines | void bench_scalar_mul(void* arg, int iters) { | ||||
int i; | int i; | ||||
bench_inv *data = (bench_inv*)arg; | bench_inv *data = (bench_inv*)arg; | ||||
for (i = 0; i < iters; i++) { | for (i = 0; i < iters; i++) { | ||||
secp256k1_scalar_mul(&data->scalar[0], &data->scalar[0], &data->scalar[1]); | secp256k1_scalar_mul(&data->scalar[0], &data->scalar[0], &data->scalar[1]); | ||||
} | } | ||||
} | } | ||||
#ifdef USE_ENDOMORPHISM | |||||
void bench_scalar_split(void* arg, int iters) { | void bench_scalar_split(void* arg, int iters) { | ||||
int i, j = 0; | int i, j = 0; | ||||
bench_inv *data = (bench_inv*)arg; | bench_inv *data = (bench_inv*)arg; | ||||
for (i = 0; i < iters; i++) { | for (i = 0; i < iters; i++) { | ||||
secp256k1_scalar_split_lambda(&data->scalar[0], &data->scalar[1], &data->scalar[0]); | secp256k1_scalar_split_lambda(&data->scalar[0], &data->scalar[1], &data->scalar[0]); | ||||
j += secp256k1_scalar_add(&data->scalar[0], &data->scalar[0], &data->scalar[1]); | j += secp256k1_scalar_add(&data->scalar[0], &data->scalar[0], &data->scalar[1]); | ||||
} | } | ||||
CHECK(j <= iters); | CHECK(j <= iters); | ||||
} | } | ||||
#endif | |||||
void bench_scalar_inverse(void* arg, int iters) { | void bench_scalar_inverse(void* arg, int iters) { | ||||
int i, j = 0; | int i, j = 0; | ||||
bench_inv *data = (bench_inv*)arg; | bench_inv *data = (bench_inv*)arg; | ||||
for (i = 0; i < iters; i++) { | for (i = 0; i < iters; i++) { | ||||
secp256k1_scalar_inverse(&data->scalar[0], &data->scalar[0]); | secp256k1_scalar_inverse(&data->scalar[0], &data->scalar[0]); | ||||
j += secp256k1_scalar_add(&data->scalar[0], &data->scalar[0], &data->scalar[1]); | j += secp256k1_scalar_add(&data->scalar[0], &data->scalar[0], &data->scalar[1]); | ||||
▲ Show 20 Lines • Show All 252 Lines • ▼ Show 20 Lines | |||||
int main(int argc, char **argv) { | int main(int argc, char **argv) { | ||||
bench_inv data; | bench_inv data; | ||||
int iters = get_iters(20000); | int iters = get_iters(20000); | ||||
if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "add")) run_benchmark("scalar_add", bench_scalar_add, bench_setup, NULL, &data, 10, iters*100); | if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "add")) run_benchmark("scalar_add", bench_scalar_add, bench_setup, NULL, &data, 10, iters*100); | ||||
if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "negate")) run_benchmark("scalar_negate", bench_scalar_negate, bench_setup, NULL, &data, 10, iters*100); | if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "negate")) run_benchmark("scalar_negate", bench_scalar_negate, bench_setup, NULL, &data, 10, iters*100); | ||||
if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "sqr")) run_benchmark("scalar_sqr", bench_scalar_sqr, bench_setup, NULL, &data, 10, iters*10); | if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "sqr")) run_benchmark("scalar_sqr", bench_scalar_sqr, bench_setup, NULL, &data, 10, iters*10); | ||||
if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "mul")) run_benchmark("scalar_mul", bench_scalar_mul, bench_setup, NULL, &data, 10, iters*10); | if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "mul")) run_benchmark("scalar_mul", bench_scalar_mul, bench_setup, NULL, &data, 10, iters*10); | ||||
#ifdef USE_ENDOMORPHISM | |||||
if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "split")) run_benchmark("scalar_split", bench_scalar_split, bench_setup, NULL, &data, 10, iters); | if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "split")) run_benchmark("scalar_split", bench_scalar_split, bench_setup, NULL, &data, 10, iters); | ||||
#endif | |||||
if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "inverse")) run_benchmark("scalar_inverse", bench_scalar_inverse, bench_setup, NULL, &data, 10, 2000); | if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "inverse")) run_benchmark("scalar_inverse", bench_scalar_inverse, bench_setup, NULL, &data, 10, 2000); | ||||
if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "inverse")) run_benchmark("scalar_inverse_var", bench_scalar_inverse_var, bench_setup, NULL, &data, 10, 2000); | if (have_flag(argc, argv, "scalar") || have_flag(argc, argv, "inverse")) run_benchmark("scalar_inverse_var", bench_scalar_inverse_var, bench_setup, NULL, &data, 10, 2000); | ||||
if (have_flag(argc, argv, "field") || have_flag(argc, argv, "normalize")) run_benchmark("field_normalize", bench_field_normalize, bench_setup, NULL, &data, 10, iters*100); | if (have_flag(argc, argv, "field") || have_flag(argc, argv, "normalize")) run_benchmark("field_normalize", bench_field_normalize, bench_setup, NULL, &data, 10, iters*100); | ||||
if (have_flag(argc, argv, "field") || have_flag(argc, argv, "normalize")) run_benchmark("field_normalize_weak", bench_field_normalize_weak, bench_setup, NULL, &data, 10, iters*100); | if (have_flag(argc, argv, "field") || have_flag(argc, argv, "normalize")) run_benchmark("field_normalize_weak", bench_field_normalize_weak, bench_setup, NULL, &data, 10, iters*100); | ||||
if (have_flag(argc, argv, "field") || have_flag(argc, argv, "sqr")) run_benchmark("field_sqr", bench_field_sqr, bench_setup, NULL, &data, 10, iters*10); | if (have_flag(argc, argv, "field") || have_flag(argc, argv, "sqr")) run_benchmark("field_sqr", bench_field_sqr, bench_setup, NULL, &data, 10, iters*10); | ||||
if (have_flag(argc, argv, "field") || have_flag(argc, argv, "mul")) run_benchmark("field_mul", bench_field_mul, bench_setup, NULL, &data, 10, iters*10); | if (have_flag(argc, argv, "field") || have_flag(argc, argv, "mul")) run_benchmark("field_mul", bench_field_mul, bench_setup, NULL, &data, 10, iters*10); | ||||
if (have_flag(argc, argv, "field") || have_flag(argc, argv, "inverse")) run_benchmark("field_inverse", bench_field_inverse, bench_setup, NULL, &data, 10, iters); | if (have_flag(argc, argv, "field") || have_flag(argc, argv, "inverse")) run_benchmark("field_inverse", bench_field_inverse, bench_setup, NULL, &data, 10, iters); | ||||
Show All 25 Lines |