[][src]Struct biodivine_lib_bdd::BddSatisfyingValuations

pub struct BddSatisfyingValuations<'a> {
    bdd: &'a Bdd,
    continuation: Option<(Vec<BddPointer>, BddValuation, BddValuation)>,
}

An iterator over all satisfying valuations of a specific BDD.

Be aware of the potential exponential number of iterations!

Fields

bdd: &'a Bddcontinuation: Option<(Vec<BddPointer>, BddValuation, BddValuation)>

Implementations

impl<'_> BddSatisfyingValuations<'_>[src]

pub(in _impl_bdd_satisfying_valuations) fn increment_masked_valuation(
    valuation: &mut BddValuation,
    mask: &BddValuation
) -> bool
[src]

(internal) Increment the given valuation, but do not change the bits that have mask set to true. Returns true if increment was successful, false when overflowed.

pub(in _impl_bdd_satisfying_valuations) fn next_sat_path(
    bdd: &Bdd,
    sat_path: &mut Vec<BddPointer>,
    path_mask: &mut BddValuation,
    first_valuation: &mut BddValuation
) -> bool
[src]

(internal) Find next satisfying path in the Bdd and update path mask and first valuation accordingly. If this was the last satisfying path, returns false.

Trait Implementations

impl<'_> Iterator for BddSatisfyingValuations<'_>[src]

type Item = BddValuation

The type of the elements being iterated over.

Auto Trait Implementations

impl<'a> RefUnwindSafe for BddSatisfyingValuations<'a>

impl<'a> Send for BddSatisfyingValuations<'a>

impl<'a> Sync for BddSatisfyingValuations<'a>

impl<'a> Unpin for BddSatisfyingValuations<'a>

impl<'a> UnwindSafe for BddSatisfyingValuations<'a>

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<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

type IntoIter = I

Which kind of iterator are we turning this into?

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.