(Event+Time).Variant Operators  2.3
Operators for Timed Discrete Event Systems in Dioids
serie.h
1 /*****************************************************************************************/
2 /********* Classe serie ******************************************************************/
3 /*****************************************************************************************/
4 #ifndef __SERIE_H__
5 #define __SERIE_H__
6 /*****************************************************************************************/
7 /********* Classe serie ******************************************************************/
8 /*****************************************************************************************/
9 
10 #include "poly.h"
11 
12 namespace mmgd
13 {
14  class serie {
15  private:
16  poly p;
17  poly q;
18  gd r;
19  int canonise;
20  void affecte(const poly&, const poly&, const gd&, int); //affectation avec 2 polynomes et un monome
21  void fail(char *msg) { std::cout << msg << "\n"; }
22  public:
23  serie(void);// constructeur 0 : serie = epsilon + epsilon.(epsilon)*
24  serie(const serie &);// constructuer 1 : serie initialisee avec un objet serie
25  serie(const poly& p1, const poly& q1, gd& r1);
26  //constructeur 2 : initialise avec p1,q1, r1
27  serie(poly& p);//constructeur 2 bis : initialis�avec un poyn�e
28  serie(gd& gd1);//constructeur 2 bis : initialis�avec un monome
29  serie(unsigned int np1, unsigned int nq1, gd* p1, gd* q1, gd& r1);
30  // constructeur 3 : initialise avec p1, q1, r1
31  ~serie(void); // destructeur
32  poly& getp(void) { return p; }
33  poly& getq(void) { return q; }
34  gd& getr(void) { return r; }
35 
36  serie& operator =(const serie& serie1); //surdefinition du =, permet d'initialiser avec une autre s�ie
37  serie& operator=(const gd& gd1); // initialise avec un monome cast monome->serie
38  serie& operator=(const poly& p1); // initialise avec un polynome cast polynome->serie
39 
40 
41  void init(poly& p1, poly& q1, gd& r1); //init avec p1 , q1, r1
42  void init(unsigned int, unsigned int, gd*, gd*, gd&); // initialise avec 2 vecteurs de monomes et d'1 monome
43  void init(gd& pgd1, gd & qgd1, gd& r1); // initialise avec 3 monomes
44  void init(poly& p1, gd& qgd1, gd& r1); // initialise avec 1 polyn�e 1 monome 1 monome
45  void init(gd& pgd1, poly& q1, gd& r1); // initialise avec 1 mon�e 1 polynome 1 monome
46  void canon(); // mise sous forme canonique de la serie
47 
48  int operator==(serie &);
49 
50  friend std::ostream& operator<<(std::ostream &flot, serie &serie1);//surdef. de <<
51 
52  friend std::fstream& operator<<(std::fstream &flot, serie &serie1);//surdef. de << fichier
53 
54  friend serie oplus(serie &, serie &); //somme de 2 series p�iodiques
55  friend serie oplus(poly&, serie&);
56  friend serie oplus(serie&, poly&);
57  friend serie oplus(gd&, serie&);
58  friend serie oplus(serie&, gd&);
59 
60  friend serie otimes(serie &, serie &); //produit de 2 series p�iodiques
61  friend serie otimes(poly &pol1, serie &s2);
62  friend serie otimes(serie &s2, poly &pol1);
63  friend serie otimes(gd &gd1, serie &s2);
64  friend serie otimes(serie &s2, gd &gd1);
65 
66  friend serie star(poly poly1); // �oile de polyn�e
67  friend serie star(gd & r1); // �oile de monome
68  friend serie star(serie& s1); //�oile de s�ie
69 
70 
71  friend serie inf(serie & s1, serie & s2);
72  friend serie inf(serie& s1, poly& p2);
73  friend serie inf(poly& p1, serie& s2);
74  friend serie inf(gd&, serie&);
75  friend serie inf(serie&, gd&);
76 
77  friend serie frac(serie & s1, serie & s2); // residuation de deux s�ies
78  friend serie frac(serie & s1, gd & gd2); //residuation d'une s�ie par un monome
79  friend serie frac(serie & s1, poly & poly1); // residuation d'une s�ie par un polyn�e
80 
81  friend serie odot(serie &, serie &);
82  friend serie odot(serie& s1, poly& p2);
83  friend serie odot(poly& p1, serie& s2);
84  friend serie fracodotsharp(serie &, serie &);
85  friend serie fracodotflat(serie &, serie &);
86 
87  friend serie Dualfrac(serie & s1, gd & gd2);
88  friend serie prcaus(serie &);
89  };
90 
91  serie fracodotsharp(serie &, serie &);
92  serie fracodotflat(serie &, serie &);
93 
94 }//fin namespace mmgd
95 
96 #endif
97 
friend serie star(poly poly1)
Definition: serie.cpp:1364
Definition: poly.h:16
Definition: gd.h:13
Definition: gd.h:47
Definition: serie.h:14