Struct jeepers::tree::TreeGen
[−]
[src]
pub struct TreeGen<'a, R> where R: 'a + Rng { pub rng: &'a mut R, pub mode: TreeGenMode, pub min_depth: usize, pub max_depth: usize, pub chosen_depth: usize, }
Configure generation of trees. This manages tree depth by deciding when to generate a Terminal (leaf) node.
Fields
rng: &'a mut R
A rand::Rng
implementation for generating random tree nodes.
mode: TreeGenMode
Which tree depth logic to use.
min_depth: usize
The minimum depth of trees to generate.
max_depth: usize
The maximum depth of trees to generate.
chosen_depth: usize
Internal randomly-chosen height to make the tree.
Methods
impl<'a, R> TreeGen<'a, R> where R: 'a + Rng
[src]
fn full(rng: &mut R, min_depth: usize, max_depth: usize) -> TreeGen<R>
Generate a fully-balanced tree between the depth bounds.
fn grow(rng: &mut R, min_depth: usize, max_depth: usize) -> TreeGen<R>
Generate a varying-depth tree between the depth bounds.
fn half_and_half(rng: &mut R, min_depth: usize, max_depth: usize) -> TreeGen<R>
Randomly choose between a fully-balanced tree and a varying-depth tree.
fn condition(&mut self, current_depth: usize, term_prob: f32) -> bool
Chooses whether to generate a Terminal (leaf) node. Used by Tree::rand_node
.
Trait Implementations
impl<'a, R: PartialEq> PartialEq for TreeGen<'a, R> where R: 'a + Rng
[src]
fn eq(&self, __arg_0: &TreeGen<'a, R>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &TreeGen<'a, R>) -> bool
This method tests for !=
.
impl<'a, R: Eq> Eq for TreeGen<'a, R> where R: 'a + Rng
[src]
impl<'a, R: Debug> Debug for TreeGen<'a, R> where R: 'a + Rng
[src]
impl<'a, R> Rng for TreeGen<'a, R> where R: 'a + Rng
[src]
fn next_u32(&mut self) -> u32
Return the next random u32. Read more
fn next_u64(&mut self) -> u64
Return the next random u64. Read more
fn fill_bytes(&mut self, dest: &mut [u8])
Fill dest
with random data. Read more
fn next_f32(&mut self) -> f32
Return the next random f32 selected from the half-open interval [0, 1)
. Read more
fn next_f64(&mut self) -> f64
Return the next random f64 selected from the half-open interval [0, 1)
. Read more
fn gen<T>(&mut self) -> T where T: Rand
Return a random value of a Rand
type. Read more
fn gen_iter<T>(&'a mut self) -> Generator<'a, T, Self> where T: Rand
Return an iterator that will yield an infinite number of randomly generated items. Read more
fn gen_range<T>(&mut self, low: T, high: T) -> T where T: SampleRange + PartialOrd<T>
Generate a random value in the range [low
, high
). Read more
fn gen_weighted_bool(&mut self, n: u32) -> bool
Return a bool with a 1 in n chance of true Read more
fn gen_ascii_chars(&'a mut self) -> AsciiGenerator<'a, Self>
Return an iterator of random characters from the set A-Z,a-z,0-9. Read more
fn choose<T>(&mut self, values: &'a [T]) -> Option<&'a T>
Return a random element from values
. Read more
fn choose_mut<T>(&mut self, values: &'a mut [T]) -> Option<&'a mut T>
Return a mutable pointer to a random element from values
. Read more
fn shuffle<T>(&mut self, values: &mut [T])
Shuffle a mutable slice in place. Read more