// SPDX-FileCopyrightText: 2026 John Moxley
// SPDX-License-Identifier: MIT OR Apache-2.0
//! Integer square-root algorithm family.
//!
//! - [`isqrt_newton`](isqrt_newton::isqrt_newton) -- width-agnostic Newton
//! integer square root with a hardware-`f64::sqrt` seed.
//! - [`isqrt_mag_fixed`](isqrt_mag_fixed::isqrt_mag_fixed) -- the const-`N`
//! fast-arm wrapper (`N == 1`/`2` native, `N >= 3` Newton) the
//! fixed-width `Int<N>` types call.
//! - [`isqrt_schoolbook`](isqrt_schoolbook::isqrt_schoolbook) -- two-bits-at-a-time
//! bitwise reference implementation; pure integer, no division, no float.
//! - [`isqrt_karatsuba`](isqrt_karatsuba::isqrt_karatsuba) -- Karatsuba Square
//! Root (Zimmermann, INRIA RR-3805). Replaces Newton's full-width
//! per-iteration divide with a recursion whose divide is half-width and runs
//! only `O(log n)` times; the `isqrt_ab` A/B shows it crosses over Newton at
//! the widest tier, so [`crate::int::policy::isqrt`] routes `N >= 64` here.
pub
pub
pub
pub