#division #modulo #no-std

no-std divrem

Division and modulus variants

2 releases (1 stable)

1.0.0 May 9, 2021
0.1.0 May 30, 2018

#412 in Math

Download history 2698/week @ 2024-07-19 3019/week @ 2024-07-26 4355/week @ 2024-08-02 4052/week @ 2024-08-09 3742/week @ 2024-08-16 4201/week @ 2024-08-23 5008/week @ 2024-08-30 4763/week @ 2024-09-06 3586/week @ 2024-09-13 4274/week @ 2024-09-20 3127/week @ 2024-09-27 5848/week @ 2024-10-04 3432/week @ 2024-10-11 6132/week @ 2024-10-18 4436/week @ 2024-10-25 3625/week @ 2024-11-01

18,280 downloads per month
Used in 35 crates (6 directly)

MIT license

27KB
579 lines

DivRem

Documentation

Rust library providing division and modulus variants:

  • Floored division and remainder.
  • Ceiled division and remainder.
  • Euclidian division and remaider.

For every definition, we provide a Div, a Rem and a DivRem trait.

A DivRem variant of std’s truncated division is also provided for convenience.

This crate is no_std.


lib.rs:

Division and modulus traits and implementations.

There are several definitions for the division and modulus functions, each with different properties. Probably the most common in computer science is truncated division (rounding towards zero) since it is the one provided by most processors and defined as the / (and matching %) operator in the ISO C99 standard.

This crate provides the following definitions:

  • Floored division (rounding towards negative infinity).
  • Ceiled division (rounding towards positive infinity).
  • Euclidean division (sign of modulus is always positive).

For every definition, we provide a Div, a Rem and a DivRem variant.

A DivRem variant of the truncated division is also provided for convenience since it does not exist in the standard library.

No runtime deps