code-generator-algo.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2018-2020 CNRS INRIA
3 //
4 
5 #ifndef __pinocchio_codegen_code_generator_algo_hpp__
6 #define __pinocchio_codegen_code_generator_algo_hpp__
7 
9 
18 
19 namespace pinocchio
20 {
21  template<typename _Scalar>
22  struct CodeGenRNEA : public CodeGenBase<_Scalar>
23  {
25  typedef typename Base::Scalar Scalar;
26 
27  typedef typename Base::Model Model;
30  typedef typename Base::MatrixXs MatrixXs;
31  typedef typename Base::VectorXs VectorXs;
32 
34  const Model & model,
35  const std::string & function_name = "rnea",
36  const std::string & library_name = "cg_rnea_eval")
38  {
42  ad_v.setZero();
44  ad_a.setZero();
45  x = VectorXs::Zero(Base::getInputDimension());
46  res = VectorXs::Zero(Base::getOutputDimension());
47 
48  dtau_dq = MatrixXs::Zero(model.nv, model.nq);
49  dtau_dv = MatrixXs::Zero(model.nv, model.nv);
50  dtau_da = MatrixXs::Zero(model.nv, model.nv);
51  }
52 
53  virtual ~CodeGenRNEA()
54  {
55  }
56 
57  void buildMap()
58  {
59  CppAD::Independent(ad_X);
60 
61  Eigen::DenseIndex it = 0;
62  ad_q = ad_X.segment(it, ad_model.nq);
63  it += ad_model.nq;
64  ad_v = ad_X.segment(it, ad_model.nv);
65  it += ad_model.nv;
66  ad_a = ad_X.segment(it, ad_model.nv);
67  it += ad_model.nv;
68 
70 
71  ad_Y = ad_data.tau;
72 
73  ad_fun.Dependent(ad_X, ad_Y);
74  ad_fun.optimize("no_compare_op");
75  }
76 
77  using Base::evalFunction;
78  template<typename ConfigVectorType, typename TangentVector1, typename TangentVector2>
80  const Eigen::MatrixBase<ConfigVectorType> & q,
81  const Eigen::MatrixBase<TangentVector1> & v,
82  const Eigen::MatrixBase<TangentVector2> & a)
83  {
84  // fill x
85  Eigen::DenseIndex it = 0;
86  x.segment(it, ad_model.nq) = q;
87  it += ad_model.nq;
88  x.segment(it, ad_model.nv) = v;
89  it += ad_model.nv;
90  x.segment(it, ad_model.nv) = a;
91  it += ad_model.nv;
92 
93  evalFunction(x);
94  res = Base::y;
95  }
96 
97  using Base::evalJacobian;
98  template<typename ConfigVectorType, typename TangentVector1, typename TangentVector2>
100  const Eigen::MatrixBase<ConfigVectorType> & q,
101  const Eigen::MatrixBase<TangentVector1> & v,
102  const Eigen::MatrixBase<TangentVector2> & a)
103  {
104  // fill x
105  Eigen::DenseIndex it = 0;
106  x.segment(it, ad_model.nq) = q;
107  it += ad_model.nq;
108  x.segment(it, ad_model.nv) = v;
109  it += ad_model.nv;
110  x.segment(it, ad_model.nv) = a;
111  it += ad_model.nv;
112 
113  evalJacobian(x);
114  it = 0;
115  dtau_dq = Base::jac.middleCols(it, ad_model.nq);
116  it += ad_model.nq;
117  dtau_dv = Base::jac.middleCols(it, ad_model.nv);
118  it += ad_model.nv;
119  dtau_da = Base::jac.middleCols(it, ad_model.nv);
120  it += ad_model.nv;
121  }
122 
124 
125  protected:
126  using Base::ad_data;
127  using Base::ad_fun;
128  using Base::ad_model;
129  using Base::ad_X;
130  using Base::ad_Y;
131  using Base::jac;
132  using Base::y;
133 
136 
139  };
140 
141  template<typename _Scalar>
142  struct CodeGenABA : public CodeGenBase<_Scalar>
143  {
145  typedef typename Base::Scalar Scalar;
146 
147  typedef typename Base::Model Model;
150  typedef typename Base::MatrixXs MatrixXs;
151  typedef typename Base::VectorXs VectorXs;
152 
154  const Model & model,
155  const std::string & function_name = "aba",
156  const std::string & library_name = "cg_aba_eval")
158  {
160  ad_q = neutral(ad_model);
162  ad_v.setZero();
164  ad_tau.setZero();
165  x = VectorXs::Zero(Base::getInputDimension());
166  res = VectorXs::Zero(Base::getOutputDimension());
167 
168  da_dq = MatrixXs::Zero(model.nv, model.nq);
169  da_dv = MatrixXs::Zero(model.nv, model.nv);
170  da_dtau = MatrixXs::Zero(model.nv, model.nv);
171  }
172 
173  virtual ~CodeGenABA()
174  {
175  }
176 
177  void buildMap()
178  {
179  CppAD::Independent(ad_X);
180 
181  Eigen::DenseIndex it = 0;
182  ad_q = ad_X.segment(it, ad_model.nq);
183  it += ad_model.nq;
184  ad_v = ad_X.segment(it, ad_model.nv);
185  it += ad_model.nv;
186  ad_tau = ad_X.segment(it, ad_model.nv);
187  it += ad_model.nv;
188 
190  ad_Y = ad_data.ddq;
191 
192  ad_fun.Dependent(ad_X, ad_Y);
193  ad_fun.optimize("no_compare_op");
194  }
195 
196  using Base::evalFunction;
197  template<typename ConfigVectorType, typename TangentVector1, typename TangentVector2>
199  const Eigen::MatrixBase<ConfigVectorType> & q,
200  const Eigen::MatrixBase<TangentVector1> & v,
201  const Eigen::MatrixBase<TangentVector2> & tau)
202  {
203  // fill x
204  Eigen::DenseIndex it = 0;
205  x.segment(it, ad_model.nq) = q;
206  it += ad_model.nq;
207  x.segment(it, ad_model.nv) = v;
208  it += ad_model.nv;
209  x.segment(it, ad_model.nv) = tau;
210  it += ad_model.nv;
211 
212  evalFunction(x);
213  res = Base::y;
214  }
215 
216  using Base::evalJacobian;
217  template<typename ConfigVectorType, typename TangentVector1, typename TangentVector2>
219  const Eigen::MatrixBase<ConfigVectorType> & q,
220  const Eigen::MatrixBase<TangentVector1> & v,
221  const Eigen::MatrixBase<TangentVector2> & tau)
222  {
223  // fill x
224  Eigen::DenseIndex it = 0;
225  x.segment(it, ad_model.nq) = q;
226  it += ad_model.nq;
227  x.segment(it, ad_model.nv) = v;
228  it += ad_model.nv;
229  x.segment(it, ad_model.nv) = tau;
230  it += ad_model.nv;
231 
232  evalJacobian(x);
233 
234  it = 0;
235  da_dq = Base::jac.middleCols(it, ad_model.nq);
236  it += ad_model.nq;
237  da_dv = Base::jac.middleCols(it, ad_model.nv);
238  it += ad_model.nv;
239  da_dtau = Base::jac.middleCols(it, ad_model.nv);
240  it += ad_model.nv;
241  }
242 
244 
245  protected:
246  using Base::ad_data;
247  using Base::ad_fun;
248  using Base::ad_model;
249  using Base::ad_X;
250  using Base::ad_Y;
251  using Base::jac;
252  using Base::y;
253 
256 
259  };
260 
261  template<typename _Scalar>
262  struct CodeGenCRBA : public CodeGenBase<_Scalar>
263  {
265  typedef typename Base::Scalar Scalar;
266 
267  typedef typename Base::Model Model;
270  typedef typename Base::MatrixXs MatrixXs;
271  typedef typename Base::VectorXs VectorXs;
272 
274  const Model & model,
275  const std::string & function_name = "crba",
276  const std::string & library_name = "cg_crba_eval")
277  : Base(model, model.nq, (model.nv * (model.nv + 1)) / 2, function_name, library_name)
278  {
280  ad_q = neutral(ad_model);
281  x = VectorXs::Zero(Base::getInputDimension());
282  res = VectorXs::Zero(Base::getOutputDimension());
283 
284  M = MatrixXs::Zero(model.nv, model.nq);
285 
286  Base::build_jacobian = false;
287  }
288 
289  virtual ~CodeGenCRBA()
290  {
291  }
292 
293  void buildMap()
294  {
295  CppAD::Independent(ad_X);
296 
297  Eigen::DenseIndex it = 0;
298  ad_q = ad_X.segment(it, ad_model.nq);
299  it += ad_model.nq;
300 
302  Eigen::DenseIndex it_Y = 0;
303 
304  for (Eigen::DenseIndex i = 0; i < ad_model.nv; ++i)
305  {
306  for (Eigen::DenseIndex j = i; j < ad_model.nv; ++j)
307  {
308  ad_Y[it_Y++] = ad_data.M(i, j);
309  }
310  }
311 
312  assert(it_Y == Base::getOutputDimension());
313 
314  ad_fun.Dependent(ad_X, ad_Y);
315  ad_fun.optimize("no_compare_op");
316  }
317 
318  template<typename ConfigVectorType>
319  void evalFunction(const Eigen::MatrixBase<ConfigVectorType> & q)
320  {
321  // fill x
322  Eigen::DenseIndex it = 0;
323  x.segment(it, ad_model.nq) = q;
324  it += ad_model.nq;
325 
327 
328  // fill M
329  Eigen::DenseIndex it_Y = 0;
330  for (Eigen::DenseIndex i = 0; i < ad_model.nv; ++i)
331  {
332  for (Eigen::DenseIndex j = i; j < ad_model.nv; ++j)
333  {
334  M(i, j) = Base::y[it_Y++];
335  }
336  }
337 
338  assert(it_Y == Base::getOutputDimension());
339  }
340 
342 
343  protected:
344  using Base::ad_data;
345  using Base::ad_fun;
346  using Base::ad_model;
347  using Base::ad_X;
348  using Base::ad_Y;
349  using Base::y;
350 
353 
355  };
356 
357  template<typename _Scalar>
358  struct CodeGenMinv : public CodeGenBase<_Scalar>
359  {
361  typedef typename Base::Scalar Scalar;
362 
363  typedef typename Base::Model Model;
366  typedef typename Base::MatrixXs MatrixXs;
367  typedef typename Base::VectorXs VectorXs;
368 
370  const Model & model,
371  const std::string & function_name = "minv",
372  const std::string & library_name = "cg_minv_eval")
373  : Base(model, model.nq, (model.nv * (model.nv + 1)) / 2, function_name, library_name)
374  {
376  ad_q = neutral(ad_model);
377  x = VectorXs::Zero(Base::getInputDimension());
378  res = VectorXs::Zero(Base::getOutputDimension());
379 
380  Minv = MatrixXs::Zero(model.nv, model.nq);
381 
382  Base::build_jacobian = false;
383  }
384 
385  virtual ~CodeGenMinv()
386  {
387  }
388 
389  void buildMap()
390  {
391  CppAD::Independent(ad_X);
392 
393  Eigen::DenseIndex it = 0;
394  ad_q = ad_X.segment(it, ad_model.nq);
395  it += ad_model.nq;
396 
398  Eigen::DenseIndex it_Y = 0;
399  for (Eigen::DenseIndex i = 0; i < ad_model.nv; ++i)
400  {
401  for (Eigen::DenseIndex j = i; j < ad_model.nv; ++j)
402  {
403  ad_Y[it_Y++] = ad_data.Minv(i, j);
404  }
405  }
406 
407  assert(it_Y == Base::getOutputDimension());
408 
409  ad_fun.Dependent(ad_X, ad_Y);
410  ad_fun.optimize("no_compare_op");
411  }
412 
413  template<typename ConfigVectorType>
414  void evalFunction(const Eigen::MatrixBase<ConfigVectorType> & q)
415  {
416  // fill x
417  Eigen::DenseIndex it = 0;
418  x.segment(it, ad_model.nq) = q;
419  it += ad_model.nq;
420 
422 
423  // fill Minv
424  Eigen::DenseIndex it_Y = 0;
425  for (Eigen::DenseIndex i = 0; i < ad_model.nv; ++i)
426  {
427  for (Eigen::DenseIndex j = i; j < ad_model.nv; ++j)
428  {
429  Minv(i, j) = Base::y[it_Y++];
430  }
431  }
432  }
433 
435 
436  protected:
437  using Base::ad_data;
438  using Base::ad_fun;
439  using Base::ad_model;
440  using Base::ad_X;
441  using Base::ad_Y;
442  using Base::y;
443 
446 
448  };
449 
450  template<typename _Scalar>
451  struct CodeGenRNEADerivatives : public CodeGenBase<_Scalar>
452  {
454  typedef typename Base::Scalar Scalar;
455 
456  typedef typename Base::Model Model;
459  typedef typename Base::MatrixXs MatrixXs;
461  typedef typename Base::VectorXs VectorXs;
462 
463  typedef typename Base::ADData ADData;
464  typedef typename ADData::MatrixXs ADMatrixXs;
465  typedef typename PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE(ADMatrixXs) RowADMatrixXs;
466 
468  const Model & model,
469  const std::string & function_name = "partial_rnea",
470  const std::string & library_name = "cg_partial_rnea_eval")
472  {
474  ad_q = neutral(ad_model);
476  ad_v.setZero();
478  ad_a.setZero();
479 
480  x = VectorXs::Zero(Base::getInputDimension());
481 
482  ad_dtau_dq = ADMatrixXs::Zero(model.nv, model.nv);
483  ad_dtau_dv = ADMatrixXs::Zero(model.nv, model.nv);
484  ad_dtau_da = ADMatrixXs::Zero(model.nv, model.nv);
485 
486  dtau_dq = MatrixXs::Zero(model.nv, model.nv);
487  dtau_dv = MatrixXs::Zero(model.nv, model.nv);
488  dtau_da = MatrixXs::Zero(model.nv, model.nv);
489 
490  Base::build_jacobian = false;
491  }
492 
494  {
495  }
496 
497  void buildMap()
498  {
499  CppAD::Independent(ad_X);
500 
501  Eigen::DenseIndex it = 0;
502  ad_q = ad_X.segment(it, ad_model.nq);
503  it += ad_model.nq;
504  ad_v = ad_X.segment(it, ad_model.nv);
505  it += ad_model.nv;
506  ad_a = ad_X.segment(it, ad_model.nv);
507  it += ad_model.nv;
508 
511 
512  assert(ad_Y.size() == Base::getOutputDimension());
513 
514  Eigen::DenseIndex it_Y = 0;
515  Eigen::Map<RowADMatrixXs>(ad_Y.data() + it_Y, ad_model.nv, ad_model.nv) = ad_dtau_dq;
516  it_Y += ad_model.nv * ad_model.nv;
517  Eigen::Map<RowADMatrixXs>(ad_Y.data() + it_Y, ad_model.nv, ad_model.nv) = ad_dtau_dv;
518  it_Y += ad_model.nv * ad_model.nv;
519  Eigen::Map<RowADMatrixXs>(ad_Y.data() + it_Y, ad_model.nv, ad_model.nv) = ad_dtau_da;
520  it_Y += ad_model.nv * ad_model.nv;
521 
522  ad_fun.Dependent(ad_X, ad_Y);
523  ad_fun.optimize("no_compare_op");
524  }
525 
526  template<typename ConfigVectorType, typename TangentVector1, typename TangentVector2>
528  const Eigen::MatrixBase<ConfigVectorType> & q,
529  const Eigen::MatrixBase<TangentVector1> & v,
530  const Eigen::MatrixBase<TangentVector2> & a)
531  {
532  // fill x
533  Eigen::DenseIndex it_x = 0;
534  x.segment(it_x, ad_model.nq) = q;
535  it_x += ad_model.nq;
536  x.segment(it_x, ad_model.nv) = v;
537  it_x += ad_model.nv;
538  x.segment(it_x, ad_model.nv) = a;
539  it_x += ad_model.nv;
540 
542 
543  // fill partial derivatives
544  Eigen::DenseIndex it_y = 0;
545  dtau_dq = Eigen::Map<RowMatrixXs>(Base::y.data() + it_y, ad_model.nv, ad_model.nv);
546  it_y += ad_model.nv * ad_model.nv;
547  dtau_dv = Eigen::Map<RowMatrixXs>(Base::y.data() + it_y, ad_model.nv, ad_model.nv);
548  it_y += ad_model.nv * ad_model.nv;
549  dtau_da = Eigen::Map<RowMatrixXs>(Base::y.data() + it_y, ad_model.nv, ad_model.nv);
550  it_y += ad_model.nv * ad_model.nv;
551  }
552 
553  protected:
554  using Base::ad_data;
555  using Base::ad_fun;
556  using Base::ad_model;
557  using Base::ad_X;
558  using Base::ad_Y;
559  using Base::y;
560 
564 
567  };
568 
569  template<typename _Scalar>
570  struct CodeGenABADerivatives : public CodeGenBase<_Scalar>
571  {
573  typedef typename Base::Scalar Scalar;
574 
575  typedef typename Base::Model Model;
578  typedef typename Base::MatrixXs MatrixXs;
580  typedef typename Base::VectorXs VectorXs;
581 
582  typedef typename Base::ADData ADData;
583  typedef typename ADData::MatrixXs ADMatrixXs;
584  typedef typename PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE(ADMatrixXs) RowADMatrixXs;
585 
587  const Model & model,
588  const std::string & function_name = "partial_aba",
589  const std::string & library_name = "cg_partial_aba_eval")
591  {
593  ad_q = neutral(ad_model);
595  ad_v.setZero();
597  ad_tau.setZero();
598 
599  x = VectorXs::Zero(Base::getInputDimension());
600 
601  ad_dddq_dq = ADMatrixXs::Zero(model.nv, model.nv);
602  ad_dddq_dv = ADMatrixXs::Zero(model.nv, model.nv);
603  ad_dddq_dtau = ADMatrixXs::Zero(model.nv, model.nv);
604 
605  dddq_dq = MatrixXs::Zero(model.nv, model.nv);
606  dddq_dv = MatrixXs::Zero(model.nv, model.nv);
607  dddq_dtau = MatrixXs::Zero(model.nv, model.nv);
608 
609  Base::build_jacobian = false;
610  }
611 
613  {
614  }
615 
616  void buildMap()
617  {
618  CppAD::Independent(ad_X);
619 
620  Eigen::DenseIndex it = 0;
621  ad_q = ad_X.segment(it, ad_model.nq);
622  it += ad_model.nq;
623  ad_v = ad_X.segment(it, ad_model.nv);
624  it += ad_model.nv;
625  ad_tau = ad_X.segment(it, ad_model.nv);
626  it += ad_model.nv;
627 
630 
631  assert(ad_Y.size() == Base::getOutputDimension());
632 
633  Eigen::DenseIndex it_Y = 0;
634  Eigen::Map<RowADMatrixXs>(ad_Y.data() + it_Y, ad_model.nv, ad_model.nv) = ad_dddq_dq;
635  it_Y += ad_model.nv * ad_model.nv;
636  Eigen::Map<RowADMatrixXs>(ad_Y.data() + it_Y, ad_model.nv, ad_model.nv) = ad_dddq_dv;
637  it_Y += ad_model.nv * ad_model.nv;
638  Eigen::Map<RowADMatrixXs>(ad_Y.data() + it_Y, ad_model.nv, ad_model.nv) = ad_dddq_dtau;
639  it_Y += ad_model.nv * ad_model.nv;
640 
641  ad_fun.Dependent(ad_X, ad_Y);
642  ad_fun.optimize("no_compare_op");
643  }
644 
645  template<typename ConfigVectorType, typename TangentVector1, typename TangentVector2>
647  const Eigen::MatrixBase<ConfigVectorType> & q,
648  const Eigen::MatrixBase<TangentVector1> & v,
649  const Eigen::MatrixBase<TangentVector2> & tau)
650  {
651  // fill x
652  Eigen::DenseIndex it_x = 0;
653  x.segment(it_x, ad_model.nq) = q;
654  it_x += ad_model.nq;
655  x.segment(it_x, ad_model.nv) = v;
656  it_x += ad_model.nv;
657  x.segment(it_x, ad_model.nv) = tau;
658  it_x += ad_model.nv;
659 
661 
662  // fill partial derivatives
663  Eigen::DenseIndex it_y = 0;
664  dddq_dq = Eigen::Map<RowMatrixXs>(Base::y.data() + it_y, ad_model.nv, ad_model.nv);
665  it_y += ad_model.nv * ad_model.nv;
666  dddq_dv = Eigen::Map<RowMatrixXs>(Base::y.data() + it_y, ad_model.nv, ad_model.nv);
667  it_y += ad_model.nv * ad_model.nv;
668  dddq_dtau = Eigen::Map<RowMatrixXs>(Base::y.data() + it_y, ad_model.nv, ad_model.nv);
669  it_y += ad_model.nv * ad_model.nv;
670  }
671 
672  protected:
673  using Base::ad_data;
674  using Base::ad_fun;
675  using Base::ad_model;
676  using Base::ad_X;
677  using Base::ad_Y;
678  using Base::y;
679 
683 
686  };
687 
688  template<typename _Scalar>
690  {
692  typedef typename Base::Scalar Scalar;
693  typedef typename Base::ADScalar ADScalar;
694 
695  typedef typename Base::Model Model;
696 
699  typedef typename Base::MatrixXs MatrixXs;
701  typedef typename Base::VectorXs VectorXs;
702 
704  typedef Eigen::aligned_allocator<ContactModel> ConstraintModelAllocator;
705  typedef typename std::vector<ContactModel, ConstraintModelAllocator> ContactModelVector;
707  typedef Eigen::aligned_allocator<ContactData> ConstraintDataAllocator;
708  typedef typename std::vector<ContactData, ConstraintDataAllocator> ContactDataVector;
709 
711  typedef Eigen::aligned_allocator<ADContactModel> ADConstraintModelAllocator;
712  typedef typename std::vector<ADContactModel, ADConstraintModelAllocator> ADContactModelVector;
714  typedef Eigen::aligned_allocator<ADContactData> ADConstraintDataAllocator;
715  typedef typename std::vector<ADContactData, ADConstraintDataAllocator> ADContactDataVector;
716 
717  typedef typename Base::ADData ADData;
718  typedef typename ADData::MatrixXs ADMatrixXs;
719  typedef typename PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE(ADMatrixXs) RowADMatrixXs;
720 
721  Eigen::DenseIndex constraintDim(const ContactModelVector & contact_models) const
722  {
723  Eigen::DenseIndex num_total_constraints = 0;
724  for (typename ContactModelVector::const_iterator it = contact_models.begin();
725  it != contact_models.end(); ++it)
726  {
728  it->size() > 0, "The dimension of the constraint must be positive");
729  num_total_constraints += it->size();
730  }
731  return num_total_constraints;
732  }
733 
735  const Model & model,
737  const std::string & function_name = "partial_constraintDynamics",
738  const std::string & library_name = "cg_partial_constraintDynamics_eval")
739  : Base(
740  model,
741  model.nq + 2 * model.nv,
744  library_name)
746  , dddq_dq(model.nv, model.nv)
747  , dddq_dv(model.nv, model.nv)
749  {
750  dlambda_dq.resize(nc, model.nv);
751  dlambda_dq.setZero();
752  dlambda_dv.resize(nc, model.nv);
753  dlambda_dv.setZero();
754  dlambda_dtau.resize(nc, model.nv);
755  dlambda_dtau.setZero();
756 
758  ad_q = neutral(ad_model);
760  ad_v.setZero();
762  ad_tau.setZero();
763 
764  x = VectorXs::Zero(Base::getInputDimension());
765 
766  for (int k = 0; k < contact_models.size(); ++k)
767  {
768  ad_contact_models.push_back(contact_models[k].template cast<ADScalar>());
769  }
770 
771  for (int k = 0; k < ad_contact_models.size(); ++k)
772  {
774  }
775 
777  Base::build_jacobian = false;
778  }
779 
781  {
782  }
783 
784  void buildMap()
785  {
786  CppAD::Independent(ad_X);
787 
788  Eigen::DenseIndex it = 0;
789  ad_q = ad_X.segment(it, ad_model.nq);
790  it += ad_model.nq;
791  ad_v = ad_X.segment(it, ad_model.nv);
792  it += ad_model.nv;
793  ad_tau = ad_X.segment(it, ad_model.nv);
794  it += ad_model.nv;
795 
800  assert(ad_Y.size() == Base::getOutputDimension());
801 
802  Eigen::DenseIndex it_Y = 0;
803  Eigen::Map<RowADMatrixXs>(ad_Y.data() + it_Y, ad_model.nv, ad_model.nv) = ad_data.ddq_dq;
804  it_Y += ad_model.nv * ad_model.nv;
805  Eigen::Map<RowADMatrixXs>(ad_Y.data() + it_Y, ad_model.nv, ad_model.nv) = ad_data.ddq_dv;
806  it_Y += ad_model.nv * ad_model.nv;
807  Eigen::Map<RowADMatrixXs>(ad_Y.data() + it_Y, ad_model.nv, ad_model.nv) = ad_data.ddq_dtau;
808  it_Y += ad_model.nv * ad_model.nv;
809  Eigen::Map<ADMatrixXs>(ad_Y.data() + it_Y, nc, ad_model.nv) = ad_data.dlambda_dq;
810  it_Y += nc * ad_model.nv;
811  Eigen::Map<ADMatrixXs>(ad_Y.data() + it_Y, nc, ad_model.nv) = ad_data.dlambda_dv;
812  it_Y += nc * ad_model.nv;
813  Eigen::Map<ADMatrixXs>(ad_Y.data() + it_Y, nc, ad_model.nv) = ad_data.dlambda_dtau;
814  it_Y += nc * ad_model.nv;
815  ad_fun.Dependent(ad_X, ad_Y);
816  ad_fun.optimize("no_compare_op");
817  }
818 
819  template<typename ConfigVectorType, typename TangentVector1, typename TangentVector2>
821  const Eigen::MatrixBase<ConfigVectorType> & q,
822  const Eigen::MatrixBase<TangentVector1> & v,
823  const Eigen::MatrixBase<TangentVector2> & tau)
824  {
825  // fill x
826  Eigen::DenseIndex it_x = 0;
827  x.segment(it_x, ad_model.nq) = q;
828  it_x += ad_model.nq;
829  x.segment(it_x, ad_model.nv) = v;
830  it_x += ad_model.nv;
831  x.segment(it_x, ad_model.nv) = tau;
832  it_x += ad_model.nv;
833 
835 
836  // fill partial derivatives
837  Eigen::DenseIndex it_y = 0;
838  dddq_dq = Eigen::Map<RowMatrixXs>(Base::y.data() + it_y, ad_model.nv, ad_model.nv);
839  it_y += ad_model.nv * ad_model.nv;
840  dddq_dv = Eigen::Map<RowMatrixXs>(Base::y.data() + it_y, ad_model.nv, ad_model.nv);
841  it_y += ad_model.nv * ad_model.nv;
842  dddq_dtau = Eigen::Map<RowMatrixXs>(Base::y.data() + it_y, ad_model.nv, ad_model.nv);
843  it_y += ad_model.nv * ad_model.nv;
844  dlambda_dq = Eigen::Map<MatrixXs>(Base::y.data() + it_y, nc, ad_model.nv);
845  it_y += nc * ad_model.nv;
846  dlambda_dv = Eigen::Map<MatrixXs>(Base::y.data() + it_y, nc, ad_model.nv);
847  it_y += nc * ad_model.nv;
848  dlambda_dtau = Eigen::Map<MatrixXs>(Base::y.data() + it_y, nc, ad_model.nv);
849  it_y += nc * ad_model.nv;
850  }
851 
852  protected:
853  using Base::ad_data;
854  using Base::ad_fun;
855  using Base::ad_model;
856  using Base::ad_X;
857  using Base::ad_Y;
858  using Base::y;
859 
860  Eigen::DenseIndex nc;
863 
867 
870  };
871 
872  template<typename _Scalar>
873  struct CodeGenConstraintDynamics : public CodeGenBase<_Scalar>
874  {
876  typedef typename Base::Scalar Scalar;
877  typedef typename Base::ADScalar ADScalar;
878 
879  typedef typename Base::Model Model;
880 
883  typedef typename Base::MatrixXs MatrixXs;
885  typedef typename Base::VectorXs VectorXs;
886 
888  typedef Eigen::aligned_allocator<ContactModel> ConstraintModelAllocator;
889  typedef typename std::vector<ContactModel, ConstraintModelAllocator> ContactModelVector;
891  typedef Eigen::aligned_allocator<ContactData> ConstraintDataAllocator;
892  typedef typename std::vector<ContactData, ConstraintDataAllocator> ContactDataVector;
893 
895  typedef Eigen::aligned_allocator<ADContactModel> ADConstraintModelAllocator;
896  typedef typename std::vector<ADContactModel, ADConstraintModelAllocator> ADContactModelVector;
898  typedef Eigen::aligned_allocator<ADContactData> ADConstraintDataAllocator;
899  typedef typename std::vector<ADContactData, ADConstraintDataAllocator> ADContactDataVector;
900 
901  typedef typename Base::ADData ADData;
902  typedef typename ADData::MatrixXs ADMatrixXs;
903  typedef typename PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE(ADMatrixXs) RowADMatrixXs;
904 
905  Eigen::DenseIndex constraintDim(const ContactModelVector & contact_models) const
906  {
907  Eigen::DenseIndex num_total_constraints = 0;
908  for (typename ContactModelVector::const_iterator it = contact_models.begin();
909  it != contact_models.end(); ++it)
910  {
912  it->size() > 0, "The dimension of the constraint must be positive");
913  num_total_constraints += it->size();
914  }
915  return num_total_constraints;
916  }
917 
919  const Model & model,
921  const std::string & function_name = "constraintDynamics",
922  const std::string & library_name = "cg_constraintDynamics_eval")
923  : Base(
924  model,
925  model.nq + 2 * model.nv,
928  library_name)
930  , da_dq(MatrixXs::Zero(model.nv, model.nq))
931  , da_dv(MatrixXs::Zero(model.nv, model.nv))
932  , da_dtau(MatrixXs::Zero(model.nv, model.nv))
933  , ddq(model.nv)
934  {
935  lambda_c.resize(nc);
936  lambda_c.setZero();
937  dlambda_dq.resize(nc, model.nq);
938  dlambda_dq.setZero();
939  dlambda_dv.resize(nc, model.nv);
940  dlambda_dv.setZero();
941  dlambda_dtau.resize(nc, model.nv);
942  dlambda_dtau.setZero();
943 
945  ad_q = neutral(ad_model);
947  ad_v.setZero();
949  ad_tau.setZero();
950 
951  x = VectorXs::Zero(Base::getInputDimension());
952 
953  for (int k = 0; k < contact_models.size(); ++k)
954  {
955  ad_contact_models.push_back(contact_models[k].template cast<ADScalar>());
956  }
957 
958  for (int k = 0; k < ad_contact_models.size(); ++k)
959  {
961  }
963  }
964 
966  {
967  }
968 
969  void buildMap()
970  {
971  CppAD::Independent(ad_X);
972 
973  Eigen::DenseIndex it = 0;
974  ad_q = ad_X.segment(it, ad_model.nq);
975  it += ad_model.nq;
976  ad_v = ad_X.segment(it, ad_model.nv);
977  it += ad_model.nv;
978  ad_tau = ad_X.segment(it, ad_model.nv);
979  it += ad_model.nv;
980 
983  ad_Y.head(ad_model.nv) = ad_data.ddq;
984  ad_Y.segment(ad_model.nv, nc) = ad_data.lambda_c;
985 
986  ad_fun.Dependent(ad_X, ad_Y);
987  ad_fun.optimize("no_compare_op");
988  }
989 
990  template<typename ConfigVectorType, typename TangentVector1, typename TangentVector2>
992  const Eigen::MatrixBase<ConfigVectorType> & q,
993  const Eigen::MatrixBase<TangentVector1> & v,
994  const Eigen::MatrixBase<TangentVector2> & tau)
995  {
996  // fill x
997  Eigen::DenseIndex it_x = 0;
998  x.segment(it_x, ad_model.nq) = q;
999  it_x += ad_model.nq;
1000  x.segment(it_x, ad_model.nv) = v;
1001  it_x += ad_model.nv;
1002  x.segment(it_x, ad_model.nv) = tau;
1003  it_x += ad_model.nv;
1004 
1006 
1007  Eigen::DenseIndex it_y = 0;
1008  ddq = Base::y.segment(it_y, ad_model.nv);
1009  it_y += ad_model.nv;
1010  lambda_c = Base::y.segment(it_y, nc);
1011  }
1012 
1013  using Base::evalJacobian;
1014  template<typename ConfigVectorType, typename TangentVector1, typename TangentVector2>
1016  const Eigen::MatrixBase<ConfigVectorType> & q,
1017  const Eigen::MatrixBase<TangentVector1> & v,
1018  const Eigen::MatrixBase<TangentVector2> & a)
1019  {
1020  // fill x
1021  Eigen::DenseIndex it = 0;
1022  x.segment(it, ad_model.nq) = q;
1023  it += ad_model.nq;
1024  x.segment(it, ad_model.nv) = v;
1025  it += ad_model.nv;
1026  x.segment(it, ad_model.nv) = a;
1027  it += ad_model.nv;
1028 
1029  evalJacobian(x);
1030  it = 0;
1031  da_dq = Base::jac.middleCols(it, ad_model.nq).topRows(ad_model.nv);
1032  dlambda_dq = Base::jac.middleCols(it, ad_model.nq).bottomRows(nc);
1033  it += ad_model.nq;
1034  da_dv = Base::jac.middleCols(it, ad_model.nv).topRows(ad_model.nv);
1035  dlambda_dv = Base::jac.middleCols(it, ad_model.nv).bottomRows(nc);
1036  it += ad_model.nv;
1037  da_dtau = Base::jac.middleCols(it, ad_model.nv).topRows(ad_model.nv);
1038  dlambda_dtau = Base::jac.middleCols(it, ad_model.nv).bottomRows(nc);
1039  it += ad_model.nv;
1040  }
1044 
1045  protected:
1046  using Base::ad_data;
1047  using Base::ad_fun;
1048  using Base::ad_model;
1049  using Base::ad_X;
1050  using Base::ad_Y;
1051  using Base::y;
1052 
1055 
1056  Eigen::DenseIndex nc;
1058 
1061  };
1062 
1063  template<typename _Scalar>
1064  struct CodeGenIntegrate : public CodeGenBase<_Scalar>
1065  {
1067  typedef typename Base::Scalar Scalar;
1068 
1069  typedef typename Base::Model Model;
1072  typedef typename Base::MatrixXs MatrixXs;
1073  typedef typename Base::VectorXs VectorXs;
1074 
1076  const Model & model,
1077  const std::string & function_name = "integrate",
1078  const std::string & library_name = "cg_integrate_eval")
1080  {
1082  ad_q = neutral(ad_model);
1084  ad_v.setZero();
1085  x = VectorXs::Zero(Base::getInputDimension());
1086  res = VectorXs::Zero(Base::getOutputDimension());
1087  }
1088 
1089  void buildMap()
1090  {
1091  CppAD::Independent(ad_X);
1092 
1093  Eigen::DenseIndex it = 0;
1094  ad_q = ad_X.segment(it, ad_model.nq);
1095  it += ad_model.nq;
1096  ad_v = ad_X.segment(it, ad_model.nv);
1098 
1099  ad_fun.Dependent(ad_X, ad_Y);
1100  ad_fun.optimize("no_compare_op");
1101  }
1102 
1103  using Base::evalFunction;
1104  template<typename ConfigVectorType1, typename TangentVector, typename ConfigVectorType2>
1106  const Eigen::MatrixBase<ConfigVectorType1> & q,
1107  const Eigen::MatrixBase<TangentVector> & v,
1108  const Eigen::MatrixBase<ConfigVectorType2> & qout)
1109  {
1110  // fill x
1111  Eigen::DenseIndex it = 0;
1112  x.segment(it, ad_model.nq) = q;
1113  it += ad_model.nq;
1114  x.segment(it, ad_model.nv) = v;
1115 
1116  evalFunction(x);
1117  PINOCCHIO_EIGEN_CONST_CAST(ConfigVectorType2, qout) = Base::y;
1118  }
1119 
1120  protected:
1121  using Base::ad_fun;
1122  using Base::ad_model;
1123  using Base::ad_X;
1124  using Base::ad_Y;
1125  using Base::y;
1126 
1129 
1132  };
1133 
1134  template<typename _Scalar>
1135  struct CodeGenDifference : public CodeGenBase<_Scalar>
1136  {
1138  typedef typename Base::Scalar Scalar;
1139 
1140  typedef typename Base::Model Model;
1143  typedef typename Base::MatrixXs MatrixXs;
1144  typedef typename Base::VectorXs VectorXs;
1145 
1147  const Model & model,
1148  const std::string & function_name = "difference",
1149  const std::string & library_name = "cg_difference_eval")
1151  {
1153  ad_q0 = neutral(ad_model);
1155  ad_q1 = neutral(ad_model);
1156  x = VectorXs::Zero(Base::getInputDimension());
1157  res = VectorXs::Zero(Base::getOutputDimension());
1158  }
1159 
1160  void buildMap()
1161  {
1162  CppAD::Independent(ad_X);
1163 
1164  Eigen::DenseIndex it = 0;
1165  ad_q0 = ad_X.segment(it, ad_model.nq);
1166  it += ad_model.nq;
1167  ad_q1 = ad_X.segment(it, ad_model.nq);
1169 
1170  ad_fun.Dependent(ad_X, ad_Y);
1171  ad_fun.optimize("no_compare_op");
1172  }
1173 
1174  using Base::evalFunction;
1175  template<typename ConfigVectorType1, typename ConfigVectorType2, typename TangentVector>
1177  const Eigen::MatrixBase<ConfigVectorType1> & q0,
1178  const Eigen::MatrixBase<ConfigVectorType2> & q1,
1179  const Eigen::MatrixBase<TangentVector> & v)
1180  {
1181  // fill x
1182  Eigen::DenseIndex it = 0;
1183  x.segment(it, ad_model.nq) = q0;
1184  it += ad_model.nq;
1185  x.segment(it, ad_model.nq) = q1;
1186 
1187  evalFunction(x);
1188  PINOCCHIO_EIGEN_CONST_CAST(TangentVector, v) = Base::y;
1189  }
1190 
1191  protected:
1192  using Base::ad_fun;
1193  using Base::ad_model;
1194  using Base::ad_X;
1195  using Base::ad_Y;
1196  using Base::y;
1197 
1200 
1203  };
1204 
1205  template<typename _Scalar>
1206  struct CodeGenDDifference : public CodeGenBase<_Scalar>
1207  {
1209  typedef typename Base::Scalar Scalar;
1210 
1211  typedef typename Base::Model Model;
1214  typedef typename Base::ADVectorXs ADVectorXs;
1215  typedef typename Base::ADMatrixXs ADMatrixXs;
1216  typedef typename Base::MatrixXs MatrixXs;
1217  typedef typename Base::VectorXs VectorXs;
1218 
1220  const Model & model,
1221  const std::string & function_name = "dDifference",
1222  const std::string & library_name = "cg_dDifference_eval")
1224  {
1225  ad_q0 = neutral(ad_model);
1226  ad_q1 = neutral(ad_model);
1227  ad_J0 = ADMatrixXs::Zero(ad_model.nv, ad_model.nv);
1228  ad_J1 = ADMatrixXs::Zero(ad_model.nv, ad_model.nv);
1229  x = VectorXs::Zero(Base::getInputDimension());
1230  }
1231 
1232  void buildMap()
1233  {
1234  CppAD::Independent(ad_X);
1235 
1236  Eigen::DenseIndex it = 0;
1237  ad_q0 = ad_X.segment(it, ad_model.nq);
1238  it += ad_model.nq;
1239  ad_q1 = ad_X.segment(it, ad_model.nq);
1242 
1243  Eigen::Map<ADMatrixXs>(ad_Y.data(), 2 * ad_model.nv, ad_model.nv).topRows(ad_model.nv) =
1244  ad_J0;
1245  Eigen::Map<ADMatrixXs>(ad_Y.data(), 2 * ad_model.nv, ad_model.nv).bottomRows(ad_model.nv) =
1246  ad_J1;
1247  ad_fun.Dependent(ad_X, ad_Y);
1248  ad_fun.optimize("no_compare_op");
1249  }
1250 
1251  using Base::evalFunction;
1252  template<typename ConfigVectorType1, typename ConfigVectorType2, typename JacobianMatrix>
1254  const Eigen::MatrixBase<ConfigVectorType1> & q0,
1255  const Eigen::MatrixBase<ConfigVectorType2> & q1,
1256  const Eigen::MatrixBase<JacobianMatrix> & J,
1257  const ArgumentPosition arg)
1258  {
1259  // fill x
1260  Eigen::DenseIndex it = 0;
1261  x.segment(it, ad_model.nq) = q0;
1262  it += ad_model.nq;
1263  x.segment(it, ad_model.nq) = q1;
1264 
1265  evalFunction(x);
1266  switch (arg)
1267  {
1268  case pinocchio::ARG0:
1269  PINOCCHIO_EIGEN_CONST_CAST(JacobianMatrix, J) =
1270  Eigen::Map<MatrixXs>(Base::y.data(), 2 * ad_model.nv, ad_model.nv).topRows(ad_model.nv);
1271  break;
1272  case pinocchio::ARG1:
1273  PINOCCHIO_EIGEN_CONST_CAST(JacobianMatrix, J) =
1274  Eigen::Map<MatrixXs>(Base::y.data(), 2 * ad_model.nv, ad_model.nv)
1275  .bottomRows(ad_model.nv);
1276  break;
1277  default:
1278  assert(false && "Wrong argument");
1279  }
1280  }
1281 
1282  protected:
1283  using Base::ad_fun;
1284  using Base::ad_model;
1285  using Base::ad_X;
1286  using Base::ad_Y;
1287  using Base::y;
1288 
1294  };
1295 
1296 } // namespace pinocchio
1297 
1298 #endif // ifndef __pinocchio_codegen_code_generator_algo_hpp__
pinocchio::CodeGenABADerivatives::VectorXs
Base::VectorXs VectorXs
Definition: code-generator-algo.hpp:580
pinocchio::CodeGenMinv::MatrixXs
Base::MatrixXs MatrixXs
Definition: code-generator-algo.hpp:366
pinocchio::CodeGenDDifference::VectorXs
Base::VectorXs VectorXs
Definition: code-generator-algo.hpp:1217
cassie-simulation.qout
def qout
Definition: cassie-simulation.py:285
pinocchio::CodeGenConstraintDynamics::ADScalar
Base::ADScalar ADScalar
Definition: code-generator-algo.hpp:877
pinocchio::CodeGenConstraintDynamics::ADConstraintDataAllocator
Eigen::aligned_allocator< ADContactData > ADConstraintDataAllocator
Definition: code-generator-algo.hpp:898
pinocchio::DataTpl::M
MatrixXs M
The joint space inertia matrix (a square matrix of dim model.nv).
Definition: multibody/data.hpp:198
pinocchio::DataTpl::MatrixXs
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > MatrixXs
Definition: multibody/data.hpp:74
pinocchio::DataTpl::ddq_dv
RowMatrixXs ddq_dv
Partial derivative of the joint acceleration vector with respect to the joint velocity.
Definition: multibody/data.hpp:397
pinocchio::CodeGenRNEA::dtau_dq
MatrixXs dtau_dq
Definition: code-generator-algo.hpp:123
pinocchio::CodeGenConstraintDynamicsDerivatives::ContactModelVector
std::vector< ContactModel, ConstraintModelAllocator > ContactModelVector
Definition: code-generator-algo.hpp:705
pinocchio::CodeGenDDifference::ADTangentVectorType
Base::ADTangentVectorType ADTangentVectorType
Definition: code-generator-algo.hpp:1213
pinocchio::DataTpl::ddq
TangentVectorType ddq
The joint accelerations computed from ABA.
Definition: multibody/data.hpp:255
pinocchio::CodeGenCRBA::ad_q
ADConfigVectorType ad_q
Definition: code-generator-algo.hpp:354
pinocchio::CodeGenRNEA::buildMap
void buildMap()
build the mapping Y = f(X)
Definition: code-generator-algo.hpp:57
pinocchio::CodeGenConstraintDynamics::dlambda_dtau
MatrixXs dlambda_dtau
Definition: code-generator-algo.hpp:1043
pinocchio::CodeGenABA::evalFunction
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &tau)
Definition: code-generator-algo.hpp:198
pinocchio::CodeGenBase::y
VectorXs y
Definition: code-generator-base.hpp:201
pinocchio::CodeGenConstraintDynamics::ADContactModelVector
std::vector< ADContactModel, ADConstraintModelAllocator > ADContactModelVector
Definition: code-generator-algo.hpp:896
pinocchio::CodeGenRNEADerivatives::CodeGenRNEADerivatives
CodeGenRNEADerivatives(const Model &model, const std::string &function_name="partial_rnea", const std::string &library_name="cg_partial_rnea_eval")
Definition: code-generator-algo.hpp:467
pinocchio::CodeGenCRBA::VectorXs
Base::VectorXs VectorXs
Definition: code-generator-algo.hpp:271
pinocchio::CodeGenABA::da_dq
MatrixXs da_dq
Definition: code-generator-algo.hpp:243
pinocchio::computeRNEADerivatives
void computeRNEADerivatives(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 > &a, const Eigen::MatrixBase< MatrixType1 > &rnea_partial_dq, const Eigen::MatrixBase< MatrixType2 > &rnea_partial_dv, const Eigen::MatrixBase< MatrixType3 > &rnea_partial_da)
Computes the partial derivatives of the Recursive Newton Euler Algorithms with respect to the joint c...
pinocchio::CodeGenDifference
Definition: code-generator-algo.hpp:1135
pinocchio::CodeGenCRBA::M
MatrixXs M
Definition: code-generator-algo.hpp:341
pinocchio::CodeGenABA::~CodeGenABA
virtual ~CodeGenABA()
Definition: code-generator-algo.hpp:173
pinocchio::CodeGenABA::Model
Base::Model Model
Definition: code-generator-algo.hpp:147
pinocchio::CodeGenConstraintDynamics::CodeGenConstraintDynamics
CodeGenConstraintDynamics(const Model &model, const ContactModelVector &contact_models, const std::string &function_name="constraintDynamics", const std::string &library_name="cg_constraintDynamics_eval")
Definition: code-generator-algo.hpp:918
pinocchio::CodeGenABADerivatives::ad_q
ADConfigVectorType ad_q
Definition: code-generator-algo.hpp:684
pinocchio::CodeGenConstraintDynamics::Base
CodeGenBase< _Scalar > Base
Definition: code-generator-algo.hpp:875
pinocchio::CodeGenMinv
Definition: code-generator-algo.hpp:358
pinocchio::CodeGenRNEADerivatives::ad_a
ADTangentVectorType ad_a
Definition: code-generator-algo.hpp:566
pinocchio::CodeGenMinv::Model
Base::Model Model
Definition: code-generator-algo.hpp:363
pinocchio::CodeGenDifference::VectorXs
Base::VectorXs VectorXs
Definition: code-generator-algo.hpp:1144
pinocchio::DataTpl< ADScalar, Options >
pinocchio::CodeGenDifference::ad_q1
ADConfigVectorType ad_q1
Definition: code-generator-algo.hpp:1202
pinocchio::CodeGenDDifference::ad_J0
ADMatrixXs ad_J0
Definition: code-generator-algo.hpp:1292
pinocchio::CodeGenConstraintDynamicsDerivatives::MatrixXs
Base::MatrixXs MatrixXs
Definition: code-generator-algo.hpp:699
PINOCCHIO_CHECK_INPUT_ARGUMENT
#define PINOCCHIO_CHECK_INPUT_ARGUMENT(...)
Macro to check an assert-like condition and throw a std::invalid_argument exception (with a message) ...
Definition: include/pinocchio/macros.hpp:187
pinocchio::CodeGenConstraintDynamicsDerivatives::dlambda_dv
MatrixXs dlambda_dv
Definition: code-generator-algo.hpp:866
pinocchio::CodeGenConstraintDynamics::Model
Base::Model Model
Definition: code-generator-algo.hpp:879
pinocchio::CodeGenRNEADerivatives::PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE
typedef PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE(MatrixXs) RowMatrixXs
pinocchio::CodeGenConstraintDynamicsDerivatives::dlambda_dq
MatrixXs dlambda_dq
Definition: code-generator-algo.hpp:866
pinocchio::CodeGenConstraintDynamicsDerivatives::ADConfigVectorType
Base::ADConfigVectorType ADConfigVectorType
Definition: code-generator-algo.hpp:697
pinocchio::CodeGenConstraintDynamics::Scalar
Base::Scalar Scalar
Definition: code-generator-algo.hpp:876
pinocchio::CodeGenBase::VectorXs
Eigen::Matrix< Scalar, Eigen::Dynamic, 1, Options > VectorXs
Definition: code-generator-base.hpp:36
pinocchio::CodeGenConstraintDynamicsDerivatives::ADScalar
Base::ADScalar ADScalar
Definition: code-generator-algo.hpp:693
pinocchio::CodeGenDifference::evalFunction
void evalFunction(const Eigen::MatrixBase< ConfigVectorType1 > &q0, const Eigen::MatrixBase< ConfigVectorType2 > &q1, const Eigen::MatrixBase< TangentVector > &v)
Definition: code-generator-algo.hpp:1176
pinocchio::computeConstraintDynamicsDerivatives
void computeConstraintDynamicsDerivatives(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_data, const ProximalSettingsTpl< Scalar > &settings, const Eigen::MatrixBase< MatrixType1 > &ddq_partial_dq, const Eigen::MatrixBase< MatrixType2 > &ddq_partial_dv, const Eigen::MatrixBase< MatrixType3 > &ddq_partial_dtau, const Eigen::MatrixBase< MatrixType4 > &lambda_partial_dq, const Eigen::MatrixBase< MatrixType5 > &lambda_partial_dv, const Eigen::MatrixBase< MatrixType6 > &lambda_partial_dtau)
pinocchio::CodeGenConstraintDynamicsDerivatives::ConstraintDataAllocator
Eigen::aligned_allocator< ContactData > ConstraintDataAllocator
Definition: code-generator-algo.hpp:707
code-generator-base.hpp
pinocchio::DataTpl::dlambda_dv
MatrixXs dlambda_dv
Definition: multibody/data.hpp:416
pinocchio::CodeGenDDifference::ad_J1
ADMatrixXs ad_J1
Definition: code-generator-algo.hpp:1293
pinocchio::CodeGenConstraintDynamics::ad_q
ADConfigVectorType ad_q
Definition: code-generator-algo.hpp:1059
pinocchio::CodeGenCRBA::ADConfigVectorType
Base::ADConfigVectorType ADConfigVectorType
Definition: code-generator-algo.hpp:268
pinocchio::CodeGenDifference::Model
Base::Model Model
Definition: code-generator-algo.hpp:1140
pinocchio::CodeGenRNEA::VectorXs
Base::VectorXs VectorXs
Definition: code-generator-algo.hpp:31
pinocchio::CodeGenDDifference::Base
CodeGenBase< _Scalar > Base
Definition: code-generator-algo.hpp:1208
pinocchio::CodeGenRNEA::ADTangentVectorType
Base::ADTangentVectorType ADTangentVectorType
Definition: code-generator-algo.hpp:29
pinocchio::CodeGenBase::ad_X
ADVectorXs ad_X
Definition: code-generator-base.hpp:195
pinocchio::CodeGenMinv::~CodeGenMinv
virtual ~CodeGenMinv()
Definition: code-generator-algo.hpp:385
pinocchio::CodeGenConstraintDynamics::ContactModel
pinocchio::RigidConstraintModelTpl< Scalar, Base::Options > ContactModel
Definition: code-generator-algo.hpp:887
pinocchio::CodeGenMinv::Base
CodeGenBase< _Scalar > Base
Definition: code-generator-algo.hpp:360
pinocchio::CodeGenABA::VectorXs
Base::VectorXs VectorXs
Definition: code-generator-algo.hpp:151
pinocchio::nv
int nv(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointNvVisitor to get the dimension of the joint tangent space.
pinocchio::CodeGenRNEADerivatives::evalFunction
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &a)
Definition: code-generator-algo.hpp:527
pinocchio::CodeGenRNEA::evalFunction
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &a)
Definition: code-generator-algo.hpp:79
pinocchio::CodeGenConstraintDynamicsDerivatives::dddq_dv
MatrixXs dddq_dv
Definition: code-generator-algo.hpp:865
PINOCCHIO_EIGEN_CONST_CAST
#define PINOCCHIO_EIGEN_CONST_CAST(TYPE, OBJ)
Macro for an automatic const_cast.
Definition: eigen-macros.hpp:51
pinocchio::CodeGenABADerivatives::~CodeGenABADerivatives
virtual ~CodeGenABADerivatives()
Definition: code-generator-algo.hpp:612
inverse-kinematics.J
J
Definition: inverse-kinematics.py:31
pinocchio::Convention::WORLD
@ WORLD
pinocchio::nq
int nq(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointNqVisitor to get the dimension of the joint configuration space.
inverse-kinematics.i
int i
Definition: inverse-kinematics.py:20
pinocchio::CodeGenIntegrate::VectorXs
Base::VectorXs VectorXs
Definition: code-generator-algo.hpp:1073
pinocchio::CodeGenConstraintDynamicsDerivatives::ContactDataVector
std::vector< ContactData, ConstraintDataAllocator > ContactDataVector
Definition: code-generator-algo.hpp:708
pinocchio::CodeGenDifference::ad_q0
ADConfigVectorType ad_q0
Definition: code-generator-algo.hpp:1201
pinocchio::CodeGenDDifference::buildMap
void buildMap()
build the mapping Y = f(X)
Definition: code-generator-algo.hpp:1232
pinocchio::CodeGenConstraintDynamics::nc
Eigen::DenseIndex nc
Definition: code-generator-algo.hpp:1056
rnea-derivatives.hpp
pinocchio::CodeGenABA::Scalar
Base::Scalar Scalar
Definition: code-generator-algo.hpp:145
pinocchio::CodeGenABADerivatives::Scalar
Base::Scalar Scalar
Definition: code-generator-algo.hpp:573
pinocchio::CodeGenDDifference::Model
Base::Model Model
Definition: code-generator-algo.hpp:1211
pinocchio::CodeGenDDifference::ad_q0
ADConfigVectorType ad_q0
Definition: code-generator-algo.hpp:1290
pinocchio::CodeGenBase
Definition: code-generator-base.hpp:17
setup.data
data
Definition: cmake/cython/setup.in.py:48
pinocchio::CodeGenRNEADerivatives::dtau_dv
MatrixXs dtau_dv
Definition: code-generator-algo.hpp:563
pinocchio::CodeGenABA::ad_dq
ADTangentVectorType ad_dq
Definition: code-generator-algo.hpp:258
pinocchio::CodeGenBase::Scalar
_Scalar Scalar
Definition: code-generator-base.hpp:19
pinocchio::CodeGenABADerivatives::PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE
typedef PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE(MatrixXs) RowMatrixXs
pinocchio::DataTpl::lambda_c
VectorXs lambda_c
Lagrange Multipliers corresponding to the contact forces in pinocchio::forwardDynamics.
Definition: multibody/data.hpp:470
pinocchio::CodeGenIntegrate::buildMap
void buildMap()
build the mapping Y = f(X)
Definition: code-generator-algo.hpp:1089
pinocchio::CodeGenConstraintDynamics::dlambda_dq
MatrixXs dlambda_dq
Definition: code-generator-algo.hpp:1043
pinocchio::CodeGenRNEADerivatives::ADData
Base::ADData ADData
Definition: code-generator-algo.hpp:463
pinocchio::CodeGenConstraintDynamics::MatrixXs
Base::MatrixXs MatrixXs
Definition: code-generator-algo.hpp:883
pinocchio::CodeGenRNEADerivatives::ADConfigVectorType
Base::ADConfigVectorType ADConfigVectorType
Definition: code-generator-algo.hpp:457
pinocchio::CodeGenRNEADerivatives::ad_dtau_dv
ADMatrixXs ad_dtau_dv
Definition: code-generator-algo.hpp:562
pinocchio::ArgumentPosition
ArgumentPosition
Argument position. Used as template parameter to refer to an argument.
Definition: fwd.hpp:121
pinocchio::CodeGenIntegrate::ad_v
ADTangentVectorType ad_v
Definition: code-generator-algo.hpp:1131
pinocchio::crba
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & crba(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Convention convention=Convention::LOCAL)
Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid B...
pinocchio::CodeGenABADerivatives::Model
Base::Model Model
Definition: code-generator-algo.hpp:575
pinocchio::CodeGenMinv::x
VectorXs x
Definition: code-generator-algo.hpp:444
pinocchio::CodeGenIntegrate::Scalar
Base::Scalar Scalar
Definition: code-generator-algo.hpp:1067
pinocchio::CodeGenRNEA::Scalar
Base::Scalar Scalar
Definition: code-generator-algo.hpp:25
pinocchio::CodeGenRNEADerivatives::Model
Base::Model Model
Definition: code-generator-algo.hpp:456
pinocchio::aba
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...
pinocchio::CodeGenBase::ADVectorXs
Eigen::Matrix< ADScalar, Eigen::Dynamic, 1, Options > ADVectorXs
Definition: code-generator-base.hpp:39
pinocchio::CodeGenDDifference
Definition: code-generator-algo.hpp:1206
pinocchio::CodeGenABADerivatives::buildMap
void buildMap()
build the mapping Y = f(X)
Definition: code-generator-algo.hpp:616
pinocchio::CodeGenIntegrate::Model
Base::Model Model
Definition: code-generator-algo.hpp:1069
pinocchio::CodeGenBase::ad_data
ADData ad_data
Definition: code-generator-base.hpp:182
pinocchio::CodeGenRNEA::dtau_da
MatrixXs dtau_da
Definition: code-generator-algo.hpp:123
pinocchio::CodeGenRNEADerivatives::ad_dtau_dq
ADMatrixXs ad_dtau_dq
Definition: code-generator-algo.hpp:562
pinocchio::CodeGenConstraintDynamics::ad_tau
ADTangentVectorType ad_tau
Definition: code-generator-algo.hpp:1060
pinocchio::difference
void difference(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &q0, const Eigen::MatrixBase< ConfigVectorIn2 > &q1, const Eigen::MatrixBase< ReturnType > &dvout)
Compute the tangent vector that must be integrated during one unit time to go from q0 to q1.
Definition: joint-configuration.hpp:199
pinocchio::CodeGenRNEA::x
VectorXs x
Definition: code-generator-algo.hpp:134
pinocchio::CodeGenABA::ad_q_plus
ADConfigVectorType ad_q_plus
Definition: code-generator-algo.hpp:257
pinocchio::CodeGenConstraintDynamicsDerivatives::ad_q
ADConfigVectorType ad_q
Definition: code-generator-algo.hpp:868
pinocchio::CodeGenABADerivatives::x
VectorXs x
Definition: code-generator-algo.hpp:680
constrained-dynamics-derivatives.hpp
pinocchio::CodeGenConstraintDynamics::evalFunction
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &tau)
Definition: code-generator-algo.hpp:991
pinocchio::CodeGenConstraintDynamics::da_dq
MatrixXs da_dq
Definition: code-generator-algo.hpp:1042
pinocchio::CodeGenRNEADerivatives::dtau_dq
MatrixXs dtau_dq
Definition: code-generator-algo.hpp:563
pinocchio::CodeGenABA::res
VectorXs res
Definition: code-generator-algo.hpp:255
pinocchio::CodeGenDDifference::evalFunction
void evalFunction(const Eigen::MatrixBase< ConfigVectorType1 > &q0, const Eigen::MatrixBase< ConfigVectorType2 > &q1, const Eigen::MatrixBase< JacobianMatrix > &J, const ArgumentPosition arg)
Definition: code-generator-algo.hpp:1253
pinocchio::CodeGenConstraintDynamics::ADContactDataVector
std::vector< ADContactData, ADConstraintDataAllocator > ADContactDataVector
Definition: code-generator-algo.hpp:899
pinocchio::CodeGenConstraintDynamics::~CodeGenConstraintDynamics
virtual ~CodeGenConstraintDynamics()
Definition: code-generator-algo.hpp:965
pinocchio::CodeGenConstraintDynamicsDerivatives::ConstraintModelAllocator
Eigen::aligned_allocator< ContactModel > ConstraintModelAllocator
Definition: code-generator-algo.hpp:704
pinocchio::CodeGenConstraintDynamics::ad_contact_models
ADContactModelVector ad_contact_models
Definition: code-generator-algo.hpp:1053
pinocchio::ARG0
@ ARG0
Definition: fwd.hpp:123
pinocchio::CodeGenDifference::buildMap
void buildMap()
build the mapping Y = f(X)
Definition: code-generator-algo.hpp:1160
pinocchio::CodeGenABADerivatives::ad_tau
ADTangentVectorType ad_tau
Definition: code-generator-algo.hpp:685
pinocchio::CodeGenConstraintDynamicsDerivatives::Base
CodeGenBase< _Scalar > Base
Definition: code-generator-algo.hpp:691
pinocchio::CodeGenIntegrate::CodeGenIntegrate
CodeGenIntegrate(const Model &model, const std::string &function_name="integrate", const std::string &library_name="cg_integrate_eval")
Definition: code-generator-algo.hpp:1075
rnea.hpp
aba-derivatives.hpp
pinocchio::CodeGenMinv::CodeGenMinv
CodeGenMinv(const Model &model, const std::string &function_name="minv", const std::string &library_name="cg_minv_eval")
Definition: code-generator-algo.hpp:369
pinocchio::computeMinverse
const DataTpl< Scalar, Options, JointCollectionTpl >::RowMatrixXs & computeMinverse(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Computes the inverse of the joint space inertia matrix using Articulated Body formulation.
pinocchio::CodeGenMinv::evalFunction
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q)
Definition: code-generator-algo.hpp:414
aba.hpp
pinocchio::CodeGenRNEADerivatives::dtau_da
MatrixXs dtau_da
Definition: code-generator-algo.hpp:563
pinocchio::CodeGenRNEA::~CodeGenRNEA
virtual ~CodeGenRNEA()
Definition: code-generator-algo.hpp:53
pinocchio::CodeGenRNEADerivatives::buildMap
void buildMap()
build the mapping Y = f(X)
Definition: code-generator-algo.hpp:497
pinocchio::CodeGenABA::ad_tau
ADTangentVectorType ad_tau
Definition: code-generator-algo.hpp:258
pinocchio::CodeGenConstraintDynamicsDerivatives::constraintDim
Eigen::DenseIndex constraintDim(const ContactModelVector &contact_models) const
Definition: code-generator-algo.hpp:721
pinocchio::DataTpl::ddq_dtau
RowMatrixXs ddq_dtau
Partial derivative of the joint acceleration vector with respect to the joint torques.
Definition: multibody/data.hpp:401
pinocchio::CodeGenBase::ad_fun
ADFun ad_fun
Definition: code-generator-base.hpp:196
pinocchio::CodeGenMinv::Scalar
Base::Scalar Scalar
Definition: code-generator-algo.hpp:361
forward-dynamics-derivatives.tau
tau
Definition: forward-dynamics-derivatives.py:23
pinocchio::CodeGenRNEA::MatrixXs
Base::MatrixXs MatrixXs
Definition: code-generator-algo.hpp:30
pinocchio::CodeGenMinv::ADConfigVectorType
Base::ADConfigVectorType ADConfigVectorType
Definition: code-generator-algo.hpp:364
pinocchio::CodeGenRNEADerivatives::Base
CodeGenBase< _Scalar > Base
Definition: code-generator-algo.hpp:453
pinocchio::CodeGenABADerivatives::CodeGenABADerivatives
CodeGenABADerivatives(const Model &model, const std::string &function_name="partial_aba", const std::string &library_name="cg_partial_aba_eval")
Definition: code-generator-algo.hpp:586
joint-configuration.hpp
pinocchio::CodeGenABADerivatives::ad_dddq_dtau
ADMatrixXs ad_dddq_dtau
Definition: code-generator-algo.hpp:681
pinocchio::CodeGenConstraintDynamics::evalJacobian
void evalJacobian(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &a)
Definition: code-generator-algo.hpp:1015
pinocchio::CodeGenConstraintDynamics::ConstraintModelAllocator
Eigen::aligned_allocator< ContactModel > ConstraintModelAllocator
Definition: code-generator-algo.hpp:888
pinocchio::CodeGenMinv::res
VectorXs res
Definition: code-generator-algo.hpp:445
pinocchio::CodeGenConstraintDynamicsDerivatives::ADContactDataVector
std::vector< ADContactData, ADConstraintDataAllocator > ADContactDataVector
Definition: code-generator-algo.hpp:715
pinocchio::CodeGenConstraintDynamics
Definition: code-generator-algo.hpp:873
pinocchio::CodeGenABA::x
VectorXs x
Definition: code-generator-algo.hpp:254
pinocchio::CodeGenRNEADerivatives::VectorXs
Base::VectorXs VectorXs
Definition: code-generator-algo.hpp:461
pinocchio::CodeGenConstraintDynamics::ADTangentVectorType
Base::ADTangentVectorType ADTangentVectorType
Definition: code-generator-algo.hpp:882
pinocchio::CodeGenDDifference::Scalar
Base::Scalar Scalar
Definition: code-generator-algo.hpp:1209
pinocchio::integrate
void integrate(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const Eigen::MatrixBase< ReturnType > &qout)
Integrate a configuration vector for the specified model for a tangent vector during one unit time.
Definition: joint-configuration.hpp:72
pinocchio::RigidConstraintModelTpl
Definition: algorithm/constraints/fwd.hpp:14
pinocchio::CodeGenABADerivatives::ADData
Base::ADData ADData
Definition: code-generator-algo.hpp:582
pinocchio::CodeGenDDifference::ADVectorXs
Base::ADVectorXs ADVectorXs
Definition: code-generator-algo.hpp:1214
pinocchio::CodeGenIntegrate::x
VectorXs x
Definition: code-generator-algo.hpp:1127
pinocchio::CodeGenRNEA::dtau_dv
MatrixXs dtau_dv
Definition: code-generator-algo.hpp:123
pinocchio::CodeGenRNEADerivatives::MatrixXs
Base::MatrixXs MatrixXs
Definition: code-generator-algo.hpp:459
pinocchio::CodeGenDDifference::x
VectorXs x
Definition: code-generator-algo.hpp:1289
pinocchio::CodeGenBase::ADScalar
CppAD::AD< CGScalar > ADScalar
Definition: code-generator-base.hpp:21
pinocchio::CodeGenABADerivatives
Definition: code-generator-algo.hpp:570
pinocchio::DataTpl::tau
TangentVectorType tau
Vector of joint torques (dim model.nv).
Definition: multibody/data.hpp:172
pinocchio::CodeGenABA::da_dtau
MatrixXs da_dtau
Definition: code-generator-algo.hpp:243
pinocchio::DataTpl::Minv
RowMatrixXs Minv
The inverse of the joint space inertia matrix (a square matrix of dim model.nv).
Definition: multibody/data.hpp:201
pinocchio::CodeGenDDifference::MatrixXs
Base::MatrixXs MatrixXs
Definition: code-generator-algo.hpp:1216
pinocchio::DataTpl::dlambda_dq
MatrixXs dlambda_dq
Partial derivatives of the constraints forces with respect to the joint configuration,...
Definition: multibody/data.hpp:415
pinocchio::RigidConstraintDataTpl
Definition: algorithm/constraints/fwd.hpp:16
pinocchio::initConstraintDynamics
void initConstraintDynamics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &contact_models)
Init the forward dynamics data according to the contact information contained in contact_models.
pinocchio::CodeGenConstraintDynamicsDerivatives::ad_v
ADTangentVectorType ad_v
Definition: code-generator-algo.hpp:869
pinocchio::CodeGenRNEA::ad_dq
ADTangentVectorType ad_dq
Definition: code-generator-algo.hpp:138
pinocchio::CodeGenRNEA::Base
CodeGenBase< _Scalar > Base
Definition: code-generator-algo.hpp:24
pinocchio::CodeGenConstraintDynamicsDerivatives::ad_contact_datas
ADContactDataVector ad_contact_datas
Definition: code-generator-algo.hpp:862
pinocchio::CodeGenRNEADerivatives::Scalar
Base::Scalar Scalar
Definition: code-generator-algo.hpp:454
pinocchio::CodeGenABA
Definition: code-generator-algo.hpp:142
pinocchio::CodeGenRNEADerivatives::~CodeGenRNEADerivatives
virtual ~CodeGenRNEADerivatives()
Definition: code-generator-algo.hpp:493
pinocchio::ARG1
@ ARG1
Definition: fwd.hpp:124
pinocchio::CodeGenRNEA::ADConfigVectorType
Base::ADConfigVectorType ADConfigVectorType
Definition: code-generator-algo.hpp:28
pinocchio::q0
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorIn1 > & q0
Definition: joint-configuration.hpp:1173
pinocchio::CodeGenDifference::ADConfigVectorType
Base::ADConfigVectorType ADConfigVectorType
Definition: code-generator-algo.hpp:1141
pinocchio::CodeGenMinv::Minv
MatrixXs Minv
Definition: code-generator-algo.hpp:434
pinocchio::CodeGenMinv::ad_q
ADConfigVectorType ad_q
Definition: code-generator-algo.hpp:447
pinocchio::CodeGenABADerivatives::ad_dddq_dv
ADMatrixXs ad_dddq_dv
Definition: code-generator-algo.hpp:681
pinocchio::CodeGenABA::MatrixXs
Base::MatrixXs MatrixXs
Definition: code-generator-algo.hpp:150
pinocchio::CodeGenConstraintDynamicsDerivatives::PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE
typedef PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE(MatrixXs) RowMatrixXs
pinocchio::CodeGenConstraintDynamicsDerivatives::Scalar
Base::Scalar Scalar
Definition: code-generator-algo.hpp:692
pinocchio::CodeGenCRBA::CodeGenCRBA
CodeGenCRBA(const Model &model, const std::string &function_name="crba", const std::string &library_name="cg_crba_eval")
Definition: code-generator-algo.hpp:273
pinocchio::CodeGenConstraintDynamics::ddq
VectorXs ddq
Definition: code-generator-algo.hpp:1041
pinocchio::CodeGenIntegrate::Base
CodeGenBase< _Scalar > Base
Definition: code-generator-algo.hpp:1066
pinocchio::CodeGenRNEADerivatives::ADTangentVectorType
Base::ADTangentVectorType ADTangentVectorType
Definition: code-generator-algo.hpp:458
pinocchio::CodeGenBase::function_name
const std::string function_name
Name of the function.
Definition: code-generator-base.hpp:185
pinocchio::CodeGenABADerivatives::MatrixXs
Base::MatrixXs MatrixXs
Definition: code-generator-algo.hpp:578
pinocchio::CodeGenABADerivatives::evalFunction
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &tau)
Definition: code-generator-algo.hpp:646
pinocchio::CodeGenCRBA::MatrixXs
Base::MatrixXs MatrixXs
Definition: code-generator-algo.hpp:270
pinocchio::CodeGenCRBA
Definition: code-generator-algo.hpp:262
pinocchio::CodeGenABA::ADTangentVectorType
Base::ADTangentVectorType ADTangentVectorType
Definition: code-generator-algo.hpp:149
pinocchio::CodeGenBase::ADConfigVectorType
ADModel::ConfigVectorType ADConfigVectorType
Definition: code-generator-base.hpp:45
pinocchio::CodeGenRNEA::res
VectorXs res
Definition: code-generator-algo.hpp:135
pinocchio::CodeGenConstraintDynamicsDerivatives::Model
Base::Model Model
Definition: code-generator-algo.hpp:695
pinocchio::CodeGenDDifference::ADConfigVectorType
Base::ADConfigVectorType ADConfigVectorType
Definition: code-generator-algo.hpp:1212
pinocchio::CodeGenConstraintDynamics::da_dv
MatrixXs da_dv
Definition: code-generator-algo.hpp:1042
pinocchio::CodeGenRNEA::ad_q
ADConfigVectorType ad_q
Definition: code-generator-algo.hpp:137
pinocchio::CodeGenBase::RowMatrixXs
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options|Eigen::RowMajor > RowMatrixXs
Definition: code-generator-base.hpp:38
pinocchio::CodeGenConstraintDynamicsDerivatives::buildMap
void buildMap()
build the mapping Y = f(X)
Definition: code-generator-algo.hpp:784
pinocchio::CodeGenDDifference::CodeGenDDifference
CodeGenDDifference(const Model &model, const std::string &function_name="dDifference", const std::string &library_name="cg_dDifference_eval")
Definition: code-generator-algo.hpp:1219
pinocchio::CodeGenABA::evalJacobian
void evalJacobian(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &tau)
Definition: code-generator-algo.hpp:218
pinocchio::q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
Definition: joint-configuration.hpp:1117
pinocchio::CodeGenRNEA::ad_a
ADTangentVectorType ad_a
Definition: code-generator-algo.hpp:138
pinocchio::CodeGenIntegrate::MatrixXs
Base::MatrixXs MatrixXs
Definition: code-generator-algo.hpp:1072
a
Vec3f a
pinocchio::CodeGenABA::ad_v
ADTangentVectorType ad_v
Definition: code-generator-algo.hpp:258
pinocchio::CodeGenIntegrate::ADConfigVectorType
Base::ADConfigVectorType ADConfigVectorType
Definition: code-generator-algo.hpp:1070
pinocchio::CodeGenDDifference::ad_q1
ADConfigVectorType ad_q1
Definition: code-generator-algo.hpp:1291
pinocchio::CodeGenMinv::ADTangentVectorType
Base::ADTangentVectorType ADTangentVectorType
Definition: code-generator-algo.hpp:365
pinocchio::CodeGenRNEADerivatives::ad_v
ADTangentVectorType ad_v
Definition: code-generator-algo.hpp:566
pinocchio::v
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
Definition: joint-configuration.hpp:1118
pinocchio::CodeGenBase::build_jacobian
bool build_jacobian
Options to build or not the Jacobian of he function.
Definition: code-generator-base.hpp:193
pinocchio::CodeGenConstraintDynamics::lambda_c
VectorXs lambda_c
Definition: code-generator-algo.hpp:1041
pinocchio::CodeGenABA::buildMap
void buildMap()
build the mapping Y = f(X)
Definition: code-generator-algo.hpp:177
pinocchio::CodeGenConstraintDynamics::x
VectorXs x
Definition: code-generator-algo.hpp:1057
pinocchio::computeABADerivatives
void computeABADerivatives(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 Eigen::MatrixBase< MatrixType1 > &aba_partial_dq, const Eigen::MatrixBase< MatrixType2 > &aba_partial_dv, const Eigen::MatrixBase< MatrixType3 > &aba_partial_dtau)
The derivatives of the Articulated-Body algorithm.
pinocchio::CodeGenConstraintDynamicsDerivatives::dddq_dq
MatrixXs dddq_dq
Definition: code-generator-algo.hpp:865
pinocchio::CodeGenRNEA::evalJacobian
void evalJacobian(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &a)
Definition: code-generator-algo.hpp:99
pinocchio::CodeGenConstraintDynamicsDerivatives::x
VectorXs x
Definition: code-generator-algo.hpp:864
pinocchio::CodeGenDifference::x
VectorXs x
Definition: code-generator-algo.hpp:1198
pinocchio::CodeGenBase::evalJacobian
void evalJacobian(const Eigen::MatrixBase< Vector > &x)
Definition: code-generator-base.hpp:159
pinocchio::CodeGenConstraintDynamicsDerivatives::dddq_dtau
MatrixXs dddq_dtau
Definition: code-generator-algo.hpp:865
pinocchio::CodeGenABADerivatives::ad_dddq_dq
ADMatrixXs ad_dddq_dq
Definition: code-generator-algo.hpp:681
pinocchio::CodeGenConstraintDynamicsDerivatives::ADMatrixXs
ADData::MatrixXs ADMatrixXs
Definition: code-generator-algo.hpp:718
pinocchio::CodeGenBase::ad_model
ADModel ad_model
Definition: code-generator-base.hpp:181
pinocchio::CodeGenABADerivatives::dddq_dv
MatrixXs dddq_dv
Definition: code-generator-algo.hpp:682
pinocchio::CodeGenDDifference::ADMatrixXs
Base::ADMatrixXs ADMatrixXs
Definition: code-generator-algo.hpp:1215
pinocchio::DataTpl::ddq_dq
RowMatrixXs ddq_dq
Partial derivative of the joint acceleration vector with respect to the joint configuration.
Definition: multibody/data.hpp:393
pinocchio::CodeGenABADerivatives::ad_v
ADTangentVectorType ad_v
Definition: code-generator-algo.hpp:685
pinocchio::CodeGenMinv::buildMap
void buildMap()
build the mapping Y = f(X)
Definition: code-generator-algo.hpp:389
pinocchio::rnea
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & rnea(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 > &a)
The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques accordi...
pinocchio::CodeGenDifference::res
VectorXs res
Definition: code-generator-algo.hpp:1199
pinocchio::CodeGenConstraintDynamics::ADConfigVectorType
Base::ADConfigVectorType ADConfigVectorType
Definition: code-generator-algo.hpp:881
pinocchio::CodeGenDifference::Base
CodeGenBase< _Scalar > Base
Definition: code-generator-algo.hpp:1137
pinocchio::CodeGenConstraintDynamics::ContactDataVector
std::vector< ContactData, ConstraintDataAllocator > ContactDataVector
Definition: code-generator-algo.hpp:892
pinocchio::CodeGenCRBA::Model
Base::Model Model
Definition: code-generator-algo.hpp:267
pinocchio::CodeGenConstraintDynamicsDerivatives::ContactData
pinocchio::RigidConstraintDataTpl< Scalar, Base::Options > ContactData
Definition: code-generator-algo.hpp:706
pinocchio::CodeGenIntegrate::ADTangentVectorType
Base::ADTangentVectorType ADTangentVectorType
Definition: code-generator-algo.hpp:1071
pinocchio::CodeGenABADerivatives::ADConfigVectorType
Base::ADConfigVectorType ADConfigVectorType
Definition: code-generator-algo.hpp:576
pinocchio::CodeGenCRBA::Base
CodeGenBase< _Scalar > Base
Definition: code-generator-algo.hpp:264
pinocchio::CodeGenBase::library_name
const std::string library_name
Name of the library.
Definition: code-generator-base.hpp:187
pinocchio::CodeGenDifference::ADTangentVectorType
Base::ADTangentVectorType ADTangentVectorType
Definition: code-generator-algo.hpp:1142
pinocchio::CodeGenConstraintDynamicsDerivatives::ad_tau
ADTangentVectorType ad_tau
Definition: code-generator-algo.hpp:869
pinocchio::CodeGenABADerivatives::dddq_dq
MatrixXs dddq_dq
Definition: code-generator-algo.hpp:682
pinocchio::CodeGenBase::ADMatrixXs
Eigen::Matrix< ADScalar, Eigen::Dynamic, Eigen::Dynamic, Options > ADMatrixXs
Definition: code-generator-base.hpp:40
pinocchio::ModelTpl::nv
int nv
Dimension of the velocity vector space.
Definition: multibody/model.hpp:102
pinocchio::CodeGenBase::ADTangentVectorType
ADModel::TangentVectorType ADTangentVectorType
Definition: code-generator-base.hpp:46
pinocchio::CodeGenBase::ad_Y
ADVectorXs ad_Y
Definition: code-generator-base.hpp:195
pinocchio::CodeGenCRBA::x
VectorXs x
Definition: code-generator-algo.hpp:351
pinocchio::CodeGenConstraintDynamicsDerivatives::ADContactData
pinocchio::RigidConstraintDataTpl< ADScalar, Base::Options > ADContactData
Definition: code-generator-algo.hpp:713
pinocchio::CodeGenConstraintDynamics::ContactModelVector
std::vector< ContactModel, ConstraintModelAllocator > ContactModelVector
Definition: code-generator-algo.hpp:889
pinocchio::CodeGenRNEADerivatives::ADMatrixXs
ADData::MatrixXs ADMatrixXs
Definition: code-generator-algo.hpp:464
pinocchio::CodeGenConstraintDynamicsDerivatives::~CodeGenConstraintDynamicsDerivatives
virtual ~CodeGenConstraintDynamicsDerivatives()
Definition: code-generator-algo.hpp:780
pinocchio::CodeGenConstraintDynamics::dlambda_dv
MatrixXs dlambda_dv
Definition: code-generator-algo.hpp:1043
pinocchio::CodeGenBase::getOutputDimension
Eigen::DenseIndex getOutputDimension() const
Dimension of the output vector.
Definition: code-generator-base.hpp:175
pinocchio::CodeGenABA::CodeGenABA
CodeGenABA(const Model &model, const std::string &function_name="aba", const std::string &library_name="cg_aba_eval")
Definition: code-generator-algo.hpp:153
pinocchio::CodeGenConstraintDynamics::ad_v
ADTangentVectorType ad_v
Definition: code-generator-algo.hpp:1060
pinocchio::q1
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorIn1 > const Eigen::MatrixBase< ConfigVectorIn2 > & q1
Definition: joint-configuration.hpp:1174
pinocchio::CodeGenABADerivatives::ADMatrixXs
ADData::MatrixXs ADMatrixXs
Definition: code-generator-algo.hpp:583
pinocchio::CodeGenABA::ADConfigVectorType
Base::ADConfigVectorType ADConfigVectorType
Definition: code-generator-algo.hpp:148
pinocchio::CodeGenConstraintDynamicsDerivatives::ADTangentVectorType
Base::ADTangentVectorType ADTangentVectorType
Definition: code-generator-algo.hpp:698
pinocchio::CodeGenBase::getInputDimension
Eigen::DenseIndex getInputDimension() const
Dimension of the input vector.
Definition: code-generator-base.hpp:170
pinocchio::CodeGenConstraintDynamics::ADConstraintModelAllocator
Eigen::aligned_allocator< ADContactModel > ADConstraintModelAllocator
Definition: code-generator-algo.hpp:895
pinocchio::DataTpl::dlambda_dtau
MatrixXs dlambda_dtau
Definition: multibody/data.hpp:417
pinocchio::CodeGenConstraintDynamicsDerivatives::ad_contact_models
ADContactModelVector ad_contact_models
Definition: code-generator-algo.hpp:861
pinocchio::CodeGenRNEADerivatives::ad_q
ADConfigVectorType ad_q
Definition: code-generator-algo.hpp:565
pinocchio::CodeGenConstraintDynamicsDerivatives::CodeGenConstraintDynamicsDerivatives
CodeGenConstraintDynamicsDerivatives(const Model &model, const ContactModelVector &contact_models, const std::string &function_name="partial_constraintDynamics", const std::string &library_name="cg_partial_constraintDynamics_eval")
Definition: code-generator-algo.hpp:734
pinocchio::CodeGenRNEA::CodeGenRNEA
CodeGenRNEA(const Model &model, const std::string &function_name="rnea", const std::string &library_name="cg_rnea_eval")
Definition: code-generator-algo.hpp:33
pinocchio::dDifference
void dDifference(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVector1 > &q0, const Eigen::MatrixBase< ConfigVector2 > &q1, const Eigen::MatrixBase< JacobianMatrix > &J, const ArgumentPosition arg)
Computes the Jacobian of a small variation of the configuration vector into the tangent space at iden...
Definition: joint-configuration.hpp:763
contact-cholesky.contact_models
list contact_models
Definition: contact-cholesky.py:25
pinocchio::CodeGenABA::ad_q
ADConfigVectorType ad_q
Definition: code-generator-algo.hpp:257
pinocchio::CodeGenABA::Base
CodeGenBase< _Scalar > Base
Definition: code-generator-algo.hpp:144
pinocchio::CodeGenMinv::VectorXs
Base::VectorXs VectorXs
Definition: code-generator-algo.hpp:367
pinocchio::CodeGenCRBA::buildMap
void buildMap()
build the mapping Y = f(X)
Definition: code-generator-algo.hpp:293
pinocchio::neutral
void neutral(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ReturnType > &qout)
Return the neutral configuration element related to the model configuration space.
Definition: joint-configuration.hpp:375
pinocchio::CodeGenBase::evalFunction
void evalFunction(const Eigen::MatrixBase< Vector > &x)
Definition: code-generator-base.hpp:151
pinocchio::CodeGenABADerivatives::ADTangentVectorType
Base::ADTangentVectorType ADTangentVectorType
Definition: code-generator-algo.hpp:577
pinocchio::CodeGenIntegrate::evalFunction
void evalFunction(const Eigen::MatrixBase< ConfigVectorType1 > &q, const Eigen::MatrixBase< TangentVector > &v, const Eigen::MatrixBase< ConfigVectorType2 > &qout)
Definition: code-generator-algo.hpp:1105
pinocchio::CodeGenConstraintDynamics::ADData
Base::ADData ADData
Definition: code-generator-algo.hpp:901
pinocchio::CodeGenABA::da_dv
MatrixXs da_dv
Definition: code-generator-algo.hpp:243
pinocchio::CodeGenConstraintDynamicsDerivatives::dlambda_dtau
MatrixXs dlambda_dtau
Definition: code-generator-algo.hpp:866
pinocchio::CodeGenCRBA::evalFunction
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q)
Definition: code-generator-algo.hpp:319
pinocchio::CodeGenConstraintDynamicsDerivatives::ADContactModel
pinocchio::RigidConstraintModelTpl< ADScalar, Base::Options > ADContactModel
Definition: code-generator-algo.hpp:710
pinocchio::CodeGenConstraintDynamics::da_dtau
MatrixXs da_dtau
Definition: code-generator-algo.hpp:1042
pinocchio::CodeGenConstraintDynamics::constraintDim
Eigen::DenseIndex constraintDim(const ContactModelVector &contact_models) const
Definition: code-generator-algo.hpp:905
pinocchio::CodeGenConstraintDynamicsDerivatives::evalFunction
void evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &tau)
Definition: code-generator-algo.hpp:820
pinocchio::CodeGenDifference::MatrixXs
Base::MatrixXs MatrixXs
Definition: code-generator-algo.hpp:1143
pinocchio::CodeGenConstraintDynamicsDerivatives::ADContactModelVector
std::vector< ADContactModel, ADConstraintModelAllocator > ADContactModelVector
Definition: code-generator-algo.hpp:712
pinocchio::CodeGenRNEA::ad_q_plus
ADConfigVectorType ad_q_plus
Definition: code-generator-algo.hpp:137
pinocchio::CodeGenCRBA::ADTangentVectorType
Base::ADTangentVectorType ADTangentVectorType
Definition: code-generator-algo.hpp:269
pinocchio::CodeGenBase::jac
RowMatrixXs jac
Definition: code-generator-base.hpp:202
pinocchio::CodeGenConstraintDynamics::ContactData
pinocchio::RigidConstraintDataTpl< Scalar, Base::Options > ContactData
Definition: code-generator-algo.hpp:890
pinocchio::CodeGenConstraintDynamics::ConstraintDataAllocator
Eigen::aligned_allocator< ContactData > ConstraintDataAllocator
Definition: code-generator-algo.hpp:891
pinocchio::ModelTpl
Definition: context/generic.hpp:20
pinocchio::CodeGenConstraintDynamics::VectorXs
Base::VectorXs VectorXs
Definition: code-generator-algo.hpp:885
pinocchio::CodeGenCRBA::res
VectorXs res
Definition: code-generator-algo.hpp:352
constrained-dynamics.hpp
pinocchio::CodeGenConstraintDynamicsDerivatives::ADConstraintDataAllocator
Eigen::aligned_allocator< ADContactData > ADConstraintDataAllocator
Definition: code-generator-algo.hpp:714
pinocchio::CodeGenConstraintDynamicsDerivatives::ContactModel
pinocchio::RigidConstraintModelTpl< Scalar, Base::Options > ContactModel
Definition: code-generator-algo.hpp:703
crba.hpp
pinocchio::CodeGenConstraintDynamics::ADContactModel
pinocchio::RigidConstraintModelTpl< ADScalar, Base::Options > ADContactModel
Definition: code-generator-algo.hpp:894
pinocchio::CodeGenRNEADerivatives
Definition: code-generator-algo.hpp:451
pinocchio::CodeGenCRBA::Scalar
Base::Scalar Scalar
Definition: code-generator-algo.hpp:265
pinocchio::constraintDynamics
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & constraintDynamics(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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_datas, ProximalSettingsTpl< Scalar > &settings)
Computes the forward dynamics with contact constraints according to a given list of Contact informati...
pinocchio::CodeGenBase::MatrixXs
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > MatrixXs
Definition: code-generator-base.hpp:35
pinocchio::CodeGenConstraintDynamics::ad_contact_datas
ADContactDataVector ad_contact_datas
Definition: code-generator-algo.hpp:1054
pinocchio::CodeGenDifference::CodeGenDifference
CodeGenDifference(const Model &model, const std::string &function_name="difference", const std::string &library_name="cg_difference_eval")
Definition: code-generator-algo.hpp:1146
pinocchio::CodeGenConstraintDynamics::ADMatrixXs
ADData::MatrixXs ADMatrixXs
Definition: code-generator-algo.hpp:902
pinocchio::CodeGenConstraintDynamics::PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE
typedef PINOCCHIO_EIGEN_PLAIN_ROW_MAJOR_TYPE(MatrixXs) RowMatrixXs
pinocchio::CodeGenRNEADerivatives::ad_dtau_da
ADMatrixXs ad_dtau_da
Definition: code-generator-algo.hpp:562
pinocchio::CodeGenRNEADerivatives::x
VectorXs x
Definition: code-generator-algo.hpp:561
pinocchio::CodeGenIntegrate::ad_q
ADConfigVectorType ad_q
Definition: code-generator-algo.hpp:1130
pinocchio::CodeGenConstraintDynamics::ADContactData
pinocchio::RigidConstraintDataTpl< ADScalar, Base::Options > ADContactData
Definition: code-generator-algo.hpp:897
pinocchio::ModelTpl::nq
int nq
Dimension of the configuration vector representation.
Definition: multibody/model.hpp:99
pinocchio::CodeGenCRBA::~CodeGenCRBA
virtual ~CodeGenCRBA()
Definition: code-generator-algo.hpp:289
pinocchio::CodeGenConstraintDynamics::buildMap
void buildMap()
build the mapping Y = f(X)
Definition: code-generator-algo.hpp:969
pinocchio::CodeGenRNEA::ad_v
ADTangentVectorType ad_v
Definition: code-generator-algo.hpp:138
pinocchio::CodeGenABADerivatives::dddq_dtau
MatrixXs dddq_dtau
Definition: code-generator-algo.hpp:682
pinocchio::CodeGenRNEA::Model
Base::Model Model
Definition: code-generator-algo.hpp:27
pinocchio::CodeGenConstraintDynamicsDerivatives::VectorXs
Base::VectorXs VectorXs
Definition: code-generator-algo.hpp:701
pinocchio::CodeGenDifference::Scalar
Base::Scalar Scalar
Definition: code-generator-algo.hpp:1138
pinocchio::CodeGenConstraintDynamicsDerivatives::ADConstraintModelAllocator
Eigen::aligned_allocator< ADContactModel > ADConstraintModelAllocator
Definition: code-generator-algo.hpp:711
pinocchio::model
JointCollectionTpl & model
Definition: joint-configuration.hpp:1116
pinocchio::CodeGenIntegrate::res
VectorXs res
Definition: code-generator-algo.hpp:1128
pinocchio::CodeGenRNEA
Definition: code-generator-algo.hpp:22
pinocchio::CodeGenIntegrate
Definition: code-generator-algo.hpp:1064
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:27
pinocchio::CodeGenConstraintDynamicsDerivatives::ADData
Base::ADData ADData
Definition: code-generator-algo.hpp:717
pinocchio::CodeGenConstraintDynamicsDerivatives
Definition: code-generator-algo.hpp:689
pinocchio::CodeGenConstraintDynamicsDerivatives::nc
Eigen::DenseIndex nc
Definition: code-generator-algo.hpp:860
pinocchio::CodeGenABADerivatives::Base
CodeGenBase< _Scalar > Base
Definition: code-generator-algo.hpp:572


pinocchio
Author(s):
autogenerated on Sat Jun 1 2024 02:40:33