/* A-1; version 1.0 */ /* (c) copyright Ian Hickson 2000, distributed under the GNU GPL */ #include "dynamic-2d-arrays.h" #include "gauss-elimination.h" #define Q12 3 #define Q23 1 #define Q24 1 #define Q34 1.5 #define Q41 1 #define Qp1 2 #define Qp2 1 #define Qp3 0.5 #define Qp4 1.5 #define Cp1 0.02 #define Cp3 0.10 main() { array2d* array; array2d* answers; geNumber value; int x, y; /* allocate memory */ array = geAllocArray(4); /* init array */ for (x = 0; x < 5; x++) { for (y = 0; y < 4; y++) { geSet(array, x, y, 0); } } geSet(array, 0, 0, Q12); geSet(array, 3, 0, -Q41); geSet(array, 4, 0, Qp1*Cp1); geSet(array, 0, 1, Q12); geSet(array, 1, 1, -(Q23+Q24+Qp2)); geSet(array, 1, 2, -Q23); geSet(array, 2, 2, Q34); geSet(array, 4, 2, Qp3*Cp3); geSet(array, 1, 3, Q24); geSet(array, 2, 3, Q34); geSet(array, 3, 3, -(Qp4+Q41)); /* do gauss elimination */ answers = geGaussElimination(array); /* dump output */ gePrint(answers, 8); /* free all memory */ freeArray2D(array); freeArray2D(answers); }