123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174openCore_benchmoduleMakeBench(F:Ff_sig.BASE)=structlete1=F.random()lete2=F.random()letzero=F.zeroletone=F.oneletgenerate_random_element()=ignore@@F.random()letgenerate_zero()=ignore@@F.zeroletgenerate_one()=ignore@@F.onelete1_bytes=F.to_bytese1letzero_bytes=F.to_byteszeroletone_bytes=F.to_bytesoneletcheck_if_zero_on_pregenerated_random_element()=ignore@@F.is_zeroe1letcheck_if_zero_on_pregenerated_zero_element()=ignore@@F.is_zerozeroletcheck_if_zero_on_pregenerated_one_element()=ignore@@F.is_zerooneletcheck_if_one_on_pregenerated_random_element()=ignore@@F.is_onee1letcheck_if_one_on_pregenerated_zero_element()=ignore@@F.is_onezeroletcheck_if_one_on_pregenerated_one_element()=ignore@@F.is_oneoneletcompute_addition_on_pregenerated_random_element()=ignore@@F.adde1e2letcompute_multiplication_on_pregenerated_random_element()=ignore@@F.mule1e2letcompute_square_on_pregenerated_random_element()=ignore@@F.squaree1letcompute_double_on_pregenerated_random_element()=ignore@@F.doublee1letcompute_eq_on_pregenerated_random_elements()=ignore@@F.eqe1e2letcompute_eq_on_same_pregenerated_random_element()=ignore@@F.eqe1e1letcompute_opposite_on_pregenerated_random_element()=ignore@@F.negatee1letcompute_opposite_on_pregenerated_one_element()=ignore@@F.negateoneletcompute_opposite_on_pregenerated_zero_element()=ignore@@F.negatezeroletcompute_inverse_on_pregenerated_random_element()=ignore@@F.inverse_exne1letcompute_inverse_on_pregenerated_one_element()=ignore@@F.inverse_exnoneletcompute_inverse_opt_on_pregenerated_random_element()=ignore@@F.inverse_opte1letcompute_inverse_opt_on_pregenerated_one_element()=ignore@@F.inverse_optoneletcompute_inverse_opt_on_pregenerated_zero_element()=ignore@@F.inverse_optzeroletget_benchesff_name=[Bench.Test.create~name:(Printf.sprintf"%s compute addition pregenerated random element"ff_name)compute_addition_on_pregenerated_random_element;Bench.Test.create~name:(Printf.sprintf"%s random generation"ff_name)generate_random_element;Bench.Test.create~name:(Printf.sprintf"%s zero generation"ff_name)generate_zero;Bench.Test.create~name:(Printf.sprintf"%s one generation"ff_name)generate_one;Bench.Test.create~name:(Printf.sprintf"%s check if zero on pregenerated random"ff_name)check_if_zero_on_pregenerated_random_element;Bench.Test.create~name:(Printf.sprintf"%s check if zero on pregenerated one"ff_name)check_if_zero_on_pregenerated_one_element;Bench.Test.create~name:(Printf.sprintf"%s check if zero on pregenerated zero"ff_name)check_if_zero_on_pregenerated_zero_element;Bench.Test.create~name:(Printf.sprintf"%s check if one on pregenerated random"ff_name)check_if_one_on_pregenerated_random_element;Bench.Test.create~name:(Printf.sprintf"%s check if one on pregenerated one"ff_name)check_if_one_on_pregenerated_one_element;Bench.Test.create~name:(Printf.sprintf"%s check if one on pregenerated zero"ff_name)check_if_one_on_pregenerated_zero_element;Bench.Test.create~name:(Printf.sprintf"%s compute addition on pregenerate random"ff_name)compute_addition_on_pregenerated_random_element;Bench.Test.create~name:(Printf.sprintf"%s compute multiplication on pregenerate random"ff_name)compute_multiplication_on_pregenerated_random_element;Bench.Test.create~name:(Printf.sprintf"%s compute square on pregenerate random"ff_name)compute_square_on_pregenerated_random_element;Bench.Test.create~name:(Printf.sprintf"%s compute double on pregenerate random"ff_name)compute_double_on_pregenerated_random_element;Bench.Test.create~name:(Printf.sprintf"%s compute equality on random"ff_name)compute_eq_on_pregenerated_random_elements;Bench.Test.create~name:(Printf.sprintf"%s compute equality on same element"ff_name)compute_eq_on_same_pregenerated_random_element;Bench.Test.create~name:(Printf.sprintf"%s compute opposite of pregenerated random element"ff_name)compute_opposite_on_pregenerated_random_element;Bench.Test.create~name:(Printf.sprintf"%s compute opposite of pregenerated one element"ff_name)compute_opposite_on_pregenerated_one_element;Bench.Test.create~name:(Printf.sprintf"%s compute opposite of pregenerated zero element"ff_name)compute_opposite_on_pregenerated_zero_element;Bench.Test.create~name:(Printf.sprintf"%s compute inverse of pregenerated random element"ff_name)compute_inverse_on_pregenerated_random_element;Bench.Test.create~name:(Printf.sprintf"%s compute inverse of pregenerated one element"ff_name)compute_inverse_on_pregenerated_one_element;Bench.Test.create~name:(Printf.sprintf"%s compute inverse opt of pregenerated random element"ff_name)compute_inverse_opt_on_pregenerated_random_element;Bench.Test.create~name:(Printf.sprintf"%s compute inverse opt of pregenerated one element"ff_name)compute_inverse_opt_on_pregenerated_one_element;Bench.Test.create~name:(Printf.sprintf"%s compute inverse opt of pregenerated zero element"ff_name)compute_inverse_opt_on_pregenerated_zero_element]end