74 #define R_SMALL 0.000000001    78   vlen = sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]);
   104   BigReal sg, bb, cc, err, etmp, tmp;
   105   int a, b, c, maxiter, iters, ix, iy, iz;
   122   tol = SettingGet(cSetting_fit_tolerance);
   127   maxiter = (int)SettingGet(cSetting_fit_iterations);
   141                   t1[a] += wt[c]*vv1[a];
   142                   t2[a] += wt[c]*vv2[a];
   145                   sumwt = sumwt + wt[c];
   147                   sumwt = sumwt + 1.0F; 
   164   if(sumwt==0.0F) sumwt = 1.0F;
   176                   x[a] = wt[c]*(vv1[a] - t1[a]);
   177                   xx[a] = wt[c]*(vv2[a] - t2[a]);
   181                   x[a] = vv1[a] - t1[a];
   182                   xx[a] = vv2[a] - t2[a];
   187                   aa[a][b] = aa[a][b] + 
xx[a]*x[b];
   214       sig = aa[iz][iy] - aa[iy][iz];
   215       gam = aa[iy][iy] + aa[iz][iz];
   220           PRINTFB(FB_Matrix,FB_Details)
   224             " Matrix: Warning: no convergence (%1.8f<%1.8f after %d iterations).\n",(
BigReal)tol,(
BigReal)gam,iters
   235       tmp = sig*sig + gam*gam;
   237       if((sg!=0.0F) &&(fabs(sig)>(tol*fabs(gam)))) {
   241             bb = gam*aa[iy][a] + sig*aa[iz][a];
   242             cc = gam*aa[iz][a] - sig*aa[iy][a];
   246             bb = gam*m[iy][a] + sig*m[iz][a];
   247             cc = gam*m[iz][a] - sig*m[iy][a];
   269           tmp = m[a][0]*(vv2[0]-t2[0])
   270                 + m[a][1]*(vv2[1]-t2[1])
   271                 + m[a][2]*(vv2[2]-t2[2]);
   272           tmp = (vv1[a]-t1[a])-tmp;
   304   if(fabs(err)<R_SMALL4)
 
static void normalize3d(BigReal *v)
 
BigReal MatrixFitRMS(int n, BigReal *v1, BigReal *v2, const BigReal *wt, BigReal *ttt)