(Event+Time).Variant Operators  2.3
Operators for Timed Discrete Event Systems in Dioids
gd.h
1 
2 #ifndef __GD_H__
3 #define __GD_H__
4 
5 #include "tools.h"
6 #include <stdlib.h>
7 #include <math.h>
8 #include <fstream>
9 #include <iostream>
10 //#include<climits>
11 
12 
13 namespace mmgd
14 {
15  /*****************************************************************************************/
16  /********* Classe pour exception ******************************************************************/
17  /*****************************************************************************************/
18  class mem_limite
19  {
20  public:
21  int memoire;
22  mem_limite(int i)
23  {
24  memoire = i;
25  }
26 
27  };
29  {
30  public:
31  int erreur;
32  taille_incorrecte(int i)
33  {
34  erreur = i;
35  }
36 
37  };
38 
39 
40 #define infinit 2147483647
41 #define _infinit -2147483647
42 
43  /*****************************************************************************************/
44  //******* Classe gd definissant un monome *********************************************//
45  /*****************************************************************************************/
46 
47  class gd {
48  protected: long g;
49  long d;
50  void affecte(long, long);
51 
52  public: gd(void); // constructuer 0 : (g,d)=(+00,-00)
53  gd(const gd&); // constructeur 1 : par recopie
54  gd(long, long); // constructeur 2 : initialise avec 2 entiers
55 
56  // surdefinition de l'operateur egal
57  gd& operator=(const gd &); // initialise avec un objet gd ,
58  int operator!=(const gd &); // comparaison d'un monome avec le monome courant
59  int operator==(const gd &); // comparaison d'un monome avec le monome courant
60  int operator>=(const gd &); // comparaison d'un monome avec le monome courant
61  int operator<=(const gd &); // comparaison d'un monome avec le monome courant
62  bool operator<(const gd &) const; // comparaison d'un monome avec le monome courant
63 
64  gd& init(long, long); // initialise avec un tableau de 2 entiers
65  gd& operator ()(long, long); // initialise avec un tableau de 2 entiers
66  // void identifie();
67  friend std::ostream& operator<<(std::ostream&, gd&); //redefinition de l'operateur <<
68  friend std::fstream& operator<<(std::fstream&, gd&); //redefinition de l'operateur << pour fichier
69 
70  long getg(void) { return g; } // retourne g
71  long getd(void) { return d; } // retourne d pour acces de l'exterieur
72 
73  friend gd inf(const gd &gd1, const gd &gd2);
74  // inf de 2 monomes, en entree 2 monomes par reference
75  // la fonction retourne
76  // un monome pour permettre un appel successif
77 
78  friend gd otimes(const gd &gd1, const gd &gd2);
79  // produit de 2 monomes, on traite les cas degeneres
80  // en entree 2 monomes par reference
81  // la fonction retourne
82  // un monome pour permettre un appel successif
83 
84  friend gd frac(const gd & gd1, const gd &gd2);
85  // residuation de 2 monomes
86  // en entree 2 monomes par reference
87  // la fonction retourne
88  // un monome pour permettre un appel successif
89 
90  friend gd Dualfrac(const gd & gd1, const gd &gd2);
91 
92 
93  // Append from 17/04/2015 for Soraia
94  friend gd odot(const gd &gd1, const gd &gd2);
95  // produit d'hadamard de 2 monomes, on traite les cas degeneres
96  // en entree 2 monomes par reference
97  // la fonction retourne
98  // un monome pour permettre un appel successif
99 
100  friend gd fracodotsharp(const gd &gd1, const gd &gd2);
101  // residue d'hadamard de 2 monomes, gd1-gd2
102  // on traite les cas degeneres
103  // en entree 2 monomes par reference
104  // la fonction retourne
105  // un monome pour permettre un appel successif
106 
107  friend gd fracodotflat(const gd &gd1, const gd &gd2);
108  // residue d'hadamard (flat=bemol) de 2 monomes, gd1-gd2, i.e. odot(gd2,temp) >= gd1
109  // on traite les cas degeneres
110  // en entree 2 monomes par reference
111  // la fonction retourne
112  // un monome pour permettre un appel successif
113 
114 
115  }; // fin de la definition de class gd
116 
117 
118 
119 } // fin de namespace mmgd
120 #endif
121 
Definition: gd.h:28
Definition: gd.h:13
Definition: gd.h:47
Definition: gd.h:18