gitextract_3ecze51d/ ├── .envrc ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ └── rust.yml ├── .gitignore ├── .vscode/ │ ├── launch.json │ └── tasks.json ├── COPYING ├── COPYING.LESSER ├── Cargo.toml ├── LICENSE ├── README.md ├── _config.yml ├── additional-lints.py ├── build.sh ├── docs/ │ ├── CNAME │ ├── _config.yml │ ├── _includes/ │ │ └── head-custom.html │ ├── _layouts/ │ │ └── post.html │ ├── _posts/ │ │ ├── 2022-06-05-1-intro.md │ │ ├── 2022-06-05-2-exhaustive.md │ │ ├── 2022-07-03-exhaustive.md │ │ └── 2022-07-30-denominators.md │ ├── assets/ │ │ ├── denominators/ │ │ │ ├── gap-and-bound-graph.asy │ │ │ ├── gap-graph.asy │ │ │ ├── gaps.asy │ │ │ ├── j-graph.asy │ │ │ └── sixths.asy │ │ ├── exhaustive-part-2/ │ │ │ ├── cantor-graph.asy │ │ │ ├── cantor-grid.asy │ │ │ ├── cantor-large.tex │ │ │ ├── cantor-triples-large.tex │ │ │ ├── interleave-bits-1.tex │ │ │ ├── interleave-bits-2.tex │ │ │ ├── interleave-grid-filtered.asy │ │ │ ├── interleave-grid.asy │ │ │ ├── interleave-large.tex │ │ │ ├── interleave-pairs-graph.asy │ │ │ ├── interleave-triples-bits.tex │ │ │ ├── interleave-triples-graph.asy │ │ │ └── interleave-triples-large.tex │ │ └── logo.asy │ ├── index.md │ └── performance.md ├── find_replace.py ├── flake.nix ├── katex-header.html ├── malachite/ │ ├── Cargo.toml │ ├── katex-header.html │ └── src/ │ └── lib.rs ├── malachite-base/ │ ├── .gitignore │ ├── Cargo.toml │ ├── README.md │ ├── katex-header.html │ ├── rustfmt.toml │ ├── src/ │ │ ├── bin.rs │ │ ├── bin_util/ │ │ │ ├── demo_and_bench/ │ │ │ │ ├── bools/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── not_assign.rs │ │ │ │ ├── chars/ │ │ │ │ │ ├── crement/ │ │ │ │ │ │ ├── char_to_contiguous_range.rs │ │ │ │ │ │ ├── contiguous_range_to_char.rs │ │ │ │ │ │ ├── crement.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── comparison/ │ │ │ │ │ ├── macros.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── num/ │ │ │ │ │ ├── arithmetic/ │ │ │ │ │ │ ├── abs.rs │ │ │ │ │ │ ├── abs_diff.rs │ │ │ │ │ │ ├── add_mul.rs │ │ │ │ │ │ ├── arithmetic_checked_shl.rs │ │ │ │ │ │ ├── arithmetic_checked_shr.rs │ │ │ │ │ │ ├── binomial_coefficient.rs │ │ │ │ │ │ ├── ceiling.rs │ │ │ │ │ │ ├── checked_add_mul.rs │ │ │ │ │ │ ├── checked_square.rs │ │ │ │ │ │ ├── checked_sub_mul.rs │ │ │ │ │ │ ├── coprime_with.rs │ │ │ │ │ │ ├── div_exact.rs │ │ │ │ │ │ ├── div_mod.rs │ │ │ │ │ │ ├── div_round.rs │ │ │ │ │ │ ├── divisible_by.rs │ │ │ │ │ │ ├── divisible_by_power_of_2.rs │ │ │ │ │ │ ├── eq_mod.rs │ │ │ │ │ │ ├── eq_mod_power_of_2.rs │ │ │ │ │ │ ├── extended_gcd.rs │ │ │ │ │ │ ├── factorial.rs │ │ │ │ │ │ ├── floor.rs │ │ │ │ │ │ ├── gcd.rs │ │ │ │ │ │ ├── is_power_of_2.rs │ │ │ │ │ │ ├── kronecker_symbol.rs │ │ │ │ │ │ ├── lcm.rs │ │ │ │ │ │ ├── log_base.rs │ │ │ │ │ │ ├── log_base_2.rs │ │ │ │ │ │ ├── log_base_power_of_2.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── mod_add.rs │ │ │ │ │ │ ├── mod_inverse.rs │ │ │ │ │ │ ├── mod_is_reduced.rs │ │ │ │ │ │ ├── mod_mul.rs │ │ │ │ │ │ ├── mod_neg.rs │ │ │ │ │ │ ├── mod_op.rs │ │ │ │ │ │ ├── mod_pow.rs │ │ │ │ │ │ ├── mod_power_of_2.rs │ │ │ │ │ │ ├── mod_power_of_2_add.rs │ │ │ │ │ │ ├── mod_power_of_2_inverse.rs │ │ │ │ │ │ ├── mod_power_of_2_is_reduced.rs │ │ │ │ │ │ ├── mod_power_of_2_mul.rs │ │ │ │ │ │ ├── mod_power_of_2_neg.rs │ │ │ │ │ │ ├── mod_power_of_2_pow.rs │ │ │ │ │ │ ├── mod_power_of_2_shl.rs │ │ │ │ │ │ ├── mod_power_of_2_shr.rs │ │ │ │ │ │ ├── mod_power_of_2_square.rs │ │ │ │ │ │ ├── mod_power_of_2_sub.rs │ │ │ │ │ │ ├── mod_shl.rs │ │ │ │ │ │ ├── mod_shr.rs │ │ │ │ │ │ ├── mod_square.rs │ │ │ │ │ │ ├── mod_sub.rs │ │ │ │ │ │ ├── neg.rs │ │ │ │ │ │ ├── next_power_of_2.rs │ │ │ │ │ │ ├── overflowing_abs.rs │ │ │ │ │ │ ├── overflowing_add.rs │ │ │ │ │ │ ├── overflowing_add_mul.rs │ │ │ │ │ │ ├── overflowing_div.rs │ │ │ │ │ │ ├── overflowing_mul.rs │ │ │ │ │ │ ├── overflowing_neg.rs │ │ │ │ │ │ ├── overflowing_pow.rs │ │ │ │ │ │ ├── overflowing_square.rs │ │ │ │ │ │ ├── overflowing_sub.rs │ │ │ │ │ │ ├── overflowing_sub_mul.rs │ │ │ │ │ │ ├── parity.rs │ │ │ │ │ │ ├── pow.rs │ │ │ │ │ │ ├── power_of_2.rs │ │ │ │ │ │ ├── primorial.rs │ │ │ │ │ │ ├── reciprocal.rs │ │ │ │ │ │ ├── root.rs │ │ │ │ │ │ ├── rotate.rs │ │ │ │ │ │ ├── round_to_multiple.rs │ │ │ │ │ │ ├── round_to_multiple_of_power_of_2.rs │ │ │ │ │ │ ├── saturating_abs.rs │ │ │ │ │ │ ├── saturating_add.rs │ │ │ │ │ │ ├── saturating_add_mul.rs │ │ │ │ │ │ ├── saturating_mul.rs │ │ │ │ │ │ ├── saturating_neg.rs │ │ │ │ │ │ ├── saturating_pow.rs │ │ │ │ │ │ ├── saturating_square.rs │ │ │ │ │ │ ├── saturating_sub.rs │ │ │ │ │ │ ├── saturating_sub_mul.rs │ │ │ │ │ │ ├── shl_round.rs │ │ │ │ │ │ ├── shr_round.rs │ │ │ │ │ │ ├── sign.rs │ │ │ │ │ │ ├── sqrt.rs │ │ │ │ │ │ ├── square.rs │ │ │ │ │ │ ├── sub_mul.rs │ │ │ │ │ │ ├── wrapping_abs.rs │ │ │ │ │ │ ├── wrapping_add.rs │ │ │ │ │ │ ├── wrapping_add_mul.rs │ │ │ │ │ │ ├── wrapping_div.rs │ │ │ │ │ │ ├── wrapping_mul.rs │ │ │ │ │ │ ├── wrapping_neg.rs │ │ │ │ │ │ ├── wrapping_pow.rs │ │ │ │ │ │ ├── wrapping_square.rs │ │ │ │ │ │ ├── wrapping_sub.rs │ │ │ │ │ │ ├── wrapping_sub_mul.rs │ │ │ │ │ │ ├── x_mul_y_to_zz.rs │ │ │ │ │ │ ├── xx_add_yy_to_zz.rs │ │ │ │ │ │ ├── xx_div_mod_y_to_qr.rs │ │ │ │ │ │ ├── xx_sub_yy_to_zz.rs │ │ │ │ │ │ ├── xxx_add_yyy_to_zzz.rs │ │ │ │ │ │ ├── xxx_sub_yyy_to_zzz.rs │ │ │ │ │ │ └── xxxx_add_yyyy_to_zzzz.rs │ │ │ │ │ ├── comparison/ │ │ │ │ │ │ ├── cmp_abs.rs │ │ │ │ │ │ ├── eq_abs.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── ord_abs_comparators.rs │ │ │ │ │ ├── conversion/ │ │ │ │ │ │ ├── digits/ │ │ │ │ │ │ │ ├── general_digits/ │ │ │ │ │ │ │ │ ├── from_digits.rs │ │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ │ └── to_digits.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ └── power_of_2_digits/ │ │ │ │ │ │ │ ├── from_power_of_2_digits.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── power_of_2_digit_iterable.rs │ │ │ │ │ │ │ └── to_power_of_2_digits.rs │ │ │ │ │ │ ├── from/ │ │ │ │ │ │ │ ├── convertible_from.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── overflowing_from.rs │ │ │ │ │ │ │ ├── rounding_from.rs │ │ │ │ │ │ │ ├── saturating_from.rs │ │ │ │ │ │ │ ├── try_from_and_exact_from.rs │ │ │ │ │ │ │ └── wrapping_from.rs │ │ │ │ │ │ ├── half/ │ │ │ │ │ │ │ ├── join_halves.rs │ │ │ │ │ │ │ ├── lower_half.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── split_in_half.rs │ │ │ │ │ │ │ └── upper_half.rs │ │ │ │ │ │ ├── is_integer.rs │ │ │ │ │ │ ├── mantissa_and_exponent/ │ │ │ │ │ │ │ ├── integer_mantissa_and_exponent.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── raw_mantissa_and_exponent.rs │ │ │ │ │ │ │ └── sci_mantissa_and_exponent.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── slice/ │ │ │ │ │ │ │ ├── from_other_type_slice.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── vec_from_other_type.rs │ │ │ │ │ │ │ └── vec_from_other_type_slice.rs │ │ │ │ │ │ └── string/ │ │ │ │ │ │ ├── from_sci_string.rs │ │ │ │ │ │ ├── from_string.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── options/ │ │ │ │ │ │ │ ├── from_sci_string_options.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── sci_size_options.rs │ │ │ │ │ │ │ └── to_sci_options.rs │ │ │ │ │ │ ├── to_sci.rs │ │ │ │ │ │ └── to_string.rs │ │ │ │ │ ├── factorization/ │ │ │ │ │ │ ├── factor.rs │ │ │ │ │ │ ├── is_power.rs │ │ │ │ │ │ ├── is_prime.rs │ │ │ │ │ │ ├── is_square.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── prime_sieve.rs │ │ │ │ │ │ ├── primes.rs │ │ │ │ │ │ └── primitive_root_prime.rs │ │ │ │ │ ├── float/ │ │ │ │ │ │ ├── basic/ │ │ │ │ │ │ │ ├── abs_negative_zero.rs │ │ │ │ │ │ │ ├── from_ordered_representation.rs │ │ │ │ │ │ │ ├── is_negative_zero.rs │ │ │ │ │ │ │ ├── max_precision_for_sci_exponent.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── next_higher.rs │ │ │ │ │ │ │ ├── next_lower.rs │ │ │ │ │ │ │ ├── precision.rs │ │ │ │ │ │ │ └── to_ordered_representation.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── nice_float/ │ │ │ │ │ │ ├── cmp.rs │ │ │ │ │ │ ├── cmp_abs.rs │ │ │ │ │ │ ├── eq.rs │ │ │ │ │ │ ├── eq_abs.rs │ │ │ │ │ │ ├── from_str.rs │ │ │ │ │ │ ├── hash.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── to_string.rs │ │ │ │ │ ├── logic/ │ │ │ │ │ │ ├── bit_access/ │ │ │ │ │ │ │ ├── assign_bit.rs │ │ │ │ │ │ │ ├── clear_bit.rs │ │ │ │ │ │ │ ├── flip_bit.rs │ │ │ │ │ │ │ ├── get_bit.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ └── set_bit.rs │ │ │ │ │ │ ├── bit_block_access/ │ │ │ │ │ │ │ ├── assign_bits.rs │ │ │ │ │ │ │ ├── get_bits.rs │ │ │ │ │ │ │ └── mod.rs │ │ │ │ │ │ ├── bit_convertible/ │ │ │ │ │ │ │ ├── from_bits.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ └── to_bits.rs │ │ │ │ │ │ ├── bit_iterable.rs │ │ │ │ │ │ ├── bit_scan/ │ │ │ │ │ │ │ ├── index_of_next_false_bit.rs │ │ │ │ │ │ │ ├── index_of_next_true_bit.rs │ │ │ │ │ │ │ └── mod.rs │ │ │ │ │ │ ├── get_highest_bit.rs │ │ │ │ │ │ ├── hamming_distance.rs │ │ │ │ │ │ ├── low_mask.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── not_assign.rs │ │ │ │ │ │ └── significant_bits.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── rational_sequences/ │ │ │ │ │ ├── access/ │ │ │ │ │ │ ├── get.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── mutate.rs │ │ │ │ │ ├── basic/ │ │ │ │ │ │ ├── component_len.rs │ │ │ │ │ │ ├── is_empty.rs │ │ │ │ │ │ ├── is_finite.rs │ │ │ │ │ │ ├── iter.rs │ │ │ │ │ │ ├── len.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── comparison/ │ │ │ │ │ │ ├── cmp.rs │ │ │ │ │ │ ├── eq.rs │ │ │ │ │ │ ├── hash.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── conversion/ │ │ │ │ │ │ ├── clone.rs │ │ │ │ │ │ ├── from_vec.rs │ │ │ │ │ │ ├── from_vecs.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── to_vecs.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── to_string.rs │ │ │ │ ├── rounding_modes/ │ │ │ │ │ ├── clone.rs │ │ │ │ │ ├── eq.rs │ │ │ │ │ ├── from_str.rs │ │ │ │ │ ├── hash.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── neg.rs │ │ │ │ │ └── to_string.rs │ │ │ │ ├── slices/ │ │ │ │ │ ├── min_repeating_len.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── slice_leading_zeros.rs │ │ │ │ │ ├── slice_move_left.rs │ │ │ │ │ ├── slice_set_zero.rs │ │ │ │ │ ├── slice_test_zero.rs │ │ │ │ │ ├── slice_trailing_zeros.rs │ │ │ │ │ └── split_into_chunks.rs │ │ │ │ ├── strings/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── string_is_subset.rs │ │ │ │ │ ├── string_sort.rs │ │ │ │ │ └── string_unique.rs │ │ │ │ └── vecs/ │ │ │ │ ├── mod.rs │ │ │ │ ├── vec_delete_left.rs │ │ │ │ └── vec_pad_left.rs │ │ │ └── generate/ │ │ │ ├── max_base.rs │ │ │ ├── mod.rs │ │ │ ├── rle.rs │ │ │ └── tuning_manager.rs │ │ ├── bools/ │ │ │ ├── constants.rs │ │ │ ├── exhaustive.rs │ │ │ ├── mod.rs │ │ │ ├── not_assign.rs │ │ │ └── random.rs │ │ ├── chars/ │ │ │ ├── constants.rs │ │ │ ├── crement.rs │ │ │ ├── exhaustive.rs │ │ │ ├── mod.rs │ │ │ └── random.rs │ │ ├── comparison/ │ │ │ ├── macros.rs │ │ │ ├── mod.rs │ │ │ └── traits.rs │ │ ├── iterators/ │ │ │ ├── bit_distributor.rs │ │ │ ├── comparison.rs │ │ │ ├── iterator_cache.rs │ │ │ └── mod.rs │ │ ├── lib.rs │ │ ├── macros/ │ │ │ └── mod.rs │ │ ├── named/ │ │ │ └── mod.rs │ │ ├── nevers/ │ │ │ └── mod.rs │ │ ├── num/ │ │ │ ├── arithmetic/ │ │ │ │ ├── abs.rs │ │ │ │ ├── abs_diff.rs │ │ │ │ ├── add_mul.rs │ │ │ │ ├── arithmetic_checked_shl.rs │ │ │ │ ├── arithmetic_checked_shr.rs │ │ │ │ ├── binomial_coefficient.rs │ │ │ │ ├── ceiling.rs │ │ │ │ ├── checked_abs.rs │ │ │ │ ├── checked_add.rs │ │ │ │ ├── checked_add_mul.rs │ │ │ │ ├── checked_div.rs │ │ │ │ ├── checked_mul.rs │ │ │ │ ├── checked_neg.rs │ │ │ │ ├── checked_next_power_of_2.rs │ │ │ │ ├── checked_pow.rs │ │ │ │ ├── checked_square.rs │ │ │ │ ├── checked_sub.rs │ │ │ │ ├── checked_sub_mul.rs │ │ │ │ ├── coprime_with.rs │ │ │ │ ├── div_exact.rs │ │ │ │ ├── div_mod.rs │ │ │ │ ├── div_round.rs │ │ │ │ ├── divisible_by.rs │ │ │ │ ├── divisible_by_power_of_2.rs │ │ │ │ ├── eq_mod.rs │ │ │ │ ├── eq_mod_power_of_2.rs │ │ │ │ ├── extended_gcd.rs │ │ │ │ ├── factorial.rs │ │ │ │ ├── floor.rs │ │ │ │ ├── gcd.rs │ │ │ │ ├── is_power_of_2.rs │ │ │ │ ├── kronecker_symbol.rs │ │ │ │ ├── lcm.rs │ │ │ │ ├── log_base.rs │ │ │ │ ├── log_base_2.rs │ │ │ │ ├── log_base_power_of_2.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── mod_add.rs │ │ │ │ ├── mod_inverse.rs │ │ │ │ ├── mod_is_reduced.rs │ │ │ │ ├── mod_mul.rs │ │ │ │ ├── mod_neg.rs │ │ │ │ ├── mod_op.rs │ │ │ │ ├── mod_pow.rs │ │ │ │ ├── mod_power_of_2.rs │ │ │ │ ├── mod_power_of_2_add.rs │ │ │ │ ├── mod_power_of_2_inverse.rs │ │ │ │ ├── mod_power_of_2_is_reduced.rs │ │ │ │ ├── mod_power_of_2_mul.rs │ │ │ │ ├── mod_power_of_2_neg.rs │ │ │ │ ├── mod_power_of_2_pow.rs │ │ │ │ ├── mod_power_of_2_shl.rs │ │ │ │ ├── mod_power_of_2_shr.rs │ │ │ │ ├── mod_power_of_2_square.rs │ │ │ │ ├── mod_power_of_2_sub.rs │ │ │ │ ├── mod_shl.rs │ │ │ │ ├── mod_shr.rs │ │ │ │ ├── mod_square.rs │ │ │ │ ├── mod_sub.rs │ │ │ │ ├── neg.rs │ │ │ │ ├── next_power_of_2.rs │ │ │ │ ├── overflowing_abs.rs │ │ │ │ ├── overflowing_add.rs │ │ │ │ ├── overflowing_add_mul.rs │ │ │ │ ├── overflowing_div.rs │ │ │ │ ├── overflowing_mul.rs │ │ │ │ ├── overflowing_neg.rs │ │ │ │ ├── overflowing_pow.rs │ │ │ │ ├── overflowing_square.rs │ │ │ │ ├── overflowing_sub.rs │ │ │ │ ├── overflowing_sub_mul.rs │ │ │ │ ├── parity.rs │ │ │ │ ├── pow.rs │ │ │ │ ├── power_of_2.rs │ │ │ │ ├── primorial.rs │ │ │ │ ├── reciprocal.rs │ │ │ │ ├── root.rs │ │ │ │ ├── rotate.rs │ │ │ │ ├── round_to_multiple.rs │ │ │ │ ├── round_to_multiple_of_power_of_2.rs │ │ │ │ ├── saturating_abs.rs │ │ │ │ ├── saturating_add.rs │ │ │ │ ├── saturating_add_mul.rs │ │ │ │ ├── saturating_mul.rs │ │ │ │ ├── saturating_neg.rs │ │ │ │ ├── saturating_pow.rs │ │ │ │ ├── saturating_square.rs │ │ │ │ ├── saturating_sub.rs │ │ │ │ ├── saturating_sub_mul.rs │ │ │ │ ├── shl_round.rs │ │ │ │ ├── shr_round.rs │ │ │ │ ├── sign.rs │ │ │ │ ├── sqrt.rs │ │ │ │ ├── square.rs │ │ │ │ ├── sub_mul.rs │ │ │ │ ├── traits.rs │ │ │ │ ├── wrapping_abs.rs │ │ │ │ ├── wrapping_add.rs │ │ │ │ ├── wrapping_add_mul.rs │ │ │ │ ├── wrapping_div.rs │ │ │ │ ├── wrapping_mul.rs │ │ │ │ ├── wrapping_neg.rs │ │ │ │ ├── wrapping_pow.rs │ │ │ │ ├── wrapping_square.rs │ │ │ │ ├── wrapping_sub.rs │ │ │ │ ├── wrapping_sub_mul.rs │ │ │ │ ├── x_mul_y_to_zz.rs │ │ │ │ ├── xx_add_yy_to_zz.rs │ │ │ │ ├── xx_div_mod_y_to_qr.rs │ │ │ │ ├── xx_sub_yy_to_zz.rs │ │ │ │ ├── xxx_add_yyy_to_zzz.rs │ │ │ │ ├── xxx_sub_yyy_to_zzz.rs │ │ │ │ └── xxxx_add_yyyy_to_zzzz.rs │ │ │ ├── basic/ │ │ │ │ ├── floats.rs │ │ │ │ ├── integers.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── signeds.rs │ │ │ │ ├── traits.rs │ │ │ │ └── unsigneds.rs │ │ │ ├── comparison/ │ │ │ │ ├── cmp_abs.rs │ │ │ │ ├── eq_abs.rs │ │ │ │ ├── mod.rs │ │ │ │ └── traits.rs │ │ │ ├── conversion/ │ │ │ │ ├── digits/ │ │ │ │ │ ├── general_digits.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── power_of_2_digit_iterable.rs │ │ │ │ │ └── power_of_2_digits.rs │ │ │ │ ├── from.rs │ │ │ │ ├── half.rs │ │ │ │ ├── is_integer.rs │ │ │ │ ├── mantissa_and_exponent.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── slice.rs │ │ │ │ ├── string/ │ │ │ │ │ ├── from_sci_string.rs │ │ │ │ │ ├── from_string.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── options/ │ │ │ │ │ │ ├── exhaustive.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── random.rs │ │ │ │ │ ├── to_sci.rs │ │ │ │ │ └── to_string.rs │ │ │ │ └── traits.rs │ │ │ ├── exhaustive/ │ │ │ │ └── mod.rs │ │ │ ├── factorization/ │ │ │ │ ├── factor.rs │ │ │ │ ├── is_power.rs │ │ │ │ ├── is_prime.rs │ │ │ │ ├── is_square.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── prime_sieve.rs │ │ │ │ ├── primes.rs │ │ │ │ ├── primitive_root_prime.rs │ │ │ │ └── traits.rs │ │ │ ├── float/ │ │ │ │ └── mod.rs │ │ │ ├── iterators/ │ │ │ │ └── mod.rs │ │ │ ├── logic/ │ │ │ │ ├── bit_access.rs │ │ │ │ ├── bit_block_access.rs │ │ │ │ ├── bit_convertible.rs │ │ │ │ ├── bit_iterable.rs │ │ │ │ ├── bit_scan.rs │ │ │ │ ├── count_ones.rs │ │ │ │ ├── count_zeros.rs │ │ │ │ ├── hamming_distance.rs │ │ │ │ ├── leading_zeros.rs │ │ │ │ ├── low_mask.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── not.rs │ │ │ │ ├── significant_bits.rs │ │ │ │ ├── trailing_zeros.rs │ │ │ │ └── traits.rs │ │ │ ├── macros.rs │ │ │ ├── mod.rs │ │ │ └── random/ │ │ │ ├── geometric.rs │ │ │ ├── mod.rs │ │ │ └── striped.rs │ │ ├── options/ │ │ │ ├── exhaustive.rs │ │ │ ├── mod.rs │ │ │ └── random.rs │ │ ├── orderings/ │ │ │ ├── exhaustive.rs │ │ │ ├── mod.rs │ │ │ └── random.rs │ │ ├── platform.rs │ │ ├── random/ │ │ │ └── mod.rs │ │ ├── rational_sequences/ │ │ │ ├── access.rs │ │ │ ├── cmp.rs │ │ │ ├── conversion.rs │ │ │ ├── exhaustive.rs │ │ │ ├── mod.rs │ │ │ ├── random.rs │ │ │ └── to_string.rs │ │ ├── rounding_modes/ │ │ │ ├── exhaustive.rs │ │ │ ├── from_str.rs │ │ │ ├── mod.rs │ │ │ ├── neg.rs │ │ │ ├── random.rs │ │ │ └── to_string.rs │ │ ├── sets/ │ │ │ ├── exhaustive.rs │ │ │ ├── mod.rs │ │ │ └── random.rs │ │ ├── slices/ │ │ │ └── mod.rs │ │ ├── strings/ │ │ │ ├── exhaustive.rs │ │ │ ├── mod.rs │ │ │ └── random.rs │ │ ├── test_util/ │ │ │ ├── bench/ │ │ │ │ ├── bucketers.rs │ │ │ │ └── mod.rs │ │ │ ├── common/ │ │ │ │ └── mod.rs │ │ │ ├── extra_variadic/ │ │ │ │ └── mod.rs │ │ │ ├── generators/ │ │ │ │ ├── common.rs │ │ │ │ ├── exhaustive.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── random.rs │ │ │ │ └── special_random.rs │ │ │ ├── hash/ │ │ │ │ └── mod.rs │ │ │ ├── mod.rs │ │ │ ├── num/ │ │ │ │ ├── arithmetic/ │ │ │ │ │ ├── extended_gcd.rs │ │ │ │ │ ├── factorial.rs │ │ │ │ │ ├── kronecker_symbol.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── mod_inverse.rs │ │ │ │ │ ├── mod_mul.rs │ │ │ │ │ ├── mod_pow.rs │ │ │ │ │ ├── mod_power_of_2_inverse.rs │ │ │ │ │ └── primorial.rs │ │ │ │ ├── conversion/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── string/ │ │ │ │ │ ├── from_sci_string.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── to_string.rs │ │ │ │ ├── exhaustive/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── factorization/ │ │ │ │ │ ├── factor.rs │ │ │ │ │ ├── is_prime.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── prime_sieve.rs │ │ │ │ │ └── primes.rs │ │ │ │ ├── float/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── logic/ │ │ │ │ │ ├── bit_block_access.rs │ │ │ │ │ ├── bit_convertible.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── mod.rs │ │ │ │ └── random/ │ │ │ │ ├── geometric.rs │ │ │ │ └── mod.rs │ │ │ ├── rounding_modes/ │ │ │ │ └── mod.rs │ │ │ ├── runner/ │ │ │ │ ├── cmd.rs │ │ │ │ └── mod.rs │ │ │ ├── sets/ │ │ │ │ ├── exhaustive/ │ │ │ │ │ └── mod.rs │ │ │ │ └── mod.rs │ │ │ ├── slices/ │ │ │ │ └── mod.rs │ │ │ ├── stats/ │ │ │ │ ├── common_values_map.rs │ │ │ │ ├── median.rs │ │ │ │ ├── mod.rs │ │ │ │ └── moments.rs │ │ │ └── vecs/ │ │ │ ├── exhaustive/ │ │ │ │ └── mod.rs │ │ │ ├── mod.rs │ │ │ └── random/ │ │ │ └── mod.rs │ │ ├── tuples/ │ │ │ ├── exhaustive.rs │ │ │ ├── mod.rs │ │ │ └── random.rs │ │ ├── unions/ │ │ │ ├── exhaustive.rs │ │ │ ├── mod.rs │ │ │ └── random.rs │ │ └── vecs/ │ │ ├── exhaustive.rs │ │ ├── mod.rs │ │ └── random.rs │ └── tests/ │ ├── bools/ │ │ ├── constants.rs │ │ ├── exhaustive.rs │ │ ├── not_assign.rs │ │ └── random/ │ │ ├── get_weighted_random_bool.rs │ │ ├── random_bools.rs │ │ └── weighted_random_bools.rs │ ├── chars/ │ │ ├── char_type.rs │ │ ├── constants.rs │ │ ├── crement/ │ │ │ ├── char_to_contiguous_range.rs │ │ │ ├── contiguous_range_to_char.rs │ │ │ └── crement.rs │ │ ├── exhaustive/ │ │ │ ├── ascii_chars_increasing.rs │ │ │ ├── chars_increasing.rs │ │ │ ├── exhaustive_ascii_chars.rs │ │ │ └── exhaustive_chars.rs │ │ ├── is_graphic.rs │ │ └── random/ │ │ ├── graphic_weighted_random_ascii_chars.rs │ │ ├── graphic_weighted_random_char_inclusive_range.rs │ │ ├── graphic_weighted_random_char_range.rs │ │ ├── graphic_weighted_random_chars.rs │ │ ├── random_ascii_chars.rs │ │ ├── random_char_inclusive_range.rs │ │ ├── random_char_range.rs │ │ └── random_chars.rs │ ├── comparison/ │ │ └── macros.rs │ ├── extra_variadic/ │ │ └── mod.rs │ ├── iterators/ │ │ ├── bit_distributor/ │ │ │ ├── bit_map_as_slice.rs │ │ │ ├── get_output.rs │ │ │ ├── increment_counter.rs │ │ │ ├── new.rs │ │ │ └── set_max_bits.rs │ │ ├── comparison/ │ │ │ ├── delta_directions.rs │ │ │ ├── is_strictly_ascending.rs │ │ │ ├── is_strictly_descending.rs │ │ │ ├── is_strictly_zigzagging.rs │ │ │ ├── is_weakly_ascending.rs │ │ │ ├── is_weakly_descending.rs │ │ │ └── is_weakly_zigzagging.rs │ │ ├── count_is_at_least.rs │ │ ├── count_is_at_most.rs │ │ ├── first_and_last.rs │ │ ├── is_constant.rs │ │ ├── is_unique.rs │ │ ├── iter_windows.rs │ │ ├── iterator_cache.rs │ │ ├── matching_intervals_in_iterator.rs │ │ ├── nonzero_values.rs │ │ ├── prefix_to_string.rs │ │ ├── thue_morse_sequence.rs │ │ ├── with_special_value.rs │ │ └── with_special_values.rs │ ├── lib.rs │ ├── named/ │ │ └── mod.rs │ ├── nevers/ │ │ └── nevers.rs │ ├── num/ │ │ ├── arithmetic/ │ │ │ ├── abs.rs │ │ │ ├── abs_diff.rs │ │ │ ├── add_mul.rs │ │ │ ├── arithmetic_checked_shl.rs │ │ │ ├── arithmetic_checked_shr.rs │ │ │ ├── binomial_coefficient.rs │ │ │ ├── ceiling.rs │ │ │ ├── checked_abs.rs │ │ │ ├── checked_add_mul.rs │ │ │ ├── checked_neg.rs │ │ │ ├── checked_pow.rs │ │ │ ├── checked_square.rs │ │ │ ├── checked_sub_mul.rs │ │ │ ├── coprime_with.rs │ │ │ ├── div_exact.rs │ │ │ ├── div_mod.rs │ │ │ ├── div_round.rs │ │ │ ├── divisible_by.rs │ │ │ ├── divisible_by_power_of_2.rs │ │ │ ├── eq_mod.rs │ │ │ ├── eq_mod_power_of_2.rs │ │ │ ├── extended_gcd.rs │ │ │ ├── factorial.rs │ │ │ ├── floor.rs │ │ │ ├── gcd.rs │ │ │ ├── is_power_of_2.rs │ │ │ ├── kronecker_symbol.rs │ │ │ ├── lcm.rs │ │ │ ├── log_base.rs │ │ │ ├── log_base_2.rs │ │ │ ├── log_base_power_of_2.rs │ │ │ ├── mod_add.rs │ │ │ ├── mod_inverse.rs │ │ │ ├── mod_is_reduced.rs │ │ │ ├── mod_mul.rs │ │ │ ├── mod_neg.rs │ │ │ ├── mod_op.rs │ │ │ ├── mod_pow.rs │ │ │ ├── mod_power_of_2.rs │ │ │ ├── mod_power_of_2_add.rs │ │ │ ├── mod_power_of_2_inverse.rs │ │ │ ├── mod_power_of_2_is_reduced.rs │ │ │ ├── mod_power_of_2_mul.rs │ │ │ ├── mod_power_of_2_neg.rs │ │ │ ├── mod_power_of_2_pow.rs │ │ │ ├── mod_power_of_2_shl.rs │ │ │ ├── mod_power_of_2_shr.rs │ │ │ ├── mod_power_of_2_square.rs │ │ │ ├── mod_power_of_2_sub.rs │ │ │ ├── mod_shl.rs │ │ │ ├── mod_shr.rs │ │ │ ├── mod_square.rs │ │ │ ├── mod_sub.rs │ │ │ ├── neg.rs │ │ │ ├── next_power_of_2.rs │ │ │ ├── overflowing_abs.rs │ │ │ ├── overflowing_add.rs │ │ │ ├── overflowing_add_mul.rs │ │ │ ├── overflowing_div.rs │ │ │ ├── overflowing_mul.rs │ │ │ ├── overflowing_neg.rs │ │ │ ├── overflowing_pow.rs │ │ │ ├── overflowing_square.rs │ │ │ ├── overflowing_sub.rs │ │ │ ├── overflowing_sub_mul.rs │ │ │ ├── parity.rs │ │ │ ├── pow.rs │ │ │ ├── power_of_2.rs │ │ │ ├── primorial.rs │ │ │ ├── reciprocal.rs │ │ │ ├── root.rs │ │ │ ├── rotate.rs │ │ │ ├── round_to_multiple.rs │ │ │ ├── round_to_multiple_of_power_of_2.rs │ │ │ ├── saturating_abs.rs │ │ │ ├── saturating_add.rs │ │ │ ├── saturating_add_mul.rs │ │ │ ├── saturating_mul.rs │ │ │ ├── saturating_neg.rs │ │ │ ├── saturating_pow.rs │ │ │ ├── saturating_square.rs │ │ │ ├── saturating_sub.rs │ │ │ ├── saturating_sub_mul.rs │ │ │ ├── shl_round.rs │ │ │ ├── shr_round.rs │ │ │ ├── sign.rs │ │ │ ├── sqrt.rs │ │ │ ├── square.rs │ │ │ ├── sub_mul.rs │ │ │ ├── wrapping_abs.rs │ │ │ ├── wrapping_add.rs │ │ │ ├── wrapping_add_mul.rs │ │ │ ├── wrapping_div.rs │ │ │ ├── wrapping_mul.rs │ │ │ ├── wrapping_neg.rs │ │ │ ├── wrapping_pow.rs │ │ │ ├── wrapping_square.rs │ │ │ ├── wrapping_sub.rs │ │ │ ├── wrapping_sub_mul.rs │ │ │ ├── x_mul_y_to_zz.rs │ │ │ ├── xx_add_yy_to_zz.rs │ │ │ ├── xx_div_mod_y_to_qr.rs │ │ │ ├── xx_sub_yy_to_zz.rs │ │ │ ├── xxx_add_yyy_to_zzz.rs │ │ │ ├── xxx_sub_yyy_to_zzz.rs │ │ │ └── xxxx_add_yyyy_to_zzzz.rs │ │ ├── basic/ │ │ │ └── constants.rs │ │ ├── comparison/ │ │ │ ├── cmp_abs.rs │ │ │ └── eq_abs.rs │ │ ├── conversion/ │ │ │ ├── digits/ │ │ │ │ ├── general_digits/ │ │ │ │ │ ├── from_digits.rs │ │ │ │ │ └── to_digits.rs │ │ │ │ └── power_of_2_digits/ │ │ │ │ ├── from_power_of_2_digits.rs │ │ │ │ ├── power_of_2_digit_iterable.rs │ │ │ │ └── to_power_of_2_digits.rs │ │ │ ├── froms/ │ │ │ │ ├── convertible_from.rs │ │ │ │ ├── from.rs │ │ │ │ ├── overflowing_from.rs │ │ │ │ ├── rounding_from.rs │ │ │ │ ├── saturating_from.rs │ │ │ │ ├── try_from_and_exact_from.rs │ │ │ │ └── wrapping_from.rs │ │ │ ├── half/ │ │ │ │ ├── join_halves.rs │ │ │ │ ├── lower_half.rs │ │ │ │ ├── split_in_half.rs │ │ │ │ └── upper_half.rs │ │ │ ├── is_integer.rs │ │ │ ├── mantissa_and_exponent/ │ │ │ │ ├── integer_mantissa_and_exponent.rs │ │ │ │ ├── raw_mantissa_and_exponent.rs │ │ │ │ └── sci_mantissa_and_exponent.rs │ │ │ ├── slice/ │ │ │ │ ├── from_other_type_slice.rs │ │ │ │ ├── vec_from_other_type.rs │ │ │ │ └── vec_from_other_type_slice.rs │ │ │ └── string/ │ │ │ ├── from_sci_string.rs │ │ │ ├── from_string.rs │ │ │ ├── options/ │ │ │ │ ├── from_sci_string_options.rs │ │ │ │ └── to_sci_options.rs │ │ │ ├── to_sci.rs │ │ │ └── to_string.rs │ │ ├── exhaustive/ │ │ │ ├── exhaustive_finite_primitive_floats.rs │ │ │ ├── exhaustive_natural_signeds.rs │ │ │ ├── exhaustive_negative_finite_primitive_floats.rs │ │ │ ├── exhaustive_negative_primitive_floats.rs │ │ │ ├── exhaustive_negative_signeds.rs │ │ │ ├── exhaustive_nonzero_finite_primitive_floats.rs │ │ │ ├── exhaustive_nonzero_finite_primitive_floats_in_range.rs │ │ │ ├── exhaustive_nonzero_primitive_floats.rs │ │ │ ├── exhaustive_nonzero_signeds.rs │ │ │ ├── exhaustive_positive_finite_primitive_floats.rs │ │ │ ├── exhaustive_positive_finite_primitive_floats_in_range.rs │ │ │ ├── exhaustive_positive_primitive_floats.rs │ │ │ ├── exhaustive_positive_primitive_ints.rs │ │ │ ├── exhaustive_primitive_float_inclusive_range.rs │ │ │ ├── exhaustive_primitive_float_range.rs │ │ │ ├── exhaustive_primitive_floats.rs │ │ │ ├── exhaustive_primitive_floats_with_sci_exponent.rs │ │ │ ├── exhaustive_primitive_floats_with_sci_exponent_and_precision.rs │ │ │ ├── exhaustive_primitive_floats_with_sci_exponent_and_precision_in_range.rs │ │ │ ├── exhaustive_primitive_floats_with_sci_exponent_in_range.rs │ │ │ ├── exhaustive_signed_inclusive_range.rs │ │ │ ├── exhaustive_signed_range.rs │ │ │ ├── exhaustive_signeds.rs │ │ │ ├── exhaustive_unsigneds.rs │ │ │ ├── finite_primitive_floats_increasing.rs │ │ │ ├── negative_finite_primitive_floats_increasing.rs │ │ │ ├── negative_primitive_floats_increasing.rs │ │ │ ├── nonzero_finite_primitive_floats_increasing.rs │ │ │ ├── nonzero_primitive_floats_increasing.rs │ │ │ ├── positive_finite_primitive_floats_increasing.rs │ │ │ ├── positive_primitive_floats_increasing.rs │ │ │ ├── primitive_float_increasing_inclusive_range.rs │ │ │ ├── primitive_float_increasing_range.rs │ │ │ ├── primitive_floats_increasing.rs │ │ │ ├── primitive_int_increasing_inclusive_range.rs │ │ │ └── primitive_int_increasing_range.rs │ │ ├── factorization/ │ │ │ ├── factor.rs │ │ │ ├── is_power.rs │ │ │ ├── is_prime.rs │ │ │ ├── is_square.rs │ │ │ ├── prime_indicator_sequence.rs │ │ │ ├── prime_indicator_sequence_less_than.rs │ │ │ ├── prime_sieve.rs │ │ │ ├── primes.rs │ │ │ └── primitive_root_prime.rs │ │ ├── float/ │ │ │ ├── basic/ │ │ │ │ ├── abs_negative_zero.rs │ │ │ │ ├── from_ordered_representation.rs │ │ │ │ ├── is_negative_zero.rs │ │ │ │ ├── max_precision_for_sci_exponent.rs │ │ │ │ ├── next_higher.rs │ │ │ │ ├── next_lower.rs │ │ │ │ ├── precision.rs │ │ │ │ └── to_ordered_representation.rs │ │ │ └── nice_float/ │ │ │ ├── cmp.rs │ │ │ ├── cmp_abs.rs │ │ │ ├── eq.rs │ │ │ ├── eq_abs.rs │ │ │ ├── from_str.rs │ │ │ ├── hash.rs │ │ │ └── to_string.rs │ │ ├── iterators/ │ │ │ ├── bit_distributor_sequence.rs │ │ │ ├── iterator_to_bit_chunks.rs │ │ │ └── ruler_sequence.rs │ │ ├── logic/ │ │ │ ├── bit_access/ │ │ │ │ ├── assign_bit.rs │ │ │ │ ├── clear_bit.rs │ │ │ │ ├── flip_bit.rs │ │ │ │ ├── get_bit.rs │ │ │ │ └── set_bit.rs │ │ │ ├── bit_block_access/ │ │ │ │ ├── assign_bits.rs │ │ │ │ └── get_bits.rs │ │ │ ├── bit_convertible/ │ │ │ │ ├── from_bits.rs │ │ │ │ └── to_bits.rs │ │ │ ├── bit_iterable.rs │ │ │ ├── bit_scan/ │ │ │ │ ├── index_of_next_false_bit.rs │ │ │ │ └── index_of_next_true_bit.rs │ │ │ ├── get_highest_bit.rs │ │ │ ├── hamming_distance.rs │ │ │ ├── low_mask.rs │ │ │ ├── not_assign.rs │ │ │ └── significant_bits.rs │ │ └── random/ │ │ ├── geometric/ │ │ │ ├── geometric_random_natural_signeds.rs │ │ │ ├── geometric_random_negative_signeds.rs │ │ │ ├── geometric_random_nonzero_signeds.rs │ │ │ ├── geometric_random_positive_signeds.rs │ │ │ ├── geometric_random_positive_unsigneds.rs │ │ │ ├── geometric_random_signed_inclusive_range.rs │ │ │ ├── geometric_random_signed_range.rs │ │ │ ├── geometric_random_signeds.rs │ │ │ ├── geometric_random_unsigned_inclusive_range.rs │ │ │ ├── geometric_random_unsigned_range.rs │ │ │ ├── geometric_random_unsigneds.rs │ │ │ ├── get_geometric_random_signed_from_inclusive_range.rs │ │ │ └── mean.rs │ │ ├── random_finite_primitive_floats.rs │ │ ├── random_highest_bit_set_unsigneds.rs │ │ ├── random_natural_signeds.rs │ │ ├── random_negative_finite_primitive_floats.rs │ │ ├── random_negative_primitive_floats.rs │ │ ├── random_negative_signeds.rs │ │ ├── random_nonzero_finite_primitive_floats.rs │ │ ├── random_nonzero_primitive_floats.rs │ │ ├── random_nonzero_signeds.rs │ │ ├── random_positive_finite_primitive_floats.rs │ │ ├── random_positive_primitive_floats.rs │ │ ├── random_positive_signeds.rs │ │ ├── random_positive_unsigneds.rs │ │ ├── random_primitive_float_inclusive_range.rs │ │ ├── random_primitive_float_range.rs │ │ ├── random_primitive_floats.rs │ │ ├── random_primitive_ints.rs │ │ ├── random_signed_bit_chunks.rs │ │ ├── random_signed_inclusive_range.rs │ │ ├── random_signed_range.rs │ │ ├── random_unsigned_bit_chunks.rs │ │ ├── random_unsigned_inclusive_range.rs │ │ ├── random_unsigned_range.rs │ │ ├── random_unsigneds_less_than.rs │ │ ├── special_random_finite_primitive_floats.rs │ │ ├── special_random_negative_finite_primitive_floats.rs │ │ ├── special_random_negative_primitive_floats.rs │ │ ├── special_random_nonzero_finite_primitive_floats.rs │ │ ├── special_random_nonzero_primitive_floats.rs │ │ ├── special_random_positive_finite_primitive_floats.rs │ │ ├── special_random_positive_primitive_floats.rs │ │ ├── special_random_primitive_float_inclusive_range.rs │ │ ├── special_random_primitive_float_range.rs │ │ ├── special_random_primitive_floats.rs │ │ ├── striped/ │ │ │ ├── get_striped_bool_vec.rs │ │ │ ├── get_striped_unsigned_vec.rs │ │ │ ├── striped_bit_source.rs │ │ │ ├── striped_random_bool_vecs.rs │ │ │ ├── striped_random_bool_vecs_from_length_iterator.rs │ │ │ ├── striped_random_bool_vecs_length_inclusive_range.rs │ │ │ ├── striped_random_bool_vecs_length_range.rs │ │ │ ├── striped_random_bool_vecs_min_length.rs │ │ │ ├── striped_random_fixed_length_bool_vecs.rs │ │ │ ├── striped_random_fixed_length_unsigned_vecs.rs │ │ │ ├── striped_random_natural_signeds.rs │ │ │ ├── striped_random_negative_signeds.rs │ │ │ ├── striped_random_nonzero_signeds.rs │ │ │ ├── striped_random_positive_signeds.rs │ │ │ ├── striped_random_positive_unsigneds.rs │ │ │ ├── striped_random_signed_inclusive_range.rs │ │ │ ├── striped_random_signed_range.rs │ │ │ ├── striped_random_signeds.rs │ │ │ ├── striped_random_unsigned_bit_chunks.rs │ │ │ ├── striped_random_unsigned_inclusive_range.rs │ │ │ ├── striped_random_unsigned_range.rs │ │ │ ├── striped_random_unsigned_vecs.rs │ │ │ ├── striped_random_unsigned_vecs_from_length_iterator.rs │ │ │ ├── striped_random_unsigned_vecs_length_inclusive_range.rs │ │ │ ├── striped_random_unsigned_vecs_length_range.rs │ │ │ ├── striped_random_unsigned_vecs_min_length.rs │ │ │ └── striped_random_unsigneds.rs │ │ └── variable_range_generator/ │ │ ├── next_bit_chunk.rs │ │ ├── next_bool.rs │ │ ├── next_in_inclusive_range.rs │ │ ├── next_in_range.rs │ │ └── next_less_than.rs │ ├── options/ │ │ ├── exhaustive/ │ │ │ ├── exhaustive_options.rs │ │ │ └── exhaustive_somes.rs │ │ ├── option_from_str.rs │ │ └── random/ │ │ ├── random_options.rs │ │ └── random_somes.rs │ ├── orderings/ │ │ ├── exhaustive.rs │ │ ├── ordering_from_str.rs │ │ └── random.rs │ ├── random/ │ │ ├── fork.rs │ │ ├── from_bytes.rs │ │ ├── get_rng.rs │ │ └── next.rs │ ├── rational_sequences/ │ │ ├── access/ │ │ │ ├── get.rs │ │ │ └── mutate.rs │ │ ├── basic/ │ │ │ ├── component_len.rs │ │ │ ├── is_empty.rs │ │ │ ├── is_finite.rs │ │ │ ├── iter.rs │ │ │ └── len.rs │ │ ├── comparison/ │ │ │ ├── cmp.rs │ │ │ ├── eq.rs │ │ │ └── hash.rs │ │ ├── conversion/ │ │ │ ├── clone.rs │ │ │ ├── from_vec.rs │ │ │ ├── from_vecs.rs │ │ │ └── to_vecs.rs │ │ ├── exhaustive.rs │ │ ├── random.rs │ │ └── to_string.rs │ ├── rounding_modes/ │ │ ├── clone.rs │ │ ├── cmp.rs │ │ ├── eq.rs │ │ ├── exhaustive.rs │ │ ├── from_str.rs │ │ ├── hash.rs │ │ ├── neg.rs │ │ ├── random.rs │ │ ├── size.rs │ │ └── to_string.rs │ ├── sets/ │ │ ├── exhaustive/ │ │ │ ├── exhaustive_b_tree_sets.rs │ │ │ ├── exhaustive_b_tree_sets_fixed_length.rs │ │ │ ├── exhaustive_b_tree_sets_length_inclusive_range.rs │ │ │ ├── exhaustive_b_tree_sets_length_range.rs │ │ │ ├── exhaustive_b_tree_sets_min_length.rs │ │ │ ├── exhaustive_hash_sets.rs │ │ │ ├── exhaustive_hash_sets_fixed_length.rs │ │ │ ├── exhaustive_hash_sets_length_inclusive_range.rs │ │ │ ├── exhaustive_hash_sets_length_range.rs │ │ │ ├── exhaustive_hash_sets_min_length.rs │ │ │ ├── lex_b_tree_sets.rs │ │ │ ├── lex_b_tree_sets_fixed_length.rs │ │ │ ├── lex_b_tree_sets_length_inclusive_range.rs │ │ │ ├── lex_b_tree_sets_length_range.rs │ │ │ ├── lex_b_tree_sets_min_length.rs │ │ │ ├── lex_hash_sets.rs │ │ │ ├── lex_hash_sets_fixed_length.rs │ │ │ ├── lex_hash_sets_length_inclusive_range.rs │ │ │ ├── lex_hash_sets_length_range.rs │ │ │ ├── lex_hash_sets_min_length.rs │ │ │ ├── shortlex_b_tree_sets.rs │ │ │ ├── shortlex_b_tree_sets_length_inclusive_range.rs │ │ │ ├── shortlex_b_tree_sets_length_range.rs │ │ │ ├── shortlex_b_tree_sets_min_length.rs │ │ │ ├── shortlex_hash_sets.rs │ │ │ ├── shortlex_hash_sets_length_inclusive_range.rs │ │ │ ├── shortlex_hash_sets_length_range.rs │ │ │ └── shortlex_hash_sets_min_length.rs │ │ └── random/ │ │ ├── random_b_tree_sets.rs │ │ ├── random_b_tree_sets_fixed_length.rs │ │ ├── random_b_tree_sets_from_length_iterator.rs │ │ ├── random_b_tree_sets_length_inclusive_range.rs │ │ ├── random_b_tree_sets_length_range.rs │ │ ├── random_b_tree_sets_min_length.rs │ │ ├── random_hash_sets.rs │ │ ├── random_hash_sets_fixed_length.rs │ │ ├── random_hash_sets_from_length_iterator.rs │ │ ├── random_hash_sets_length_inclusive_range.rs │ │ ├── random_hash_sets_length_range.rs │ │ └── random_hash_sets_min_length.rs │ ├── slices/ │ │ ├── exhaustive_slice_permutations.rs │ │ ├── min_repeating_len.rs │ │ ├── random_slice_permutations.rs │ │ ├── random_values_from_slice.rs │ │ ├── slice_leading_zeros.rs │ │ ├── slice_move_left.rs │ │ ├── slice_set_zero.rs │ │ ├── slice_test_zero.rs │ │ ├── slice_trailing_zeros.rs │ │ └── split_into_chunks.rs │ ├── strings/ │ │ ├── exhaustive/ │ │ │ ├── exhaustive_fixed_length_strings.rs │ │ │ ├── exhaustive_fixed_length_strings_using_chars.rs │ │ │ ├── exhaustive_strings.rs │ │ │ ├── exhaustive_strings_using_chars.rs │ │ │ ├── lex_fixed_length_strings.rs │ │ │ ├── lex_fixed_length_strings_using_chars.rs │ │ │ ├── shortlex_strings.rs │ │ │ └── shortlex_strings_using_chars.rs │ │ ├── random/ │ │ │ ├── random_fixed_length_strings.rs │ │ │ ├── random_fixed_length_strings_using_chars.rs │ │ │ ├── random_strings.rs │ │ │ └── random_strings_using_chars.rs │ │ ├── string_is_subset.rs │ │ ├── string_sort.rs │ │ ├── string_unique.rs │ │ ├── strings_from_char_vecs.rs │ │ ├── to_binary_string.rs │ │ ├── to_debug_string.rs │ │ ├── to_lower_hex_string.rs │ │ ├── to_octal_string.rs │ │ └── to_upper_hex_string.rs │ ├── tuples/ │ │ ├── exhaustive/ │ │ │ ├── exhaustive_custom_tuples.rs │ │ │ ├── exhaustive_dependent_pairs.rs │ │ │ ├── exhaustive_ordered_unique_tuples.rs │ │ │ ├── exhaustive_tuples_1_input.rs │ │ │ ├── exhaustive_tuples_custom_output.rs │ │ │ ├── exhaustive_tuples_from_single.rs │ │ │ ├── exhaustive_unique_tuples.rs │ │ │ ├── exhaustive_units.rs │ │ │ ├── lex_custom_tuples.rs │ │ │ ├── lex_dependent_pairs.rs │ │ │ ├── lex_ordered_unique_tuples.rs │ │ │ ├── lex_tuples.rs │ │ │ ├── lex_tuples_from_single.rs │ │ │ └── lex_unique_tuples.rs │ │ ├── random/ │ │ │ ├── random_custom_tuples.rs │ │ │ ├── random_ordered_unique_tuples.rs │ │ │ ├── random_tuples.rs │ │ │ ├── random_tuples_from_single.rs │ │ │ ├── random_unique_tuples.rs │ │ │ └── random_units.rs │ │ └── singletons.rs │ ├── unions/ │ │ ├── clone.rs │ │ ├── debug.rs │ │ ├── display.rs │ │ ├── eq.rs │ │ ├── exhaustive/ │ │ │ ├── exhaustive_unions.rs │ │ │ └── lex_unions.rs │ │ ├── from_str.rs │ │ ├── ord.rs │ │ ├── random/ │ │ │ └── random_unions.rs │ │ └── unwrap.rs │ └── vecs/ │ ├── exhaustive/ │ │ ├── exhaustive_combined_k_compositions.rs │ │ ├── exhaustive_ordered_unique_vecs.rs │ │ ├── exhaustive_ordered_unique_vecs_fixed_length.rs │ │ ├── exhaustive_ordered_unique_vecs_length_inclusive_range.rs │ │ ├── exhaustive_ordered_unique_vecs_length_range.rs │ │ ├── exhaustive_ordered_unique_vecs_min_length.rs │ │ ├── exhaustive_unique_vecs.rs │ │ ├── exhaustive_unique_vecs_fixed_length.rs │ │ ├── exhaustive_unique_vecs_length_inclusive_range.rs │ │ ├── exhaustive_unique_vecs_length_range.rs │ │ ├── exhaustive_unique_vecs_min_length.rs │ │ ├── exhaustive_vecs.rs │ │ ├── exhaustive_vecs_fixed_length_from_single.rs │ │ ├── exhaustive_vecs_fixed_length_m_inputs.rs │ │ ├── exhaustive_vecs_from_length_iterator.rs │ │ ├── exhaustive_vecs_length_inclusive_range.rs │ │ ├── exhaustive_vecs_length_n.rs │ │ ├── exhaustive_vecs_length_range.rs │ │ ├── exhaustive_vecs_min_length.rs │ │ ├── lex_k_compositions.rs │ │ ├── lex_ordered_unique_vecs.rs │ │ ├── lex_ordered_unique_vecs_fixed_length.rs │ │ ├── lex_ordered_unique_vecs_length_inclusive_range.rs │ │ ├── lex_ordered_unique_vecs_length_range.rs │ │ ├── lex_ordered_unique_vecs_min_length.rs │ │ ├── lex_unique_vecs.rs │ │ ├── lex_unique_vecs_fixed_length.rs │ │ ├── lex_unique_vecs_length_inclusive_range.rs │ │ ├── lex_unique_vecs_length_range.rs │ │ ├── lex_unique_vecs_min_length.rs │ │ ├── lex_vecs_fixed_length_from_single.rs │ │ ├── lex_vecs_fixed_length_m_inputs.rs │ │ ├── lex_vecs_length_n.rs │ │ ├── next_bit_pattern.rs │ │ ├── shortlex_ordered_unique_vecs.rs │ │ ├── shortlex_ordered_unique_vecs_length_inclusive_range.rs │ │ ├── shortlex_ordered_unique_vecs_length_range.rs │ │ ├── shortlex_ordered_unique_vecs_min_length.rs │ │ ├── shortlex_unique_vecs.rs │ │ ├── shortlex_unique_vecs_length_inclusive_range.rs │ │ ├── shortlex_unique_vecs_length_range.rs │ │ ├── shortlex_unique_vecs_min_length.rs │ │ ├── shortlex_vecs.rs │ │ ├── shortlex_vecs_from_length_iterator.rs │ │ ├── shortlex_vecs_length_inclusive_range.rs │ │ ├── shortlex_vecs_length_range.rs │ │ └── shortlex_vecs_min_length.rs │ ├── exhaustive_vec_permutations.rs │ ├── random/ │ │ ├── random_ordered_unique_vecs.rs │ │ ├── random_ordered_unique_vecs_fixed_length.rs │ │ ├── random_ordered_unique_vecs_from_length_iterator.rs │ │ ├── random_ordered_unique_vecs_length_inclusive_range.rs │ │ ├── random_ordered_unique_vecs_length_range.rs │ │ ├── random_ordered_unique_vecs_min_length.rs │ │ ├── random_unique_vecs.rs │ │ ├── random_unique_vecs_fixed_length.rs │ │ ├── random_unique_vecs_from_length_iterator.rs │ │ ├── random_unique_vecs_length_inclusive_range.rs │ │ ├── random_unique_vecs_length_range.rs │ │ ├── random_unique_vecs_min_length.rs │ │ ├── random_vecs.rs │ │ ├── random_vecs_fixed_length.rs │ │ ├── random_vecs_fixed_length_from_single.rs │ │ ├── random_vecs_fixed_length_m_inputs.rs │ │ ├── random_vecs_from_length_iterator.rs │ │ ├── random_vecs_length_inclusive_range.rs │ │ ├── random_vecs_length_range.rs │ │ └── random_vecs_min_length.rs │ ├── random_values_from_vec.rs │ ├── random_vec_permutations.rs │ ├── vec_delete_left.rs │ ├── vec_from_str.rs │ └── vec_pad_left.rs ├── malachite-bigint/ │ ├── Cargo.toml │ ├── README.md │ └── src/ │ ├── bigint.rs │ ├── biguint.rs │ ├── error.rs │ ├── iter.rs │ ├── lib.rs │ ├── macros.rs │ └── num_bigint_conversion.rs ├── malachite-criterion-bench/ │ ├── Cargo.toml │ └── benches/ │ ├── bin.rs │ ├── natural_div.rs │ └── natural_mul.rs ├── malachite-float/ │ ├── Cargo.toml │ ├── README.md │ ├── katex-header.html │ ├── rustfmt.toml │ ├── src/ │ │ ├── arithmetic/ │ │ │ ├── abs.rs │ │ │ ├── add.rs │ │ │ ├── agm.rs │ │ │ ├── div.rs │ │ │ ├── is_power_of_2.rs │ │ │ ├── ln.rs │ │ │ ├── mod.rs │ │ │ ├── mul.rs │ │ │ ├── neg.rs │ │ │ ├── power_of_2.rs │ │ │ ├── reciprocal.rs │ │ │ ├── reciprocal_sqrt.rs │ │ │ ├── shl.rs │ │ │ ├── shl_round.rs │ │ │ ├── shr.rs │ │ │ ├── shr_round.rs │ │ │ ├── sign.rs │ │ │ ├── sqrt.rs │ │ │ ├── square.rs │ │ │ └── sub.rs │ │ ├── basic/ │ │ │ ├── classification.rs │ │ │ ├── complexity.rs │ │ │ ├── constants.rs │ │ │ ├── extended.rs │ │ │ ├── get_and_set.rs │ │ │ ├── mod.rs │ │ │ └── ulp.rs │ │ ├── bin.rs │ │ ├── bin_util/ │ │ │ └── demo_and_bench/ │ │ │ ├── arithmetic/ │ │ │ │ ├── abs.rs │ │ │ │ ├── add.rs │ │ │ │ ├── agm.rs │ │ │ │ ├── div.rs │ │ │ │ ├── is_power_of_2.rs │ │ │ │ ├── ln.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── mul.rs │ │ │ │ ├── neg.rs │ │ │ │ ├── power_of_2.rs │ │ │ │ ├── reciprocal.rs │ │ │ │ ├── reciprocal_sqrt.rs │ │ │ │ ├── shl.rs │ │ │ │ ├── shl_round.rs │ │ │ │ ├── shr.rs │ │ │ │ ├── shr_round.rs │ │ │ │ ├── sign.rs │ │ │ │ ├── sqrt.rs │ │ │ │ ├── square.rs │ │ │ │ └── sub.rs │ │ │ ├── basic/ │ │ │ │ ├── classification.rs │ │ │ │ ├── complexity.rs │ │ │ │ ├── constants.rs │ │ │ │ ├── get_and_set.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── overflow_and_underflow.rs │ │ │ │ └── ulp.rs │ │ │ ├── comparison/ │ │ │ │ ├── cmp.rs │ │ │ │ ├── cmp_abs.rs │ │ │ │ ├── eq.rs │ │ │ │ ├── eq_abs.rs │ │ │ │ ├── eq_abs_integer.rs │ │ │ │ ├── eq_abs_natural.rs │ │ │ │ ├── eq_abs_primitive_float.rs │ │ │ │ ├── eq_abs_primitive_int.rs │ │ │ │ ├── eq_abs_rational.rs │ │ │ │ ├── hash.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── partial_cmp_abs_integer.rs │ │ │ │ ├── partial_cmp_abs_natural.rs │ │ │ │ ├── partial_cmp_abs_primitive_float.rs │ │ │ │ ├── partial_cmp_abs_primitive_int.rs │ │ │ │ ├── partial_cmp_abs_rational.rs │ │ │ │ ├── partial_cmp_integer.rs │ │ │ │ ├── partial_cmp_natural.rs │ │ │ │ ├── partial_cmp_primitive_float.rs │ │ │ │ ├── partial_cmp_primitive_int.rs │ │ │ │ ├── partial_cmp_rational.rs │ │ │ │ ├── partial_eq_integer.rs │ │ │ │ ├── partial_eq_natural.rs │ │ │ │ ├── partial_eq_primitive_float.rs │ │ │ │ ├── partial_eq_primitive_int.rs │ │ │ │ └── partial_eq_rational.rs │ │ │ ├── constants/ │ │ │ │ ├── gauss_constant.rs │ │ │ │ ├── lemniscate_constant.rs │ │ │ │ ├── ln_2.rs │ │ │ │ ├── log_2_e.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── one_over_pi.rs │ │ │ │ ├── one_over_sqrt_pi.rs │ │ │ │ ├── one_over_sqrt_tau.rs │ │ │ │ ├── phi.rs │ │ │ │ ├── pi.rs │ │ │ │ ├── pi_over_2.rs │ │ │ │ ├── pi_over_3.rs │ │ │ │ ├── pi_over_4.rs │ │ │ │ ├── pi_over_6.rs │ │ │ │ ├── pi_over_8.rs │ │ │ │ ├── prime_constant.rs │ │ │ │ ├── prouhet_thue_morse_constant.rs │ │ │ │ ├── sqrt_2.rs │ │ │ │ ├── sqrt_2_over_2.rs │ │ │ │ ├── sqrt_3.rs │ │ │ │ ├── sqrt_3_over_3.rs │ │ │ │ ├── sqrt_pi.rs │ │ │ │ ├── tau.rs │ │ │ │ ├── two_over_pi.rs │ │ │ │ └── two_over_sqrt_pi.rs │ │ │ ├── conversion/ │ │ │ │ ├── clone.rs │ │ │ │ ├── from_integer.rs │ │ │ │ ├── from_natural.rs │ │ │ │ ├── from_primitive_float.rs │ │ │ │ ├── from_primitive_int.rs │ │ │ │ ├── from_rational.rs │ │ │ │ ├── integer_from_float.rs │ │ │ │ ├── integer_mantissa_and_exponent.rs │ │ │ │ ├── is_integer.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── natural_from_float.rs │ │ │ │ ├── primitive_float_from_float.rs │ │ │ │ ├── primitive_int_from_float.rs │ │ │ │ ├── rational_from_float.rs │ │ │ │ ├── raw_mantissa_and_exponent.rs │ │ │ │ ├── sci_mantissa_and_exponent.rs │ │ │ │ └── string/ │ │ │ │ ├── mod.rs │ │ │ │ └── to_string.rs │ │ │ └── mod.rs │ │ ├── comparison/ │ │ │ ├── cmp.rs │ │ │ ├── cmp_abs.rs │ │ │ ├── eq.rs │ │ │ ├── eq_abs.rs │ │ │ ├── eq_abs_integer.rs │ │ │ ├── eq_abs_natural.rs │ │ │ ├── eq_abs_primitive_float.rs │ │ │ ├── eq_abs_primitive_int.rs │ │ │ ├── eq_abs_rational.rs │ │ │ ├── hash.rs │ │ │ ├── mod.rs │ │ │ ├── partial_cmp_abs_integer.rs │ │ │ ├── partial_cmp_abs_natural.rs │ │ │ ├── partial_cmp_abs_primitive_float.rs │ │ │ ├── partial_cmp_abs_primitive_int.rs │ │ │ ├── partial_cmp_abs_rational.rs │ │ │ ├── partial_cmp_integer.rs │ │ │ ├── partial_cmp_natural.rs │ │ │ ├── partial_cmp_primitive_float.rs │ │ │ ├── partial_cmp_primitive_int.rs │ │ │ ├── partial_cmp_rational.rs │ │ │ ├── partial_eq_integer.rs │ │ │ ├── partial_eq_natural.rs │ │ │ ├── partial_eq_primitive_float.rs │ │ │ ├── partial_eq_primitive_int.rs │ │ │ └── partial_eq_rational.rs │ │ ├── constants/ │ │ │ ├── gauss_constant.rs │ │ │ ├── lemniscate_constant.rs │ │ │ ├── ln_2.rs │ │ │ ├── log_2_e.rs │ │ │ ├── mod.rs │ │ │ ├── one_over_pi.rs │ │ │ ├── one_over_sqrt_pi.rs │ │ │ ├── one_over_sqrt_tau.rs │ │ │ ├── phi.rs │ │ │ ├── pi.rs │ │ │ ├── pi_over_2.rs │ │ │ ├── pi_over_3.rs │ │ │ ├── pi_over_4.rs │ │ │ ├── pi_over_6.rs │ │ │ ├── pi_over_8.rs │ │ │ ├── prime_constant.rs │ │ │ ├── prouhet_thue_morse_constant.rs │ │ │ ├── sqrt_2.rs │ │ │ ├── sqrt_2_over_2.rs │ │ │ ├── sqrt_3.rs │ │ │ ├── sqrt_3_over_3.rs │ │ │ ├── sqrt_pi.rs │ │ │ ├── tau.rs │ │ │ ├── two_over_pi.rs │ │ │ └── two_over_sqrt_pi.rs │ │ ├── conversion/ │ │ │ ├── from_bits.rs │ │ │ ├── from_integer.rs │ │ │ ├── from_natural.rs │ │ │ ├── from_primitive_float.rs │ │ │ ├── from_primitive_int.rs │ │ │ ├── from_rational.rs │ │ │ ├── integer_from_float.rs │ │ │ ├── is_integer.rs │ │ │ ├── mantissa_and_exponent.rs │ │ │ ├── mod.rs │ │ │ ├── natural_from_float.rs │ │ │ ├── primitive_float_from_float.rs │ │ │ ├── primitive_int_from_float.rs │ │ │ ├── rational_from_float.rs │ │ │ └── string/ │ │ │ ├── from_string.rs │ │ │ ├── mod.rs │ │ │ └── to_string.rs │ │ ├── exhaustive/ │ │ │ └── mod.rs │ │ ├── lib.rs │ │ ├── random/ │ │ │ └── mod.rs │ │ └── test_util/ │ │ ├── arithmetic/ │ │ │ ├── add.rs │ │ │ ├── agm.rs │ │ │ ├── div.rs │ │ │ ├── ln.rs │ │ │ ├── mod.rs │ │ │ ├── mul.rs │ │ │ ├── power_of_2.rs │ │ │ ├── reciprocal.rs │ │ │ ├── reciprocal_sqrt.rs │ │ │ ├── shl.rs │ │ │ ├── shl_round.rs │ │ │ ├── shr.rs │ │ │ ├── shr_round.rs │ │ │ ├── sqrt.rs │ │ │ ├── square.rs │ │ │ └── sub.rs │ │ ├── bench/ │ │ │ ├── bucketers.rs │ │ │ └── mod.rs │ │ ├── common/ │ │ │ └── mod.rs │ │ ├── comparison/ │ │ │ ├── mod.rs │ │ │ └── partial_cmp_rational.rs │ │ ├── constants/ │ │ │ ├── lemniscate_constant.rs │ │ │ ├── ln_2.rs │ │ │ ├── log_2_e.rs │ │ │ ├── mod.rs │ │ │ ├── one_over_pi.rs │ │ │ ├── one_over_sqrt_pi.rs │ │ │ ├── one_over_sqrt_tau.rs │ │ │ ├── pi.rs │ │ │ ├── pi_over_3.rs │ │ │ ├── prime_constant.rs │ │ │ ├── prouhet_thue_morse_constant.rs │ │ │ ├── sqrt_2.rs │ │ │ ├── sqrt_2_over_2.rs │ │ │ ├── sqrt_3.rs │ │ │ ├── sqrt_3_over_3.rs │ │ │ └── sqrt_pi.rs │ │ ├── conversion/ │ │ │ ├── from_primitive_float.rs │ │ │ └── mod.rs │ │ ├── exhaustive/ │ │ │ └── mod.rs │ │ ├── extra_variadic/ │ │ │ └── mod.rs │ │ ├── generators/ │ │ │ ├── common.rs │ │ │ ├── exhaustive.rs │ │ │ ├── mod.rs │ │ │ ├── random.rs │ │ │ └── special_random.rs │ │ ├── mod.rs │ │ └── random/ │ │ └── mod.rs │ └── tests/ │ ├── arithmetic/ │ │ ├── abs.rs │ │ ├── add.rs │ │ ├── agm.rs │ │ ├── div.rs │ │ ├── is_power_of_2.rs │ │ ├── ln.rs │ │ ├── mul.rs │ │ ├── neg.rs │ │ ├── power_of_2.rs │ │ ├── reciprocal.rs │ │ ├── reciprocal_sqrt.rs │ │ ├── shl.rs │ │ ├── shl_round.rs │ │ ├── shr.rs │ │ ├── shr_round.rs │ │ ├── sign.rs │ │ ├── sqrt.rs │ │ ├── square.rs │ │ └── sub.rs │ ├── basic/ │ │ ├── classification.rs │ │ ├── complexity.rs │ │ ├── constants.rs │ │ ├── get_and_set.rs │ │ ├── named.rs │ │ ├── overflow_and_underflow.rs │ │ ├── size.rs │ │ └── ulp.rs │ ├── comparison/ │ │ ├── cmp.rs │ │ ├── cmp_abs.rs │ │ ├── eq.rs │ │ ├── eq_abs.rs │ │ ├── eq_abs_integer.rs │ │ ├── eq_abs_natural.rs │ │ ├── eq_abs_primitive_float.rs │ │ ├── eq_abs_primitive_int.rs │ │ ├── eq_abs_rational.rs │ │ ├── hash.rs │ │ ├── partial_cmp_abs_integer.rs │ │ ├── partial_cmp_abs_natural.rs │ │ ├── partial_cmp_abs_primitive_float.rs │ │ ├── partial_cmp_abs_primitive_int.rs │ │ ├── partial_cmp_abs_rational.rs │ │ ├── partial_cmp_integer.rs │ │ ├── partial_cmp_natural.rs │ │ ├── partial_cmp_primitive_float.rs │ │ ├── partial_cmp_primitive_int.rs │ │ ├── partial_cmp_rational.rs │ │ ├── partial_eq_integer.rs │ │ ├── partial_eq_natural.rs │ │ ├── partial_eq_primitive_float.rs │ │ ├── partial_eq_primitive_int.rs │ │ └── partial_eq_rational.rs │ ├── constants/ │ │ ├── gauss_constant.rs │ │ ├── lemniscate_constant.rs │ │ ├── ln_2.rs │ │ ├── log_2_e.rs │ │ ├── one_over_pi.rs │ │ ├── one_over_sqrt_pi.rs │ │ ├── one_over_sqrt_tau.rs │ │ ├── phi.rs │ │ ├── pi.rs │ │ ├── pi_over_2.rs │ │ ├── pi_over_3.rs │ │ ├── pi_over_4.rs │ │ ├── pi_over_6.rs │ │ ├── pi_over_8.rs │ │ ├── prime_constant.rs │ │ ├── prouhet_thue_morse_constant.rs │ │ ├── sqrt_2.rs │ │ ├── sqrt_2_over_2.rs │ │ ├── sqrt_3.rs │ │ ├── sqrt_3_over_3.rs │ │ ├── sqrt_pi.rs │ │ ├── tau.rs │ │ ├── two_over_pi.rs │ │ └── two_over_sqrt_pi.rs │ ├── conversion/ │ │ ├── clone.rs │ │ ├── from_integer.rs │ │ ├── from_natural.rs │ │ ├── from_primitive_float.rs │ │ ├── from_primitive_int.rs │ │ ├── from_rational.rs │ │ ├── integer_from_float.rs │ │ ├── is_integer.rs │ │ ├── mantissa_and_exponent.rs │ │ ├── natural_from_float.rs │ │ ├── primitive_float_from_float.rs │ │ ├── primitive_int_from_float.rs │ │ └── rational_from_float.rs │ ├── exhaustive/ │ │ ├── exhaustive_finite_floats.rs │ │ ├── exhaustive_floats.rs │ │ ├── exhaustive_floats_with_precision.rs │ │ ├── exhaustive_negative_finite_floats.rs │ │ ├── exhaustive_non_negative_finite_floats.rs │ │ ├── exhaustive_non_positive_finite_floats.rs │ │ ├── exhaustive_nonzero_finite_floats.rs │ │ ├── exhaustive_positive_finite_floats.rs │ │ ├── exhaustive_positive_floats_with_precision.rs │ │ ├── exhaustive_positive_floats_with_sci_exponent.rs │ │ └── exhaustive_positive_floats_with_sci_exponent_and_precision.rs │ ├── lib.rs │ └── random/ │ ├── random_finite_floats.rs │ ├── random_floats.rs │ ├── random_negative_finite_floats.rs │ ├── random_non_negative_finite_floats.rs │ ├── random_non_positive_finite_floats.rs │ ├── random_nonzero_finite_floats.rs │ ├── random_positive_finite_floats.rs │ ├── random_positive_floats_with_precision.rs │ ├── striped_random_finite_floats.rs │ ├── striped_random_floats.rs │ ├── striped_random_negative_finite_floats.rs │ ├── striped_random_non_negative_finite_floats.rs │ ├── striped_random_non_positive_finite_floats.rs │ ├── striped_random_nonzero_finite_floats.rs │ ├── striped_random_positive_finite_floats.rs │ └── striped_random_positive_floats_with_precision.rs ├── malachite-nz/ │ ├── .gitignore │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ ├── extra-tests.py │ ├── images/ │ │ └── natural-mem-layout.asy │ ├── katex-header.html │ ├── rustfmt.toml │ ├── src/ │ │ ├── bin.rs │ │ ├── bin_util/ │ │ │ ├── demo_and_bench/ │ │ │ │ ├── integer/ │ │ │ │ │ ├── arithmetic/ │ │ │ │ │ │ ├── abs.rs │ │ │ │ │ │ ├── abs_diff.rs │ │ │ │ │ │ ├── add.rs │ │ │ │ │ │ ├── add_mul.rs │ │ │ │ │ │ ├── binomial_coefficient.rs │ │ │ │ │ │ ├── div.rs │ │ │ │ │ │ ├── div_exact.rs │ │ │ │ │ │ ├── div_mod.rs │ │ │ │ │ │ ├── div_round.rs │ │ │ │ │ │ ├── divisible_by.rs │ │ │ │ │ │ ├── divisible_by_power_of_2.rs │ │ │ │ │ │ ├── eq_mod.rs │ │ │ │ │ │ ├── eq_mod_power_of_2.rs │ │ │ │ │ │ ├── extended_gcd.rs │ │ │ │ │ │ ├── kronecker_symbol.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── mod_op.rs │ │ │ │ │ │ ├── mod_power_of_2.rs │ │ │ │ │ │ ├── mul.rs │ │ │ │ │ │ ├── neg.rs │ │ │ │ │ │ ├── parity.rs │ │ │ │ │ │ ├── pow.rs │ │ │ │ │ │ ├── power_of_2.rs │ │ │ │ │ │ ├── root.rs │ │ │ │ │ │ ├── round_to_multiple.rs │ │ │ │ │ │ ├── round_to_multiple_of_power_of_2.rs │ │ │ │ │ │ ├── shl.rs │ │ │ │ │ │ ├── shl_round.rs │ │ │ │ │ │ ├── shr.rs │ │ │ │ │ │ ├── shr_round.rs │ │ │ │ │ │ ├── sign.rs │ │ │ │ │ │ ├── sqrt.rs │ │ │ │ │ │ ├── square.rs │ │ │ │ │ │ ├── sub.rs │ │ │ │ │ │ └── sub_mul.rs │ │ │ │ │ ├── basic/ │ │ │ │ │ │ ├── from_sign_and_abs.rs │ │ │ │ │ │ └── mod.rs │ │ │ │ │ ├── comparison/ │ │ │ │ │ │ ├── cmp.rs │ │ │ │ │ │ ├── cmp_abs.rs │ │ │ │ │ │ ├── eq.rs │ │ │ │ │ │ ├── eq_abs.rs │ │ │ │ │ │ ├── eq_abs_natural.rs │ │ │ │ │ │ ├── eq_abs_primitive_float.rs │ │ │ │ │ │ ├── eq_abs_primitive_int.rs │ │ │ │ │ │ ├── hash.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── partial_cmp_abs_natural.rs │ │ │ │ │ │ ├── partial_cmp_abs_primitive_float.rs │ │ │ │ │ │ ├── partial_cmp_abs_primitive_int.rs │ │ │ │ │ │ ├── partial_cmp_natural.rs │ │ │ │ │ │ ├── partial_cmp_primitive_float.rs │ │ │ │ │ │ ├── partial_cmp_primitive_int.rs │ │ │ │ │ │ ├── partial_eq_natural.rs │ │ │ │ │ │ ├── partial_eq_primitive_float.rs │ │ │ │ │ │ └── partial_eq_primitive_int.rs │ │ │ │ │ ├── conversion/ │ │ │ │ │ │ ├── clone.rs │ │ │ │ │ │ ├── floating_point_from_integer.rs │ │ │ │ │ │ ├── from_bool.rs │ │ │ │ │ │ ├── from_floating_point.rs │ │ │ │ │ │ ├── from_natural.rs │ │ │ │ │ │ ├── from_primitive_int.rs │ │ │ │ │ │ ├── from_twos_complement_limbs.rs │ │ │ │ │ │ ├── is_integer.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── natural_from_integer.rs │ │ │ │ │ │ ├── primitive_int_from_integer.rs │ │ │ │ │ │ ├── serde.rs │ │ │ │ │ │ ├── string/ │ │ │ │ │ │ │ ├── from_sci_string.rs │ │ │ │ │ │ │ ├── from_string.rs │ │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ │ ├── to_sci.rs │ │ │ │ │ │ │ └── to_string.rs │ │ │ │ │ │ └── to_twos_complement_limbs.rs │ │ │ │ │ ├── logic/ │ │ │ │ │ │ ├── and.rs │ │ │ │ │ │ ├── assign_bit.rs │ │ │ │ │ │ ├── assign_bits.rs │ │ │ │ │ │ ├── bits.rs │ │ │ │ │ │ ├── checked_count_ones.rs │ │ │ │ │ │ ├── checked_count_zeros.rs │ │ │ │ │ │ ├── checked_hamming_distance.rs │ │ │ │ │ │ ├── clear_bit.rs │ │ │ │ │ │ ├── flip_bit.rs │ │ │ │ │ │ ├── from_bits.rs │ │ │ │ │ │ ├── get_bit.rs │ │ │ │ │ │ ├── get_bits.rs │ │ │ │ │ │ ├── index_of_next_false_bit.rs │ │ │ │ │ │ ├── index_of_next_true_bit.rs │ │ │ │ │ │ ├── low_mask.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── not.rs │ │ │ │ │ │ ├── or.rs │ │ │ │ │ │ ├── set_bit.rs │ │ │ │ │ │ ├── significant_bits.rs │ │ │ │ │ │ ├── to_bits.rs │ │ │ │ │ │ ├── trailing_zeros.rs │ │ │ │ │ │ └── xor.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── mod.rs │ │ │ │ └── natural/ │ │ │ │ ├── arithmetic/ │ │ │ │ │ ├── abs_diff.rs │ │ │ │ │ ├── add.rs │ │ │ │ │ ├── add_mul.rs │ │ │ │ │ ├── binomial_coefficient.rs │ │ │ │ │ ├── checked_sub.rs │ │ │ │ │ ├── checked_sub_mul.rs │ │ │ │ │ ├── coprime_with.rs │ │ │ │ │ ├── div.rs │ │ │ │ │ ├── div_exact.rs │ │ │ │ │ ├── div_mod.rs │ │ │ │ │ ├── div_round.rs │ │ │ │ │ ├── divisible_by.rs │ │ │ │ │ ├── divisible_by_power_of_2.rs │ │ │ │ │ ├── eq_mod.rs │ │ │ │ │ ├── eq_mod_power_of_2.rs │ │ │ │ │ ├── extended_gcd.rs │ │ │ │ │ ├── factorial.rs │ │ │ │ │ ├── gcd.rs │ │ │ │ │ ├── is_power_of_2.rs │ │ │ │ │ ├── kronecker_symbol.rs │ │ │ │ │ ├── lcm.rs │ │ │ │ │ ├── log_base.rs │ │ │ │ │ ├── log_base_2.rs │ │ │ │ │ ├── log_base_power_of_2.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── mod_add.rs │ │ │ │ │ ├── mod_inverse.rs │ │ │ │ │ ├── mod_is_reduced.rs │ │ │ │ │ ├── mod_mul.rs │ │ │ │ │ ├── mod_neg.rs │ │ │ │ │ ├── mod_op.rs │ │ │ │ │ ├── mod_pow.rs │ │ │ │ │ ├── mod_power_of_2.rs │ │ │ │ │ ├── mod_power_of_2_add.rs │ │ │ │ │ ├── mod_power_of_2_inverse.rs │ │ │ │ │ ├── mod_power_of_2_is_reduced.rs │ │ │ │ │ ├── mod_power_of_2_mul.rs │ │ │ │ │ ├── mod_power_of_2_neg.rs │ │ │ │ │ ├── mod_power_of_2_pow.rs │ │ │ │ │ ├── mod_power_of_2_shl.rs │ │ │ │ │ ├── mod_power_of_2_shr.rs │ │ │ │ │ ├── mod_power_of_2_square.rs │ │ │ │ │ ├── mod_power_of_2_sub.rs │ │ │ │ │ ├── mod_shl.rs │ │ │ │ │ ├── mod_shr.rs │ │ │ │ │ ├── mod_square.rs │ │ │ │ │ ├── mod_sub.rs │ │ │ │ │ ├── mul.rs │ │ │ │ │ ├── neg.rs │ │ │ │ │ ├── next_power_of_2.rs │ │ │ │ │ ├── parity.rs │ │ │ │ │ ├── pow.rs │ │ │ │ │ ├── power_of_2.rs │ │ │ │ │ ├── primorial.rs │ │ │ │ │ ├── root.rs │ │ │ │ │ ├── round_to_multiple.rs │ │ │ │ │ ├── round_to_multiple_of_power_of_2.rs │ │ │ │ │ ├── saturating_sub.rs │ │ │ │ │ ├── saturating_sub_mul.rs │ │ │ │ │ ├── shl.rs │ │ │ │ │ ├── shl_round.rs │ │ │ │ │ ├── shr.rs │ │ │ │ │ ├── shr_round.rs │ │ │ │ │ ├── sign.rs │ │ │ │ │ ├── sqrt.rs │ │ │ │ │ ├── square.rs │ │ │ │ │ ├── sub.rs │ │ │ │ │ └── sub_mul.rs │ │ │ │ ├── comparison/ │ │ │ │ │ ├── cmp.rs │ │ │ │ │ ├── eq.rs │ │ │ │ │ ├── eq_abs_primitive_float.rs │ │ │ │ │ ├── eq_abs_primitive_int.rs │ │ │ │ │ ├── hash.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── partial_cmp_abs_primitive_float.rs │ │ │ │ │ ├── partial_cmp_abs_primitive_int.rs │ │ │ │ │ ├── partial_cmp_primitive_float.rs │ │ │ │ │ ├── partial_cmp_primitive_int.rs │ │ │ │ │ ├── partial_eq_primitive_float.rs │ │ │ │ │ └── partial_eq_primitive_int.rs │ │ │ │ ├── conversion/ │ │ │ │ │ ├── clone.rs │ │ │ │ │ ├── digits/ │ │ │ │ │ │ ├── from_digits.rs │ │ │ │ │ │ ├── from_power_of_2_digits.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── power_of_2_digits.rs │ │ │ │ │ │ ├── to_digits.rs │ │ │ │ │ │ └── to_power_of_2_digits.rs │ │ │ │ │ ├── floating_point_from_natural.rs │ │ │ │ │ ├── from_bool.rs │ │ │ │ │ ├── from_floating_point.rs │ │ │ │ │ ├── from_limbs.rs │ │ │ │ │ ├── from_primitive_int.rs │ │ │ │ │ ├── integer_mantissa_and_exponent.rs │ │ │ │ │ ├── is_integer.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── primitive_int_from_natural.rs │ │ │ │ │ ├── sci_mantissa_and_exponent.rs │ │ │ │ │ ├── serde.rs │ │ │ │ │ ├── string/ │ │ │ │ │ │ ├── from_sci_string.rs │ │ │ │ │ │ ├── from_string.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── to_sci.rs │ │ │ │ │ │ └── to_string.rs │ │ │ │ │ └── to_limbs.rs │ │ │ │ ├── factorization/ │ │ │ │ │ ├── is_power.rs │ │ │ │ │ ├── is_square.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── primes.rs │ │ │ │ ├── logic/ │ │ │ │ │ ├── and.rs │ │ │ │ │ ├── assign_bit.rs │ │ │ │ │ ├── assign_bits.rs │ │ │ │ │ ├── bits.rs │ │ │ │ │ ├── clear_bit.rs │ │ │ │ │ ├── count_ones.rs │ │ │ │ │ ├── flip_bit.rs │ │ │ │ │ ├── from_bits.rs │ │ │ │ │ ├── get_bit.rs │ │ │ │ │ ├── get_bits.rs │ │ │ │ │ ├── hamming_distance.rs │ │ │ │ │ ├── index_of_next_false_bit.rs │ │ │ │ │ ├── index_of_next_true_bit.rs │ │ │ │ │ ├── low_mask.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── not.rs │ │ │ │ │ ├── or.rs │ │ │ │ │ ├── set_bit.rs │ │ │ │ │ ├── significant_bits.rs │ │ │ │ │ ├── to_bits.rs │ │ │ │ │ ├── trailing_zeros.rs │ │ │ │ │ └── xor.rs │ │ │ │ └── mod.rs │ │ │ └── generate/ │ │ │ ├── digits_data.rs │ │ │ ├── factorial_data.rs │ │ │ └── mod.rs │ │ ├── integer/ │ │ │ ├── arithmetic/ │ │ │ │ ├── abs.rs │ │ │ │ ├── abs_diff.rs │ │ │ │ ├── add.rs │ │ │ │ ├── add_mul.rs │ │ │ │ ├── binomial_coefficient.rs │ │ │ │ ├── div.rs │ │ │ │ ├── div_exact.rs │ │ │ │ ├── div_mod.rs │ │ │ │ ├── div_round.rs │ │ │ │ ├── divisible_by.rs │ │ │ │ ├── divisible_by_power_of_2.rs │ │ │ │ ├── eq_mod.rs │ │ │ │ ├── eq_mod_power_of_2.rs │ │ │ │ ├── extended_gcd.rs │ │ │ │ ├── kronecker_symbol.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── mod_op.rs │ │ │ │ ├── mod_power_of_2.rs │ │ │ │ ├── mul.rs │ │ │ │ ├── neg.rs │ │ │ │ ├── parity.rs │ │ │ │ ├── pow.rs │ │ │ │ ├── power_of_2.rs │ │ │ │ ├── root.rs │ │ │ │ ├── round_to_multiple.rs │ │ │ │ ├── round_to_multiple_of_power_of_2.rs │ │ │ │ ├── shl.rs │ │ │ │ ├── shl_round.rs │ │ │ │ ├── shr.rs │ │ │ │ ├── shr_round.rs │ │ │ │ ├── sign.rs │ │ │ │ ├── sqrt.rs │ │ │ │ ├── square.rs │ │ │ │ ├── sub.rs │ │ │ │ └── sub_mul.rs │ │ │ ├── comparison/ │ │ │ │ ├── cmp.rs │ │ │ │ ├── cmp_abs.rs │ │ │ │ ├── cmp_abs_natural.rs │ │ │ │ ├── cmp_abs_primitive_float.rs │ │ │ │ ├── cmp_abs_primitive_int.rs │ │ │ │ ├── eq_abs.rs │ │ │ │ ├── eq_abs_natural.rs │ │ │ │ ├── eq_abs_primitive_float.rs │ │ │ │ ├── eq_abs_primitive_int.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── partial_cmp_natural.rs │ │ │ │ ├── partial_cmp_primitive_float.rs │ │ │ │ ├── partial_cmp_primitive_int.rs │ │ │ │ ├── partial_eq_natural.rs │ │ │ │ ├── partial_eq_primitive_float.rs │ │ │ │ └── partial_eq_primitive_int.rs │ │ │ ├── conversion/ │ │ │ │ ├── from_bool.rs │ │ │ │ ├── from_natural.rs │ │ │ │ ├── from_primitive_float.rs │ │ │ │ ├── from_primitive_int.rs │ │ │ │ ├── from_twos_complement_limbs.rs │ │ │ │ ├── is_integer.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── natural_from_integer.rs │ │ │ │ ├── primitive_float_from_integer.rs │ │ │ │ ├── primitive_int_from_integer.rs │ │ │ │ ├── pyo3.rs │ │ │ │ ├── serde.rs │ │ │ │ ├── string/ │ │ │ │ │ ├── from_sci_string.rs │ │ │ │ │ ├── from_string.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── to_sci.rs │ │ │ │ │ └── to_string.rs │ │ │ │ └── to_twos_complement_limbs.rs │ │ │ ├── exhaustive/ │ │ │ │ └── mod.rs │ │ │ ├── logic/ │ │ │ │ ├── and.rs │ │ │ │ ├── bit_access.rs │ │ │ │ ├── bit_block_access.rs │ │ │ │ ├── bit_convertible.rs │ │ │ │ ├── bit_iterable.rs │ │ │ │ ├── bit_scan.rs │ │ │ │ ├── checked_count_ones.rs │ │ │ │ ├── checked_count_zeros.rs │ │ │ │ ├── checked_hamming_distance.rs │ │ │ │ ├── low_mask.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── not.rs │ │ │ │ ├── or.rs │ │ │ │ ├── significant_bits.rs │ │ │ │ ├── trailing_zeros.rs │ │ │ │ └── xor.rs │ │ │ ├── mod.rs │ │ │ └── random/ │ │ │ └── mod.rs │ │ ├── lib.rs │ │ ├── natural/ │ │ │ ├── arithmetic/ │ │ │ │ ├── abs_diff.rs │ │ │ │ ├── add.rs │ │ │ │ ├── add_mul.rs │ │ │ │ ├── binomial_coefficient.rs │ │ │ │ ├── checked_sub.rs │ │ │ │ ├── checked_sub_mul.rs │ │ │ │ ├── coprime_with.rs │ │ │ │ ├── div.rs │ │ │ │ ├── div_exact.rs │ │ │ │ ├── div_mod.rs │ │ │ │ ├── div_round.rs │ │ │ │ ├── divisible_by.rs │ │ │ │ ├── divisible_by_power_of_2.rs │ │ │ │ ├── eq_mod.rs │ │ │ │ ├── eq_mod_power_of_2.rs │ │ │ │ ├── factorial.rs │ │ │ │ ├── float_add.rs │ │ │ │ ├── float_div.rs │ │ │ │ ├── float_extras.rs │ │ │ │ ├── float_mul.rs │ │ │ │ ├── float_reciprocal.rs │ │ │ │ ├── float_reciprocal_sqrt.rs │ │ │ │ ├── float_sqrt.rs │ │ │ │ ├── float_square.rs │ │ │ │ ├── float_sub.rs │ │ │ │ ├── gcd/ │ │ │ │ │ ├── extended_gcd.rs │ │ │ │ │ ├── half_gcd.rs │ │ │ │ │ ├── matrix_2_2.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── is_power_of_2.rs │ │ │ │ ├── kronecker_symbol.rs │ │ │ │ ├── lcm.rs │ │ │ │ ├── log_base.rs │ │ │ │ ├── log_base_2.rs │ │ │ │ ├── log_base_power_of_2.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── mod_add.rs │ │ │ │ ├── mod_inverse.rs │ │ │ │ ├── mod_is_reduced.rs │ │ │ │ ├── mod_mul.rs │ │ │ │ ├── mod_neg.rs │ │ │ │ ├── mod_op.rs │ │ │ │ ├── mod_pow.rs │ │ │ │ ├── mod_power_of_2.rs │ │ │ │ ├── mod_power_of_2_add.rs │ │ │ │ ├── mod_power_of_2_inverse.rs │ │ │ │ ├── mod_power_of_2_is_reduced.rs │ │ │ │ ├── mod_power_of_2_mul.rs │ │ │ │ ├── mod_power_of_2_neg.rs │ │ │ │ ├── mod_power_of_2_pow.rs │ │ │ │ ├── mod_power_of_2_shl.rs │ │ │ │ ├── mod_power_of_2_shr.rs │ │ │ │ ├── mod_power_of_2_square.rs │ │ │ │ ├── mod_power_of_2_sub.rs │ │ │ │ ├── mod_shl.rs │ │ │ │ ├── mod_shr.rs │ │ │ │ ├── mod_square.rs │ │ │ │ ├── mod_sub.rs │ │ │ │ ├── mul/ │ │ │ │ │ ├── context.rs │ │ │ │ │ ├── fft.rs │ │ │ │ │ ├── limb.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── mul_low.rs │ │ │ │ │ ├── mul_mod.rs │ │ │ │ │ ├── poly_eval.rs │ │ │ │ │ ├── poly_interpolate.rs │ │ │ │ │ ├── product_of_limbs.rs │ │ │ │ │ └── toom.rs │ │ │ │ ├── neg.rs │ │ │ │ ├── next_power_of_2.rs │ │ │ │ ├── parity.rs │ │ │ │ ├── pow.rs │ │ │ │ ├── power_of_2.rs │ │ │ │ ├── primorial.rs │ │ │ │ ├── root.rs │ │ │ │ ├── round_to_multiple.rs │ │ │ │ ├── round_to_multiple_of_power_of_2.rs │ │ │ │ ├── saturating_sub.rs │ │ │ │ ├── saturating_sub_mul.rs │ │ │ │ ├── shl.rs │ │ │ │ ├── shl_round.rs │ │ │ │ ├── shr.rs │ │ │ │ ├── shr_round.rs │ │ │ │ ├── sign.rs │ │ │ │ ├── sqrt.rs │ │ │ │ ├── square.rs │ │ │ │ ├── sub.rs │ │ │ │ └── sub_mul.rs │ │ │ ├── comparison/ │ │ │ │ ├── cmp.rs │ │ │ │ ├── eq_abs_primitive_float.rs │ │ │ │ ├── eq_abs_primitive_int.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── partial_cmp_abs_primitive_float.rs │ │ │ │ ├── partial_cmp_abs_primitive_int.rs │ │ │ │ ├── partial_cmp_primitive_float.rs │ │ │ │ ├── partial_cmp_primitive_int.rs │ │ │ │ ├── partial_eq_primitive_float.rs │ │ │ │ └── partial_eq_primitive_int.rs │ │ │ ├── conversion/ │ │ │ │ ├── digits/ │ │ │ │ │ ├── general_digits.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── power_of_2_digit_iterable.rs │ │ │ │ │ └── power_of_2_digits.rs │ │ │ │ ├── from_bool.rs │ │ │ │ ├── from_limbs.rs │ │ │ │ ├── from_primitive_float.rs │ │ │ │ ├── from_primitive_int.rs │ │ │ │ ├── is_integer.rs │ │ │ │ ├── limb_count.rs │ │ │ │ ├── mantissa_and_exponent.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── primitive_float_from_natural.rs │ │ │ │ ├── primitive_int_from_natural.rs │ │ │ │ ├── pyo3.rs │ │ │ │ ├── serde.rs │ │ │ │ ├── string/ │ │ │ │ │ ├── from_sci_string.rs │ │ │ │ │ ├── from_string.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── to_sci.rs │ │ │ │ │ └── to_string.rs │ │ │ │ └── to_limbs.rs │ │ │ ├── exhaustive/ │ │ │ │ └── mod.rs │ │ │ ├── factorization/ │ │ │ │ ├── is_power.rs │ │ │ │ ├── is_square.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── primes.rs │ │ │ │ └── remove_power.rs │ │ │ ├── logic/ │ │ │ │ ├── and.rs │ │ │ │ ├── bit_access.rs │ │ │ │ ├── bit_block_access.rs │ │ │ │ ├── bit_convertible.rs │ │ │ │ ├── bit_iterable.rs │ │ │ │ ├── bit_scan.rs │ │ │ │ ├── count_ones.rs │ │ │ │ ├── hamming_distance.rs │ │ │ │ ├── low_mask.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── not.rs │ │ │ │ ├── or.rs │ │ │ │ ├── significant_bits.rs │ │ │ │ ├── trailing_zeros.rs │ │ │ │ └── xor.rs │ │ │ ├── mod.rs │ │ │ └── random/ │ │ │ └── mod.rs │ │ ├── platform_32.rs │ │ ├── platform_64.rs │ │ └── test_util/ │ │ ├── bench/ │ │ │ ├── bucketers.rs │ │ │ └── mod.rs │ │ ├── common/ │ │ │ └── mod.rs │ │ ├── extra_variadic/ │ │ │ └── mod.rs │ │ ├── generators/ │ │ │ ├── common.rs │ │ │ ├── exhaustive.rs │ │ │ ├── mod.rs │ │ │ ├── random.rs │ │ │ └── special_random.rs │ │ ├── integer/ │ │ │ ├── arithmetic/ │ │ │ │ ├── add.rs │ │ │ │ ├── divisible_by.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── mul.rs │ │ │ │ └── sign.rs │ │ │ ├── comparison/ │ │ │ │ ├── mod.rs │ │ │ │ ├── partial_cmp_primitive_int.rs │ │ │ │ └── partial_eq_primitive_int.rs │ │ │ ├── conversion/ │ │ │ │ ├── mod.rs │ │ │ │ └── to_twos_complement_limbs.rs │ │ │ ├── logic/ │ │ │ │ ├── and.rs │ │ │ │ ├── checked_count_ones.rs │ │ │ │ ├── checked_count_zeros.rs │ │ │ │ ├── checked_hamming_distance.rs │ │ │ │ ├── from_bits.rs │ │ │ │ ├── index_of_next_false_bit.rs │ │ │ │ ├── index_of_next_true_bit.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── or.rs │ │ │ │ ├── to_bits.rs │ │ │ │ ├── trailing_zeros.rs │ │ │ │ └── xor.rs │ │ │ ├── mod.rs │ │ │ └── random/ │ │ │ └── mod.rs │ │ ├── mod.rs │ │ └── natural/ │ │ ├── arithmetic/ │ │ │ ├── add.rs │ │ │ ├── binomial_coefficient.rs │ │ │ ├── checked_sub.rs │ │ │ ├── div.rs │ │ │ ├── div_exact.rs │ │ │ ├── div_mod.rs │ │ │ ├── divisible_by.rs │ │ │ ├── eq_mod.rs │ │ │ ├── extended_gcd.rs │ │ │ ├── factorial.rs │ │ │ ├── gcd.rs │ │ │ ├── kronecker_symbol.rs │ │ │ ├── log_base.rs │ │ │ ├── log_base_power_of_2.rs │ │ │ ├── mod.rs │ │ │ ├── mod_inverse.rs │ │ │ ├── mod_mul.rs │ │ │ ├── mod_op.rs │ │ │ ├── mod_pow.rs │ │ │ ├── mod_power_of_2_pow.rs │ │ │ ├── mod_power_of_2_square.rs │ │ │ ├── mul.rs │ │ │ ├── neg.rs │ │ │ ├── pow.rs │ │ │ ├── primorial.rs │ │ │ ├── root.rs │ │ │ ├── sqrt.rs │ │ │ ├── square.rs │ │ │ └── sub.rs │ │ ├── comparison/ │ │ │ ├── cmp.rs │ │ │ ├── mod.rs │ │ │ ├── partial_cmp_primitive_int.rs │ │ │ └── partial_eq_primitive_int.rs │ │ ├── conversion/ │ │ │ ├── mod.rs │ │ │ └── string/ │ │ │ ├── from_string.rs │ │ │ ├── mod.rs │ │ │ └── to_string.rs │ │ ├── logic/ │ │ │ ├── and.rs │ │ │ ├── count_ones.rs │ │ │ ├── from_bits.rs │ │ │ ├── get_bit.rs │ │ │ ├── hamming_distance.rs │ │ │ ├── index_of_next_false_bit.rs │ │ │ ├── index_of_next_true_bit.rs │ │ │ ├── mod.rs │ │ │ ├── or.rs │ │ │ ├── set_bit.rs │ │ │ ├── to_bits.rs │ │ │ ├── trailing_zeros.rs │ │ │ └── xor.rs │ │ ├── mod.rs │ │ └── random/ │ │ └── mod.rs │ └── tests/ │ ├── integer/ │ │ ├── arithmetic/ │ │ │ ├── abs.rs │ │ │ ├── abs_diff.rs │ │ │ ├── add.rs │ │ │ ├── add_mul.rs │ │ │ ├── binomial_coefficient.rs │ │ │ ├── div.rs │ │ │ ├── div_exact.rs │ │ │ ├── div_mod.rs │ │ │ ├── div_round.rs │ │ │ ├── divisible_by.rs │ │ │ ├── divisible_by_power_of_2.rs │ │ │ ├── eq_mod.rs │ │ │ ├── eq_mod_power_of_2.rs │ │ │ ├── extended_gcd.rs │ │ │ ├── kronecker_symbol.rs │ │ │ ├── mod_op.rs │ │ │ ├── mod_power_of_2.rs │ │ │ ├── mul.rs │ │ │ ├── neg.rs │ │ │ ├── parity.rs │ │ │ ├── pow.rs │ │ │ ├── power_of_2.rs │ │ │ ├── root.rs │ │ │ ├── round_to_multiple.rs │ │ │ ├── round_to_multiple_of_power_of_2.rs │ │ │ ├── shl.rs │ │ │ ├── shl_round.rs │ │ │ ├── shr.rs │ │ │ ├── shr_round.rs │ │ │ ├── sign.rs │ │ │ ├── sqrt.rs │ │ │ ├── square.rs │ │ │ ├── sub.rs │ │ │ └── sub_mul.rs │ │ ├── basic/ │ │ │ ├── constants.rs │ │ │ ├── default.rs │ │ │ ├── from_sign_and_abs.rs │ │ │ ├── named.rs │ │ │ └── size.rs │ │ ├── comparison/ │ │ │ ├── cmp.rs │ │ │ ├── cmp_abs.rs │ │ │ ├── eq.rs │ │ │ ├── eq_abs.rs │ │ │ ├── eq_abs_natural.rs │ │ │ ├── eq_abs_primitive_float.rs │ │ │ ├── eq_abs_primitive_int.rs │ │ │ ├── hash.rs │ │ │ ├── partial_cmp_abs_natural.rs │ │ │ ├── partial_cmp_abs_primitive_float.rs │ │ │ ├── partial_cmp_abs_primitive_int.rs │ │ │ ├── partial_cmp_natural.rs │ │ │ ├── partial_cmp_primitive_float.rs │ │ │ ├── partial_cmp_primitive_int.rs │ │ │ ├── partial_eq_natural.rs │ │ │ ├── partial_eq_primitive_float.rs │ │ │ └── partial_eq_primitive_int.rs │ │ ├── conversion/ │ │ │ ├── clone.rs │ │ │ ├── from_bool.rs │ │ │ ├── from_natural.rs │ │ │ ├── from_primitive_float.rs │ │ │ ├── from_primitive_int.rs │ │ │ ├── from_twos_complement_limbs.rs │ │ │ ├── is_integer.rs │ │ │ ├── natural_from_integer.rs │ │ │ ├── primitive_float_from_integer.rs │ │ │ ├── primitive_int_from_integer.rs │ │ │ ├── serde.rs │ │ │ ├── string/ │ │ │ │ ├── from_sci_string.rs │ │ │ │ ├── from_string.rs │ │ │ │ ├── to_sci.rs │ │ │ │ └── to_string.rs │ │ │ └── to_twos_complement_limbs.rs │ │ ├── exhaustive/ │ │ │ ├── exhaustive_integer_inclusive_range.rs │ │ │ ├── exhaustive_integer_range.rs │ │ │ ├── exhaustive_integer_range_to_infinity.rs │ │ │ ├── exhaustive_integer_range_to_negative_infinity.rs │ │ │ ├── exhaustive_integers.rs │ │ │ ├── exhaustive_natural_integers.rs │ │ │ ├── exhaustive_negative_integers.rs │ │ │ ├── exhaustive_nonzero_integers.rs │ │ │ ├── exhaustive_positive_integers.rs │ │ │ ├── integer_decreasing_range_to_negative_infinity.rs │ │ │ ├── integer_increasing_inclusive_range.rs │ │ │ ├── integer_increasing_range.rs │ │ │ └── integer_increasing_range_to_infinity.rs │ │ ├── logic/ │ │ │ ├── and.rs │ │ │ ├── assign_bit.rs │ │ │ ├── assign_bits.rs │ │ │ ├── bits.rs │ │ │ ├── checked_count_ones.rs │ │ │ ├── checked_count_zeros.rs │ │ │ ├── checked_hamming_distance.rs │ │ │ ├── clear_bit.rs │ │ │ ├── flip_bit.rs │ │ │ ├── from_bits.rs │ │ │ ├── get_bit.rs │ │ │ ├── get_bits.rs │ │ │ ├── index_of_next_false_bit.rs │ │ │ ├── index_of_next_true_bit.rs │ │ │ ├── low_mask.rs │ │ │ ├── not.rs │ │ │ ├── or.rs │ │ │ ├── set_bit.rs │ │ │ ├── significant_bits.rs │ │ │ ├── to_bits.rs │ │ │ ├── trailing_zeros.rs │ │ │ └── xor.rs │ │ └── random/ │ │ ├── get_random_integer_from_range_to_infinity.rs │ │ ├── get_random_integer_from_range_to_negative_infinity.rs │ │ ├── get_striped_random_integer_from_inclusive_range.rs │ │ ├── get_striped_random_integer_from_range.rs │ │ ├── get_striped_random_integer_from_range_to_infinity.rs │ │ ├── get_striped_random_integer_from_range_to_negative_infinity.rs │ │ ├── get_uniform_random_integer_from_inclusive_range.rs │ │ ├── get_uniform_random_integer_from_range.rs │ │ ├── random_integer_inclusive_range.rs │ │ ├── random_integer_range.rs │ │ ├── random_integer_range_to_infinity.rs │ │ ├── random_integer_range_to_negative_infinity.rs │ │ ├── random_integers.rs │ │ ├── random_natural_integers.rs │ │ ├── random_negative_integers.rs │ │ ├── random_nonzero_integers.rs │ │ ├── random_positive_integers.rs │ │ ├── striped_random_integer_inclusive_range.rs │ │ ├── striped_random_integer_range.rs │ │ ├── striped_random_integer_range_to_infinity.rs │ │ ├── striped_random_integer_range_to_negative_infinity.rs │ │ ├── striped_random_integers.rs │ │ ├── striped_random_natural_integers.rs │ │ ├── striped_random_negative_integers.rs │ │ ├── striped_random_nonzero_integers.rs │ │ ├── striped_random_positive_integers.rs │ │ ├── uniform_random_integer_inclusive_range.rs │ │ └── uniform_random_integer_range.rs │ ├── lib.rs │ └── natural/ │ ├── arithmetic/ │ │ ├── abs_diff.rs │ │ ├── add.rs │ │ ├── add_mul.rs │ │ ├── binomial_coefficient.rs │ │ ├── checked_sub.rs │ │ ├── checked_sub_mul.rs │ │ ├── coprime_with.rs │ │ ├── div.rs │ │ ├── div_exact.rs │ │ ├── div_mod.rs │ │ ├── div_round.rs │ │ ├── divisible_by.rs │ │ ├── divisible_by_power_of_2.rs │ │ ├── eq_mod.rs │ │ ├── eq_mod_power_of_2.rs │ │ ├── extended_gcd.rs │ │ ├── factorial.rs │ │ ├── gcd.rs │ │ ├── is_power_of_2.rs │ │ ├── kronecker_symbol.rs │ │ ├── lcm.rs │ │ ├── log_base.rs │ │ ├── log_base_2.rs │ │ ├── log_base_power_of_2.rs │ │ ├── mod_add.rs │ │ ├── mod_inverse.rs │ │ ├── mod_is_reduced.rs │ │ ├── mod_mul.rs │ │ ├── mod_neg.rs │ │ ├── mod_op.rs │ │ ├── mod_pow.rs │ │ ├── mod_power_of_2.rs │ │ ├── mod_power_of_2_add.rs │ │ ├── mod_power_of_2_inverse.rs │ │ ├── mod_power_of_2_is_reduced.rs │ │ ├── mod_power_of_2_mul.rs │ │ ├── mod_power_of_2_neg.rs │ │ ├── mod_power_of_2_pow.rs │ │ ├── mod_power_of_2_shl.rs │ │ ├── mod_power_of_2_shr.rs │ │ ├── mod_power_of_2_square.rs │ │ ├── mod_power_of_2_sub.rs │ │ ├── mod_shl.rs │ │ ├── mod_shr.rs │ │ ├── mod_square.rs │ │ ├── mod_sub.rs │ │ ├── mul.rs │ │ ├── neg.rs │ │ ├── next_power_of_2.rs │ │ ├── parity.rs │ │ ├── pow.rs │ │ ├── power_of_2.rs │ │ ├── primorial.rs │ │ ├── root.rs │ │ ├── round_to_multiple.rs │ │ ├── round_to_multiple_of_power_of_2.rs │ │ ├── saturating_sub.rs │ │ ├── saturating_sub_mul.rs │ │ ├── shl.rs │ │ ├── shl_round.rs │ │ ├── shr.rs │ │ ├── shr_round.rs │ │ ├── sign.rs │ │ ├── sqrt.rs │ │ ├── square.rs │ │ ├── sub.rs │ │ └── sub_mul.rs │ ├── basic/ │ │ ├── constants.rs │ │ ├── default.rs │ │ ├── named.rs │ │ └── size.rs │ ├── comparison/ │ │ ├── cmp.rs │ │ ├── eq.rs │ │ ├── eq_abs_primitive_float.rs │ │ ├── eq_abs_primitive_int.rs │ │ ├── hash.rs │ │ ├── partial_cmp_abs_primitive_float.rs │ │ ├── partial_cmp_abs_primitive_int.rs │ │ ├── partial_cmp_primitive_float.rs │ │ ├── partial_cmp_primitive_int.rs │ │ ├── partial_eq_primitive_float.rs │ │ └── partial_eq_primitive_int.rs │ ├── conversion/ │ │ ├── clone.rs │ │ ├── digits/ │ │ │ ├── from_digits.rs │ │ │ ├── from_power_of_2_digits.rs │ │ │ ├── power_of_2_digits.rs │ │ │ ├── to_digits.rs │ │ │ └── to_power_of_2_digits.rs │ │ ├── from_bool.rs │ │ ├── from_limbs.rs │ │ ├── from_primitive_float.rs │ │ ├── from_primitive_int.rs │ │ ├── is_integer.rs │ │ ├── mantissa_and_exponent/ │ │ │ ├── integer_mantissa_and_exponent.rs │ │ │ └── sci_mantissa_and_exponent.rs │ │ ├── primitive_float_from_natural.rs │ │ ├── primitive_int_from_natural.rs │ │ ├── serde.rs │ │ ├── string/ │ │ │ ├── from_sci_string.rs │ │ │ ├── from_string.rs │ │ │ ├── to_sci.rs │ │ │ └── to_string.rs │ │ └── to_limbs.rs │ ├── exhaustive/ │ │ ├── exhaustive_natural_inclusive_range.rs │ │ ├── exhaustive_natural_range.rs │ │ ├── exhaustive_natural_range_to_infinity.rs │ │ ├── exhaustive_naturals.rs │ │ └── exhaustive_positive_naturals.rs │ ├── factorization/ │ │ ├── is_power.rs │ │ ├── is_square.rs │ │ └── primes.rs │ ├── logic/ │ │ ├── and.rs │ │ ├── assign_bit.rs │ │ ├── assign_bits.rs │ │ ├── bits.rs │ │ ├── clear_bit.rs │ │ ├── count_ones.rs │ │ ├── flip_bit.rs │ │ ├── from_bits.rs │ │ ├── get_bit.rs │ │ ├── get_bits.rs │ │ ├── hamming_distance.rs │ │ ├── index_of_next_false_bit.rs │ │ ├── index_of_next_true_bit.rs │ │ ├── limb_count.rs │ │ ├── low_mask.rs │ │ ├── not.rs │ │ ├── or.rs │ │ ├── set_bit.rs │ │ ├── significant_bits.rs │ │ ├── to_bits.rs │ │ ├── trailing_zeros.rs │ │ └── xor.rs │ └── random/ │ ├── get_random_natural_less_than.rs │ ├── get_random_natural_with_bits.rs │ ├── get_random_natural_with_up_to_bits.rs │ ├── get_striped_random_natural_from_inclusive_range.rs │ ├── get_striped_random_natural_from_range.rs │ ├── get_striped_random_natural_with_bits.rs │ ├── get_striped_random_natural_with_up_to_bits.rs │ ├── random_natural_inclusive_range.rs │ ├── random_natural_range.rs │ ├── random_natural_range_to_infinity.rs │ ├── random_naturals.rs │ ├── random_naturals_less_than.rs │ ├── random_positive_naturals.rs │ ├── striped_random_natural_inclusive_range.rs │ ├── striped_random_natural_range.rs │ ├── striped_random_natural_range_to_infinity.rs │ ├── striped_random_naturals.rs │ ├── striped_random_positive_naturals.rs │ ├── uniform_random_natural_inclusive_range.rs │ └── uniform_random_natural_range.rs ├── malachite-q/ │ ├── .gitignore │ ├── Cargo.toml │ ├── README.md │ ├── katex-header.html │ ├── rustfmt.toml │ ├── src/ │ │ ├── arithmetic/ │ │ │ ├── abs.rs │ │ │ ├── abs_diff.rs │ │ │ ├── add.rs │ │ │ ├── approximate.rs │ │ │ ├── ceiling.rs │ │ │ ├── denominators_in_closed_interval.rs │ │ │ ├── div.rs │ │ │ ├── floor.rs │ │ │ ├── is_power_of_2.rs │ │ │ ├── log_base.rs │ │ │ ├── log_base_2.rs │ │ │ ├── log_base_power_of_2.rs │ │ │ ├── mod.rs │ │ │ ├── mod_op.rs │ │ │ ├── mul.rs │ │ │ ├── neg.rs │ │ │ ├── next_power_of_2.rs │ │ │ ├── pow.rs │ │ │ ├── power_of_2.rs │ │ │ ├── reciprocal.rs │ │ │ ├── root.rs │ │ │ ├── round_to_multiple.rs │ │ │ ├── round_to_multiple_of_power_of_2.rs │ │ │ ├── shl.rs │ │ │ ├── shr.rs │ │ │ ├── sign.rs │ │ │ ├── simplest_rational_in_interval.rs │ │ │ ├── sqrt.rs │ │ │ ├── square.rs │ │ │ ├── sub.rs │ │ │ └── traits.rs │ │ ├── bin.rs │ │ ├── bin_util/ │ │ │ └── demo_and_bench/ │ │ │ ├── arithmetic/ │ │ │ │ ├── abs.rs │ │ │ │ ├── abs_diff.rs │ │ │ │ ├── add.rs │ │ │ │ ├── approximate.rs │ │ │ │ ├── ceiling.rs │ │ │ │ ├── denominators_in_closed_interval.rs │ │ │ │ ├── div.rs │ │ │ │ ├── floor.rs │ │ │ │ ├── is_power_of_2.rs │ │ │ │ ├── log_base.rs │ │ │ │ ├── log_base_2.rs │ │ │ │ ├── log_base_power_of_2.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── mod_op.rs │ │ │ │ ├── mul.rs │ │ │ │ ├── neg.rs │ │ │ │ ├── next_power_of_2.rs │ │ │ │ ├── pow.rs │ │ │ │ ├── power_of_2.rs │ │ │ │ ├── reciprocal.rs │ │ │ │ ├── root.rs │ │ │ │ ├── round_to_multiple.rs │ │ │ │ ├── round_to_multiple_of_power_of_2.rs │ │ │ │ ├── shl.rs │ │ │ │ ├── shr.rs │ │ │ │ ├── sign.rs │ │ │ │ ├── simplest_rational_in_interval.rs │ │ │ │ ├── sqrt.rs │ │ │ │ ├── square.rs │ │ │ │ └── sub.rs │ │ │ ├── basic/ │ │ │ │ ├── mod.rs │ │ │ │ └── significant_bits.rs │ │ │ ├── comparison/ │ │ │ │ ├── cmp.rs │ │ │ │ ├── cmp_abs.rs │ │ │ │ ├── eq.rs │ │ │ │ ├── eq_abs.rs │ │ │ │ ├── eq_abs_integer.rs │ │ │ │ ├── eq_abs_natural.rs │ │ │ │ ├── eq_abs_primitive_float.rs │ │ │ │ ├── eq_abs_primitive_int.rs │ │ │ │ ├── hash.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── partial_cmp_abs_integer.rs │ │ │ │ ├── partial_cmp_abs_natural.rs │ │ │ │ ├── partial_cmp_abs_primitive_float.rs │ │ │ │ ├── partial_cmp_abs_primitive_int.rs │ │ │ │ ├── partial_cmp_integer.rs │ │ │ │ ├── partial_cmp_natural.rs │ │ │ │ ├── partial_cmp_primitive_float.rs │ │ │ │ ├── partial_cmp_primitive_int.rs │ │ │ │ ├── partial_eq_integer.rs │ │ │ │ ├── partial_eq_natural.rs │ │ │ │ ├── partial_eq_primitive_float.rs │ │ │ │ └── partial_eq_primitive_int.rs │ │ │ ├── conversion/ │ │ │ │ ├── clone.rs │ │ │ │ ├── continued_fraction/ │ │ │ │ │ ├── convergents.rs │ │ │ │ │ ├── from_continued_fraction.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── to_continued_fraction.rs │ │ │ │ ├── digits/ │ │ │ │ │ ├── from_digits.rs │ │ │ │ │ ├── from_power_of_2_digits.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── to_digits.rs │ │ │ │ │ └── to_power_of_2_digits.rs │ │ │ │ ├── from_bool.rs │ │ │ │ ├── from_float_simplest.rs │ │ │ │ ├── from_integer.rs │ │ │ │ ├── from_natural.rs │ │ │ │ ├── from_numerator_and_denominator.rs │ │ │ │ ├── from_primitive_float.rs │ │ │ │ ├── from_primitive_int.rs │ │ │ │ ├── integer_from_rational.rs │ │ │ │ ├── is_integer.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── mutate_numerator_or_denominator.rs │ │ │ │ ├── natural_from_rational.rs │ │ │ │ ├── primitive_float_from_rational.rs │ │ │ │ ├── primitive_int_from_rational.rs │ │ │ │ ├── sci_mantissa_and_exponent.rs │ │ │ │ ├── serde.rs │ │ │ │ ├── string/ │ │ │ │ │ ├── from_sci_string.rs │ │ │ │ │ ├── from_string.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── to_sci.rs │ │ │ │ │ └── to_string.rs │ │ │ │ └── to_numerator_or_denominator.rs │ │ │ └── mod.rs │ │ ├── comparison/ │ │ │ ├── cmp.rs │ │ │ ├── cmp_abs.rs │ │ │ ├── eq_abs.rs │ │ │ ├── eq_abs_integer.rs │ │ │ ├── eq_abs_natural.rs │ │ │ ├── eq_abs_primitive_float.rs │ │ │ ├── eq_abs_primitive_int.rs │ │ │ ├── mod.rs │ │ │ ├── partial_cmp_abs_integer.rs │ │ │ ├── partial_cmp_abs_natural.rs │ │ │ ├── partial_cmp_abs_primitive_float.rs │ │ │ ├── partial_cmp_abs_primitive_int.rs │ │ │ ├── partial_cmp_integer.rs │ │ │ ├── partial_cmp_natural.rs │ │ │ ├── partial_cmp_primitive_float.rs │ │ │ ├── partial_cmp_primitive_int.rs │ │ │ ├── partial_eq_integer.rs │ │ │ ├── partial_eq_natural.rs │ │ │ ├── partial_eq_primitive_float.rs │ │ │ └── partial_eq_primitive_int.rs │ │ ├── conversion/ │ │ │ ├── continued_fraction/ │ │ │ │ ├── convergents.rs │ │ │ │ ├── from_continued_fraction.rs │ │ │ │ ├── mod.rs │ │ │ │ └── to_continued_fraction.rs │ │ │ ├── digits/ │ │ │ │ ├── digits.rs │ │ │ │ ├── from_digits.rs │ │ │ │ ├── from_power_of_2_digits.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── power_of_2_digits.rs │ │ │ │ ├── to_digits.rs │ │ │ │ └── to_power_of_2_digits.rs │ │ │ ├── from_bool.rs │ │ │ ├── from_float_simplest.rs │ │ │ ├── from_integer.rs │ │ │ ├── from_natural.rs │ │ │ ├── from_numerator_and_denominator.rs │ │ │ ├── from_primitive_float.rs │ │ │ ├── from_primitive_int.rs │ │ │ ├── integer_from_rational.rs │ │ │ ├── is_integer.rs │ │ │ ├── mantissa_and_exponent.rs │ │ │ ├── mod.rs │ │ │ ├── mutate_numerator_and_denominator.rs │ │ │ ├── natural_from_rational.rs │ │ │ ├── primitive_float_from_rational.rs │ │ │ ├── primitive_int_from_rational.rs │ │ │ ├── string/ │ │ │ │ ├── from_sci_string.rs │ │ │ │ ├── from_string.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── to_sci.rs │ │ │ │ └── to_string.rs │ │ │ ├── to_numerator_and_denominator.rs │ │ │ └── traits.rs │ │ ├── exhaustive/ │ │ │ └── mod.rs │ │ ├── lib.rs │ │ ├── random/ │ │ │ └── mod.rs │ │ └── test_util/ │ │ ├── arithmetic/ │ │ │ ├── add.rs │ │ │ ├── approximate.rs │ │ │ ├── div.rs │ │ │ ├── mod.rs │ │ │ ├── mod_op.rs │ │ │ ├── mul.rs │ │ │ ├── sign.rs │ │ │ ├── simplest_rational_in_interval.rs │ │ │ └── sub.rs │ │ ├── bench/ │ │ │ ├── bucketers.rs │ │ │ └── mod.rs │ │ ├── common/ │ │ │ └── mod.rs │ │ ├── conversion/ │ │ │ ├── continued_fraction/ │ │ │ │ ├── convergents.rs │ │ │ │ ├── from_continued_fraction.rs │ │ │ │ └── mod.rs │ │ │ └── mod.rs │ │ ├── extra_variadic/ │ │ │ └── mod.rs │ │ ├── generators/ │ │ │ ├── common.rs │ │ │ ├── exhaustive.rs │ │ │ ├── mod.rs │ │ │ ├── random.rs │ │ │ └── special_random.rs │ │ ├── mod.rs │ │ └── random/ │ │ └── mod.rs │ └── tests/ │ ├── arithmetic/ │ │ ├── abs.rs │ │ ├── abs_diff.rs │ │ ├── add.rs │ │ ├── approximate.rs │ │ ├── ceiling.rs │ │ ├── denominators_in_closed_interval.rs │ │ ├── div.rs │ │ ├── floor.rs │ │ ├── is_power_of_2.rs │ │ ├── log_base.rs │ │ ├── log_base_2.rs │ │ ├── log_base_power_of_2.rs │ │ ├── mod_op.rs │ │ ├── mul.rs │ │ ├── neg.rs │ │ ├── next_power_of_2.rs │ │ ├── pow.rs │ │ ├── power_of_2.rs │ │ ├── reciprocal.rs │ │ ├── root.rs │ │ ├── round_to_multiple.rs │ │ ├── round_to_multiple_of_power_of_2.rs │ │ ├── shl.rs │ │ ├── shr.rs │ │ ├── sign.rs │ │ ├── simplest_rational_in_interval.rs │ │ ├── sqrt.rs │ │ ├── square.rs │ │ └── sub.rs │ ├── basic/ │ │ ├── constants.rs │ │ ├── default.rs │ │ ├── named.rs │ │ ├── significant_bits.rs │ │ └── size.rs │ ├── comparison/ │ │ ├── cmp.rs │ │ ├── cmp_abs.rs │ │ ├── eq.rs │ │ ├── eq_abs.rs │ │ ├── eq_abs_integer.rs │ │ ├── eq_abs_natural.rs │ │ ├── eq_abs_primitive_float.rs │ │ ├── eq_abs_primitive_int.rs │ │ ├── hash.rs │ │ ├── partial_cmp_abs_integer.rs │ │ ├── partial_cmp_abs_natural.rs │ │ ├── partial_cmp_abs_primitive_float.rs │ │ ├── partial_cmp_abs_primitive_int.rs │ │ ├── partial_cmp_integer.rs │ │ ├── partial_cmp_natural.rs │ │ ├── partial_cmp_primitive_float.rs │ │ ├── partial_cmp_primitive_int.rs │ │ ├── partial_eq_integer.rs │ │ ├── partial_eq_natural.rs │ │ ├── partial_eq_primitive_float.rs │ │ └── partial_eq_primitive_int.rs │ ├── conversion/ │ │ ├── clone.rs │ │ ├── continued_fraction/ │ │ │ ├── convergents.rs │ │ │ ├── from_continued_fraction.rs │ │ │ └── to_continued_fraction.rs │ │ ├── digits/ │ │ │ ├── digits.rs │ │ │ ├── from_digits.rs │ │ │ ├── from_power_of_2_digits.rs │ │ │ ├── power_of_2_digits.rs │ │ │ ├── to_digits.rs │ │ │ └── to_power_of_2_digits.rs │ │ ├── from_bool.rs │ │ ├── from_float_simplest.rs │ │ ├── from_integer.rs │ │ ├── from_natural.rs │ │ ├── from_numerator_and_denominator.rs │ │ ├── from_primitive_float.rs │ │ ├── from_primitive_int.rs │ │ ├── integer_from_rational.rs │ │ ├── is_integer.rs │ │ ├── mutate_numerator_or_denominator.rs │ │ ├── natural_from_rational.rs │ │ ├── primitive_float_from_rational.rs │ │ ├── primitive_int_from_rational.rs │ │ ├── sci_mantissa_and_exponent.rs │ │ ├── serde.rs │ │ ├── string/ │ │ │ ├── from_sci_string.rs │ │ │ ├── from_string.rs │ │ │ ├── to_sci.rs │ │ │ └── to_string.rs │ │ └── to_numerator_or_denominator.rs │ ├── exhaustive/ │ │ ├── exhaustive_negative_rationals.rs │ │ ├── exhaustive_non_negative_rationals.rs │ │ ├── exhaustive_nonzero_rationals.rs │ │ ├── exhaustive_positive_rationals.rs │ │ ├── exhaustive_rational_inclusive_range.rs │ │ ├── exhaustive_rational_range.rs │ │ ├── exhaustive_rational_range_to_infinity.rs │ │ ├── exhaustive_rational_range_to_negative_infinity.rs │ │ ├── exhaustive_rationals.rs │ │ ├── exhaustive_rationals_with_denominator_inclusive_range.rs │ │ ├── exhaustive_rationals_with_denominator_range.rs │ │ ├── exhaustive_rationals_with_denominator_range_to_infinity.rs │ │ └── exhaustive_rationals_with_denominator_range_to_negative_infinity.rs │ ├── lib.rs │ └── random/ │ ├── random_negative_rationals.rs │ ├── random_non_negative_rationals.rs │ ├── random_nonzero_rationals.rs │ ├── random_positive_rationals.rs │ ├── random_rational_inclusive_range.rs │ ├── random_rational_range.rs │ ├── random_rational_range_to_infinity.rs │ ├── random_rational_range_to_negative_infinity.rs │ ├── random_rational_with_denominator_inclusive_range.rs │ ├── random_rational_with_denominator_range.rs │ ├── random_rational_with_denominator_range_to_infinity.rs │ ├── random_rational_with_denominator_range_to_negative_infinity.rs │ ├── random_rationals.rs │ ├── striped_random_negative_rationals.rs │ ├── striped_random_non_negative_rationals.rs │ ├── striped_random_nonzero_rationals.rs │ ├── striped_random_positive_rationals.rs │ ├── striped_random_rational_range_to_infinity.rs │ ├── striped_random_rational_range_to_negative_infinity.rs │ └── striped_random_rationals.rs ├── rundoc.sh └── superfmt.sh