| (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]]