#include <stdio.h>
#include <stdarg.h>
int inverse(int n, double a[n][n], double b[n][n]) {
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
/*--------------------------------------------------------*/
/* not implemented */
}
return 0;
}
void mulm(int n, double a[n][n], double b[n][n], double c[n][n]) {
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
double s = 0.0;
for (int k = 0; k < n; k++)
s += a[i][k] * b[k][j];
c[i][j] = s;
}
}
void setm(int n, double a[n][n], ...) {
va_list list;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
a
[i
][j
] = va_arg(list
, double); }
}
void printm(int n, double a[n][n]) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
}
}
static int const n = 4;
int main() {
double a[n][n], b[n][n], c[n][n];
setm(n, a, 3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 3.0);
inverse(n, a, b);
mulm(n, a, b, c);
printm(n, c);
return 0;
}
/* end */
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRhcmcuaD4KCmludCBpbnZlcnNlKGludCBuLCBkb3VibGUgYVtuXVtuXSwgZG91YmxlIGJbbl1bbl0pIHsKICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIGZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKSB7CiAgICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogICAgICAvKiBub3QgaW1wbGVtZW50ZWQgKi8KICAgIH0KICByZXR1cm4gMDsKfQoKdm9pZCBtdWxtKGludCBuLCBkb3VibGUgYVtuXVtuXSwgZG91YmxlIGJbbl1bbl0sIGRvdWJsZSBjW25dW25dKSB7CiAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICBmb3IgKGludCBqID0gMDsgaiA8IG47IGorKykgewogICAgICBkb3VibGUgcyA9IDAuMDsKICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBuOyBrKyspCiAgICAgICAgcyArPSBhW2ldW2tdICogYltrXVtqXTsKICAgICAgY1tpXVtqXSA9IHM7CiAgICB9Cn0KCnZvaWQgc2V0bShpbnQgbiwgZG91YmxlIGFbbl1bbl0sIC4uLikgewogIHZhX2xpc3QgbGlzdDsKICB2YV9zdGFydChsaXN0LCBhKTsKICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIGZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKSB7CiAgICAgIGFbaV1bal0gPSB2YV9hcmcobGlzdCwgZG91YmxlKTsKICAgIH0KICB2YV9lbmQobGlzdCk7Cn0KCgp2b2lkIHByaW50bShpbnQgbiwgZG91YmxlIGFbbl1bbl0pIHsKICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspCiAgICAgIHByaW50ZigiJTNmLCAiLCBhW2ldW2pdKTsKICAgIHB1dGNoYXIoJ1xuJyk7CiAgfQp9CgpzdGF0aWMgaW50IGNvbnN0IG4gPSA0OwppbnQgbWFpbigpIHsKICBkb3VibGUgYVtuXVtuXSwgYltuXVtuXSwgY1tuXVtuXTsKICBzZXRtKG4sIGEsIDMuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAzLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMy4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDMuMCk7CiAgaW52ZXJzZShuLCBhLCBiKTsKICBwcmludG0obiwgYyk7IHB1dGNoYXIoJ1xuJyk7CiAgbXVsbShuLCBhLCBiLCBjKTsKICBwcmludG0obiwgYyk7CiAgcmV0dXJuIDA7Cn0KLyogZW5kICovCgo=
0.000000, 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 0.000000,