int main() {
array double v[3] = {1,2,3};
int n = 3, k;
array double a[n][n];
a = diagonalmatrix(v);
printf("diagonal matrix a =\n%f\n", a);
k = 0;
a = diagonalmatrix(v,k);
printf("diagonalmatrix(a, 0) =\n%f\n", a);
k = 1;
array double a2[n+abs(k)][n+abs(k)];
a2 = diagonalmatrix(v,k);
printf("diagonalmatrix(a2, 1) =\n%f\n", a2);
k = -1;
array double a3[n+abs(k)][n+abs(k)];
a3 = diagonalmatrix(v,k);
printf("diagonalmatrix(a3, -1) =\n%f\n", a3);
}
diagonal matrix a =
1.000000 0.000000 0.000000
0.000000 2.000000 0.000000
0.000000 0.000000 3.000000
diagonalmatrix(a, 0) =
1.000000 0.000000 0.000000
0.000000 2.000000 0.000000
0.000000 0.000000 3.000000
diagonalmatrix(a2, 1) =
0.000000 1.000000 0.000000 0.000000
0.000000 0.000000 2.000000 0.000000
0.000000 0.000000 0.000000 3.000000
0.000000 0.000000 0.000000 0.000000
diagonalmatrix(a3, -1) =
0.000000 0.000000 0.000000 0.000000
1.000000 0.000000 0.000000 0.000000
0.000000 2.000000 0.000000 0.000000
0.000000 0.000000 3.000000 0.000000