29 if ( mat==NULL )
return;
31 for (
int i = 0 ; mat[i]!=NULL && i < nb_lignes ; i++)
32 {
delete []mat[i]; mat[i]=NULL; }
34 delete []mat; mat=NULL;
46 FSize =
sizeof(
int*)*nbli +
sizeof(
int)*nbcol*nbli;
50 if ( mat==NULL )
return false;
52 for (
int i = 0 ; i < nbli ; i++)
54 mat[i] =
new int [nbcol] ;
67 for(
int i = 0 ; i < nbli ; i++)
69 for(
int j = 0 ; j < nbcol ; j++)
78 allocate(source.nb_lignes,source.nb_colonnes);
81 for (
int i = 0 ; i < source.nb_lignes ; i++)
83 for (
int j = 0 ; j < source.nb_colonnes ; j++)
85 this->mat[i][j]=source.mat[i][j];
99 for(
int i=pos;i<nb_colonnes;i++)
101 if(mat[pos][i]!=0 && mat[pos][i]%mat[pos][pos]!=0)
117 for(
int i=pos;i<nb_lignes;i++)
119 if(mat[i][pos]!=0 && mat[i][pos]%mat[pos][pos]!=0)
135 for(
int i=pos+1;i<nb_lignes;i++)
137 for(
int j=pos+1;j<nb_colonnes;j++)
139 if(mat[i][j]!=0 && mat[i][j]%mat[pos][pos]!=0)
156 for(
int i=pos;i<nb_lignes;i++)
158 for(
int j=pos;j<nb_colonnes;j++)
160 if(abs(mat[i][j])<min && mat[i][j]!=0)
174 int a=op2->nb_lignes;
175 int b=op2->nb_colonnes;
178 assert( a==nb_lignes );
188 mattmp->mat[i][j]+=op2->mat[i][k]*mat[k][j];
197 FValid = mattmp->FValid;
205 assert(nb_lignes==m->nb_lignes);
206 assert(nb_colonnes==m->nb_colonnes);
208 for(
int i=0;i<nb_lignes;i++)
210 for(
int j=0;j<nb_colonnes;j++)
212 mat[i][j]=m->mat[i][j];
219 return this->mat[i][j];
224 return this->nb_lignes;
229 return this->nb_colonnes;
241 for(
int n=0;n<nb_lignes;n++)
254 for(
int n=0;n<nb_colonnes;n++)
265 for(
int n=0;n<nb_colonnes;n++)
274 for(
int n=0;n<nb_lignes;n++)
282 for(
int n=0;n<nb_colonnes;n++)
284 mat[i][n]+=coeff*mat[j][n];
290 for(
int n=0;n<nb_lignes;n++)
292 mat[n][i]+=coeff*mat[n][j];
298 for (
int i=0;i<nb_lignes;i++)
300 for(
int j=0;j<nb_colonnes;j++)
302 printf(
"%2d ",mat[i][j]);
304 std::cout << std::endl;
311 for (
int j=0;j<nb_colonnes;j++)
329 for (
int j=nb_z;j<nb_colonnes;j++)