40 #include "sinfo_fit_curve.h"
41 #include "sinfo_ipow.h"
78 sinfo_fit_1d_poly(
int poly_deg, dpoint * list,
int np,
double * mse)
86 if (np < poly_deg + 1) {
93 mA = sinfo_create_mx(poly_deg + 1, np);
94 mB = sinfo_create_mx(1, np);
96 for (i = 0; i < np; i++) {
98 for (k = 1; k <= poly_deg; k++) {
99 mA->m[i + k * np] = sinfo_ipow(list[i].x, k);
101 mB->m[i] = list[i].y;
107 mX = sinfo_least_sq_mx(mA, mB);
121 c = cpl_malloc((poly_deg + 1) *
sizeof(
double));
122 for (i = 0; i < (poly_deg + 1); i++) {
132 for (i = 0; i < np; i++) {
137 for (k = 1; k <= poly_deg; k++) {
138 xp = sinfo_ipow(list[i].x, k);
144 xp = sinfo_ipow(list[i].y - y, 2);