|
(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 |
Public Member Functions inherited from etvo::ISterm | |
| 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 | |
Protected Attributes inherited from etvo::ISterm | |
| 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]]