pub struct Uniform { /* private fields */ }Expand description
The struct representing an uniform distribution.
Given a range, it generates a vector of uniform distributed input sizes.
Implementations§
Source§impl Uniform
impl Uniform
Sourcepub fn new(range: RangeInclusive<usize>) -> Self
pub fn new(range: RangeInclusive<usize>) -> Self
Examples found in repository?
examples/search/main.rs (line 22)
19fn main() {
20 // Create a distribution for the length of the vectors
21 // Here we use an uniform distribution with a minimum of 10 and a maximum of 100_000
22 let length_distribution = Uniform::new(10..=100_000);
23
24 // Create the builder for the vectors
25 // Here we choose to use the fast generator method in order to generate ordered vectors
26 let vector_builder = InputBuilder::new(length_distribution, Generator::Fast);
27
28 // Build 200 vectors
29 let vectors = vector_builder.build(200);
30
31 // Create a slice of the algorithms we want to measure
32 let algorithms: &[(fn(&input::SearchInput) -> Option<usize>, &str); 2] = &[
33 (linear_search_input, "Linear search"),
34 (binary_search_input, "Binary search"),
35 ];
36
37 // Measure the algorithms on the vectors, given a relative error of 0.001
38 let results = measure(&vectors, algorithms, 0.001);
39
40 let file_name = "results/search.svg";
41
42 // Here we print the linear regression of the log-log scale of the results
43 for result in results.clone().measurements {
44 let log_linear_regression = result.log_log_scale().linear_regression();
45 println!(
46 "{}: {} * x + {}",
47 result.algorithm_name, log_linear_regression.0, log_linear_regression.1
48 )
49 }
50
51 let config = PlotConfig::default()
52 .with_title("Search in an ordered vector")
53 .with_caption("The time plot of searching algorithms in an ordered vector");
54
55 // Plot the results
56 time_plot(file_name, results, &config);
57}Sourcepub fn set_gen_type(&mut self, gen_type: GenerationType)
pub fn set_gen_type(&mut self, gen_type: GenerationType)
Sets the generation type of the exponential distribution. The generation type can be either fixed intervals or random.
§Arguments
gen_type- The generation type.
Trait Implementations§
Source§impl ProbabilityDistribution for Uniform
impl ProbabilityDistribution for Uniform
Source§fn inverse_cdf(&self, u: f64) -> f64
fn inverse_cdf(&self, u: f64) -> f64
This function takes a value x in [0,1] uniformly distributed and returns a value that is
distributed according to the probability distribution chosen. Read more
Source§fn get_gen_type(&self) -> &GenerationType
fn get_gen_type(&self) -> &GenerationType
Returns the generation type of the distribution. Read more
Auto Trait Implementations§
impl Freeze for Uniform
impl RefUnwindSafe for Uniform
impl Send for Uniform
impl Sync for Uniform
impl Unpin for Uniform
impl UnwindSafe for Uniform
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more