Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • C crocoddyl
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • loco-3d
  • crocoddyl
  • Merge requests
  • !245

Simplified API by using shared pointers

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Carlos Mastalli requested to merge cmastall/crocoddyl:topic/refact-using-shared-ptr into devel Oct 11, 2019
  • Overview 2
  • Commits 39
  • Pipelines 0
  • Changes 140

Writing a complex optimal control problem can be very hard if the user needs to handle carefully all raw pointers. Paying this expensive lunch for just a bit of memory overhead (counter pointer) of shared pointers cannot be justified.

With this code, I ensure that we don't create runtime overhead.

Additionally, I simplified the unittest by using shared pointers. Please have a look of this code @mnaveau.

Finally, I have figured out how to expose custom data in Python. I included all these datas.

In conclusion this PR includes:

  1. Simpler API which uses shared pointers for abstracts (i.e. state, contacts, impulses, costs, actions, callbacks and shooting problem)
  2. benchmarks and unittest according 1.
  3. unittest code which uses shared pointers, removed custom management of memory
  4. exposition of custom data structures in Python
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: topic/refact-using-shared-ptr