{
int invGJ(double **a,int n)
int *is,*js,i,j,k,l,u,v; double d,p;
is=(int *)malloc(n*sizeof(int)); js=(int *)malloc(n*sizeof(int)); for(k=0;k<=n-1;k++) { { }
if(is[k]!=k)
for(j=0;j<=n-1;j++) { }
if(js[k]!=k)
for(i=0;i<=n-1;i++) {
u=i*n+k;v=i*n+js[k];
d=0.0;
for(i=k;i<=n-1;i++) for(j=k;j<=n-1;j++) { }
l=i*n+j;p=fabs(a[i][j]); if(p>d)
{d=p;is[k]=i;js[k]=j;}
if(d+1.0==1.0)
free(is);free(js);printf("error not inv\n"); return (0);
u=k*n+j;v=is[k]*n+j;
p=a[k][j];a[k][j]=a[is[k]][j];a[is[k]][j]=p;