|
| void | batch_add_affine_x (const FieldElement &base_x, const FieldElement &base_y, const AffinePointCompact *offsets, FieldElement *out_x, std::size_t count, std::vector< FieldElement > &scratch) |
| |
| void | batch_add_affine_xy (const FieldElement &base_x, const FieldElement &base_y, const AffinePointCompact *offsets, FieldElement *out_x, FieldElement *out_y, std::size_t count, std::vector< FieldElement > &scratch) |
| |
| void | batch_add_affine_x (const FieldElement &base_x, const FieldElement &base_y, const AffinePointCompact *offsets, FieldElement *out_x, std::size_t count) |
| |
| std::vector< AffinePointCompact > | precompute_g_multiples (std::size_t count) |
| |
| std::vector< AffinePointCompact > | precompute_point_multiples (const FieldElement &qx, const FieldElement &qy, std::size_t count) |
| |
| void | batch_add_affine_x_bidirectional (const FieldElement &base_x, const FieldElement &base_y, const AffinePointCompact *offsets_fwd, const AffinePointCompact *offsets_bwd, FieldElement *out_x_fwd, FieldElement *out_x_bwd, std::size_t count, std::vector< FieldElement > &scratch) |
| |
| std::vector< AffinePointCompact > | negate_affine_table (const AffinePointCompact *table, std::size_t count) |
| |
| void | batch_add_affine_x_with_parity (const FieldElement &base_x, const FieldElement &base_y, const AffinePointCompact *offsets, FieldElement *out_x, uint8_t *out_parity, std::size_t count, std::vector< FieldElement > &scratch) |
| |
| void | init_comb_gen (unsigned teeth=15) |
| |
| bool | comb_gen_ready () |
| |
| Point | comb_gen_mul (const Scalar &k) |
| |
| Point | comb_gen_mul_ct (const Scalar &k) |
| |
| MidFieldElement | toMid (const FieldElement &fe) noexcept |
| |
| FieldElement | fe_inverse_binary (const FieldElement &value) |
| |
| FieldElement | fe_inverse_window4 (const FieldElement &value) |
| |
| FieldElement | fe_inverse_addchain (const FieldElement &value) |
| |
| FieldElement | fe_inverse_eea (const FieldElement &value) |
| |
| FieldElement | pow_p_minus_2_binary (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_window4 (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_addchain (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_eea (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_window_naf_v2 (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_hybrid_eea (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_yao (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_bos_coster (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_ltr_precomp (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_pippenger (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_karatsuba (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_booth (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_strauss (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_kary16 (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_fixed_window5 (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_rtl_binary (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_addchain_unrolled (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_binary_opt (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_sliding_dynamic (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_fermat_gpu (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_montgomery_redc (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_branchless (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_parallel_window (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_binary_euclidean (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_lehmer (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_stein (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_secp256k1_special (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_warp_optimized (FieldElement base) |
| |
| FieldElement | pow_p_minus_2_double_base (const FieldElement &base) |
| |
| FieldElement | pow_p_minus_2_compact_table (FieldElement base) |
| |
| FieldElement | fe_inverse_window_naf_v2 (const FieldElement &value) |
| |
| FieldElement | fe_inverse_hybrid_eea (const FieldElement &value) |
| |
| FieldElement | fe_inverse_safegcd (const FieldElement &value) |
| |
| FieldElement | fe_inverse_yao (const FieldElement &value) |
| |
| FieldElement | fe_inverse_bos_coster (const FieldElement &value) |
| |
| FieldElement | fe_inverse_ltr_precomp (const FieldElement &value) |
| |
| FieldElement | fe_inverse_pippenger (const FieldElement &value) |
| |
| FieldElement | fe_inverse_karatsuba (const FieldElement &value) |
| |
| FieldElement | fe_inverse_booth (const FieldElement &value) |
| |
| FieldElement | fe_inverse_strauss (const FieldElement &value) |
| |
| FieldElement | fe_inverse_kary16 (const FieldElement &value) |
| |
| FieldElement | fe_inverse_fixed_window5 (const FieldElement &value) |
| |
| FieldElement | fe_inverse_rtl_binary (const FieldElement &value) |
| |
| FieldElement | fe_inverse_addchain_unrolled (const FieldElement &value) |
| |
| FieldElement | fe_inverse_binary_opt (const FieldElement &value) |
| |
| FieldElement | fe_inverse_sliding_dynamic (const FieldElement &value) |
| |
| FieldElement | fe_inverse_fermat_gpu (const FieldElement &value) |
| |
| FieldElement | fe_inverse_montgomery_redc (const FieldElement &value) |
| |
| FieldElement | fe_inverse_branchless (const FieldElement &value) |
| |
| FieldElement | fe_inverse_parallel_window (const FieldElement &value) |
| |
| FieldElement | fe_inverse_binary_euclidean (const FieldElement &value) |
| |
| FieldElement | fe_inverse_lehmer (const FieldElement &value) |
| |
| FieldElement | fe_inverse_stein (const FieldElement &value) |
| |
| FieldElement | fe_inverse_secp256k1_special (const FieldElement &value) |
| |
| FieldElement | fe_inverse_warp_optimized (const FieldElement &value) |
| |
| FieldElement | fe_inverse_double_base (const FieldElement &value) |
| |
| FieldElement | fe_inverse_compact_table (const FieldElement &value) |
| |
| void | fe_batch_inverse (FieldElement *elements, size_t count) |
| |
| void | fe_batch_inverse (FieldElement *elements, size_t count, std::vector< FieldElement > &scratch) |
| |
| void | fe26_mul_inner (std::uint32_t *r, const std::uint32_t *a, const std::uint32_t *b) noexcept |
| |
| void | fe26_sqr_inner (std::uint32_t *r, const std::uint32_t *a) noexcept |
| |
| void | fe26_normalize (std::uint32_t *r) noexcept |
| |
| void | fe26_normalize_weak (std::uint32_t *r) noexcept |
| |
| void | fe52_normalize (std::uint64_t *r) noexcept |
| |
| bool | has_bmi2_support () |
| |
| bool | has_adx_support () |
| |
| FieldElement | field_mul_bmi2 (const FieldElement &a, const FieldElement &b) |
| |
| FieldElement | field_square_bmi2 (const FieldElement &a) |
| |
| FieldElement | field_square_karatsuba (const FieldElement &a) |
| |
| FieldElement | field_add_bmi2 (const FieldElement &a, const FieldElement &b) |
| |
| FieldElement | field_negate_bmi2 (const FieldElement &a) |
| |
| void | field_cmov (FieldElement *r, const FieldElement *a, const FieldElement *b, bool flag) noexcept |
| |
| void | field_cmovznz (FieldElement *r, const FieldElement *a, const FieldElement *b, std::uint64_t flag) noexcept |
| |
| FieldElement | field_select (const FieldElement &a, const FieldElement &b, bool flag) noexcept |
| |
| std::uint64_t | field_is_zero (const FieldElement &a) noexcept |
| |
| std::uint64_t | field_eq (const FieldElement &a, const FieldElement &b) noexcept |
| |
| void | field_cneg (FieldElement *r, const FieldElement &a, bool flag) noexcept |
| |
| void | field_cadd (FieldElement *r, const FieldElement &a, const FieldElement &b, bool flag) noexcept |
| |
| void | field_csub (FieldElement *r, const FieldElement &a, const FieldElement &b, bool flag) noexcept |
| |
| void | fe_h_based_inversion (FieldElement *h_values, const FieldElement &z0_value, std::size_t count) |
| |
| void | fe_h_based_inversion_batched (FieldElement *h_values, const FieldElement *z0_values, std::size_t n_threads, std::size_t batch_size) |
| |
| OptimalFieldElement | to_optimal (const FieldElement &fe) noexcept |
| |
| FieldElement | from_optimal (const OptimalFieldElement &ofe) noexcept |
| |
| GLVDecomposition | glv_decompose (const Scalar &k) |
| |
| Point | apply_endomorphism (const Point &P) |
| |
| bool | verify_endomorphism (const Point &P) |
| |
| bool | Selftest (bool verbose) |
| |
| bool | ensure_library_integrity (bool verbose=false) |
| |
| void | compute_wnaf_into (const Scalar &scalar, unsigned window_bits, int32_t *out, std::size_t max, std::size_t &out_len) |
| |
| void | configure_fixed_base (const FixedBaseConfig &config) |
| |
| void | ensure_fixed_base_ready () |
| |
| bool | fixed_base_ready () |
| |
| bool | load_fixed_base_config_file (const std::string &path, FixedBaseConfig &out) |
| |
| bool | configure_fixed_base_from_file (const std::string &path) |
| |
| bool | configure_fixed_base_from_env () |
| |
| bool | write_default_fixed_base_config (const std::string &path) |
| |
| bool | ensure_fixed_base_config_file (const std::string &path) |
| |
| bool | configure_fixed_base_auto () |
| |
| bool | auto_tune_fixed_base (FixedBaseConfig &best_out, std::string *report_out=nullptr, unsigned iterations=5000, unsigned min_w=2, unsigned max_w=30) |
| |
| bool | write_fixed_base_config (const std::string &path, const FixedBaseConfig &cfg) |
| |
| bool | auto_tune_and_write_config (const std::string &path, unsigned iterations=5000, unsigned min_w=2, unsigned max_w=30) |
| |
| Point | scalar_mul_generator (const Scalar &scalar) |
| |
| ScalarDecomposition | split_scalar_glv (const Scalar &scalar) |
| |
| Point | scalar_mul_generator_glv_predecomposed (const Scalar &k1, const Scalar &k2, bool neg1, bool neg2) |
| |
| std::vector< int32_t > | compute_wnaf (const Scalar &scalar, unsigned window_bits) |
| |
| Point | scalar_mul_arbitrary (const Point &base, const Scalar &scalar, unsigned window_bits=5) |
| |
| Point | multi_scalar_mul (const Scalar &k1, const Point &P, const Scalar &k2, const Point &Q, unsigned window_bits=4) |
| |
| PrecomputedScalar | precompute_scalar_for_arbitrary (const Scalar &K, unsigned window_bits=4) |
| |
| PrecomputedScalarOptimized | precompute_scalar_optimized (const Scalar &K, unsigned window_bits=4) |
| |
| Point | scalar_mul_arbitrary_precomputed (const Point &Q, const PrecomputedScalar &precomp) |
| |
| Point | scalar_mul_arbitrary_precomputed_optimized (const Point &Q, const PrecomputedScalarOptimized &precomp) |
| |
| Point | scalar_mul_arbitrary_precomputed_notable (const Point &Q, const PrecomputedScalarOptimized &precomp) |
| |
| bool | save_precompute_cache (const std::string &path) |
| |
| bool | load_precompute_cache (const std::string &path, unsigned max_windows=0) |
| |
| bool | Selftest (bool verbose, SelftestMode mode, uint64_t seed=0) |
| |
| SelftestReport | selftest_report (SelftestMode mode=SelftestMode::smoke, uint64_t seed=0) |
| |