本文整理汇总了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;
}