pub mod dashu;
#[cfg(feature = "backend-rug")]
pub mod rug;
#[cfg(feature = "backend-f64")]
pub mod f64;
pub trait NiFloat: Clone + Send + Sync + 'static {
fn to_f64(&self) -> f64;
fn to_decimal_string(&self, digits: u32) -> String;
fn abs(&self) -> Self;
fn lt(&self, other: &Self) -> bool;
fn add_assign(&mut self, other: &Self);
}
pub trait NiBackend: 'static {
type Float: NiFloat;
fn pi(precision_bits: u32) -> Self::Float;
fn mul(a: &Self::Float, b: &Self::Float, precision_bits: u32) -> Self::Float;
fn div(num: &Self::Float, den: &Self::Float, precision_bits: u32) -> Self::Float;
fn from_u64(value: u64, precision_bits: u32) -> Self::Float;
fn two_pow(exp: u32, precision_bits: u32) -> Self::Float;
fn zero(precision_bits: u32) -> Self::Float;
fn epsilon(precision_bits: u32) -> Self::Float;
}