![]() |
Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
|
Division and modulus using uint64_t numerators and denominators. More...
#include <constant_divisor.h>
Public Types | |
typedef uint64_t | value_type |
![]() | |
using | value_type |
Public Member Functions | |
ConstantDivisor (value_type denominator) | |
REQUIRES: denominator > 1. | |
value_type | div (value_type numerator) const |
ConstantDivisor (value_type denominator) | |
value_type | div (value_type n) const |
value_type | mod (value_type n) const |
![]() | |
ConstantDivisorBase (absl::uint128 magic, value_type denominator) | |
value_type | mod (value_type numerator) const |
value_type | denominator () const |
Friends | |
value_type | operator/ (value_type a, const ConstantDivisor &b) |
value_type | operator% (value_type a, const ConstantDivisor &b) |
Additional Inherited Members | |
![]() | |
using | MagicValueType |
![]() | |
absl::uint128 | magic_ |
Division and modulus using uint64_t numerators and denominators.
Definition at line 114 of file constant_divisor.h.
typedef uint64_t util::math::ConstantDivisor< uint64_t >::value_type |
Definition at line 59 of file constant_divisor.h.
|
explicit |
REQUIRES: denominator > 1.
Fast div/mod implementation based on "Faster Remainder by Direct Computation: Applications to Compilers and Software Libraries" Daniel Lemire, Owen Kaser, Nathan Kurz arXiv:1902.01961
Definition at line 28 of file constant_divisor.cc.
|
inlineexplicit |
Definition at line 61 of file constant_divisor.h.
|
inline |
Definition at line 64 of file constant_divisor.h.
|
inline |
Definition at line 121 of file constant_divisor.h.
|
inline |
Definition at line 66 of file constant_divisor.h.
|
friend |
Definition at line 72 of file constant_divisor.h.
|
friend |
Definition at line 68 of file constant_divisor.h.