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

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

?? sri.cpp

?? linux的gps應用
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
               jj++;            }            ii++;         }         R = Rnew;         Z = Znew;         names -= names.labels[in];      }      catch(MatrixException& me) {         GPSTK_RETHROW(me);      }      catch(VectorException& ve) {         GPSTK_RETHROW(ve);      }   }   //---------------------------------------------------------------------------------   // Add a priori or 'constraint' information   void SRI::addAPriori(const Matrix<double>& Cov, const Vector<double>& X)      throw(MatrixException)   {      if(Cov.rows() != Cov.cols() || Cov.rows() != R.rows() || X.size() != R.rows()) {         using namespace StringUtils;                  MatrixException me("Invalid input dimensions:\n  SRI has dimension "            + asString<int>(R.rows()) + ",\n  while input is Cov("            + asString<int>(Cov.rows()) + "x"            + asString<int>(Cov.cols()) + ") and X("            + asString<int>(X.size()) + ")."            );         GPSTK_THROW(me);      }      try {         Matrix<double> invcovar;         Vector<double> zstate;            invcovar = inverse(Cov);         Cholesky<double> Ch;         Ch(invcovar);         zstate = Ch.U * X;            // R = UT(inv(Cov)) and z = R*X         SrifMU(R, Z, Ch.U, zstate);      }      catch(MatrixException& me) {         GPSTK_THROW(me);      }   }   // --------------------------------------------------------------------------------   // get the state X and the covariance matrix C of the state, where   // C = transpose(inverse(R))*inverse(R) and X = inverse(R) * Z.   // Throws MatrixException if R is singular.   // NB this is the most efficient way to invert the SRI problem.   void SRI::getStateAndCovariance(Vector<double>& X,                                   Matrix<double>& C,                                   double *ptrSmall,                                   double *ptrBig)      throw(MatrixException,VectorException)   {      try {         Matrix<double> invR;         invR = inverseUT(R,ptrSmall,ptrBig);         C = UTtimesTranspose(invR);         X = invR * Z;      }      catch(MatrixException& me) {         GPSTK_RETHROW(me);      }      catch(VectorException& ve) {         GPSTK_RETHROW(ve);      }   }   //---------------------------------------------------------------------------------   // output operator   ostream& operator<<(ostream& os, const SRI& S)   {      Namelist NL(S.names);      NL += string("State");      Matrix<double> A;      A = S.R || S.Z;      LabelledMatrix LM(NL,A);      LM.setw(os.width());      LM.setprecision(os.precision());      os << LM;      return os;   }   //---------------------------------------------------------------------------------   // This routine uses the Householder algorithm to update the SRIFilter   // state and covariance.   // Input:   //    R  a priori SRI matrix (upper triangular, dimension N)   //    Z  a priori SRI data vector (length N)   //    A  concatentation of H and D : A = H || D, where   //    H  Measurement partials, an M by N matrix.   //    D  Data vector, of length M   //       H and D may have row dimension > M; then pass M:   //    M  (optional) Row dimension of H and D   // Output:   //    Updated R and Z.  H is trashed, but the data vector D   //    contains the residuals of fit (D - A*state).   // Return values:   //    SrifMU returns void, but throws exceptions if the input matrices   // or vectors have incompatible dimensions.   //    // Measurment noise associated with H and D must be white   // with unit covariance.  If necessary, the data can be 'whitened'   // before calling this routine in order to satisfy this requirement.   // This is done as follows.  Compute the lower triangular square root    // of the covariance matrix, L, and replace H with inverse(L)*H and   // D with inverse(L)*D.   //    //    The Householder transformation is simply an orthogonal   // transformation designed to make the elements below the diagonal   // zero.  It works by explicitly performing the transformation, one   // column at a time, without actually constructing the transformation   // matrix.  Let y be column k of the input matrix.  y can be zeroed   // below the diagonal as follows:  let sum=sign(y(k))*sqrt(y*y), and   // define vector u(k)=y(k)+sum, u(j)=y(j) (j.gt.k).  This defines the   // transformation matrix as (1-bu*u), with b=2/u*u=1/sum*u(k).   // Redefine y(k)=u(k) and apply the transformation to elements of the   // input matrix below and to the right of the (k,k) element.  This    // algorithm for each column k=0,n-1 in turn is equivalent to a single   // orthogonal transformation which triangularizes the matrix.   //   // Ref: Bierman, G.J. "Factorization Methods for Discrete Sequential   //      Estimation," Academic Press, 1977.   template <class T>   void SrifMU(Matrix<T>& R,               Vector<T>& Z,               Matrix<T>& A,               unsigned int M)      throw(MatrixException)   {      if(A.cols() <= 1 || A.cols() != R.cols()+1 || Z.size() < R.rows()) {         if(A.cols() > 1 && R.rows() == 0 && Z.size() == 0) {            // create R and Z            R = Matrix<double>(A.cols()-1,A.cols()-1,0.0);            Z = Vector<double>(A.cols()-1,0.0);         }         else {            using namespace StringUtils;                        MatrixException me("Invalid input dimensions:\n  R has dimension "               + asString<int>(R.rows()) + "x"               + asString<int>(R.cols()) + ",\n  Z has length "               + asString<int>(Z.size()) + ",\n  and A has dimension "               + asString<int>(A.rows()) + "x"               + asString<int>(A.cols()));            GPSTK_THROW(me);         }      }      const T EPS=-T(1.e-200);      unsigned int m=M, n=R.rows();      if(m==0 || m > A.rows()) m=A.rows();      unsigned int np1=n+1;         // if np1 = n, state vector Z is not updated      unsigned int i,j,k;      T dum, delta, beta;      for(j=0; j<n; j++) {          // loop over columns         T sum = T(0);         for(i=0; i<m; i++)            sum += A(i,j)*A(i,j);   // sum squares of elements in this column         if(sum <= T(0)) continue;         dum = R(j,j);         sum += dum * dum;         sum = (dum > T(0) ? -T(1) : T(1)) * ::sqrt(sum);         delta = dum - sum;         R(j,j) = sum;         if(j+1 > np1) break;         beta = sum*delta;         if(beta > EPS) continue;         beta = T(1)/beta;         for(k=j+1; k<np1; k++) {   // columns to right of diagonal            sum = delta * (k==n ? Z(j) : R(j,k));            for(i=0; i<m; i++)               sum += A(i,j) * A(i,k);            if(sum == T(0)) continue;            sum *= beta;            if(k==n) Z(j) += sum*delta;            else   R(j,k) += sum*delta;            for(i=0; i<m; i++)               A(i,k) += sum * A(i,j);         }      }   }  // end SrifMU       //---------------------------------------------------------------------------------   // This is simply SrifMU(R,Z,A) with H and D passed in rather   // than concatenated into a single Matrix A = H || D.   template <class T>   void SrifMU(Matrix<T>& R,               Vector<T>& Z,               Matrix<T>& H,               Vector<T>& D,               unsigned int M)      throw(MatrixException)   {      Matrix<double> A;      try { A = H || D; }      catch(MatrixException& me) { GPSTK_RETHROW(me); }      SrifMU(R,Z,A,M);         // copy residuals out of A into D      D = Vector<double>(A.colCopy(A.cols()-1));   }   //---------------------------------------------------------------------------------   // Invert the upper triangular matrix stored in the square matrix UT, using a very   // efficient algorithm. Throw MatrixException if the matrix is singular.   // If the pointers are defined, on exit (but not if an exception is thrown),   // they return the smallest and largest eigenvalues of the matrix.   template <class T>   Matrix<T> inverseUT(const Matrix<T>& UT,                       T *ptrSmall,                       T *ptrBig)      throw(MatrixException)   {      if(UT.rows() != UT.cols() || UT.rows() == 0) {         using namespace StringUtils;                  MatrixException me("Invalid input dimensions: "               + asString<int>(UT.rows()) + "x"               + asString<int>(UT.cols()));         GPSTK_THROW(me);      }      unsigned int i,j,k,n=UT.rows();      T big,small,sum,dum;      Matrix<T> Inv(UT);         // start at the last row,col      dum = UT(n-1,n-1);      if(dum == T(0))         throw SingularMatrixException("Singular matrix");      big = small = dum;      Inv(n-1,n-1) = T(1)/dum;      if(n == 1) return Inv;                 // 1x1 matrix      for(i=0; i<n-1; i++) Inv(n-1,i)=0;         // now move to rows i = n-2 to 0      for(i=n-2; i>=0; i--) {         if(UT(i,i) == T(0))            throw SingularMatrixException("Singular matrix");         if(fabs(UT(i,i)) > big) big = fabs(UT(i,i));         if(fabs(UT(i,i)) < small) small = fabs(UT(i,i));         dum = T(1)/UT(i,i);         Inv(i,i) = dum;                        // diagonal element first            // now do off-diagonal elements (i,i+1) to (i,n-1)         for(j=i+1; j<n; j++) {            sum = T(0);            for(k=i+1; k<=j; k++)               sum += Inv(k,j) * UT(i,k);            Inv(i,j) = - sum * dum;         }         for(j=0; j<i; j++) Inv(i,j)=0;         if(i==0) break;         // NB i is unsigned, hence 0-1 = 4294967295!      }      if(ptrSmall) *ptrSmall=small;      if(ptrBig) *ptrBig=big;      return Inv;   }   //---------------------------------------------------------------------------------   // Given an upper triangular matrix UT, compute the symmetric matrix   // UT * transpose(UT) using a very efficient algorithm.   template <class T>   Matrix<T> UTtimesTranspose(const Matrix<T>& UT)      throw(MatrixException)   {      unsigned int n=UT.rows();      if(n == 0 || UT.cols() != n) {         using namespace StringUtils;         MatrixException me("Invalid input dimensions: "               + asString<int>(UT.rows()) + "x"               + asString<int>(UT.cols()));         GPSTK_THROW(me);      }      unsigned int i,j,k;      T sum;      Matrix<T> S(n,n);      for(i=0; i<n-1; i++) {        // loop over rows of UT, except the last         sum = T(0);                // diagonal element (i,i)         for(j=i; j<n; j++)            sum += UT(i,j)*UT(i,j);         S(i,i) = sum;         for(j=i+1; j<n; j++) {     // loop over columns to right of (i,i)            sum = T(0);            for(k=j; k<n; k++)               sum += UT(i,k) * UT(j,k);            S(i,j) = S(j,i) = sum;         }      }      S(n-1,n-1) = UT(n-1,n-1)*UT(n-1,n-1);   // the last diagonal element      return S;   }} // end namespace gpstk//------------------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野结衣91| 蜜臀久久久99精品久久久久久| 成人综合日日夜夜| 国产欧美精品一区| 成人午夜视频在线观看| 专区另类欧美日韩| 一本色道久久综合亚洲91| 亚洲高清视频中文字幕| 69av一区二区三区| 国产一区二区在线电影| 18成人在线视频| 欧美怡红院视频| 另类小说视频一区二区| 亚洲国产高清在线观看视频| 91论坛在线播放| 亚洲成人在线免费| 精品国产一区久久| 99久久99精品久久久久久| 亚洲国产一区在线观看| 日韩免费观看高清完整版| 国产盗摄一区二区三区| 亚洲欧美日韩国产成人精品影院| 欧美精品久久一区二区三区| 激情小说欧美图片| 洋洋成人永久网站入口| 精品国产精品一区二区夜夜嗨| 99久久精品一区| 男人的j进女人的j一区| 国产精品护士白丝一区av| 欧美高清www午色夜在线视频| 国产又黄又大久久| 亚洲国产欧美日韩另类综合| 久久亚洲综合色| 欧美色精品在线视频| 国产盗摄精品一区二区三区在线| 亚洲亚洲精品在线观看| 久久男人中文字幕资源站| 在线观看中文字幕不卡| 国产精品自拍av| 性久久久久久久久| 国产精品入口麻豆九色| 日韩免费成人网| 在线视频一区二区三| 国产激情一区二区三区| 午夜精品久久久久久久久| 国产精品蜜臀av| 精品久久人人做人人爰| 一本大道av伊人久久综合| 国产精品18久久久久久久久| 日韩av中文字幕一区二区| 亚洲少妇30p| 欧美国产在线观看| 日韩久久久精品| 在线播放欧美女士性生活| 91最新地址在线播放| 国产高清视频一区| 黄色日韩三级电影| 奇米精品一区二区三区在线观看一| 亚洲激情图片小说视频| 成人欧美一区二区三区视频网页| 精品国产免费一区二区三区香蕉| 欧美福利视频一区| 欧美日韩视频在线第一区 | 9人人澡人人爽人人精品| 久久91精品国产91久久小草 | 成人免费在线视频| 久久久久国色av免费看影院| 日韩欧美在线综合网| 欧美日韩免费一区二区三区| 91成人在线精品| 91亚洲精品久久久蜜桃网站| 成人激情小说乱人伦| 国产成人精品一区二区三区网站观看 | 色婷婷激情综合| 99久久婷婷国产综合精品电影| 成人黄色免费短视频| 成人免费av资源| 99久久综合精品| 91在线观看高清| 色香色香欲天天天影视综合网| 99视频一区二区三区| 91婷婷韩国欧美一区二区| 91啪亚洲精品| 91成人免费在线视频| 色婷婷精品大在线视频| 欧美亚洲动漫另类| 717成人午夜免费福利电影| 欧美精选一区二区| 日韩欧美高清在线| 国产日韩欧美a| 中文字幕日韩一区| 亚洲综合在线视频| 午夜久久福利影院| 九色porny丨国产精品| 国产一区二区福利视频| 成人久久久精品乱码一区二区三区| 国产成人av电影在线| 91片在线免费观看| 91.麻豆视频| 精品少妇一区二区三区日产乱码 | 国产成a人亚洲| 不卡的看片网站| 在线观看一区二区精品视频| 欧美日韩国产123区| 欧美成人一区二区三区片免费| 久久婷婷综合激情| 国产精品乱人伦| 亚洲国产精品一区二区www在线| 日韩高清一级片| 国产成都精品91一区二区三| 色狠狠av一区二区三区| 欧美一级免费大片| 久久精品亚洲精品国产欧美| 亚洲精品你懂的| 狠狠色综合日日| 91免费版在线| 日韩欧美国产一区在线观看| 亚洲国产精华液网站w| 亚洲成人资源网| 国产精品亚洲第一| 欧美日韩午夜在线视频| 中文欧美字幕免费| 日韩激情视频网站| 波多野结衣视频一区| 欧美一区在线视频| 亚洲欧洲日韩av| 久久精品免费看| 色综合天天做天天爱| 欧美刺激午夜性久久久久久久| 亚洲图片欧美激情| 国产综合色产在线精品| 色www精品视频在线观看| 久久影院视频免费| 亚洲午夜一二三区视频| 国产99久久久国产精品潘金| 欧美日韩国产美女| 国产精品久久免费看| 精品一区二区久久| 欧美日韩中字一区| 国产精品每日更新| 国产在线一区观看| 欧美久久久久久久久| 亚洲美女少妇撒尿| 成人性视频免费网站| 日韩欧美黄色影院| 婷婷六月综合亚洲| 色av成人天堂桃色av| 亚洲国产精品精华液ab| 激情综合色丁香一区二区| 欧美日产国产精品| 亚洲国产毛片aaaaa无费看| 99久久精品免费看国产| 国产欧美日韩中文久久| 激情五月婷婷综合| 精品美女在线播放| 日本特黄久久久高潮| 欧美日韩mp4| 亚洲国产aⅴ成人精品无吗| 色婷婷久久99综合精品jk白丝| 国产精品久久一级| 成人中文字幕合集| 久久天堂av综合合色蜜桃网| 精一区二区三区| 日韩欧美你懂的| 免费一区二区视频| 91精品在线观看入口| 日韩精品一二三四| 欧美绝品在线观看成人午夜影视| 亚洲最快最全在线视频| 色婷婷国产精品久久包臀 | 国产日产欧美一区二区视频| 极品少妇一区二区三区精品视频| 欧美日本一道本| 日本aⅴ亚洲精品中文乱码| 51久久夜色精品国产麻豆| 偷窥少妇高潮呻吟av久久免费| 欧美日韩美女一区二区| 亚洲成人黄色小说| 欧美一区二区福利在线| 精品一区二区三区视频在线观看| 欧美tickling网站挠脚心| 国产最新精品精品你懂的| 国产亚洲精品久| 91在线视频播放| 一区二区成人在线| 91精品国产一区二区人妖| 激情综合色播激情啊| 国产欧美一区二区在线| 色香蕉成人二区免费| 日日夜夜免费精品视频| 精品国产乱码久久久久久影片| 国产大陆亚洲精品国产| 专区另类欧美日韩| 欧美丰满少妇xxxbbb| 国产在线麻豆精品观看| 中文字幕在线观看一区二区| 欧美日韩三级一区| 极品少妇一区二区三区精品视频| 中文av一区二区| 欧美人与禽zozo性伦|