亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sri.cpp

?? linux的gps應用
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
   void SRI::reshape(const Namelist& NL)      throw(MatrixException,VectorException)   {      try {         if(names == NL) return;         Namelist keep(names);         keep &= NL;                // keep only those in both names and NL         //Namelist drop(names);    // (drop is unneeded - split would do it)         //drop ^= keep;            // lose those in names but not in keep         Namelist add(NL);         add ^= keep;               // add those in NL but not in keep         SRI Sdrop;                 // make a new SRI to hold the losers         // would like to allow caller access to Sdrop..         split(keep,Sdrop);         // split off only the losers                                    // NB names = drop | keep; drop & keep is empty         *this += add;              // add the new ones         this->permute(NL);         // permute it to match NL      }      catch(MatrixException& me) {         GPSTK_RETHROW(me);      }      catch(VectorException& ve) {         GPSTK_RETHROW(ve);      }   }   // --------------------------------------------------------------------------------   // merge this SRI with the given input SRI. ? should this be operator&=() ?   // NB may reorder the names in the resulting Namelist.   SRI& SRI::operator+=(const SRI& S)      throw(MatrixException,VectorException)   {      try {         Namelist all(names);         all |= S.names;      // assumes Namelist::op|= adds unique S.names to _end_         //all.sort();        // TEMP - for testing with old version            // stack the (R|Z)'s from both in one matrix;            // all determines the columns, plus last column is for Z         unsigned int i,j,k,n,m,sm;         n = all.labels.size();         m = R.rows();         sm = S.R.rows();         Matrix<double> A(m+sm,n+1,0.0);            // copy R into A, permuting columns as names differs from all            // loop over columns of R; do Z at the same time using j=row         for(j=0; j<m; j++) {               // find where this column of R goes in A               // (should never throw..)            k = all.index(names.labels[j]);            if(k == -1) {               MatrixException me("Algorithm error 1");               GPSTK_THROW(me);            }               // copy this col of R into A (R is UT)            for(i=0; i<=j; i++) A(i,k) = R(i,j);               // also the jth element of Z            A(j,n) = Z(j);         }            // now do the same for S, but put S.R|S.Z below R|Z         for(j=0; j<sm; j++) {            k = all.index(S.names.labels[j]);            if(k == -1) {               MatrixException me("Algorithm error 2");               GPSTK_THROW(me);            }            for(i=0; i<=j; i++) A(m+i,k) = S.R(i,j);            A(m+j,n) = S.Z(j);         }            // now triangularize A and pull out the new R and Z         Householder<double> HA;         HA(A);         // submatrix args are matrix,toprow,topcol,numrows,numcols         R = Matrix<double>(HA.A,0,0,n,n);         Vector<double> T = Vector<double>(HA.A.colCopy(n));         Z = Vector<double>(T,0,n);         names = all;         return *this;      }      catch(MatrixException& me) {         GPSTK_RETHROW(me);      }      catch(VectorException& ve) {         GPSTK_RETHROW(ve);      }   }   // --------------------------------------------------------------------------------   // merge two SRIs to produce a third. ? should this be operator&() ?   SRI operator+(const SRI& Sleft,                 const SRI& Sright)      throw(MatrixException,VectorException)   {      try {         SRI S(Sleft);         S += Sright;         return S;      }      catch(MatrixException& me) {         GPSTK_RETHROW(me);      }      catch(VectorException& ve) {         GPSTK_RETHROW(ve);      }   }   // --------------------------------------------------------------------------------   // Zero out the nth row of R and the nth element of Z, removing all   // information about that element.   void SRI::zeroOne(const unsigned int n)      throw()   {      if(n >= R.rows())         return;      //TD this is not right -- you should permute the element      //to the first row, then zero      for(unsigned int j=n; j<R.cols(); j++)          R(n,j) = 0.0;      Z(n) = 0.0;   }   // --------------------------------------------------------------------------------   // Zero out all the first n rows of R and elements of Z, removing all   // information about those elements. Default value of the input is 0,   // meaning zero out the entire SRI.   void SRI::zeroAll(const int n)      throw()   {      if(n <= 0) {         R = 0.0;         Z = 0.0;         return;      }      if(n >= R.rows())         return;      for(unsigned int i=0; i<n; i++) {         for(unsigned int j=i; j<R.cols(); j++)             R(i,j) = 0.0;         Z(i) = 0.0;      }   }   // --------------------------------------------------------------------------------   // Shift the state vector by a constant vector X0; does not change information   // i.e. let R * X = Z => R * (X-X0) = Z'   // throw on invalid input dimension   void SRI::shift(const Vector<double>& X0)      throw(MatrixException)   {      if(X0.size() != R.cols()) {         using namespace StringUtils;                  MatrixException me("Invalid input dimension: SRI has dimension "               + asString<int>(R.rows()) + " while input has length "               + asString<int>(X0.size())               );         GPSTK_THROW(me);      }      Z = Z - R * X0;   }   // --------------------------------------------------------------------------------   // Transform this SRI with the transformation matrix T;   // i.e. R -> T * R * inverse(T) and Z -> T * Z. The matrix inverse(T)   // may optionally be supplied as input, otherwise it is computed from   // T. NB names in this SRI are most likely changed; but this routine does   // not change the Namelist. Throw MatrixException if the input has   // the wrong dimension or cannot be inverted.   void SRI::transform(const Matrix<double>& T,                       const Matrix<double>& invT)      throw(MatrixException,VectorException)   {      if(T.rows() != R.rows() ||         T.cols() != R.cols() ||         (&invT != &SRINullMatrix && (invT.rows() != R.rows() ||         invT.cols() != R.cols()))) {            using namespace StringUtils;                     MatrixException me("Invalid input dimension:\n  SRI has dimension "               + asString<int>(R.rows()) + " while T has dimension "               + asString<int>(T.rows()) + "x"               + asString<int>(T.cols()));            if(&invT != &SRINullMatrix) me.addText("\n  and invT has dimension "                           + asString<int>(invT.rows()) + "x"                           + asString<int>(invT.cols()));            GPSTK_THROW(me);      }      try {            // get the inverse matrix         Matrix<double> Ti(T);         if(&invT == &SRINullMatrix)            Ti = inverseSVD(T);         else            Ti = invT;            // transform         Matrix<double> B = T * R * Ti;         Vector<double> Q = T * Z;            // re-triangularize         R = 0.0;         Z = 0.0;         SrifMU(R,Z,B,Q);      }      catch(MatrixException& me) {         GPSTK_RETHROW(me);      }      catch(VectorException& ve) {         GPSTK_RETHROW(ve);      }   }   // --------------------------------------------------------------------------------   // Transform the state by the transformation matrix T; i.e. X -> T*X,   // without transforming the SRI; this is done by right multiplying R by   // inverse(T), which is the input. Thus R -> R*inverse(T),   // so R*inverse(T)*T*X = Z.  Input is the _inverse_ of the transformation.   // throw MatrixException if input dimensions are wrong.   void SRI::transformState(const Matrix<double>& invT)      throw(MatrixException)   {      if(invT.rows() != R.rows() || invT.cols() != R.rows()) {         using namespace StringUtils;         MatrixException me("Invalid input dimension: SRI has dimension "            + asString<int>(R.rows()) + " while invT has dimension "            + asString<int>(invT.rows()) + "x"            + asString<int>(invT.cols()));         GPSTK_THROW(me);      }         // transform      Matrix<double> A = R * invT;         // re-triangularize      Householder<double> HA;      HA(A);      R = HA.A;   }   // --------------------------------------------------------------------------------   // Decrease the information in this SRI for, or 'Q bump', the element   // with the input index.  This means that the uncertainty and the state   // element given by the index are divided by the input factor q; the   // default input is zero, which means zero out the information (q = infinite).   // A Q bump by factor q is equivalent to 'de-weighting' the element by q.   // No effect if input index is out of range.   //   // Use a specialized form of the time update, with Phi=unity, G(N x 1) = 0   // except 1 for the element (in) getting bumped, and Rw(1 x 1) = 1 / q.   // Note that this bump of the covariance for element k results in   // Cov(k,k) += q (plus, not times!).   // if q is 0, replace q with 1/q, i.e. lose all information, covariance   // goes singular; this is equivalent to (1) permute so that the 'in'   // element is first, (2) zero out the first row of R and the first element   // of Z, (3) permute the first row back to in.   void SRI::Qbump(const unsigned int& in,                   const double& q)      throw(MatrixException,VectorException)   {      try {         if(in >= R.rows()) return;         double factor=0.0;         if(q != 0.0) factor=1.0/q;         unsigned int ns=1,i,j,n=R.rows();         Matrix<double> A(n+ns,n+ns+1,0.0), G(n,ns,0.0);         A(0,0) = factor;           // Rw, dimension ns x ns = 1 x 1         G(in,0) = 1.0;         G = R * G;                 // R*Phi*G         for(i=0; i<n; i++) {            A(ns+i,0) = -G(i,0);               //     A =   Rw       0       zw=0            for(j=0; j<n; j++)                 //          -R*Phi*G  R*Phi   Z               if(i<=j) A(ns+i,ns+j) = R(i,j); //            A(ns+i,ns+n) = Z(i);         }            // triangularize and pull out the new R and Z         Householder<double> HA;                //    A  =  Rw  Rwx  zw         HA(A);                                 //          0    R   z         R = Matrix<double>(HA.A,ns,ns,n,n);         Vector<double> T=HA.A.colCopy(ns+n);         Z = Vector<double>(T,ns,n);      }      catch(MatrixException& me) {         GPSTK_RETHROW(me);      }      catch(VectorException& ve) {         GPSTK_RETHROW(ve);      }   }   // --------------------------------------------------------------------------------   // Fix the state element with the input index to the input value, and   // collapse the SRI by removing that element.   // No effect if index is out of range.   void SRI::biasFix(const unsigned int& in,                     const double& bias)      throw(MatrixException,VectorException)   {      if(in >= R.rows()) return;      try {         unsigned int i,j,ii,jj,n=R.rows();         Vector<double> Znew(n-1,0.0);         Matrix<double> Rnew(n-1,n-1,0.0);            // move the X(in) terms to the data vector on the RHS         for(i=0; i<=in; i++) Z(i) -= R(i,in)*bias;         for(i=0,ii=0; i<=n; i++) {            if(i == in) continue;            Znew(ii) = Z(i);            for(j=i,jj=ii; j<n; j++) {               if(j == in) continue;               Rnew(ii,jj) = R(i,j);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91丝袜在线播放| 亚洲国产日韩一区二区| 日韩一区二区三区四区五区六区 | 欧美日韩国产高清一区二区三区 | 蜜桃精品在线观看| 亚洲电影一区二区| 亚州成人在线电影| 另类综合日韩欧美亚洲| 国产综合久久久久久鬼色| 韩国女主播一区二区三区| 国内精品国产三级国产a久久| 蜜臀av国产精品久久久久| 男女男精品视频网| 久久精品国产精品青草| 激情六月婷婷久久| 99这里只有久久精品视频| 在线精品视频一区二区| 欧美老女人在线| 精品噜噜噜噜久久久久久久久试看| 日韩一区二区三区三四区视频在线观看| 制服丝袜亚洲播放| 国产亚洲视频系列| 最新欧美精品一区二区三区| 亚洲午夜视频在线观看| 男女性色大片免费观看一区二区 | 成人在线视频一区| 在线免费观看不卡av| 欧美一区二区在线播放| 欧美国产97人人爽人人喊| 一区二区在线观看视频在线观看| 成人高清视频在线| 91浏览器打开| 日韩欧美中文一区二区| 国产精品久久久久久久久免费桃花| **欧美大码日韩| 麻豆精品一二三| 91麻豆国产福利在线观看| 欧美大片一区二区三区| 亚洲视频中文字幕| 精品一区二区三区久久| 91在线视频播放地址| 日韩一区二区三区免费看| 国产精品福利在线播放| 免费成人性网站| 91高清视频在线| 国产情人综合久久777777| 亚洲chinese男男1069| 国产成a人亚洲| 欧美一级片在线| 一区二区三区在线视频播放| 国产福利精品导航| 欧美一区二区三区啪啪| 亚洲自拍都市欧美小说| 成人久久视频在线观看| 日韩免费高清av| 亚洲成av人片一区二区梦乃| 99久久99久久精品国产片果冻| 日韩一级大片在线| 婷婷国产在线综合| 色猫猫国产区一区二在线视频| 久久久久久电影| 麻豆传媒一区二区三区| 欧美日韩一区三区四区| 亚洲欧美国产三级| 99re这里只有精品首页| 中文字幕va一区二区三区| 激情成人午夜视频| 日韩欧美高清一区| 看电影不卡的网站| 91精品国产综合久久香蕉的特点 | 国产麻豆成人传媒免费观看| 在线播放欧美女士性生活| 亚洲综合色丁香婷婷六月图片| 91丨porny丨在线| 中文一区一区三区高中清不卡| 国产福利一区在线观看| 久久午夜羞羞影院免费观看| 国产麻豆成人精品| 久久久久久亚洲综合影院红桃 | 一区二区三区在线免费观看| 99久久综合狠狠综合久久| 日韩高清一区在线| 777色狠狠一区二区三区| 亚州成人在线电影| 欧美一区二区三区在线看| 另类专区欧美蜜桃臀第一页| 精品国产乱码久久久久久图片 | 亚洲国产成人va在线观看天堂| 在线精品国精品国产尤物884a| 亚洲另类中文字| 欧美日免费三级在线| 强制捆绑调教一区二区| www国产精品av| 91丨porny丨中文| 亚洲成人激情社区| 日韩欧美在线不卡| 成人v精品蜜桃久久一区| 亚洲你懂的在线视频| 在线不卡免费av| 国产盗摄一区二区三区| 成人免费在线播放视频| 欧美日韩高清一区二区| 国产毛片精品视频| 夜夜爽夜夜爽精品视频| 日韩欧美国产午夜精品| jiyouzz国产精品久久| 日韩精品一二三区| 欧美极品xxx| 欧美精品aⅴ在线视频| 高清成人在线观看| 午夜精品久久久久久不卡8050| 久久精品一区二区三区不卡| 色综合天天视频在线观看| 老色鬼精品视频在线观看播放| 亚洲人一二三区| 精品国产欧美一区二区| 在线观看视频一区二区欧美日韩| 久久精品国产网站| 亚洲一级片在线观看| 国产精品久久久久久久午夜片| 欧美一区二区在线免费播放| 91免费观看在线| 国产精品12区| 蜜臀a∨国产成人精品| 亚洲日本中文字幕区| 2020国产精品久久精品美国| 欧美午夜片在线观看| 成人免费av在线| 国内精品视频666| 日韩中文字幕av电影| 亚洲私人黄色宅男| 国产欧美日韩中文久久| 欧美成va人片在线观看| 精品视频免费在线| 一本在线高清不卡dvd| 国产成人av影院| 国产精品亚洲成人| 久久超碰97中文字幕| 人人狠狠综合久久亚洲| 亚洲国产精品自拍| 成人一级视频在线观看| 免费av成人在线| 日韩电影在线看| 亚洲成人综合在线| 亚洲曰韩产成在线| 一区二区三区免费网站| 亚洲少妇最新在线视频| 中文字幕视频一区| 中文字幕中文乱码欧美一区二区| 精品99久久久久久| 久久综合久久99| 久久欧美中文字幕| 国产人成一区二区三区影院| 久久久精品影视| 亚洲国产高清在线| 国产精品毛片久久久久久| 久久精品亚洲精品国产欧美kt∨| 欧美精品一区二区在线观看| 日韩视频一区二区在线观看| 日韩美女一区二区三区四区| 欧美成人性战久久| 久久久久久久综合色一本| 久久久久国产精品麻豆ai换脸| 精品乱人伦小说| 中文天堂在线一区| 一区二区三区在线视频免费| 一区二区三区av电影| 日韩在线一区二区| 久久99国内精品| 国产很黄免费观看久久| 成人伦理片在线| 色婷婷久久久综合中文字幕| 欧美日韩国产不卡| 精品人伦一区二区色婷婷| 中文字幕精品在线不卡| 亚洲最大成人综合| 九色综合狠狠综合久久| 高清不卡在线观看av| 欧美在线不卡视频| 精品国产不卡一区二区三区| 国产欧美一区二区三区网站| 亚洲男人的天堂av| 青青草一区二区三区| 欧美视频中文字幕| 欧美一级高清大全免费观看| 国产丝袜欧美中文另类| 有码一区二区三区| 国产自产视频一区二区三区| 色天使色偷偷av一区二区| 日韩欧美第一区| 亚洲精品videosex极品| 精品中文字幕一区二区| 色综合天天综合| 精品国产麻豆免费人成网站| 一区二区视频在线看| 九一久久久久久| 欧美性大战久久久久久久| 久久久99精品免费观看不卡| 午夜电影网亚洲视频| 成人av免费在线播放|