[−][src]Struct zdd::wrapped::Zdd
A wrapper around a ZDD and its factory.
Methods
impl<Label: Eq + Hash + Clone + Ord> Zdd<Label>
[src]
pub fn zero(factory: &Factory<Label>) -> Self
[src]
Creates an empty wrapped ZDD.
pub fn one(factory: &Factory<Label>) -> Self
[src]
Creates a wrapped ZDD containing the empty combination only.
pub fn of(zdd: &HConsed<ZddTree<Label>>, factory: &Factory<Label>) -> Self
[src]
Creates a wrapped ZDD from a regular ZDD.
pub fn get(&self) -> &ZddTree<Label>
[src]
The underlying Zdd.
pub fn get_factory(&self) -> &Factory<Label>
[src]
The underlying factory.
pub fn add_one(&self) -> Self
[src]
Adds the empty combination to a ZDD if it's not already there.
pub fn rm_one(&self) -> Self
[src]
Removes the empty combination from a ZDD if it's there.
pub fn lft(&self) -> Result<Zdd<Label>, bool>
[src]
Returns the left subtree if the ZDD is a node, an error
- of
true
if the ZDD isOne
(more preciselyHasOne(Zero)
) and - of
false
if it isZero
.
pub fn rgt(&self) -> Result<Zdd<Label>, bool>
[src]
Returns the right subtree if the ZDD is a node, an error of true
if the ZDD is One
and
false
if it is Zero
.
pub fn kids(&self) -> Result<(Zdd<Label>, Zdd<Label>), bool>
[src]
Returns the subtrees if the ZDD is a node, an error of true
if the ZDD is One
and
false
if it is Zero
.
pub fn count(&self) -> usize
[src]
The number of combinations in a ZDD. Cached.
pub fn offset(&self, lbl: Label) -> Self
[src]
The set of combinations of zdd
in which lbl
does not appear. Cached.
pub fn onset(&self, lbl: Label) -> Self
[src]
The set of combinations of zdd
in which lbl
appears, without lbl
in them. Cached.
pub fn change(&self, lbl: Label) -> Self
[src]
Switches lbl
in each combination of zdd
. Inverts offset
and onset
. Cached.
pub fn union(&self, rhs: Self) -> Self
[src]
The union of two ZDDs. Cached.
pub fn inter(&self, rhs: Self) -> Self
[src]
The intersection of two ZDDs. Cached.
pub fn minus(&self, rhs: Self) -> Self
[src]
The difference of two ZDDs. Cached.
pub fn subset(&self, rhs: Self) -> bool
[src]
Returns true iff lhs
is a subset of rhs
. Cached.
Methods from Deref<Target = ZddTree<Label>>
pub fn iter(&self) -> Iterator<Label>
[src]
Returns an iterator over a ZddTree. There's no into_iter
since a ZDD is immutable anyway.
Trait Implementations
impl<'a, Label: Eq + Hash + Clone + Ord> Add<&'a Zdd<Label>> for Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the +
operator.
fn add(self, rhs: &'a Zdd<Label>) -> Zdd<Label>
[src]
impl<'a, 'b, Label: Eq + Hash + Clone + Ord> Add<&'a Zdd<Label>> for &'b Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the +
operator.
fn add(self, rhs: &'a Zdd<Label>) -> Zdd<Label>
[src]
impl<Label: Eq + Hash + Clone + Ord> Add<Zdd<Label>> for Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the +
operator.
fn add(self, rhs: Zdd<Label>) -> Zdd<Label>
[src]
impl<'a, Label: Eq + Hash + Clone + Ord> Add<Zdd<Label>> for &'a Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the +
operator.
fn add(self, rhs: Zdd<Label>) -> Zdd<Label>
[src]
impl<'a, Label: Eq + Hash + Clone + Ord> BitAnd<&'a Zdd<Label>> for Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the &
operator.
fn bitand(self, rhs: &'a Zdd<Label>) -> Zdd<Label>
[src]
impl<'a, 'b, Label: Eq + Hash + Clone + Ord> BitAnd<&'a Zdd<Label>> for &'b Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the &
operator.
fn bitand(self, rhs: &'a Zdd<Label>) -> Zdd<Label>
[src]
impl<Label: Eq + Hash + Clone + Ord> BitAnd<Zdd<Label>> for Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the &
operator.
fn bitand(self, rhs: Zdd<Label>) -> Zdd<Label>
[src]
impl<'a, Label: Eq + Hash + Clone + Ord> BitAnd<Zdd<Label>> for &'a Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the &
operator.
fn bitand(self, rhs: Zdd<Label>) -> Zdd<Label>
[src]
impl<'a, Label: Eq + Hash + Clone + Ord> BitOr<&'a Label> for Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the |
operator.
fn bitor(self, rhs: &'a Label) -> Zdd<Label>
[src]
impl<'a, 'b, Label: Eq + Hash + Clone + Ord> BitOr<&'a Label> for &'b Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the |
operator.
fn bitor(self, rhs: &'a Label) -> Zdd<Label>
[src]
impl<Label: Eq + Hash + Clone + Ord> BitOr<Label> for Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the |
operator.
fn bitor(self, lbl: Label) -> Zdd<Label>
[src]
impl<'a, Label: Eq + Hash + Clone + Ord> BitOr<Label> for &'a Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the |
operator.
fn bitor(self, rhs: Label) -> Zdd<Label>
[src]
impl<'a, Label: Eq + Hash + Clone + Ord> BitXor<&'a Label> for Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the ^
operator.
fn bitxor(self, rhs: &'a Label) -> Zdd<Label>
[src]
impl<'a, 'b, Label: Eq + Hash + Clone + Ord> BitXor<&'a Label> for &'b Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the ^
operator.
fn bitxor(self, rhs: &'a Label) -> Zdd<Label>
[src]
impl<Label: Eq + Hash + Clone + Ord> BitXor<Label> for Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the ^
operator.
fn bitxor(self, lbl: Label) -> Zdd<Label>
[src]
impl<'a, Label: Eq + Hash + Clone + Ord> BitXor<Label> for &'a Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the ^
operator.
fn bitxor(self, rhs: Label) -> Zdd<Label>
[src]
impl<Label: Clone + Eq + Hash> Clone for Zdd<Label>
[src]
impl<Label: Eq + Hash + Clone> Deref for Zdd<Label>
[src]
type Target = ZddTree<Label>
The resulting type after dereferencing.
fn deref(&self) -> &ZddTree<Label>
[src]
impl<Label: Eq + Hash + Clone + Ord + Display> Display for Zdd<Label>
[src]
impl<Label: Eq + Hash + Clone> Eq for Zdd<Label>
[src]
impl<Label: Eq + Hash + Clone> Hash for Zdd<Label>
[src]
fn hash<H: Hasher>(&self, state: &mut H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<Label: Eq + Hash + Clone> Ord for Zdd<Label>
[src]
fn cmp(&self, rhs: &Self) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl<Label: Eq + Hash + Clone> PartialEq<Zdd<Label>> for Zdd<Label>
[src]
impl<Label: Eq + Hash + Clone> PartialOrd<Zdd<Label>> for Zdd<Label>
[src]
fn partial_cmp(&self, rhs: &Self) -> Option<Ordering>
[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl<'a, Label: Eq + Hash + Clone + Ord> Rem<&'a Label> for Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the %
operator.
fn rem(self, rhs: &'a Label) -> Zdd<Label>
[src]
impl<'a, 'b, Label: Eq + Hash + Clone + Ord> Rem<&'a Label> for &'b Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the %
operator.
fn rem(self, rhs: &'a Label) -> Zdd<Label>
[src]
impl<Label: Eq + Hash + Clone + Ord> Rem<Label> for Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the %
operator.
fn rem(self, lbl: Label) -> Zdd<Label>
[src]
impl<'a, Label: Eq + Hash + Clone + Ord> Rem<Label> for &'a Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the %
operator.
fn rem(self, rhs: Label) -> Zdd<Label>
[src]
impl<Label: Eq + Hash + Clone> Send for Zdd<Label>
[src]
impl<'a, Label: Eq + Hash + Clone + Ord> Shl<&'a Zdd<Label>> for Zdd<Label>
[src]
type Output = bool
The resulting type after applying the <<
operator.
fn shl(self, rhs: &'a Zdd<Label>) -> bool
[src]
impl<'a, 'b, Label: Eq + Hash + Clone + Ord> Shl<&'a Zdd<Label>> for &'b Zdd<Label>
[src]
type Output = bool
The resulting type after applying the <<
operator.
fn shl(self, rhs: &'a Zdd<Label>) -> bool
[src]
impl<Label: Eq + Hash + Clone + Ord> Shl<Zdd<Label>> for Zdd<Label>
[src]
type Output = bool
The resulting type after applying the <<
operator.
fn shl(self, rhs: Zdd<Label>) -> bool
[src]
impl<'a, Label: Eq + Hash + Clone + Ord> Shl<Zdd<Label>> for &'a Zdd<Label>
[src]
type Output = bool
The resulting type after applying the <<
operator.
fn shl(self, rhs: Zdd<Label>) -> bool
[src]
impl<'a, Label: Eq + Hash + Clone + Ord> Sub<&'a Zdd<Label>> for Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the -
operator.
fn sub(self, rhs: &'a Zdd<Label>) -> Zdd<Label>
[src]
impl<'a, 'b, Label: Eq + Hash + Clone + Ord> Sub<&'a Zdd<Label>> for &'b Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the -
operator.
fn sub(self, rhs: &'a Zdd<Label>) -> Zdd<Label>
[src]
impl<Label: Eq + Hash + Clone + Ord> Sub<Zdd<Label>> for Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the -
operator.
fn sub(self, rhs: Zdd<Label>) -> Zdd<Label>
[src]
impl<'a, Label: Eq + Hash + Clone + Ord> Sub<Zdd<Label>> for &'a Zdd<Label>
[src]
type Output = Zdd<Label>
The resulting type after applying the -
operator.
fn sub(self, rhs: Zdd<Label>) -> Zdd<Label>
[src]
impl<Label: Eq + Hash + Clone> Sync for Zdd<Label>
[src]
impl<Label: Display + Ord + Hash + Clone> ZddPrint<Label> for Zdd<Label>
[src]
impl<Label: Eq + Hash + Ord + Clone> ZddTreeOps<Label> for Zdd<Label>
[src]
Auto Trait Implementations
impl<Label> RefUnwindSafe for Zdd<Label> where
Label: RefUnwindSafe,
Label: RefUnwindSafe,
impl<Label> Unpin for Zdd<Label>
impl<Label> UnwindSafe for Zdd<Label> where
Label: RefUnwindSafe,
Label: RefUnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,