43 static_assert(std::numeric_limits<Digit>::max() > Radix);
44 static_assert(std::numeric_limits<DigitCalc>::max() > Radix * Radix);
45 static_assert(std::numeric_limits<DigitCalc>::min() < -Radix * Radix);
114 return digits_.get_or_prepare(index);
145 digits_.resize(lowest, highest);
Definition of bidirectional_vector class.
auto lowest_ind() const noexcept -> index_type
Get the index of the lowest digits.
void push_to_lowest(digit_type digit)
Add a digit to the lowest end.
util::bidirectional_vector< digit_type > digits_
Digits.
DigitCalc digit_calc_type
Type of digits for calculation.
auto operator[](index_type index) -> digit_type &
Access a digit preparing it if needed.
custom_float()
Construct zero.
void resize(index_type lowest, index_type highest)
Change the range of digits.
auto at(index_type index) const -> digit_type
Access a digit with checks.
void push_to_highest(digit_type digit)
Add a digit to the highest end.
static constexpr index_type radix
Radix of the number system.
auto highest_ind() const noexcept -> index_type
Get the index of the highest digit.
auto operator[](index_type index) const -> digit_type
Access a digit without checks.
void move_digits(index_type offset)
Move digits.
Digit digit_type
Type of digits.
Class to save data in a sequence which can be extended even toward negative direction.
Concept of signed integers.
Definition of index_type type.
Definition of integral concept.
std::ptrdiff_t index_type
Type of indices in this library.
Namespace of classes of numbers.
Definition of signed_integral concept.