use ;
/// Fixed iteration count for [`taylor_series`]; see the precision note on
/// [`super::Scalar::sin`] for the trade-off this implies for inputs far from zero.
const ITERATIONS: u32 = 20;
/// Computes `sin(value)` via a fixed-iteration Taylor series expansion around zero:
/// `sin(x) = x - x^3/3! + x^5/5! - ...`, computed through the recurrence
/// `term_{k+1} = term_k * (-x^2) / ((2k+2)(2k+3))` rather than recomputing factorials and
/// powers from scratch for every term.
///
/// `zero` and `one` are passed in by the caller, since this is generic over any type with
/// the right arithmetic operations rather than over [`super::Scalar`] itself (`Scalar::sin`
/// is implemented in terms of this function, so the function itself can't depend on
/// `Scalar`).
pub