Changeset 3323 in ntrip


Ignore:
Timestamp:
Jul 1, 2011, 1:37:48 PM (13 years ago)
Author:
mervart
Message:
 
Location:
trunk/BNC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncmodel.cpp

    r3322 r3323  
    13091309  Tracer tracer("bncModel::update_p");
    13101310
    1311   // Remeber Original State Vector and Variance-Covariance Matrix
    1312   // ------------------------------------------------------------
    1313   SymmetricMatrix QQ_orig = _QQ;
    1314 
    1315   QVectorIterator<bncParam*> itPar(_params);
    1316   QVector<bncParam*> params_orig;
    1317   while (itPar.hasNext()) {
    1318     bncParam* par = itPar.next();
    1319     params_orig.push_back(new bncParam(*par));
    1320   }
     1311  rememberState();
    13211312
    13221313  for (int iPhase = 0; iPhase <= (_usePhase ? 1 : 0); iPhase++) {
     
    13321323      if (iPhase == 0) {     
    13331324        if (cmpBancroft(epoData) != success) {
    1334           QVectorIterator<bncParam*> itParOrig(params_orig);
    1335           while (itParOrig.hasNext()) {
    1336             bncParam* par = itParOrig.next();
    1337             delete par;
    1338           }
     1325          restoreState();
    13391326          emit newMessage(_log, false);
    13401327          return failure;
     
    13431330      else {
    13441331        if (epoData->sizeGPS() < MINOBS) {
    1345 
    1346           _QQ = QQ_orig;
    1347           QVectorIterator<bncParam*> itPar(_params);
    1348           while (itPar.hasNext()) {
    1349             bncParam* par = itPar.next();
    1350             delete par;
    1351           }
    1352           _params.clear();
    1353 
    1354           QVectorIterator<bncParam*> itParOrig(params_orig);
    1355           while (itParOrig.hasNext()) {
    1356             bncParam* par = itParOrig.next();
    1357             _params.push_back(par);
    1358           }
    1359 
     1332          restoreState();
    13601333          _log += "bncModel::update_p: not enough data\n";
    13611334          emit newMessage(_log, false);
     
    14631436  }
    14641437
    1465   QVectorIterator<bncParam*> itParOrig(params_orig);
    1466   while (itParOrig.hasNext()) {
    1467     bncParam* par = itParOrig.next();
     1438  return success;
     1439}
     1440
     1441// Remeber Original State Vector and Variance-Covariance Matrix
     1442////////////////////////////////////////////////////////////////////////////
     1443void bncModel::rememberState() {
     1444
     1445  _QQ_sav = _QQ;
     1446
     1447  QVectorIterator<bncParam*> itSav(_params_sav);
     1448  while (itSav.hasNext()) {
     1449    bncParam* par = itSav.next();
    14681450    delete par;
    14691451  }
    1470   return success;
    1471 }
     1452  _params_sav.clear();
     1453
     1454  QVectorIterator<bncParam*> it(_params);
     1455  while (it.hasNext()) {
     1456    bncParam* par = it.next();
     1457    _params_sav.push_back(new bncParam(*par));
     1458  }
     1459}
     1460
     1461// Restore Original State Vector and Variance-Covariance Matrix
     1462////////////////////////////////////////////////////////////////////////////
     1463void bncModel::restoreState() {
     1464
     1465  _QQ = _QQ_sav;
     1466
     1467  QVectorIterator<bncParam*> it(_params);
     1468  while (it.hasNext()) {
     1469    bncParam* par = it.next();
     1470    delete par;
     1471  }
     1472  _params.clear();
     1473
     1474  QVectorIterator<bncParam*> itSav(_params_sav);
     1475  while (itSav.hasNext()) {
     1476    bncParam* par = itSav.next();
     1477    _params.push_back(new bncParam(*par));
     1478  }
     1479}
     1480
  • trunk/BNC/bncmodel.h

    r3321 r3323  
    120120  bncTime  _startTime;
    121121
     122  void rememberState();
     123  void restoreState();
     124
    122125  class pppPos {
    123126   public:
     
    136139  QVector<bncParam*>    _params;
    137140  SymmetricMatrix       _QQ;
     141  QVector<bncParam*>    _params_sav;
     142  SymmetricMatrix       _QQ_sav;
    138143  ColumnVector          _xcBanc;
    139144  ColumnVector          _ellBanc;
Note: See TracChangeset for help on using the changeset viewer.