[][src]Enum flag_algebra::expr::Expr

pub enum Expr<N, F> {
    Add(Rc<Expr<N, F>>, Rc<Expr<N, F>>),
    Mul(Rc<Expr<N, F>>, Rc<Expr<N, F>>),
    Neg(Rc<Expr<N, F>>),
    Unlab(Rc<Expr<N, F>>),
    Zero,
    One,
    Num(Rc<N>),
    Named(Rc<Expr<N, F>>, Rc<String>, bool),
    Var(usize),
    Flag(usizeBasis<F>),
    FromFunction(Rc<dyn Fn(&F, usize) -> N>, Basis<F>),
    FromIndicator(fn(_: &F, _: usize) -> boolBasis<F>),
    Unknown,
}

Expressions that represent a computation in flag algebras.

Variants

Add(Rc<Expr<N, F>>, Rc<Expr<N, F>>)
Mul(Rc<Expr<N, F>>, Rc<Expr<N, F>>)
Neg(Rc<Expr<N, F>>)
Unlab(Rc<Expr<N, F>>)
Zero
One
Num(Rc<N>)
Named(Rc<Expr<N, F>>, Rc<String>, bool)
Var(usize)
Flag(usizeBasis<F>)
FromFunction(Rc<dyn Fn(&F, usize) -> N>, Basis<F>)
FromIndicator(fn(_: &F, _: usize) -> boolBasis<F>)
Unknown

Implementations

impl<N, F> Expr<N, F>[src]

pub fn add(a: Self, b: Self) -> Self[src]

pub fn mul(a: Self, b: Self) -> Self[src]

pub fn neg(self) -> Self[src]

pub fn sub(a: Self, b: Self) -> Self[src]

pub fn unlab(self) -> Self[src]

pub fn named(self, name: String) -> Self[src]

pub fn unknown(name: String) -> Self[src]

pub fn num(n: &N) -> Self where
    N: Num + Clone
[src]

pub fn latex(&self, names: &mut Names<N, F>) -> String where
    N: Display,
    F: Ord + Flag
[src]

impl<N, F> Expr<N, F> where
    N: Num + Neg<Output = N> + Clone + FromPrimitive + ScalarOperand + Display,
    F: Flag
[src]

pub fn eval(&self) -> QFlag<N, F>[src]

pub fn eval_with_context(&self, range: &VarRange<F>, id: usize) -> QFlag<N, F>[src]

impl<N, F> Expr<N, F> where
    N: Clone,
    F: Clone
[src]

pub fn substitute_option(
    &self,
    range_opt: &Option<VarRange<F>>,
    id: usize
) -> Self
[src]

pub fn substitute(&self, range: &VarRange<F>, id: usize) -> Self[src]

impl<N, F> Expr<N, F>[src]

pub fn map<Fun, M>(&self, f: &Fun) -> Expr<M, F> where
    Fun: Fn(&N) -> M, 
[src]

Trait Implementations

impl<N, F> Clone for Expr<N, F>[src]

impl<N, F> Debug for Expr<N, F> where
    F: Debug,
    N: Debug
[src]

impl<N, F> Display for Expr<N, F> where
    N: Display
[src]

Auto Trait Implementations

impl<N, F> !RefUnwindSafe for Expr<N, F>

impl<N, F> !Send for Expr<N, F>

impl<N, F> !Sync for Expr<N, F>

impl<N, F> Unpin for Expr<N, F> where
    F: Unpin

impl<N, F> !UnwindSafe for Expr<N, F>

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> Same<T> for T[src]

type Output = T

Should always be Self

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 

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

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

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.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,