Skip to content
This repository has been archived by the owner on Jun 19, 2023. It is now read-only.
/ allowance Public archive

Math representation of the physically needed permissible deviation of measures in rust.

License

Notifications You must be signed in to change notification settings

migmedia/allowance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Allowance

Math representation of the physically needed permissible deviation of measures in rust avoiding floating point inaccuracy.

Based of type Measure with a accuracy of 1/10th my-meter (= 0.1μ).

Future

This project was renamed 'Tolerance' for better clarity and moved to NORICS-net/tolerance.

Exaxmple

use allowance::AllowanceValue;

fn main() {
    let width1 = AllowanceValue::new(100.0, 0.05, -0.2);
    let width2 = AllowanceValue::with_sym(50.0, 0.05);

    // Adding two `AllowancesValue`s is strait-forth.
    assert_eq!(width1 + width2, AllowanceValue::new(150.0, 0.1, -0.25));

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

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

Limits

Allowance

A 128bit wide value. Based on a Measure (64bit) for the value it could handle sizes up to +/-922_337_203 km with a variance of +/-214 m (Measure32).

Allowance64

based on a Measure32 (32bit) for the value it could handle sizes up to +/-214 m with a variance of +/-3 mm (Measure16).

About

Math representation of the physically needed permissible deviation of measures in rust.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages