#include <numeric.h> int main() { int m = 5; array double a[5][5] = { 1, 10, 100, 1000, 10000, 0.1, 1, 10, 100, 1000, 0.01, 0.1, 1, 10, 100, 0.001,0.01, 0.1, 1, 10, 0.0001,0.001,0.01, 0.1, 1}; int status; array double b[m][m], d[m][m]; status = balance(a, b, d); if (status == 0) { printf("a =\n%f\n", a); printf("b =\n%f\n", b); printf("d =\n%f\n", d); printf("inverse(d)*a*d - b =\n%f\n", inverse(d)*a*d-b); } else printf("error: calculation error in balance().\n"); }
a = 1.000000 10.000000 100.000000 1000.000000 10000.000000 0.100000 1.000000 10.000000 100.000000 1000.000000 0.010000 0.100000 1.000000 10.000000 100.000000 0.001000 0.010000 0.100000 1.000000 10.000000 0.000100 0.001000 0.010000 0.100000 1.000000 b = 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 d = 1000.000000 0.000000 0.000000 0.000000 0.000000 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 10.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.100000 inverse(d)*a*d - b = 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