little improvement in simple_fit

This commit is contained in:
Jiri Pittner 2021-11-22 14:45:06 +01:00
parent c45e3cc40c
commit 0c4c701867

View File

@ -99,8 +99,8 @@ T fitmat[n][n];
T rhsmat[1][n]; T rhsmat[1][n];
T fitcoef[n]; T fitcoef[n];
int npoints; int npoints;
void clear() {npoints=0; memset(&fitmat[0][0],0,n*n*sizeof(T)); memset(&rhsmat[0][0],0,1*n*sizeof(T)); memset(&fitcoef[0],0,n*sizeof(T));}; void clear(bool keepresults=false) {npoints=0; memset(&fitmat[0][0],0,n*n*sizeof(T)); memset(&rhsmat[0][0],0,1*n*sizeof(T)); if(!keepresults) memset(&fitcoef[0],0,n*sizeof(T));};
simple_linfit() {clear();} simple_linfit() {clear(false);}
void input(const T (&funcs)[n], const T y) void input(const T (&funcs)[n], const T y)
{ {
++npoints; ++npoints;
@ -130,6 +130,7 @@ int npoints;
} }
T det = simple_gaussj(fitmat,rhsmat); T det = simple_gaussj(fitmat,rhsmat);
memcpy(&fitcoef[0],&rhsmat[0][0],n*sizeof(T)); memcpy(&fitcoef[0],&rhsmat[0][0],n*sizeof(T));
clear(true);
return det; return det;
} }