Assembly-level implementation of various interesting data types on Rust
- Data Types
- Half-precision floating point (f16)
- Extended floating point (f80)
- Progress
- Half-precision floating point (f16)
- Arithmetic
- Exponential
- Trigonometry
- Comparing
- From Casting
- Into Casting
- Miscelaneous
- Extended floating point (f80)
- Arithmetic
- Exponential
- Trigonometry
- Comparing
- From Casting
- Into Casting
- Miscelaneous
- Half-precision floating point (f16)
- Benchmarks
- Installation
A 16-bit floating point type; specifically, the ARM alternative half-precision.
It is only available for aarch64 targets & it differs from it's IEEE variant by doing away with the special case for an exponent value of 31, disallawing infinities & NaNs.
For non-compatible targets, the "f16" type is an alias of "f32"
See the Wikipedia article
A 80-bit floating point type that provides greater precision than the basic floating-point formats.
It is an x86 exclusive and it's mainly used to minimize roundoff and overflow errors in smaller floating point types.
For non-compatible targets, the "f80" type is an alias of "f64"
See the Wikipedia article
- Addition
- Subtraction
- Multiplication
- Division
- Negation
- Square root
- Exponential
- Natural Logarithm
- Sine
- Cosine
- Tangent
- Arc Sine
- Arc Cosine
- Arc Tangent
- Arc Tangent 2
- By Equal
- By Order
- 8-bit unsigned integer
- 8-bit signed integer
- 16-bit unsigned integer
- 16-bit signed integer
- 32-bit unsigned integer
- 32-bit signed integer
- 64-bit unsigned integer
- 64-bit signed integer
- 128-bit unsigned integer
- 128-bit signed integer
- Single precision floating point
- Double precision floating point
- 8-bit unsigned integer
- 8-bit signed integer
- 16-bit unsigned integer
- 16-bit signed integer
- 32-bit unsigned integer
- 32-bit signed integer
- 64-bit unsigned integer
- 64-bit signed integer
- 128-bit unsigned integer
- 128-bit signed integer
- Single precision floating point
- Double precision floating point
- Absolute
- Round
- Truncate
- Floor
- Ceil
- Addition
- Subtraction
- Multiplication
- Division
- Negation
- Square root
- Exponential
- Natural Logarithm
- Sine
- Cosine
- Tangent
- Arc Sine
- Arc Cosine
- Arc Tangent
- Arc Tangent 2
- By Equal
- By Order
- 8-bit unsigned integer
- 8-bit signed integer
- 16-bit unsigned integer
- 16-bit signed integer
- 32-bit unsigned integer
- 32-bit signed integer
- 64-bit unsigned integer
- 64-bit signed integer
- 128-bit unsigned integer
- 128-bit signed integer
- Single precision floating point
- Double precision floating point
- 8-bit unsigned integer
- 8-bit signed integer
- 16-bit unsigned integer
- 16-bit signed integer
- 32-bit unsigned integer
- 32-bit signed integer
- 64-bit unsigned integer
- 64-bit signed integer
- 128-bit unsigned integer
- 128-bit signed integer
- Single precision floating point
- Double precision floating point
- Absolute
- Round
- Truncate
- Floor
- Ceil
Todo
This library can be installed through cargo with the command
cargo install clnooms