#ifndef _WIN32
#include "../include/lminmaxgd.h"
#else
#include "..\include\lminmaxgd.h"
using namespace std;
#endif
/////////////////////////////////////////////////////////////////////
/* Example : transport avec ZeCury
*/
#include "..\src\gd.cpp"
#include "..\src\poly.cpp"
#include "..\src\serie.cpp"
#include "..\src\smatrix.cpp"
#include "..\src\tools.cpp"
int main(void)
{
try{
poly m;
smatrix a1(4,4), a2(4,4), a3(4,4), a4(4,4);
smatrix a5,a6,a7,a8;

a1(0,1)=gd(1,0);
a1(0,3)=gd(2,0);
a1(1,0)=gd(0,2);
a1(2,1).init(m.init(0,3)(-1,0),epsilon,e);
a1(2,3)=gd(1,0);
a1(3,2)=gd(0,1);


a2=otimes(a1,a1);
a3=otimes(a1,a2);
a4=otimes(a1,a3);
a5=otimes(a1,a4);
a6=otimes(a1,a5);
a7=otimes(a1,a6);
a8=otimes(a1,a7);
cout<<"a2"<<a2<<endl;
cout<<"a3"<<a3<<endl;
cout<<"a4"<<a4<<endl;
cout<<"a5"<<a5<<endl;
cout<<"a6"<<a6<<endl;
cout<<"a7"<<a7<<endl;
cout<<"a8"<<a8<<endl;
return(0);
 }
  catch(mem_limite l)
 {
     cout<<"Exception : too many coefficent in polynom "<<l.memoire<<endl;
     return(1);
 }

 catch(taille_incorrecte obj)
 { // 0 : r non causal
   // 1 : tentative d'accès à un element d'une matrice avec un indice incorrect
   // 2 : matrice de taille incompatible pour oplus, inf, otimes, rfrac, lfrac
   // 3 : etoile de matrice carré uniquement
     cout<<"Exception  "<<obj.erreur<<endl;
     return(1);
 }
}
