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


C++ VectorXd::noalias方法代码示例

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


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

示例1: aggregateInvAugMassMatrix

void BodyNode::aggregateInvAugMassMatrix(Eigen::MatrixXd* _InvMCol, int _col,
                                         double /*_timeStep*/) {
  Eigen::VectorXd MInvCol;
  int dof = mParentJoint->getNumGenCoords();
  if (dof > 0) {
    if (mParentBodyNode) {
      MInvCol.noalias() = mImplicitPsi * mInvM_a;
      MInvCol.noalias() -= mImplicitAI_S_ImplicitPsi.transpose()
                           * math::AdInvT(mParentJoint->getLocalTransform(),
                                          mParentBodyNode->mInvM_U);
    } else {
      MInvCol.noalias() = mImplicitPsi * mInvM_a;
    }
    assert(!math::isNan(MInvCol));

    // Assign
    int iStart = mParentJoint->getGenCoord(0)->getSkeletonIndex();
    _InvMCol->block(iStart, _col, dof, 1) = MInvCol;
  }

  if (mChildBodyNodes.size() > 0) {
    if (dof > 0)
      mInvM_U.noalias() = mParentJoint->getLocalJacobian() * MInvCol;
    else
      mInvM_U.setZero();

    if (mParentBodyNode) {
      mInvM_U += math::AdInvT(mParentJoint->getLocalTransform(),
                              mParentBodyNode->mInvM_U);
    }
    assert(!math::isNan(mInvM_U));
  }
}
开发者ID:scpeters,项目名称:dart,代码行数:33,代码来源:BodyNode.cpp

示例2: operator

 bool operator() (
     Eigen::VectorXd& newx,
     const Eigen::VectorXd& x,
     const Eigen::VectorXd& g,
     double step_size) {
   newx.noalias() = x - step_size * g;
   for (ssize_t n = 0; n < newx.size(); n += 3)
     newx.segment (n,3).normalize();
   return newx != x;
 }
开发者ID:MRtrix3,项目名称:mrtrix3,代码行数:10,代码来源:dirgen.cpp

示例3: update_ddq

void BodyNode::update_ddq() {
  if (mParentJoint->getNumGenCoords() == 0)
    return;

  Eigen::VectorXd ddq;
  if (mParentBodyNode) {
    ddq.noalias() =
        mImplicitPsi * (mAlpha - mImplicitAI_S.transpose() *
                        math::AdInvT(mParentJoint->getLocalTransform(),
                                     mParentBodyNode->getBodyAcceleration()));
  } else {
    ddq.noalias() = mImplicitPsi * mAlpha;
  }

  mParentJoint->GenCoordSystem::setGenAccs(ddq);
  assert(!math::isNan(ddq));

  updateAcceleration();
}
开发者ID:scpeters,项目名称:dart,代码行数:19,代码来源:BodyNode.cpp

示例4: operator

  void operator() (Image<value_type>& fod_img, Image<value_type>& dec_img) {

    if (mask_img.valid()) {
      assign_pos_of(fod_img, 0, 3).to(mask_img);
      if (!mask_img.value()) {
        dec_img.row(3).fill(UNIT);
        return;
      }
    }

    amps.noalias() = dectrans.sht * fod_img.row(3).cast<double>();

    dec.setZero();
    ampsum = 0.0;
    for (ssize_t i = 0; i < amps.rows(); i++) {
      if (!std::isnan(dectrans.thresh) && amps(i) < dectrans.thresh)
        continue;
      dec += dectrans.decs.row(i) * amps(i);
      ampsum += amps(i);
    }
    dec = dec.cwiseMax(0.0);
    ampsum = std::max(ampsum, 0.0);

    decnorm = dec.norm();

    if (decnorm == 0.0)
      dec_img.row(3).fill(UNIT);
    else
      dec_img.row(3) = (dec / decnorm).cast<value_type>();

    if (int_img.valid()) {
      assign_pos_of(fod_img, 0, 3).to(int_img);
      int_img.value() = (ampsum / amps.rows()) * 4.0 * Math::pi;
    }

  }
开发者ID:echohenry2006,项目名称:mrtrix3,代码行数:36,代码来源:fod2dec.cpp

示例5: interpolateToNodes

 void interpolateToNodes(Eigen::VectorXd const& src, Eigen::VectorXd &dst) {
     if(!is_constructed) {
         construct();
     }
     dst.noalias() = interpolation_matrix*src;
 }
开发者ID:tjolsen,项目名称:YAFEL,代码行数:6,代码来源:CellToNodeMap.hpp


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