(Event+Time).Variant Operators  2.3
Operators for Timed Discrete Event Systems in Dioids
smatrix.h
1 #ifndef __SMATRIX_H__
2 #define __SMATRIX_H__
3 
4 
5 #include "serie.h"
6 /*************************************************************************************/
7 /*************************************************************************************/
8 
9 namespace mmgd
10 {
11  class smatrix {
12  private:
13  int row, col;
14  serie ** data;
15 
16  void affecte(const serie **, int ligne, int colonne); //affectation d'un ��ent avec un tableau de series
17 
18 
19  public:
20  smatrix(void);
21  smatrix(int, int);// constructeur 0 : matrice = epsilon + epsilon.(epsilon)*
22  smatrix(const smatrix &);// constructuer 1 : matrice initialisee avec un objet matrice
23  smatrix(const serie &);// constructuer 2 : matrice initialisee avec un objet serie
24  smatrix(poly &);// constructuer 3 : matrice initialisee avec un objet poly
25  smatrix(gd &);// constructuer 4 : matrice initialisee avec un objet monome
26 
27 
28  ~smatrix(void); // destructeur
29 
30  int getrow(void) { return row; }
31  int getcol(void) { return col; }
32 
33 
34  smatrix& operator =(const smatrix& a); //surdefinition du =, permet d'initialiser avec une autre matrice
35  smatrix& operator =(serie& a); //surdefinition du =, permet d'initialiser avec une serie cast serei matrice
36  smatrix& operator =(gd& gd1); // initialise avec un monome cast monome->matrice
37  smatrix& operator =(poly& p1); // initialise avec un polynome cast polynome->matrice
38  serie& operator ()(int i, int j) {
39  if (i >= row || j >= col)
40  {
41  taille_incorrecte number(1);
42  throw(number);
43  }
44 
45  return(data[i][j]);
46  }
47 
48 
49  int operator==(const smatrix & M); // surdefiniton de l'�alit�de matrice
50 
51  friend std::ostream & operator<<(std::ostream &flot, smatrix &);//surdef. de <<
52  friend std::fstream & operator<<(std::fstream &flot, smatrix &); // surdef de >> pour fichier
53 
54  friend smatrix oplus(smatrix&, smatrix&); //somme de 2 matrices de series p�iodiques
55 
56  friend smatrix inf(smatrix& a, smatrix& b); // inf de 2 matrices de s�ies p�iodiques
57 
58  friend smatrix otimes(smatrix&, smatrix&); //produit de 2 matrices de series p�iodiques
59 
60  friend smatrix lfrac(smatrix&, smatrix&); //residuation a gauche de 2 matrices de series p�iodiques b\a
61 
62  friend smatrix rfrac(smatrix& a, smatrix& b); // residuation �droite de 2 matrices de series p�iodiques a/b
63 
64  friend smatrix star(smatrix ak_1);
65  friend smatrix transpose(smatrix &PT);
66  friend smatrix prcaus(smatrix &);
67  friend smatrix odot(smatrix&, smatrix&);
68  friend smatrix Duallfrac(smatrix& a, smatrix& b);
69  friend smatrix permutation(smatrix &a);
70  };
71 
72 }//fin namespace mmgd
73 #endif
Definition: gd.h:28
Definition: poly.h:16
Definition: gd.h:13
Definition: smatrix.h:11
Definition: gd.h:47
Definition: serie.h:14
friend smatrix permutation(smatrix &a)
Essai 2013 june, is it possible to reduce complexity by permuting row of A, result is not so obvious...
Definition: smatrix.cpp:419