Go to the documentation of this file.
    5 #ifndef __pinocchio_algorithm_parallel_aba_hpp__ 
    6 #define __pinocchio_algorithm_parallel_aba_hpp__ 
   35     template<
typename, 
int> 
class JointCollectionTpl,
 
   36     typename ConfigVectorPool,
 
   37     typename TangentVectorPool1,
 
   38     typename TangentVectorPool2,
 
   39     typename TangentVectorPool3>
 
   43     const Eigen::MatrixBase<ConfigVectorPool> & 
q,
 
   44     const Eigen::MatrixBase<TangentVectorPool1> & 
v,
 
   45     const Eigen::MatrixBase<TangentVectorPool2> & 
tau,
 
   46     const Eigen::MatrixBase<TangentVectorPool3> & 
a)
 
   51     typedef typename Pool::ModelVector ModelVector;
 
   52     typedef typename Pool::DataVector DataVector;
 
   57     const ModelVector & models = 
pool.getModels();
 
   58     const Model & model_check = models[0];
 
   59     DataVector & datas = 
pool.getDatas();
 
   60     TangentVectorPool3 & 
res = 
a.const_cast_derived();
 
   73     Eigen::DenseIndex 
i = 0;
 
   75 #pragma omp parallel for schedule(                                                                 \ 
   76     static) // we use static here as this is the same computationnal cost for all threads 
   79       const int thread_id = omp_get_thread_num();
 
   80       const Model & 
model = models[(size_t)thread_id];
 
   81       Data & 
data = datas[(size_t)thread_id];
 
   87 #endif // ifndef __pinocchio_algorithm_parallel_aba_hpp__ 
  
#define PINOCCHIO_CHECK_ARGUMENT_SIZE(...)
Macro to check if the size of an element is equal to the expected size.
#define PINOCCHIO_CHECK_INPUT_ARGUMENT(...)
Macro to check an assert-like condition and throw a std::invalid_argument exception (with a message) ...
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & aba(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &tau, const Convention convention=Convention::LOCAL)
The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given t...
void abaInParallel(const size_t num_threads, ModelPoolTpl< Scalar, Options, JointCollectionTpl > &pool, const Eigen::MatrixBase< ConfigVectorPool > &q, const Eigen::MatrixBase< TangentVectorPool1 > &v, const Eigen::MatrixBase< TangentVectorPool2 > &tau, const Eigen::MatrixBase< TangentVectorPool3 > &a)
A parallel version of the Articulated Body algorithm. It computes the forward dynamics,...
DataTpl< context::Scalar, context::Options > Data
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
int nv
Dimension of the velocity vector space.
void set_default_omp_options(const size_t num_threads=(size_t) omp_get_max_threads())
pinocchio::ModelTpl< Scalar > Model
int nq
Dimension of the configuration vector representation.
ModelTpl< context::Scalar, context::Options > Model
JointCollectionTpl & model
Main pinocchio namespace.
pinocchio
Author(s): 
autogenerated on Wed May 28 2025 02:41:14