当前位置: 首页>>代码示例>>C++>>正文


C++ MatrixT::isSquare方法代码示例

本文整理汇总了C++中MatrixT::isSquare方法的典型用法代码示例。如果您正苦于以下问题:C++ MatrixT::isSquare方法的具体用法?C++ MatrixT::isSquare怎么用?C++ MatrixT::isSquare使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MatrixT的用法示例。


在下文中一共展示了MatrixT::isSquare方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: if

void DiagonalMatrixTemplate<T>::copyDiagonal(const MatrixT& m)
{
	if(!m.isSquare())
	{
		FatalError(MatrixError_ArgIncompatibleDimensions);
	}
	if(BaseT::n == 0)
	{
		resize(m.m);
	}
	else if(BaseT::n != m.m)
	{
		FatalError(MatrixError_DestIncompatibleDimensions);
	}
  m.getDiagCopy(0,*this);
}
开发者ID:panjia1983,项目名称:mintos,代码行数:16,代码来源:DiagonalMatrix.cpp

示例2: d

bool NRQRDecomposition<T>::set(const MatrixT& A)
{
  Assert(A.isSquare());
  int n=A.n;
  VectorT d(n);
  c.resize(n);
  QR.copy(A);

  int i,j,k;
  T scale,sigma,sum,tau;
  singular=false; 
  for (k=0;k<n-1;k++) {
    scale=0;
    for (i=k;i<n;i++) 
      scale=Max(scale,Abs(this->R(i,k)));
    if (scale == 0) { //Singular case. 
      singular=true;
      c(k)=d(k)=0.0;
    }
    else { //Form Qk and Qk*A. 
      for (i=k;i<n;i++) 
	QR(i,k) /= scale;
      for (sum=0,i=k;i<n;i++) 
	sum += Sqr(QR(i,k));
      sigma=SIGN(sqrt(sum),QR(k,k));
      QR(k,k) += sigma; 
      c(k)=sigma*QR(k,k);
      d(k) = -scale*sigma; 
      for (j=k+1;j<n;j++) {
	for (sum=0,i=k;i<n;i++)
	  sum += QR(i,k)*QR(i,j);
	tau=sum/c(k);
	for (i=k;i<n;i++) 
	  QR(i,j) -= tau*QR(i,k);
      }
    }
  }
  d(n-1)=QR(n-1,n-1);
  if (d(n-1) == 0) singular=true;
  return true;
}
开发者ID:,项目名称:,代码行数:41,代码来源:


注:本文中的MatrixT::isSquare方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。