Skip to content

Commit 43c7049

Browse files
chore(deps): update rand requirement from 0.9 to 0.10 (#1017)
1 parent 0974356 commit 43c7049

File tree

12 files changed

+68
-67
lines changed

12 files changed

+68
-67
lines changed

Cargo.toml

Lines changed: 44 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
[package]
22
name = "the_algorithms_rust"
3-
edition = "2021"
43
version = "0.1.0"
4+
edition = "2021"
55
authors = ["Anshul Malik <malikanshul29@gmail.com>"]
66

77
[dependencies]
8-
num-bigint = { version = "0.4", optional = true }
9-
num-traits = { version = "0.2", optional = true }
10-
rand = "0.9"
118
nalgebra = "0.34.0"
129
ndarray = "0.17.2"
10+
num-bigint = { version = "0.4", optional = true }
11+
num-traits = { version = "0.2", optional = true }
12+
rand = "0.10"
1313

1414
[dev-dependencies]
1515
quickcheck = "1.0"
@@ -20,10 +20,31 @@ default = ["big-math"]
2020
big-math = ["dep:num-bigint", "dep:num-traits"]
2121

2222
[lints.clippy]
23+
cargo = "warn"
24+
nursery = "warn"
2325
pedantic = "warn"
2426
restriction = "warn"
25-
nursery = "warn"
26-
cargo = "warn"
27+
# cargo-lints:
28+
cargo_common_metadata = { level = "allow", priority = 1 }
29+
multiple_crate_versions = { level = "allow", priority = 1 }
30+
# complexity-lints:
31+
manual_div_ceil = { level = "allow", priority = 1 }
32+
precedence = { level = "allow", priority = 1 }
33+
# nursery-lints:
34+
branches_sharing_code = { level = "allow", priority = 1 }
35+
cognitive_complexity = { level = "allow", priority = 1 }
36+
derive_partial_eq_without_eq = { level = "allow", priority = 1 }
37+
empty_line_after_doc_comments = { level = "allow", priority = 1 }
38+
fallible_impl_from = { level = "allow", priority = 1 }
39+
imprecise_flops = { level = "allow", priority = 1 }
40+
missing_const_for_fn = { level = "allow", priority = 1 }
41+
nonstandard_macro_braces = { level = "allow", priority = 1 }
42+
option_if_let_else = { level = "allow", priority = 1 }
43+
suboptimal_flops = { level = "allow", priority = 1 }
44+
suspicious_operation_groupings = { level = "allow", priority = 1 }
45+
too_long_first_doc_paragraph = { level = "allow", priority = 1 }
46+
use_self = { level = "allow", priority = 1 }
47+
while_float = { level = "allow", priority = 1 }
2748
# pedantic-lints:
2849
cast_lossless = { level = "allow", priority = 1 }
2950
cast_possible_truncation = { level = "allow", priority = 1 }
@@ -35,10 +56,12 @@ doc_markdown = { level = "allow", priority = 1 }
3556
explicit_deref_methods = { level = "allow", priority = 1 }
3657
explicit_iter_loop = { level = "allow", priority = 1 }
3758
float_cmp = { level = "allow", priority = 1 }
59+
ignore_without_reason = { level = "allow", priority = 1 }
3860
implicit_clone = { level = "allow", priority = 1 }
3961
implicit_hasher = { level = "allow", priority = 1 }
4062
items_after_statements = { level = "allow", priority = 1 }
4163
iter_without_into_iter = { level = "allow", priority = 1 }
64+
large_stack_arrays = { level = "allow", priority = 1 }
4265
linkedlist = { level = "allow", priority = 1 }
4366
manual_assert = { level = "allow", priority = 1 }
4467
manual_let_else = { level = "allow", priority = 1 }
@@ -52,6 +75,7 @@ module_name_repetitions = { level = "allow", priority = 1 }
5275
must_use_candidate = { level = "allow", priority = 1 }
5376
needless_pass_by_value = { level = "allow", priority = 1 }
5477
redundant_closure_for_method_calls = { level = "allow", priority = 1 }
78+
ref_option = { level = "allow", priority = 1 }
5579
return_self_not_must_use = { level = "allow", priority = 1 }
5680
semicolon_if_nothing_returned = { level = "allow", priority = 1 }
5781
should_panic_without_expect = { level = "allow", priority = 1 }
@@ -61,20 +85,21 @@ stable_sort_primitive = { level = "allow", priority = 1 }
6185
too_many_lines = { level = "allow", priority = 1 }
6286
trivially_copy_pass_by_ref = { level = "allow", priority = 1 }
6387
unnecessary_box_returns = { level = "allow", priority = 1 }
88+
unnecessary_semicolon = { level = "allow", priority = 1 }
6489
unnested_or_patterns = { level = "allow", priority = 1 }
6590
unreadable_literal = { level = "allow", priority = 1 }
6691
unused_self = { level = "allow", priority = 1 }
6792
used_underscore_binding = { level = "allow", priority = 1 }
68-
ref_option = { level = "allow", priority = 1 }
69-
unnecessary_semicolon = { level = "allow", priority = 1 }
70-
ignore_without_reason = { level = "allow", priority = 1 }
71-
large_stack_arrays = { level = "allow", priority = 1 }
7293
# restriction-lints:
7394
absolute_paths = { level = "allow", priority = 1 }
95+
allow_attributes = { level = "allow", priority = 1 }
96+
allow_attributes_without_reason = { level = "allow", priority = 1 }
97+
arbitrary_source_item_ordering = { level = "allow", priority = 1 }
7498
arithmetic_side_effects = { level = "allow", priority = 1 }
7599
as_conversions = { level = "allow", priority = 1 }
76100
assertions_on_result_states = { level = "allow", priority = 1 }
77101
blanket_clippy_restriction_lints = { level = "allow", priority = 1 }
102+
cfg_not_test = { level = "allow", priority = 1 }
78103
clone_on_ref_ptr = { level = "allow", priority = 1 }
79104
dbg_macro = { level = "allow", priority = 1 }
80105
decimal_literal_representation = { level = "allow", priority = 1 }
@@ -84,6 +109,7 @@ else_if_without_else = { level = "allow", priority = 1 }
84109
exhaustive_enums = { level = "allow", priority = 1 }
85110
exhaustive_structs = { level = "allow", priority = 1 }
86111
expect_used = { level = "allow", priority = 1 }
112+
field_scoped_visibility_modifiers = { level = "allow", priority = 1 }
87113
float_arithmetic = { level = "allow", priority = 1 }
88114
float_cmp_const = { level = "allow", priority = 1 }
89115
if_then_some_else_none = { level = "allow", priority = 1 }
@@ -95,6 +121,7 @@ integer_division_remainder_used = { level = "allow", priority = 1 }
95121
iter_over_hash_type = { level = "allow", priority = 1 }
96122
little_endian_bytes = { level = "allow", priority = 1 }
97123
map_err_ignore = { level = "allow", priority = 1 }
124+
map_with_unused_argument_over_ranges = { level = "allow", priority = 1 }
98125
min_ident_chars = { level = "allow", priority = 1 }
99126
missing_assert_message = { level = "allow", priority = 1 }
100127
missing_asserts_for_indexing = { level = "allow", priority = 1 }
@@ -108,11 +135,14 @@ non_ascii_literal = { level = "allow", priority = 1 }
108135
panic = { level = "allow", priority = 1 }
109136
partial_pub_fields = { level = "allow", priority = 1 }
110137
pattern_type_mismatch = { level = "allow", priority = 1 }
138+
precedence_bits = { level = "allow", priority = 1 }
111139
print_stderr = { level = "allow", priority = 1 }
112140
print_stdout = { level = "allow", priority = 1 }
113141
pub_use = { level = "allow", priority = 1 }
114142
pub_with_shorthand = { level = "allow", priority = 1 }
115143
question_mark_used = { level = "allow", priority = 1 }
144+
redundant_test_prefix = { level = "allow", priority = 1 }
145+
renamed_function_params = { level = "allow", priority = 1 }
116146
same_name_method = { level = "allow", priority = 1 }
117147
semicolon_outside_block = { level = "allow", priority = 1 }
118148
separated_literal_suffix = { level = "allow", priority = 1 }
@@ -130,44 +160,15 @@ undocumented_unsafe_blocks = { level = "allow", priority = 1 }
130160
unnecessary_safety_comment = { level = "allow", priority = 1 }
131161
unreachable = { level = "allow", priority = 1 }
132162
unseparated_literal_suffix = { level = "allow", priority = 1 }
163+
unused_trait_names = { level = "allow", priority = 1 }
133164
unwrap_in_result = { level = "allow", priority = 1 }
134165
unwrap_used = { level = "allow", priority = 1 }
135166
use_debug = { level = "allow", priority = 1 }
136-
wildcard_enum_match_arm = { level = "allow", priority = 1 }
137-
renamed_function_params = { level = "allow", priority = 1 }
138-
allow_attributes_without_reason = { level = "allow", priority = 1 }
139-
allow_attributes = { level = "allow", priority = 1 }
140-
cfg_not_test = { level = "allow", priority = 1 }
141-
field_scoped_visibility_modifiers = { level = "allow", priority = 1 }
142-
unused_trait_names = { level = "allow", priority = 1 }
143167
used_underscore_items = { level = "allow", priority = 1 }
144-
arbitrary_source_item_ordering = { level = "allow", priority = 1 }
145-
map_with_unused_argument_over_ranges = { level = "allow", priority = 1 }
146-
precedence_bits = { level = "allow", priority = 1 }
147-
redundant_test_prefix = { level = "allow", priority = 1 }
148-
# nursery-lints:
149-
branches_sharing_code = { level = "allow", priority = 1 }
150-
cognitive_complexity = { level = "allow", priority = 1 }
151-
derive_partial_eq_without_eq = { level = "allow", priority = 1 }
152-
empty_line_after_doc_comments = { level = "allow", priority = 1 }
153-
fallible_impl_from = { level = "allow", priority = 1 }
154-
imprecise_flops = { level = "allow", priority = 1 }
155-
missing_const_for_fn = { level = "allow", priority = 1 }
156-
nonstandard_macro_braces = { level = "allow", priority = 1 }
157-
option_if_let_else = { level = "allow", priority = 1 }
158-
suboptimal_flops = { level = "allow", priority = 1 }
159-
suspicious_operation_groupings = { level = "allow", priority = 1 }
160-
use_self = { level = "allow", priority = 1 }
161-
while_float = { level = "allow", priority = 1 }
162-
too_long_first_doc_paragraph = { level = "allow", priority = 1 }
163-
# cargo-lints:
164-
cargo_common_metadata = { level = "allow", priority = 1 }
168+
wildcard_enum_match_arm = { level = "allow", priority = 1 }
165169
# style-lints:
166170
doc_lazy_continuation = { level = "allow", priority = 1 }
167-
needless_return = { level = "allow", priority = 1 }
168171
doc_overindented_list_items = { level = "allow", priority = 1 }
169-
needless_range_loop = { level = "allow", priority = 1 }
170172
doc_paragraphs_missing_punctuation = { level = "allow", priority = 1 }
171-
# complexity-lints
172-
precedence = { level = "allow", priority = 1 }
173-
manual_div_ceil = { level = "allow", priority = 1 }
173+
needless_range_loop = { level = "allow", priority = 1 }
174+
needless_return = { level = "allow", priority = 1 }

DIRECTORY.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
* [RGB-HSV Conversion](https://github.com/TheAlgorithms/Rust/blob/master/src/conversions/rgb_hsv_conversion.rs)
9393
* [Roman Numerals](https://github.com/TheAlgorithms/Rust/blob/master/src/conversions/roman_numerals.rs)
9494
* [Speed](https://github.com/TheAlgorithms/Rust/blob/master/src/conversions/speed.rs)
95-
* [Time Units](https://github.com/TheAlgorithms/Rust/blob/master/src/conversions/time_units.rs)
95+
* [Time](https://github.com/TheAlgorithms/Rust/blob/master/src/conversions/time.rs)
9696
* [Temperature](https://github.com/TheAlgorithms/Rust/blob/master/src/conversions/temperature.rs)
9797
* [Volume](https://github.com/TheAlgorithms/Rust/blob/master/src/conversions/volume.rs)
9898
* [Weight](https://github.com/TheAlgorithms/Rust/blob/master/src/conversions/weight.rs)
@@ -179,8 +179,8 @@
179179
* [Ramer Douglas Peucker](https://github.com/TheAlgorithms/Rust/blob/master/src/geometry/ramer_douglas_peucker.rs)
180180
* [Segment](https://github.com/TheAlgorithms/Rust/blob/master/src/geometry/segment.rs)
181181
* Graph
182-
* [Ant Colony Optimization](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/ant_colony_optimization.rs)
183182
* [A*](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/astar.rs)
183+
* [Ant Colony Optimization](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/ant_colony_optimization.rs)
184184
* [Bellman-Ford](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/bellman_ford.rs)
185185
* [Bipartite Matching](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/bipartite_matching.rs)
186186
* [Breadth First Search](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/breadth_first_search.rs)
@@ -204,7 +204,7 @@
204204
* [Prim](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/prim.rs)
205205
* [Prufer Code](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/prufer_code.rs)
206206
* [Strongly Connected Components](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/strongly_connected_components.rs)
207-
* [Tarjans Ssc](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/tarjans_ssc.rs)
207+
* [Tarjans Strongly Connected Components](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/tarjans_ssc.rs)
208208
* [Topological Sort](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/topological_sort.rs)
209209
* [Two Satisfiability](https://github.com/TheAlgorithms/Rust/blob/master/src/graph/two_satisfiability.rs)
210210
* Greedy
@@ -239,7 +239,7 @@
239239
* [Absolute](https://github.com/TheAlgorithms/Rust/blob/master/src/math/abs.rs)
240240
* [Aliquot Sum](https://github.com/TheAlgorithms/Rust/blob/master/src/math/aliquot_sum.rs)
241241
* [Amicable Numbers](https://github.com/TheAlgorithms/Rust/blob/master/src/math/amicable_numbers.rs)
242-
* [Area Of Polygon](https://github.com/TheAlgorithms/Rust/blob/master/src/math/area_of_polygon.rs)
242+
* [Area of Polygon](https://github.com/TheAlgorithms/Rust/blob/master/src/math/area_of_polygon.rs)
243243
* [Area Under Curve](https://github.com/TheAlgorithms/Rust/blob/master/src/math/area_under_curve.rs)
244244
* [Armstrong Number](https://github.com/TheAlgorithms/Rust/blob/master/src/math/armstrong_number.rs)
245245
* [Average](https://github.com/TheAlgorithms/Rust/blob/master/src/math/average.rs)
@@ -253,7 +253,7 @@
253253
* [Collatz Sequence](https://github.com/TheAlgorithms/Rust/blob/master/src/math/collatz_sequence.rs)
254254
* [Combinations](https://github.com/TheAlgorithms/Rust/blob/master/src/math/combinations.rs)
255255
* [Cross Entropy Loss](https://github.com/TheAlgorithms/Rust/blob/master/src/math/cross_entropy_loss.rs)
256-
* [Decimal To Fraction](https://github.com/TheAlgorithms/Rust/blob/master/src/math/decimal_to_fraction.rs)
256+
* [Decimal to Fraction](https://github.com/TheAlgorithms/Rust/blob/master/src/math/decimal_to_fraction.rs)
257257
* [Doomsday](https://github.com/TheAlgorithms/Rust/blob/master/src/math/doomsday.rs)
258258
* [Elliptic Curve](https://github.com/TheAlgorithms/Rust/blob/master/src/math/elliptic_curve.rs)
259259
* [Euclidean Distance](https://github.com/TheAlgorithms/Rust/blob/master/src/math/euclidean_distance.rs)
@@ -268,7 +268,7 @@
268268
* [Frizzy Number](https://github.com/TheAlgorithms/Rust/blob/master/src/math/frizzy_number.rs)
269269
* [Gaussian Elimination](https://github.com/TheAlgorithms/Rust/blob/master/src/math/gaussian_elimination.rs)
270270
* [Gaussian Error Linear Unit](https://github.com/TheAlgorithms/Rust/blob/master/src/math/gaussian_error_linear_unit.rs)
271-
* [GCD Of N Numbers](https://github.com/TheAlgorithms/Rust/blob/master/src/math/gcd_of_n_numbers.rs)
271+
* [GCD of N Numbers](https://github.com/TheAlgorithms/Rust/blob/master/src/math/gcd_of_n_numbers.rs)
272272
* [Geometric Series](https://github.com/TheAlgorithms/Rust/blob/master/src/math/geometric_series.rs)
273273
* [Greatest Common Divisor](https://github.com/TheAlgorithms/Rust/blob/master/src/math/greatest_common_divisor.rs)
274274
* [Huber Loss](https://github.com/TheAlgorithms/Rust/blob/master/src/math/huber_loss.rs)

src/ciphers/affine_cipher.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ pub fn affine_decrypt(key: usize, message: &str) -> Result<String, String> {
244244
/// assert!(key >= 2);
245245
/// ```
246246
pub fn affine_generate_key() -> usize {
247-
use rand::Rng;
247+
use rand::RngExt;
248248
let mut rng = rand::rng();
249249
let symbols_len = SYMBOLS.len();
250250

src/conversions/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ mod rgb_hsv_conversion;
2121
mod roman_numerals;
2222
mod speed;
2323
mod temperature;
24-
mod time_units;
24+
mod time;
2525
mod volume;
2626
mod weight;
2727

@@ -50,6 +50,6 @@ pub use self::rgb_hsv_conversion::{hsv_to_rgb, rgb_to_hsv, ColorError, Hsv, Rgb}
5050
pub use self::roman_numerals::{int_to_roman, roman_to_int};
5151
pub use self::speed::{convert_speed, SpeedUnit};
5252
pub use self::temperature::{convert_temperature, TemperatureUnit};
53-
pub use self::time_units::convert_time;
53+
pub use self::time::convert_time;
5454
pub use self::volume::{convert_volume, VolumeUnit};
5555
pub use self::weight::{convert_weight, WeightUnit};

src/data_structures/veb_tree.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ impl Iterator for VebTreeIter<'_> {
235235
#[cfg(test)]
236236
mod test {
237237
use super::VebTree;
238-
use rand::{rngs::StdRng, Rng, SeedableRng};
238+
use rand::{rngs::StdRng, RngExt, SeedableRng};
239239

240240
fn test_veb_tree(size: u32, mut elements: Vec<u32>, exclude: Vec<u32>) {
241241
// Insert elements

src/general/genetic.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use std::fmt::Debug;
1010
/// It is generic over:
1111
/// * Eval, which could be a float, or any other totally ordered type, so that we can rank solutions to our problem
1212
/// * Rng: a random number generator (could be thread rng, etc.)
13-
pub trait Chromosome<Rng: rand::Rng, Eval> {
13+
pub trait Chromosome<Rng: rand::RngExt, Eval> {
1414
/// Mutates this Chromosome, changing its genes
1515
fn mutate(&mut self, rng: &mut Rng);
1616

@@ -22,7 +22,7 @@ pub trait Chromosome<Rng: rand::Rng, Eval> {
2222
fn fitness(&self) -> Eval;
2323
}
2424

25-
pub trait SelectionStrategy<Rng: rand::Rng> {
25+
pub trait SelectionStrategy<Rng: rand::RngExt> {
2626
fn new(rng: Rng) -> Self;
2727

2828
/// Selects a portion of the population for reproduction
@@ -37,10 +37,10 @@ pub trait SelectionStrategy<Rng: rand::Rng> {
3737
/// A roulette wheel selection strategy
3838
/// https://en.wikipedia.org/wiki/Fitness_proportionate_selection
3939
#[allow(dead_code)]
40-
pub struct RouletteWheel<Rng: rand::Rng> {
40+
pub struct RouletteWheel<Rng: rand::RngExt> {
4141
rng: Rng,
4242
}
43-
impl<Rng: rand::Rng> SelectionStrategy<Rng> for RouletteWheel<Rng> {
43+
impl<Rng: rand::RngExt> SelectionStrategy<Rng> for RouletteWheel<Rng> {
4444
fn new(rng: Rng) -> Self {
4545
Self { rng }
4646
}
@@ -86,10 +86,10 @@ impl<Rng: rand::Rng> SelectionStrategy<Rng> for RouletteWheel<Rng> {
8686
}
8787

8888
#[allow(dead_code)]
89-
pub struct Tournament<const K: usize, Rng: rand::Rng> {
89+
pub struct Tournament<const K: usize, Rng: rand::RngExt> {
9090
rng: Rng,
9191
}
92-
impl<const K: usize, Rng: rand::Rng> SelectionStrategy<Rng> for Tournament<K, Rng> {
92+
impl<const K: usize, Rng: rand::RngExt> SelectionStrategy<Rng> for Tournament<K, Rng> {
9393
fn new(rng: Rng) -> Self {
9494
Self { rng }
9595
}
@@ -118,7 +118,7 @@ impl<const K: usize, Rng: rand::Rng> SelectionStrategy<Rng> for Tournament<K, Rn
118118

119119
type Comparator<T> = Box<dyn FnMut(&T, &T) -> Ordering>;
120120
pub struct GeneticAlgorithm<
121-
Rng: rand::Rng,
121+
Rng: rand::RngExt,
122122
Eval: PartialOrd,
123123
C: Chromosome<Rng, Eval>,
124124
Selection: SelectionStrategy<Rng>,
@@ -140,7 +140,7 @@ pub struct GenericAlgorithmParams {
140140
}
141141

142142
impl<
143-
Rng: rand::Rng,
143+
Rng: rand::RngExt,
144144
Eval: Into<f64> + PartialOrd + Debug,
145145
C: Chromosome<Rng, Eval> + Clone + Debug,
146146
Selection: SelectionStrategy<Rng>,
@@ -222,7 +222,7 @@ mod tests {
222222
Tournament,
223223
};
224224
use rand::rngs::ThreadRng;
225-
use rand::{rng, Rng};
225+
use rand::{rng, RngExt};
226226
use std::collections::HashMap;
227227
use std::fmt::{Debug, Formatter};
228228
use std::ops::RangeInclusive;

src/graph/ant_colony_optimization.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
//! - [Ant Colony Optimization Algorithms](https://en.wikipedia.org/wiki/Ant_colony_optimization_algorithms)
1515
//! - [Travelling Salesman Problem](https://en.wikipedia.org/wiki/Travelling_salesman_problem)
1616
17-
use rand::Rng;
17+
use rand::RngExt;
1818
use std::collections::HashSet;
1919

2020
/// Represents a 2D city with coordinates

src/machine_learning/random_forest.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use rand::seq::SliceRandom;
2-
use rand::Rng;
2+
use rand::RngExt;
33

44
/// Train a single decision tree on a bootstrap sample with random feature subset
55
#[allow(dead_code)]

src/math/quadratic_residue.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
use std::rc::Rc;
1111
use std::time::{SystemTime, UNIX_EPOCH};
1212

13-
use rand::Rng;
13+
use rand::RngExt;
1414

1515
use super::{fast_power, PCG32};
1616

0 commit comments

Comments
 (0)