Skip to main content

StochasticProcessTree

Struct StochasticProcessTree 

Source
pub struct StochasticProcessTree {
    pub activity_key: ActivityKey,
    pub tree: Vec<Node>,
    pub transition2node: Vec<usize>,
    pub weights: Vec<Fraction>,
    pub termination_weight: Fraction,
}

Fields§

§activity_key: ActivityKey§tree: Vec<Node>§transition2node: Vec<usize>§weights: Vec<Fraction>§termination_weight: Fraction

Implementations§

Source§

impl StochasticProcessTree

Source

pub fn node_to_lpn( &self, node: usize, net: &mut LabelledPetriNet, translator: &ActivityKeyTranslator, source: usize, sink: usize, ) -> Result<usize>

Source§

impl StochasticProcessTree

Source

pub fn get_number_of_nodes(&self) -> usize

Source

pub fn get_node(&self, node: usize) -> Option<&Node>

Source

pub fn root(&self) -> usize

Source

pub fn get_node_of_transition( &self, transition: TransitionIndex, ) -> Result<&Node>

Source

pub fn get_parent(&self, node: usize) -> Option<(usize, usize)>

Returns the parent of node. Notice that this is an expensive operation; avoid if possible.

@param node @return The parent of node, and the rank of the child

Source

pub fn get_child_rank_with( &self, parent: usize, grand_child: usize, ) -> Option<usize>

@param parent @param grandChild @return The number of the child within parent that contains grandChild. If grandChild is not a child of parent, will return -1.

Source

pub fn get_children(&self, node: usize) -> StochasticChildrenIterator<'_>

Source

pub fn get_parents(&self, node: usize) -> StochasticParentsIterator<'_>

Source

pub fn get_descendants(&self, node: usize) -> &[Node]

Source

pub fn is_parent_of(&self, parent: usize, child: usize) -> bool

@param parent @param child @return Whether the child is a direct or indirect child of parent.

Source

pub fn traverse(&self, node: usize) -> usize

Find the next node of this node: the next sibling, and if that is not available, the next sibling up the tree. May return a non-existing node if there is no sibling.

Source

pub fn get_child(&self, parent: usize, child_rank: usize) -> usize

Source

pub fn get_number_of_children(&self, parent: usize) -> Option<usize>

Source

pub fn node_to_transition(&self, node: usize) -> Option<usize>

Source§

impl StochasticProcessTree

Source

pub fn number_of_leaves(&self) -> usize

Source

