本文整理汇总了C++中teuchos::LAPACK::STEQR方法的典型用法代码示例。如果您正苦于以下问题:C++ LAPACK::STEQR方法的具体用法?C++ LAPACK::STEQR怎么用?C++ LAPACK::STEQR使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类teuchos::LAPACK
的用法示例。
在下文中一共展示了LAPACK::STEQR方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: gauss
void gauss( const Teuchos::LAPACK<int,Real> &lapack,
const ROL::Vector<Real> &a,
const ROL::Vector<Real> &b,
ROL::Vector<Real> &x,
ROL::Vector<Real> &w ) {
int INFO;
Teuchos::RCP<const std::vector<Real> > ap =
(Teuchos::dyn_cast<ROL::StdVector<Real> >(const_cast<ROL::Vector<Real> &>(a))).getVector();
Teuchos::RCP<const std::vector<Real> > bp =
(Teuchos::dyn_cast<ROL::StdVector<Real> >(const_cast<ROL::Vector<Real> &>(b))).getVector();
Teuchos::RCP<std::vector<Real> > xp =
Teuchos::rcp_const_cast<std::vector<Real> >((Teuchos::dyn_cast<ROL::StdVector<Real> >(x)).getVector());
Teuchos::RCP<std::vector<Real> > wp =
Teuchos::rcp_const_cast<std::vector<Real> >((Teuchos::dyn_cast<ROL::StdVector<Real> >(w)).getVector());
const int N = ap->size();
const int LDZ = N;
const char COMPZ = 'I';
Teuchos::RCP<std::vector<Real> > Dp = Teuchos::rcp(new std::vector<Real>(N,0.0));
Teuchos::RCP<std::vector<Real> > Ep = Teuchos::rcp(new std::vector<Real>(N,0.0));
Teuchos::RCP<std::vector<Real> > WORKp = Teuchos::rcp(new std::vector<Real>(4*N,0.0));
// Column-stacked matrix of eigenvectors needed for weights
Teuchos::RCP<std::vector<Real> > Zp = Teuchos::rcp(new std::vector<Real>(N*N,0));
// D = a
std::copy(ap->begin(),ap->end(),Dp->begin());
for(int i=0;i<N-1;++i) {
(*Ep)[i] = sqrt((*bp)[i+1]);
}
// Eigenvalue Decomposition
lapack.STEQR(COMPZ,N,&(*Dp)[0],&(*Ep)[0],&(*Zp)[0],LDZ,&(*WORKp)[0],&INFO);
for(int i=0;i<N;++i){
(*xp)[i] = (*Dp)[i];
(*wp)[i] = (*bp)[0]*pow((*Zp)[N*i],2);
}
}