#include <stdio.h>
#include <stdlib.h>
#include <mpc.h>
void init_matrix(int n, double (*a)[n][n]) {
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
(*a)[i][j]=10.;
for(i=0;i<n;i++)
(*a)[i][i]=10.*n;
}
void print_matrix(int n, double (*a)[n][n]) {
int i,j;
for(i=0;i<n;i++) {
for(j=0;j<n;j++)
printf("%lf\t",(*a)[i][j]);
printf("\n");
}
}
int [*]main(int [host]argc, char *[host]argv[]){
[host]:
{
int n, i, j;
n = atoi(argv[1]);
if(n<=0)
printf("Wrong input: n = %d\n", n);
else {
double a[n][n];
init_matrix(n,&a);
printf("\n Source matrix :\n");
print_matrix(n,&a);
for(i=0; i<n-1; i++) {
for(j=i+1; j<n; j++) {
double t;
t = a[j][i] / a[i][i];
if(a[j][i]!=0)
a[j][i:n-1] -= t * a[i][i:n-1];
}
}
printf("\n Matrix after LU transformation: \n");
print_matrix(n,&a);
}
}
}