Changeset 3322 in ntrip for trunk/BNC/bncmodel.cpp


Ignore:
Timestamp:
Jul 1, 2011, 12:59:38 PM (13 years ago)
Author:
mervart
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncmodel.cpp

    r3321 r3322  
    5555using namespace std;
    5656
    57 const unsigned MINOBS           =    4;
     57const unsigned MINOBS           =    5;
    5858const double   MINELE_GPS       = 10.0 * M_PI / 180.0;
    5959const double   MINELE_GLO       = 10.0 * M_PI / 180.0;
     
    13091309  Tracer tracer("bncModel::update_p");
    13101310
    1311   SymmetricMatrix QQsav;
    1312   ColumnVector    vv;
     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  }
    13131321
    13141322  for (int iPhase = 0; iPhase <= (_usePhase ? 1 : 0); iPhase++) {
    13151323
    1316     ColumnVector dx;
     1324    SymmetricMatrix QQsav;
     1325    ColumnVector    vv;
     1326    ColumnVector    dx;
    13171327
    13181328    do {
     
    13221332      if (iPhase == 0) {     
    13231333        if (cmpBancroft(epoData) != success) {
     1334          QVectorIterator<bncParam*> itParOrig(params_orig);
     1335          while (itParOrig.hasNext()) {
     1336            bncParam* par = itParOrig.next();
     1337            delete par;
     1338          }
     1339          emit newMessage(_log, false);
     1340          return failure;
     1341        }
     1342      }
     1343      else {
     1344        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
     1360          _log += "bncModel::update_p: not enough data\n";
    13241361          emit newMessage(_log, false);
    13251362          return failure;
     
    14261463  }
    14271464
     1465  QVectorIterator<bncParam*> itParOrig(params_orig);
     1466  while (itParOrig.hasNext()) {
     1467    bncParam* par = itParOrig.next();
     1468    delete par;
     1469  }
    14281470  return success;
    14291471}
Note: See TracChangeset for help on using the changeset viewer.