Index: /trunk/BNC/src/bncmodel.cpp
===================================================================
--- /trunk/BNC/src/bncmodel.cpp	(revision 5655)
+++ /trunk/BNC/src/bncmodel.cpp	(revision 5656)
@@ -909,7 +909,7 @@
   Tracer tracer("bncModel::kalman");
 
+  int nPar = AA.Ncols();
+#if 1
   int nObs = AA.Nrows();
-  int nPar = AA.Ncols();
-
   UpperTriangularMatrix SS = Cholesky(QQ).t();
 
@@ -937,4 +937,15 @@
   dx = KT.t() * ll;
   QQ << (SS.t() * SS);
+#else
+  DiagonalMatrix        Ql = PP.i();
+  Matrix                DD = QQ * AA.t();
+  SymmetricMatrix       SM(nPar); SM << AA * DD + Ql; 
+  UpperTriangularMatrix UU = Cholesky(SM).t();
+  UpperTriangularMatrix Ui = UU.i();
+  Matrix                EE = DD * Ui;
+  Matrix                KK = EE * Ui.t();
+  QQ << QQ - EE * EE.t();
+  dx = KK * ll;
+#endif
 }
 
