0 ULP (bit-exact) compatibility with CPython's math and cmath modules.
Every function produces identical results to Python at the binary representation level - not just "close enough", but exactly the same bits.
pymath is a strict port of CPython's math library to Rust. Each function has been carefully translated from CPython's C implementation, preserving the same algorithms, constants, and corner case handling.
acosacoshasinasinhatanatan2atanhcbrtceilcopysigncoscoshdegreesdisteerferfcexpexp2expm1fabsfloorfmafmodfrexpfsumgammahypot(n-dimensional)infiscloseisfiniteisinfisnanldexplgammaloglog10log1plog2modfnannextafterpipowprod(prod,prod_int)radiansremaindersinsinhsqrtsumprod(sumprod,sumprod_int)tantanhtautrunculp
combfactorialgcdisqrtlcmperm
absacosacoshasinasinhatanatanhcoscosheexpinfinfjiscloseisfiniteisinfisnanloglog10nannanjphasepipolarrectsinsinhsqrttantanhtau
use pymath::math::{sqrt, gamma, lgamma};fnmain(){let sqrt_result = sqrt(2.0).unwrap();let gamma_result = gamma(4.5).unwrap();let lgamma_result = lgamma(4.5).unwrap();}# Python 3.14>>>importmath>>>math.gamma(0.5).hex()
'0x1.c5bf891b4ef6ap+0'// Rust - identical bitsassert_eq!(
pymath::math::gamma(0.5).unwrap().to_bits(),0x3ffc5bf891b4ef6a);Bit representation may vary across platforms, but CPython and pymath built on the same environment will always produce identical results.
complex(default) - Enable cmath module for complex number functionsnum-bigint- Enable integer functions using num-bigintmalachite-bigint- Enable integer functions using malachite-bigintmul_add- Use hardware FMA for bit-exact macOS compatibility
pymath::math- Real number math functions (Python'smathmodule)pymath::cmath- Complex number functions (Python'scmathmodule)pymath::m- Direct libm bindings
This library guarantees compatibility with Python's math module, not mathematical correctness.