[][src]Trait momba_explore::time::TimeType

pub trait TimeType: Sized {
    type Valuations: Eq + PartialEq + Hash + Clone;
    type CompiledDifference: Clone;
    type CompiledClocks: Clone;
    pub fn new(network: &Network) -> Result<Self, String>;
pub fn compile_difference(
        &self,
        left: &Clock,
        right: &Clock
    ) -> Self::CompiledDifference;
pub fn compile_clocks(
        &self,
        clocks: &HashSet<Clock>
    ) -> Self::CompiledClocks;
pub fn is_empty(&self, valuations: &Self::Valuations) -> bool;
pub fn create_valuations(
        &self,
        constraints: Vec<Constraint<Self>>
    ) -> Result<Self::Valuations, String>;
pub fn constrain(
        &self,
        valuations: Self::Valuations,
        difference: &Self::CompiledDifference,
        is_strict: bool,
        bound: Value
    ) -> Self::Valuations;
pub fn reset(
        &self,
        valuations: Self::Valuations,
        clocks: &Self::CompiledClocks
    ) -> Self::Valuations;
pub fn future(&self, valuations: Self::Valuations) -> Self::Valuations; }

An interface for dealing with different ways of representing time.

Associated Types

type Valuations: Eq + PartialEq + Hash + Clone[src]

Type used to represent potentially infinite sets of clock valuations.

type CompiledDifference: Clone[src]

Type used to represent the difference between two clocks.

type CompiledClocks: Clone[src]

Type used to represent a compiled set of clocks.

Loading content...

Required methods

pub fn new(network: &Network) -> Result<Self, String>[src]

Crates a new instance of TimeType for the given network.

pub fn compile_difference(
    &self,
    left: &Clock,
    right: &Clock
) -> Self::CompiledDifference
[src]

Takes two clocks and returns a compiled difference between left and right.

pub fn compile_clocks(&self, clocks: &HashSet<Clock>) -> Self::CompiledClocks[src]

Takes a set of clocks and returns a compiled set of clocks.

pub fn is_empty(&self, valuations: &Self::Valuations) -> bool[src]

Checks the provided set of valuations is empty.

pub fn create_valuations(
    &self,
    constraints: Vec<Constraint<Self>>
) -> Result<Self::Valuations, String>
[src]

Creates a set of valuations based on the given constraints.

pub fn constrain(
    &self,
    valuations: Self::Valuations,
    difference: &Self::CompiledDifference,
    is_strict: bool,
    bound: Value
) -> Self::Valuations
[src]

Constrain a set of valuations with the given constraint.

pub fn reset(
    &self,
    valuations: Self::Valuations,
    clocks: &Self::CompiledClocks
) -> Self::Valuations
[src]

Resets the clocks of the given set to 0.

pub fn future(&self, valuations: Self::Valuations) -> Self::Valuations[src]

Extrapolates the future of the given valuations.

Loading content...

Implementors

impl TimeType for Float64Zone[src]

type Valuations = DBM<ConstantBound<NotNan<f64>>>

type CompiledDifference = (usize, usize)

type CompiledClocks = Vec<usize>

pub fn future(&self, valuations: Self::Valuations) -> Self::Valuations[src]

Extrapolates the future of the given valuations.

impl TimeType for NoClocks[src]

type Valuations = ()

type CompiledDifference = ()

type CompiledClocks = ()

Loading content...