(Event+Time).Variant Operators
2.3
Operators for Timed Discrete Event Systems in Dioids
|
Class for polynomials in the semiring E[[d]]. More...
#include <polyEd.h>
Public Member Functions | |
polyEd () | |
default initialization to Epsilon | |
polyEd (bool TopNotE) | |
specific initialization : polyEd(true) set to Top, polyEd(false) set to E | |
polyEd (const Ed &m) | |
initialisation to a polynomial with one Ed term w.d^t | |
polyEd (const std::vector< Ed > &v) | |
bool | isCanon () const |
Check if a polyEd is in canonical form, say for a sum w_id^t_i, w_i and t_i are strictly ordered. | |
void | canon () |
set to the canonical form | |
bool | isE () const |
check if is equal to E()=g0.d0 | |
polyEd | oplus (const polyEd &p) const |
Sum of polynomials in E[[d]]. | |
polyEd | operator+ (const polyEd &p) const |
Sum of polynomials in E[[d]]. | |
polyEd | oplusCD (const polyEd &p) const |
Sum of polynomials in E[[d]] via a Core Decomposition (see J.Trunk Thesis) | |
polyEd | operator+ (const Ed &m) const |
Sum of a polynomial in E[[d]] with a monomial in E[[d]]. | |
void | add (const Ed &m) |
The current polynomial pcur is modified as pcur=pcur+m. | |
polyEd | operator+= (const Ed &m) |
Lies on polyEd::add(const Ed & m) method. | |
polyEd | operator* (const polyEd &p) const |
Product of polynomials in E[[d]]. | |
polyEd | otimes (const polyEd &p) const |
Product of polynomials in E[[d]]. | |
polyEd | operator* (const Ed &m) const |
Product of one polynomial by one monomial in E[[d]]. | |
polyEd | otimesCD (const polyEd &p) const |
Product of polynomials in E[[d]] via a Core Decomposition (see j.Trunk thesis) | |
polyEd | inf (const polyEd &p) const |
Infimum of two polynomials in E[[d]] : p1.inf(p2) = greatest x s.t. x<=p1 and x<=p2. | |
polyEd | infCD (const polyEd &p) const |
seriesEd | star () const |
polyEd | lfrac (const polyEd &) const |
Computation of the left-multiplication residuation: p1.lfrac(p2) =p2= greatest x s.t. p2.x <= p1. | |
polyEd | lfracCD (const polyEd &) const |
polyEd | lfrac (const Ed &m) const |
Computation of the left-multiplication residuation: p1.lfrac(m) =m= greatest x s.t. m.x <= p1. | |
polyEd | rfrac (const polyEd &) const |
Computation of the right-multiplication residuation: p1.rfrac(p2) =p1/p2= greatest x s.t. x.p2 <= p1. | |
polyEd | rfracCD (const polyEd &) const |
polyEd | rfrac (const Ed &m) const |
Computation of the right-multiplication residuation: p1.rfrac(m) =p1/m= greatest x s.t. x.m <= p1. | |
bool | operator== (const polyEd &) const |
Check equality. | |
bool | operator!= (const polyEd &) const |
Check difference. | |
bool | operator<= (const polyEd &) const |
Check order on polynomials in E[[d]]. | |
bool | operator>= (const polyEd &) const |
Check order on polynomials in E[[d]]. | |
poly | toPoly () const |
The zero-slice polynomial in MinMax[[g,d]]. | |
Ed | getFirstDif (const polyEd &p) const |
polyEd | transientStar (int Tmax) const |
Do not use it. Use polyEd::star(). Only for DEBUGGING purpose. | |
void | getMaxGain (unsigned int &mu, unsigned int &beta) const |
Gives the maximal gain. | |
void | getLcmGain (unsigned int &mu, unsigned int &beta) const |
Gives th Least Common multiple of gains. | |
std::pair< unsigned int, unsigned int > | getPeriodicity () const |
Returns the periodicity as a pair. | |
std::vector< Ed > | getTerms () const |
return the monomials as a collection of Ed terms | |
void | removeTerm (unsigned idx) |
remove term number i in the polynomial | |
Ed | operator[] (unsigned idx) const |
Returns a copy of monomial in position idx in the polynomial. | |
unsigned int | size () const |
Returns the size = the number of monomials. For Epsilon and Top, size=0. | |
std::string | toString () const |
returns a string that gives the description of the current polynomial. Is depending on the canonical form of gNg terms | |
std::string | toStringAsMuVar () const |
returns a string that gives the description of the current polynomial as a sum of g^n.m<seq>.d^t terms | |
matrix< poly > | getCore (unsigned ratio=1) const |
matrix< poly > | getCoreMax (unsigned ratio=1) const |
returns the maximal Core matrix<poly> (in MinMax[[g,d]]) of the current polynomial | |
void | toPov (graphicPR::PovRay &pov, graphicPR::PovRay::Color c) |
used in the creation of POV-Ray script for a polyEd object | |
polyEd | odot (const polyEd &p) const |
polyEd | osum (const polyEd &p) const |
![]() | |
ISterm (bool isEpsilon=false) | |
default constructor : an epsilon term | |
ISterm (int epsNTop) | |
constructor to specify the type of ISterm | |
bool | isEpsilon () const |
bool | isTop () const |
bool | isExtreme () const |
void | setEpsilon () |
void | setTop () |
bool | operator== (const ISterm &) const |
Static Public Member Functions | |
static polyEd | Epsilon () |
Epsilon element. | |
static polyEd | E () |
E element. | |
static polyEd | Top () |
Top element. | |
static polyEd | otimes (const Ed &m, const polyEd &p) |
static polyEd | toPolyEd (const poly &p) |
An injection from MinMax[[g,d]] to E[[d]]. More... | |
static polyEd | toCausal (const polyEd &p) |
returns a causal polynomial in E[[d]] | |
static polyEd | coreToPolyEd (const matrix< poly > &core) |
computes the recomposition of a polyEd polynomial from a Core Decomposition core. | |
static etvo::matrix< poly > | getMatN (unsigned size) |
Additional Inherited Members | |
![]() | |
char | _epsNTop |
_epsNTop = -1 epsilon 0 not extrem (normal) +1 Top | |
Class for polynomials in the semiring E[[d]].
Epsilon and Top element exist
etvo::polyEd::polyEd | ( | const std::vector< Ed > & | v | ) |
returns the Core matrix<poly> (in MinMax[[g,d]]) of the current polynomial a polynomial p=Mu_m Q Beta_b with Mu_m=[mu_m g^1mu_m g^2mu_m ... g^(m-1)mu_m] with Beta_b=[beta_b g^(b-1) ... beta_b g^1 beta_b]' and Q in MinMax[[g,d]] Mu_m and Beta_b are implicit from the size of Core
When the current polynomial is different from p, gives the first different monomial Otherwise, if both polynomials are equals, returns Ed::E()=g0.d0
|
static |
returns the specific matrix Beta_N.Mu_N with Mu_m=[mu_m g^1mu_m g^2mu_m ... g^(m-1)mu_m] with Beta_b=[beta_b g^(b-1) ... beta_b g^1 beta_b]'
Infimum of two polynomials in E[[d]] via a Core Decomposition (see J.Trunk thesis) Note: p1.inf(p2) is supposed to be equal to p1.infCD(p2), with a different algorithm.
Computation of the left-multiplication residuation via a Core Decomposition : p1.lfracCD(p2) =p2= greatest x s.t. p2.x <= p1 Note: p1.lfrac(p2) is supposed to be equal to p1.lfracCD(p2) with a different algorithm
Computation of the right-multiplication residuation via a Core Decomposition: p1.rfrac(p2) =p1/p2= greatest x s.t. x.p2 <= p1 Note: p1.rfrac(p2) is supposed to be equal to p1.rfracCD(p2), with a different algorithm
seriesEd etvo::polyEd::star | ( | ) | const |
Kleene star of a polynomial in E[[d]], the result is a series in E[[d]] The default algorithm is by using a Core Decomposition of the current polynomial, the Kleene star of the Core matrix, and finally the recomposition of a series in E[[d]] Exception : this method can throw a const char * exception (non causal case) or an etvoException when the result is a degenerate matrix (generally, it corresponds to liveness issues for the corresponding WB-TEG)
An injection from MinMax[[g,d]] to E[[d]].
Creates a polynomial in E[[d]] from a polynomial in MinMax[[g,d]]