Index: /trunk/BNC/src/PPP/pppFilter.cpp
===================================================================
--- /trunk/BNC/src/PPP/pppFilter.cpp	(revision 5921)
+++ /trunk/BNC/src/PPP/pppFilter.cpp	(revision 5922)
@@ -180,13 +180,12 @@
     Matrix                AA(maxObs, _parlist->nPar());
     ColumnVector          ll(maxObs);
-    UpperTriangularMatrix Sl(maxObs); Sl = 0.0;
+    DiagonalMatrix        PP(maxObs); PP = 0.0;
     
     int iObs = -1;
-    vector<t_pppSatObs*>  usedObs;
-    vector<t_lc::type> usedTypes;
+    vector<t_pppSatObs*> usedObs;
+    vector<t_lc::type>   usedTypes;
     for (unsigned ii = 0; ii < obsVector.size(); ii++) {
       t_pppSatObs* obs = obsVector[ii];
       if (!obs->outlier()) {
-        Matrix CC(LCs.size(), 4);
         for (unsigned jj = 0; jj < LCs.size(); jj++) {
           const t_lc::type tLC = LCs[jj];
@@ -198,20 +197,6 @@
             AA[iObs][iPar] = par->partial(_epoTime, obs, tLC);
           }
-          ll[iObs]       = obs->obsValue(tLC) - obs->cmpValue(tLC) - DotProduct(_x0, AA.Row(iObs+1));
-          if (LCs.size() > 1) {
-            ColumnVector coeff(4);
-            obs->lc(tLC, 0.0, 0.0, 0.0, 0.0, &coeff);
-            CC[jj][0] = coeff[0] * obs->sigma(t_lc::l1);
-            CC[jj][1] = coeff[1] * obs->sigma(t_lc::l2);
-            CC[jj][2] = coeff[2] * obs->sigma(t_lc::c1);
-            CC[jj][3] = coeff[3] * obs->sigma(t_lc::c2);
-          }
-          else {
-            Sl[iObs][iObs] = obs->sigma(tLC);
-          }
-        }
-        if (LCs.size() > 1) {
-          SymmetricMatrix QQ; QQ << CC * CC.t();
-          Sl.SymSubMatrix(iObs-LCs.size()+2, iObs+1) = Cholesky(QQ).t();
+          ll[iObs] = obs->obsValue(tLC) - obs->cmpValue(tLC) - DotProduct(_x0, AA.Row(iObs+1));
+          PP[iObs] = 1.0 / (obs->sigma(tLC) * obs->sigma(tLC));
         }
       }
@@ -225,12 +210,8 @@
     AA = AA.Rows(1, iObs+1);
     ll = ll.Rows(1, iObs+1);
-    Sl = Sl.SymSubMatrix(1, iObs+1);
+    PP = PP.SymSubMatrix(1, iObs+1);
 
     // Kalman update step
     // ------------------
-    DiagonalMatrix PP(iObs+1); PP = 0.0;
-    for (int ii = 1; ii <= iObs+1; ii++) {
-      PP(ii,ii) = 1.0 / (Sl(ii,ii) * Sl(ii,ii));
-    }
     kalman(AA, ll, PP, _QFlt, _xFlt);
 
