Logo by www.freepik.com
Magnitude - To infinity and beyond!
This crate is useful when you need to work with algorithms like
Dijkstra's Shortest Path or
Floyd–Warshall algorithm
that require infinite values in order to be written elegantly.
One simple example can be finding the max value in a vector:
use Magnitude;
let vec: = vec!;
assert_eq!;
You can do all valid comparison(==, !=, >, <, >=, <=) and arithmetic(+,-, *, /, +=, -=, *=, /=) operations on magnitudes.
Invalid operations are listed below which means any other operation is valid.
Invalid operations
- Comparison:
- two
PosInfinite - two
NegInfinite
- two
- Arithmetic:
- Add:
PosInfinite+NegInfinite
- Sub:
PosInfinit-PosInfinitNegInfinit-NegInfinit
- Mul:
- zero *
PosInfinite - zero *
NegInfinite
- zero *
- Div:
- non-zero /
PosInfinite - non-zero /
NegInfinite PosInfinite/ zeroNegInfinite/ zeroPosInfinite/PosInfinitePosInfinite/NegInfiniteNegInfinite/PosInfiniteNegInfinite/NegInfinite
- non-zero /
- Add: