tolerance

Crates.iotolerance
lib.rstolerance
version1.1.2
sourcesrc
created_at2023-06-19 17:17:34.223289
updated_at2024-11-10 15:12:36.634841
descriptionMath representation of the physically needed permissible deviation of measures.
homepage
repositoryhttps://github.com/NORICS-net/tolerance
max_upload_size
id894262
size85,653
Micha Glave (migmedia)

documentation

README

Tolerance

crates.io crates.io Documentation

Math representation of the physically needed permissible deviation of measures. Avoiding floating point inaccuracy by calculating with 4 fractional digits. Allows to calculate with tolerance ranges in a consistent way.

Description

The two tolerance-types T128 and T64 handles the 3 values of the tolerance: the par (value) and it's 2 deviations (plus & minus). Based of own types Myth64, Myth32, Myth16 with a accuracy of 1/10th my-meter (= 0.1μ).

T128

Based on a Myth64 (64bit) for the value it could handle sizes up to +/-922_337_203 km with a deviation of +/-214 m (Myth32).

T64

Based on a Myth32 (32bit) for the value it could handle sizes up to +/-214 m with a deviation of +/-3 mm (Myth16).

Example

use tolerance::T128;

let width1 = T128::new(100.0, 0.05, -0.2);
let width2 = T128::with_sym(50.0, 0.05);

// Adding two `T128`s is straightforward.
assert_eq!(width1 + width2, T128::new(150.0, 0.1, -0.25));

// `!` inverts the direction of tolerance to /subtract/ measures.
assert_eq!(!width1, T128::new(-100.0, 0.2, -0.05));

// Adding an inverted `T128` wides the tolerance.
assert_eq!(width1 + !width1, T128::new(0.0, 0.25, -0.25));

Serde

Serde-support can be activated by the serde-feature.

History

Started as AllowanceValue renamed and moved for better usability.

License

Licensed under MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the MIT license, shall be licensed as above, without any additional terms or conditions.

Commit count: 19

cargo fmt