pub fn node_to_string( &self, indent: usize, node: usize, f: &mut Formatter<'_>, ) -> Result<usize>

Source

pub fn node_to_dot( &self, graph: &mut VisualGraph, node: usize, entry: &NodeHandle, exit: &NodeHandle, ) -> usize

Trait Implementations§

Source§

impl Clone for StochasticProcessTree

Source§

fn clone(&self) -> StochasticProcessTree

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StochasticProcessTree

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for StochasticProcessTree

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Exportable for StochasticProcessTree

Source§

fn export_from_object(object: EbiObject, f: &mut dyn Write) -> Result<()>

Input: any EbiObject. Output: the object will have been converted if necessary, and written to f. May fail for all kinds of reasons.
Source§

fn export(&self, f: &mut dyn Write) -> Result<()>

Source§

impl From<(ActivityKey, Vec<Node>, Vec<FractionEnum>, FractionEnum)> for StochasticProcessTree

Source§

fn from(value: (ActivityKey, Vec<Node>, Vec<Fraction>, Fraction)) -> Self

Converts to this type from the input type.
Source§

impl From<StochasticProcessTree> for DeterministicFiniteAutomaton

Source§

fn from(value: StochasticProcessTree) -> Self

Converts to this type from the input type.
Source§

impl From<StochasticProcessTree> for LabelledPetriNet

Source§

fn from(value: StochasticProcessTree) -> Self

Converts to this type from the input type.
Source§

impl From<StochasticProcessTree> for LolaNet

Source§

fn from(value: StochasticProcessTree) -> Self

Converts to this type from the input type.
Source§

impl From<StochasticProcessTree> for ProcessTree

Source§

fn from(value: StochasticProcessTree) -> Self

Converts to this type from the input type.
Source§

impl From<StochasticProcessTree> for StochasticNondeterministicFiniteAutomaton

Source§

fn from(tree: StochasticProcessTree) -> Self

Converts to this type from the input type.
Source§

impl FromStr for StochasticProcessTree

Source§

type Err = Error

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Graphable for StochasticProcessTree

Source§

impl HasActivityKey for StochasticProcessTree

Source§

impl Importable for StochasticProcessTree

Source§

const FILE_FORMAT_SPECIFICATION_LATEX: &str = "A stochastic process tree is a line-based structure. Lines starting with a \\# are ignored. This first line is exactly `stochastic process tree'. The subsequent lines contain the nodes: Each node is either: \\begin{itemize} \\item A line with the word `activity' followed on the same line by a space and the label of the activity leaf. The next line contains the weight of the activity; \\item The word `tau', followed on the next line by the weight of the leaf; \\item The name of an operator (`sequence', `xor', `concurrent', `loop', `interleaved', or `or') on its own line. The line thereafter contains the number of children of the node, after which the nodes are given. An operator node must have at least one child. \\end{itemize} Indentation of nodes is allowed, but not mandatory.\\ The last line of the file contains the weight of termination. For instance: \\lstinputlisting[language=ebilines, style=boxed]{../testfiles/all_operators.sptree}"

A latex piece that describes the file format.
Source§

const IMPORTER_PARAMETERS: &[ImporterParameter]

Defines the parameters that the importer expects.
Source§

fn import_as_object( reader: &mut dyn BufRead, parameter_values: &ImporterParameterValues, ) -> Result<EbiObject>

Source§

fn import(reader: &mut dyn BufRead, _: &ImporterParameterValues) -> Result<Self>
where Self: Sized,

Attempts to import from the reader. The parameter_values must match the order given in IMPORTER_PARAMETERS.
Source§

fn default_importer_parameter_values() -> ImporterParameterValues

Source§

impl Infoable for StochasticProcessTree

Source§

fn info(&self, f: &mut impl Write) -> Result<()>

Source§

impl TranslateActivityKey for StochasticProcessTree

Source§

fn translate_using_activity_key(&mut self, to_activity_key: &mut ActivityKey)

Change the activity key of this object, by translating all mentions of activities to the new activity key (which will be updated with activity labels it did not have yet.). This is a potentially expensive operation. If only a part of the activities will be used, then consider using an ActivityKeyTranslator directly. The activity key of this object will be updated too, so the activity keys will be equivalent afterwards.
Source§

impl TryFrom<(ProcessTree, Vec<FractionEnum>, FractionEnum)> for StochasticProcessTree

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from( value: (ProcessTree, Vec<Fraction>, Fraction), ) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<StochasticProcessTree> for BusinessProcessModelAndNotation

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: StochasticProcessTree) -> Result<Self>

Performs the conversion.
Source§

impl TryFrom<StochasticProcessTree> for PetriNet

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: StochasticProcessTree) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<StochasticProcessTree> for PetriNetMarkupLanguage

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: StochasticProcessTree) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T, U> ExactFrom<T> for U
where U: TryFrom<T>,

Source§

fn exact_from(value: T) -> U

Source§

impl<T, U> ExactInto<U> for T
where U: ExactFrom<T>,

Source§

fn exact_into(self) -> U

Source§

impl<T> Finish for T

Source§

fn finish(self)

Does nothing but move self, equivalent to drop.
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> OverflowingInto<U> for T
where U: OverflowingFrom<T>,

Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> RoundingInto<U> for T
where U: RoundingFrom<T>,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> SaturatingInto<U> for T
where U: SaturatingFrom<T>,

Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToDebugString for T
where T: Debug,

Source§

fn to_debug_string(&self) -> String

Returns the String produced by Ts Debug implementation.

§Examples
use malachite_base::strings::ToDebugString;

assert_eq!([1, 2, 3].to_debug_string(), "[1, 2, 3]");
assert_eq!(
    [vec![2, 3], vec![], vec![4]].to_debug_string(),
    "[[2, 3], [], [4]]"
);
assert_eq!(Some(5).to_debug_string(), "Some(5)");
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<U, T> ToOwnedObj<U> for T
where U: FromObjRef<T>,

Source§

fn to_owned_obj(&self, data: FontData<'_>) -> U

Convert this type into T, using the provided data to resolve any offsets.
Source§

impl<U, T> ToOwnedTable<U> for T
where U: FromTableRef<T>,

Source§

fn to_owned_table(&self) -> U

Source§

impl<T> ToPDF for T
where T: ToSVG,

Source§

impl<T> ToPNG for T
where T: ToSVG,

Source§

impl<T> ToSVG for T
where T: Graphable,

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T, U> WrappingInto<U> for T
where U: WrappingFrom<T>,

Source§

fn wrapping_into(self) -> U