NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2330 most downloaded on crates.io
Compare IEEE floating point primitives, structs and collections for equality.
Last release 4 years ago
no release in 18 months
Release timing varies
gaps range from 3 weeks to 8 months
Nearly every release is documented
notes for 15 of 15 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
15 releases · first in 2020
One column per quarter.
Fixed a bug where field visibility was not respected when deriving the Ulps type.
ComplexUlps32 rather than the incorrect
Complex32Ulps.
Added some resource links to the documentation and promoted the crate to release version 1.0.0, as it has been stable for some time now.
Added some resource links to the documentation and promoted the crate to release version 1.0.0, as it has been stable for some time now.
Bumped up the version number since this release includes breaking API changes.
Bumped up the version number since this release includes breaking API changes.
ulps_tol_derive and debug_ulps_diff_derive options to #[float_eq]
to provide a list of traits to be derived instead.syn.Clearer documentation for the FloatEqDebugUlpsDiff and FloatEqUlpsTol traits.
FloatEqDebugUlpsDiff and FloatEqUlpsTol
traits.Bumped up the version number since this release includes breaking API changes.
Bumped up the version number since this release includes breaking API changes.
num-complex dependency to 0.4.Bumped up the version number since this release includes breaking API changes to the extension traits.
Bumped up the version number since this release includes breaking API changes to the extension traits.
FloatEqDebug to AssertFloatEq, and similarly FloatEqAllDebug to
AssertFloatEqAll. This is to provide a more obvious link between these
traits and the assert capability. The FloatDiff trait has been folded into
AssertFloatEq both for clarity and because it is geared towards debug
context and was not as general as the name implied.rel checks into rmax (aka rel), rmin, r1st and r2nd to
select which operand to scale epsilon's granularity to.num-complex dependency to 0.3.The derive_float_eq helper macro to simplify deriving traits.
derive_float_eq helper macro to simplify deriving traits.Bumped up the version number since this release includes breaking API changes.
Bumped up the version number since this release includes breaking API changes.
#[derive] support for all traits on tuple structs and structs with named
fields.FloatUlps trait, which is a way to syntactically tie a floating point
type to its ULPs representation. The prefered way to express this is now to
implement FloatUlps for T and then use Ulps<T> for the ULPs type. The
other traits have been reworked to reflect this.FloatEqAll::Epsilon is now AllEpsilon and FloatEqAllDebug::DebugEpsilon
is now AllDebugEpsilon to help avoid ambiguity.Blanket trait impls for comparing mutable and immutable reference types and the contents of Cell, RefCell, Rc, Arc and Box instances.
Bumped up the version number since this release includes breaking API changes.
Bumped up the version number since this release includes breaking API changes.
FloatEqAll and FloatEqAllDebug traits, which allow for abs_all,
rel_all and ulps_all to be used in the float_eq and assert_float_eq
families of macros, which take a single epsilon value to be applied uniformly
across all fields being compared. The behaviour of FloatEq has now changed
to apply epsilon values structurally, on a per-field basis, since that is a
more general behaviour (e.g. all tuples may sensibly be FloatEq but not
FloatEqAll). If existing checks against arrays or num::Complex break,
switching to use the _all variants ought to fix them.NaN values as not equal, to match the default partial
equality behaviour of floats.FloatEq now more specifically means equality based on a structurally defined
epsilon type. See the notes on FloatEqAll above.FloatDiff is much more rigorously defined, in particular ulps_diff now
returns Option<T>, see the API documentation for details.FloatEq's DiffEpsilon is now Epsilon, and UlpsDiffEpsilon is now
UlpsTol. This reduces visual noise around the usage and harmonizes the
naming with FloatEqDebug's associated types.Bumped up the version number since this release includes breaking API changes.
Bumped up the version number since this release includes breaking API changes.
num::Complex instances.FloatDiff, FloatEq and FloatEqDebug along with the macros that use them
now allow for a different Rhs type to be specified instead of assuming it is
always Self.FloatEq::rel_epsilon was removed in favour of a more
equitable FloatEqDebug trait for displaying debug information.Added codecov.io and coveralls.io support.
Added the crate to the No Standard Library crates.io category.
no_std.Float::abs_diff on NaNs.Reworked the READMEs to be a bit more granular and provide more appropriate information.
lib.rs has been pared down a bit and several
sections moved to other places.crates-io.md contains a short project introduction, links to alternative
crates and future plans.README.md is generated from crates-io.md and LICENSE.md.[Unreleased]: https://github.com/jtempest/float_eq-rs/compare/1.0.1...HEAD [1.0.1]: https://github.com/jtempest/float_eq-rs/releases/tag/1.0.1 [1.0.0]
Your coding agent can read these notes before it upgrades. Set up the MCP server →