[][src]Struct ddo::Decreasing

pub struct Decreasing;

This strategy selects the variable in decreasing order. This means, it has provides and order which is the opposite of the NaturalOrder.

Example

let mut variables = VarSet::all(3);
assert_eq!(Some(Variable(2)), Decreasing.next_var(&variables, &mut current_layer, &mut next_layer));

variables.remove(Variable(2)); // move on to the next layer
assert_eq!(Some(Variable(1)), Decreasing.next_var(&variables, &mut current_layer, &mut next_layer));

variables.remove(Variable(1)); // move on to the next layer
assert_eq!(Some(Variable(0)), Decreasing.next_var(&variables, &mut current_layer, &mut next_layer));

variables.remove(Variable(0)); // move on to the last layer, no more var to branch on
assert_eq!(None, Decreasing.next_var(&variables, &mut current_layer, &mut next_layer));

Note:

Even though any variable heuristic may access the current and next layers of the mdd being developed, the natural ordering heuristic does not use that access.

Trait Implementations

impl Clone for Decreasing[src]

impl Copy for Decreasing[src]

impl Debug for Decreasing[src]

impl Default for Decreasing[src]

impl<T> VariableHeuristic<T> for Decreasing[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.