Skip to content
Prev Previous commit
Next Next commit
rename
  • Loading branch information
z-tech committed Mar 30, 2026
commit b8848f6fa1050fa38cb9f295278fb72fe4204d1e
2 changes: 1 addition & 1 deletion ff-macros/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ pub fn define_field(input: TokenStream) -> TokenStream {
.expect("generator should be a decimal integer string");

let (small_subgroup_base, small_subgroup_power) =
match utils::detect_small_prime_subgroup(&modulus_big) {
match utils::find_conservative_subgroup_base(&modulus_big) {
Some((base, power)) => (Some(base), Some(power)),
None => (None, None),
};
Expand Down
4 changes: 2 additions & 2 deletions ff-macros/src/small_fp/montgomery_backend.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use crate::small_fp::utils::{
compute_large_subgroup_root, compute_two_adic_root_of_unity, compute_two_adicity,
generate_montgomery_bigint_casts, generate_sqrt_precomputation, mod_mul_const,
};
use crate::utils::detect_small_prime_subgroup;
use crate::utils::find_conservative_subgroup_base;

pub(crate) fn backend_impl(
ty: &proc_macro2::TokenStream,
Expand Down Expand Up @@ -58,7 +58,7 @@ pub(crate) fn backend_impl(
let neg_one_mont = mod_mul_const(modulus - 1, r_mod_n, modulus);

let modulus_big = num_bigint::BigUint::from(modulus);
let mixed_radix_impl = if let Some((base, power)) = detect_small_prime_subgroup(&modulus_big)
let mixed_radix_impl = if let Some((base, power)) = find_conservative_subgroup_base(&modulus_big)
{
let large_root = compute_large_subgroup_root(modulus, generator, two_adicity, base, power);
let large_root_mont = mod_mul_const(large_root, r_mod_n, modulus);
Expand Down
2 changes: 1 addition & 1 deletion ff-macros/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ pub(crate) fn parse_string(input: TokenStream) -> Option<String> {
/// Checks whether any small prime base in {3, 5, 7} divides the odd part of
/// p-1 at least once. Returns the smallest such `(base, adicity)` if found,
/// or `None` if the odd part has no factors ≤ 7.
pub(crate) fn detect_small_prime_subgroup(modulus: &BigUint) -> Option<(u32, u32)> {
pub(crate) fn find_conservative_subgroup_base(modulus: &BigUint) -> Option<(u32, u32)> {
let mut trace = modulus - BigUint::from(1u32);
while trace.bit(0) == false {
trace >>= 1u32;
Expand Down
Loading