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


C++ vctDynamicVector::Norm方法代码示例

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


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

示例1: CCG

vctDynamicVector<double>
robManipulator::InverseDynamics( const vctDynamicVector<double>& q,
                                 const vctDynamicVector<double>& qd,
                                 const vctDynamicVector<double>& qdd ) const {

  vctDynamicVector<double> ccg = CCG(q, qd);

  doublereal* Inertterm  = new doublereal[ links.size() ];
  for( size_t i=0; i<links.size(); i++ )
    Inertterm [i] = 0;

  // Ensure there's an acceleration. Orthewise only consider ccg
  if( 0.0 < qdd.Norm() ){

    char LOW = 'L';
    integer N = links.size();
    integer LDA = links.size();
    integer INC = 1;
    doublereal ALPHA = 1.0;
    doublereal BETA = 0.0;

    doublereal** A = rmatrix(0, links.size()-1, 0, links.size()-1);
    JSinertia(A,q);

    // must copy to an array for symv
    doublereal* qddv = new doublereal[ links.size() ];
    for( size_t i=0; i<links.size(); i++ ) qddv[i] = qdd[i];

    symv(&LOW, &N,
         &ALPHA, &A[0][0], &LDA,
         qddv, &INC,
         &BETA, Inertterm, &INC);

    free_rmatrix(A, 0, 0);
    delete[] qddv;
  }

  // add inertia+coriolis+grav
  vctDynamicVector<double> trq( links.size(), 0.0 );
  for( size_t i=0; i<links.size(); i++ )
    trq[i] = Inertterm[i] + ccg[i];

  delete[] Inertterm;

  return trq;
}
开发者ID:ahundt,项目名称:cisst,代码行数:46,代码来源:robManipulator.cpp


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