mCRL2
Loading...
Searching...
No Matches
stochastic_process_initializer.h
Go to the documentation of this file.
1// Author(s): Wieger Wesselink
2// Copyright: see the accompanying file COPYING or copy at
3// https://github.com/mCRL2org/mCRL2/blob/master/COPYING
4//
5// Distributed under the Boost Software License, Version 1.0.
6// (See accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8//
11
12#ifndef MCRL2_LPS_STOCHASTIC_PROCESS_INITIALIZER_H
13#define MCRL2_LPS_STOCHASTIC_PROCESS_INITIALIZER_H
14
16
17namespace mcrl2 {
18
19namespace lps {
20
23{
25
26 public:
29 : super(core::detail::default_values::LinearProcessInit)
30 {}
31
35 : super(term, false)
36 {
38 }
39
42 : super(atermpp::aterm(core::detail::function_symbol_LinearProcessInit(), expressions, distribution), false)
43 {}
44
46 {
47 return atermpp::down_cast<stochastic_distribution>((*this)[1]);
48 }
49};
50
51template <class... ARGUMENTS>
52inline void make_stochastic_process_initializer(atermpp::aterm& t, ARGUMENTS... args)
53{
54 make_term_appl(t, core::detail::function_symbol_LinearProcessInit(), args...);
55}
56
57
58//--- start generated class stochastic_process_initializer ---//
61
63typedef std::vector<stochastic_process_initializer> stochastic_process_initializer_vector;
64
68inline
70{
72}
73
74// prototype declaration
75std::string pp(const stochastic_process_initializer& x);
76
81inline
82std::ostream& operator<<(std::ostream& out, const stochastic_process_initializer& x)
83{
84 return out << lps::pp(x);
85}
86
89{
90 t1.swap(t2);
91}
92//--- end generated class stochastic_process_initializer ---//
93
94// template function overloads
95std::set<data::variable> find_free_variables(const lps::stochastic_process_initializer& x);
96
97} // namespace lps
98
99} // namespace mcrl2
100
101#endif // MCRL2_LPS_STOCHASTIC_PROCESS_INITIALIZER_H
aterm()
Default constructor.
Definition aterm.h:48
const function_symbol & function() const
Returns the function symbol belonging to an aterm.
Definition aterm.h:144
void swap(unprotected_aterm_core &t) noexcept
Swaps this term with its argument.
Definition aterm_core.h:152
data::data_expression_list expressions() const
\brief A stochastic distribution
stochastic_process_initializer(const atermpp::aterm &term)
Constructor.
stochastic_process_initializer(const data::data_expression_list &expressions, const stochastic_distribution &distribution)
Constructor.
const stochastic_distribution & distribution() const
The main namespace for the aterm++ library.
Definition algorithm.h:21
const atermpp::function_symbol & function_symbol_LinearProcessInit()
bool check_term_LinearProcessInit(const Term &t)
std::vector< stochastic_process_initializer > stochastic_process_initializer_vector
\brief vector of stochastic_process_initializers
bool is_stochastic_process_initializer(const atermpp::aterm &x)
atermpp::term_list< stochastic_process_initializer > stochastic_process_initializer_list
\brief list of stochastic_process_initializers
std::string pp(const action_summand &x)
Definition lps.cpp:26
std::ostream & operator<<(std::ostream &out, const action_summand &x)
std::set< data::variable > find_free_variables(const lps::deadlock &x)
Definition lps.cpp:54
void swap(action_summand &t1, action_summand &t2)
\brief swap overload
void make_stochastic_process_initializer(atermpp::aterm &t, ARGUMENTS... args)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Definition indexed_set.h:72
The class process_initializer.
static const atermpp::function_symbol LinearProcessInit