rendered paste bodyvoid Gauss(double a[10][10], double b[10], int n, double x[10])
{
int l[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//real array (aij)nxn, (li)n;
//real array allocate (si)n;
int i=0;
int j=0;
int k=0;
double r=0.0;
double rmax=0.0;
double smax=0.0;
double xmult=0.0;
double tempval =0.0;
double s[10];
double sum=0.0;
for (i = 0; i<n; i++)
{
l[i] = i;
smax = 0.0;
for(j=0; j<n; j++)
{
//smax = max(smax, |aij|)
tempval = (double)a[i][j];
if(tempval < 0)
{
tempval = -tempval;
}
if(tempval > smax)
{
smax = tempval;
}
}
s[i] = smax;
}
for (k=0; k<n-1; k++)
{
rmax=0;
for(i=k; i<n; i++)
{
//r=|ali,k/sli|
r = fabs(a[l[i]][k] / s[l[i]]);
if (r > rmax)
{
rmax = r;
j=i;
}
}
//lj=lk;
//lk=lj;
tempval = l[j];
l[j] = l[k];
l[k] = tempval;
for (i=(k+1); i<n; i++)
{
xmult = a[l[i]][k]/a[l[k]][k];
a[l[i]][k] = xmult;
for (j=(k+1); j<n; j++)
{
//ali,j = ali,j - (xmult)alk,j;
a[l[i]][j] = a[l[i]][j] - xmult * a[l[k]][j];
}
}
}
////second part of procedure...................
for(i = 0; i < 10 ; i++)
{
x[i] = 0;
}
i =0;
k =0;
sum = 0;
for (k=0; k<n-1; k++)
{
for (i=(k+1); i<n; i++)
{
b[l[i]] = b[l[i]] - a[l[i]][k] * b[l[k]];
}
}
x[n-1] = b[l[n-1]]/a[l[n-1]][n-1];
for (i=(n-2); i >=0; i--)
{
sum = b[l[i]];
for (j=(i+1); j<n; j++)
{
sum = sum - a[l[i]][j]*x[j];
}
x[i] = fabs(sum/a[l[i]][i]);
if (x[i] == -0.00000)
{
x[i] = 0.00000;
}
}
}