20#include "hdrl_cat_solve.h"
49cpl_error_code
hdrl_solve(
double a[25][25],
double b[25], cpl_size m)
54 for (cpl_size i = 0; i < iu; i++) {
58 for (cpl_size k = i; k < m; k++) {
60 double rmax = fabs(a[i][k]);
69 for (cpl_size ib = 0; ib < m; ib++) {
72 return CPL_ERROR_NONE;
78 for (cpl_size j = 0; j < m; j++) {
80 double temp = a[j][i];
91 double pivot = a[i][i];
94 for (cpl_size j = jl; j < m; j++) {
96 double temp = a[i][j] / pivot;
100 for (cpl_size k = i; k < m; k++) {
101 a[k][j] -= temp * a[k][i];
107 for (cpl_size i = 0; i < m; i++) {
109 cpl_size ir = m - 1 - i;
110 if (a[ir][ir] != 0.) {
115 for (cpl_size j = 1; j <= i; j++) {
117 temp -= a[k][ir] * b[k];
121 b[ir] = temp / a[ir][ir];
129 return CPL_ERROR_NONE;
cpl_error_code hdrl_solve(double a[25][25], double b[25], cpl_size m)
Use Gauss-Jordan elimination to solve ax=b.