{"action":"created","comment":{"url":"https://api.github.com/repos/dartsim/dart/pulls/comments/32845359","id":32845359,"diff_hunk":"@@ -83,8 +85,28 @@ typedef Matrix<double, 6, 6> Matrix6d;\n typedef std::vector<Eigen::Vector3d> EIGEN_V_VEC3D;\n typedef std::vector<std::vector<Eigen::Vector3d > > EIGEN_VV_VEC3D;\n \n+template <typename _Tp>\n+using aligned_vector = std::vector<_Tp, Eigen::aligned_allocator<_Tp>>;\n+\n+template <typename _Key, typename _Tp, typename _Compare = std::less<_Key>>\n+using aligned_map = std::map<_Key, _Tp, _Compare,\n+    Eigen::aligned_allocator<std::pair<const _Key, _Tp>>>;\n+\n+template<typename _Tp, typename... _Args>\n+inline std::shared_ptr<_Tp> make_aligned_shared()","path":"dart/math/MathTypes.h","position":21,"original_position":21,"commit_id":"1353f497c26fb0748656856813669bcc95e2ac71","original_commit_id":"5ff9acd8b20d7d568fa6cd2461ae987cb0e00feb","user":{"login":"mxgrey","id":1307217,"avatar_url":"https://avatars.githubusercontent.com/u/1307217?v=3","gravatar_id":"","url":"https://api.github.com/users/mxgrey","html_url":"https://github.com/mxgrey","followers_url":"https://api.github.com/users/mxgrey/followers","following_url":"https://api.github.com/users/mxgrey/following{/other_user}","gists_url":"https://api.github.com/users/mxgrey/gists{/gist_id}","starred_url":"https://api.github.com/users/mxgrey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mxgrey/subscriptions","organizations_url":"https://api.github.com/users/mxgrey/orgs","repos_url":"https://api.github.com/users/mxgrey/repos","events_url":"https://api.github.com/users/mxgrey/events{/privacy}","received_events_url":"https://api.github.com/users/mxgrey/received_events","type":"User","site_admin":false},"body":"And is it only WeldJoint?\r\n\r\nOne thing we could try is adding ``WeldJoint(const WeldJoint& _other) = default;`` to the definition of WeldJoint. If it's really nothing more than an implicitly deleted copy constructor, then that should do the trick.","created_at":"2015-06-19T16:31:43Z","updated_at":"2015-06-19T16:31:43Z","html_url":"https://github.com/dartsim/dart/pull/414#discussion_r32845359","pull_request_url":"https://api.github.com/repos/dartsim/dart/pulls/414","_links":{"self":{"href":"https://api.github.com/repos/dartsim/dart/pulls/comments/32845359"},"html":{"href":"https://github.com/dartsim/dart/pull/414#discussion_r32845359"},"pull_request":{"href":"https://api.github.com/repos/dartsim/dart/pulls/414"}}},"pull_request":{"url":"https://api.github.com/repos/dartsim/dart/pulls/414","id":37902106,"html_url":"https://github.com/dartsim/dart/pull/414","diff_url":"https://github.com/dartsim/dart/pull/414.diff","patch_url":"https://github.com/dartsim/dart/pull/414.patch","issue_url":"https://api.github.com/repos/dartsim/dart/issues/414","number":414,"state":"open","locked":false,"title":"Eigen aligned memory allocator","user":{"login":"jslee02","id":4038467,"avatar_url":"https://avatars.githubusercontent.com/u/4038467?v=3","gravatar_id":"","url":"https://api.github.com/users/jslee02","html_url":"https://github.com/jslee02","followers_url":"https://api.github.com/users/jslee02/followers","following_url":"https://api.github.com/users/jslee02/following{/other_user}","gists_url":"https://api.github.com/users/jslee02/gists{/gist_id}","starred_url":"https://api.github.com/users/jslee02/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jslee02/subscriptions","organizations_url":"https://api.github.com/users/jslee02/orgs","repos_url":"https://api.github.com/users/jslee02/repos","events_url":"https://api.github.com/users/jslee02/events{/privacy}","received_events_url":"https://api.github.com/users/jslee02/received_events","type":"User","site_admin":false},"body":"This pull request resolves [memory alignment issues with Eigen objects](http://eigen.tuxfamily.org/dox/group__DenseMatrixManipulation__Alignement.html) in DART.\r\n\r\nAlso, some helper types and functions are defined for convenience such as ```Eigen::aligned_vector``` and ```Eigen::make_aligned_shared()```. One thing I'm not sure is the namespace and names of them. ```dart::aligned_vector``` or ```dart::aligned::vector``` are alternatives I can imagine. Any thought on this?\r\n\r\nRelated issues: #413 \r\n","created_at":"2015-06-17T13:47:00Z","updated_at":"2015-06-19T16:31:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"602a74e0308e35047d744c8e1f4a7c5c6fcdbe38","assignee":null,"milestone":{"url":"https://api.github.com/repos/dartsim/dart/milestones/6","html_url":"https://github.com/dartsim/dart/milestones/Release%20DART%205.0","labels_url":"https://api.github.com/repos/dartsim/dart/milestones/6/labels","id":679315,"number":6,"title":"Release DART 5.0","description":"Change plan and log:\r\n  * Math\r\n    * Add BSpline class (#300)\r\n  * Kinematics\r\n    * [Done] Add Frame class and auto-updating for forward kinematics (#319)\r\n    * Add Jacobian related API to Frame\r\n      * For example, getSpatialJacobian(relativeTo, inCoordinatesOf)\r\n  * Collision\r\n    * (Decouple dynamics from collision (dependency: kinematics <-- collision <-- dynamics))\r\n    * (Improve built-in collision detector -- support primitive shapes, mesh, and deformable mesh)\r\n    * Improve fcl collision detector -- merge fcl and fcl_mesh, support primitive shape collision, use broad-phase algorithm\r\n    * (Add more primitive shapes (sphere, capsule, and cone))\r\n  * Renderer / GUI\r\n    * [Done] Add the feature to plot 2D trajectories (#324)\r\n    * OpenSceneGraph gui\r\n  * Utils\r\n    * [Done] Fix a bug in loading WorldFile (#325)\r\n    * Improve Skel parser\r\n  * API\r\n    * Remove deprecated APIs in DART 4.x\r\n    * Eradicating memory leaks & making classes copy-safe and clonable (#369)\r\n  * ETC\r\n    * Drop dependency of tinyxml (used in urdf parser)\r\n    * (Improve numerical accuracy)\r\n    * Use code beautifier\r\n    * Minor improvements: #335\r\n\r\nTarget Gazebo version will be 6.0 (release date: 2015-07-27)\r\n\r\nSupported platforms (compilers)\r\n  * Ubuntu 14.04 LTS, 14.10, and 15.04\r\n    * Require [GCC 4.8](https://gcc.gnu.org/gcc-4.8/) or greater\r\n  * Windows \r\n    * Require [Visual Studio 2013](http://msdn.microsoft.com/en-us/library/dd831853.aspx) or greater\r\n    * (create additional repo that includes all the dependencies together)\r\n  * Mac OS X\r\n    * Require [Clang 3.3](http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html) or greater","creator":{"login":"jslee02","id":4038467,"avatar_url":"https://avatars.githubusercontent.com/u/4038467?v=3","gravatar_id":"","url":"https://api.github.com/users/jslee02","html_url":"https://github.com/jslee02","followers_url":"https://api.github.com/users/jslee02/followers","following_url":"https://api.github.com/users/jslee02/following{/other_user}","gists_url":"https://api.github.com/users/jslee02/gists{/gist_id}","starred_url":"https://api.github.com/users/jslee02/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jslee02/subscriptions","organizations_url":"https://api.github.com/users/jslee02/orgs","repos_url":"https://api.github.com/users/jslee02/repos","events_url":"https://api.github.com/users/jslee02/events{/privacy}","received_events_url":"https://api.github.com/users/jslee02/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":62,"state":"open","created_at":"2014-06-03T15:46:59Z","updated_at":"2015-06-19T15:59:44Z","due_on":"2015-06-15T04:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/dartsim/dart/pulls/414/commits","review_comments_url":"https://api.github.com/repos/dartsim/dart/pulls/414/comments","review_comment_url":"https://api.github.com/repos/dartsim/dart/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dartsim/dart/issues/414/comments","statuses_url":"https://api.github.com/repos/dartsim/dart/statuses/1353f497c26fb0748656856813669bcc95e2ac71","head":{"label":"dartsim:eigen_aligned_allocator","ref":"eigen_aligned_allocator","sha":"1353f497c26fb0748656856813669bcc95e2ac71","user":{"login":"dartsim","id":4191609,"avatar_url":"https://avatars.githubusercontent.com/u/4191609?v=3","gravatar_id":"","url":"https://api.github.com/users/dartsim","html_url":"https://github.com/dartsim","followers_url":"https://api.github.com/users/dartsim/followers","following_url":"https://api.github.com/users/dartsim/following{/other_user}","gists_url":"https://api.github.com/users/dartsim/gists{/gist_id}","starred_url":"https://api.github.com/users/dartsim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dartsim/subscriptions","organizations_url":"https://api.github.com/users/dartsim/orgs","repos_url":"https://api.github.com/users/dartsim/repos","events_url":"https://api.github.com/users/dartsim/events{/privacy}","received_events_url":"https://api.github.com/users/dartsim/received_events","type":"Organization","site_admin":false},"repo":{"id":2418592,"name":"dart","full_name":"dartsim/dart","owner":{"login":"dartsim","id":4191609,"avatar_url":"https://avatars.githubusercontent.com/u/4191609?v=3","gravatar_id":"","url":"https://api.github.com/users/dartsim","html_url":"https://github.com/dartsim","followers_url":"https://api.github.com/users/dartsim/followers","following_url":"https://api.github.com/users/dartsim/following{/other_user}","gists_url":"https://api.github.com/users/dartsim/gists{/gist_id}","starred_url":"https://api.github.com/users/dartsim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dartsim/subscriptions","organizations_url":"https://api.github.com/users/dartsim/orgs","repos_url":"https://api.github.com/users/dartsim/repos","events_url":"https://api.github.com/users/dartsim/events{/privacy}","received_events_url":"https://api.github.com/users/dartsim/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dartsim/dart","description":"Dynamic Animation and Robotics Toolkit","fork":false,"url":"https://api.github.com/repos/dartsim/dart","forks_url":"https://api.github.com/repos/dartsim/dart/forks","keys_url":"https://api.github.com/repos/dartsim/dart/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dartsim/dart/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dartsim/dart/teams","hooks_url":"https://api.github.com/repos/dartsim/dart/hooks","issue_events_url":"https://api.github.com/repos/dartsim/dart/issues/events{/number}","events_url":"https://api.github.com/repos/dartsim/dart/events","assignees_url":"https://api.github.com/repos/dartsim/dart/assignees{/user}","branches_url":"https://api.github.com/repos/dartsim/dart/branches{/branch}","tags_url":"https://api.github.com/repos/dartsim/dart/tags","blobs_url":"https://api.github.com/repos/dartsim/dart/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dartsim/dart/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dartsim/dart/git/refs{/sha}","trees_url":"https://api.github.com/repos/dartsim/dart/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dartsim/dart/statuses/{sha}","languages_url":"https://api.github.com/repos/dartsim/dart/languages","stargazers_url":"https://api.github.com/repos/dartsim/dart/stargazers","contributors_url":"https://api.github.com/repos/dartsim/dart/contributors","subscribers_url":"https://api.github.com/repos/dartsim/dart/subscribers","subscription_url":"https://api.github.com/repos/dartsim/dart/subscription","commits_url":"https://api.github.com/repos/dartsim/dart/commits{/sha}","git_commits_url":"https://api.github.com/repos/dartsim/dart/git/commits{/sha}","comments_url":"https://api.github.com/repos/dartsim/dart/comments{/number}","issue_comment_url":"https://api.github.com/repos/dartsim/dart/issues/comments{/number}","contents_url":"https://api.github.com/repos/dartsim/dart/contents/{+path}","compare_url":"https://api.github.com/repos/dartsim/dart/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dartsim/dart/merges","archive_url":"https://api.github.com/repos/dartsim/dart/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dartsim/dart/downloads","issues_url":"https://api.github.com/repos/dartsim/dart/issues{/number}","pulls_url":"https://api.github.com/repos/dartsim/dart/pulls{/number}","milestones_url":"https://api.github.com/repos/dartsim/dart/milestones{/number}","notifications_url":"https://api.github.com/repos/dartsim/dart/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dartsim/dart/labels{/name}","releases_url":"https://api.github.com/repos/dartsim/dart/releases{/id}","created_at":"2011-09-19T21:53:51Z","updated_at":"2015-06-18T00:23:27Z","pushed_at":"2015-06-19T15:59:44Z","git_url":"git://github.com/dartsim/dart.git","ssh_url":"git@github.com:dartsim/dart.git","clone_url":"https://github.com/dartsim/dart.git","svn_url":"https://github.com/dartsim/dart","homepage":"http://dartsim.github.io/","size":108655,"stargazers_count":62,"watchers_count":62,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":47,"mirror_url":null,"open_issues_count":99,"forks":47,"open_issues":99,"watchers":62,"default_branch":"master"}},"base":{"label":"dartsim:release-5.0","ref":"release-5.0","sha":"ea0956d0b161796f2d7be5f7cbc17176ed743628","user":{"login":"dartsim","id":4191609,"avatar_url":"https://avatars.githubusercontent.com/u/4191609?v=3","gravatar_id":"","url":"https://api.github.com/users/dartsim","html_url":"https://github.com/dartsim","followers_url":"https://api.github.com/users/dartsim/followers","following_url":"https://api.github.com/users/dartsim/following{/other_user}","gists_url":"https://api.github.com/users/dartsim/gists{/gist_id}","starred_url":"https://api.github.com/users/dartsim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dartsim/subscriptions","organizations_url":"https://api.github.com/users/dartsim/orgs","repos_url":"https://api.github.com/users/dartsim/repos","events_url":"https://api.github.com/users/dartsim/events{/privacy}","received_events_url":"https://api.github.com/users/dartsim/received_events","type":"Organization","site_admin":false},"repo":{"id":2418592,"name":"dart","full_name":"dartsim/dart","owner":{"login":"dartsim","id":4191609,"avatar_url":"https://avatars.githubusercontent.com/u/4191609?v=3","gravatar_id":"","url":"https://api.github.com/users/dartsim","html_url":"https://github.com/dartsim","followers_url":"https://api.github.com/users/dartsim/followers","following_url":"https://api.github.com/users/dartsim/following{/other_user}","gists_url":"https://api.github.com/users/dartsim/gists{/gist_id}","starred_url":"https://api.github.com/users/dartsim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dartsim/subscriptions","organizations_url":"https://api.github.com/users/dartsim/orgs","repos_url":"https://api.github.com/users/dartsim/repos","events_url":"https://api.github.com/users/dartsim/events{/privacy}","received_events_url":"https://api.github.com/users/dartsim/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dartsim/dart","description":"Dynamic Animation and Robotics Toolkit","fork":false,"url":"https://api.github.com/repos/dartsim/dart","forks_url":"https://api.github.com/repos/dartsim/dart/forks","keys_url":"https://api.github.com/repos/dartsim/dart/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dartsim/dart/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dartsim/dart/teams","hooks_url":"https://api.github.com/repos/dartsim/dart/hooks","issue_events_url":"https://api.github.com/repos/dartsim/dart/issues/events{/number}","events_url":"https://api.github.com/repos/dartsim/dart/events","assignees_url":"https://api.github.com/repos/dartsim/dart/assignees{/user}","branches_url":"https://api.github.com/repos/dartsim/dart/branches{/branch}","tags_url":"https://api.github.com/repos/dartsim/dart/tags","blobs_url":"https://api.github.com/repos/dartsim/dart/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dartsim/dart/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dartsim/dart/git/refs{/sha}","trees_url":"https://api.github.com/repos/dartsim/dart/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dartsim/dart/statuses/{sha}","languages_url":"https://api.github.com/repos/dartsim/dart/languages","stargazers_url":"https://api.github.com/repos/dartsim/dart/stargazers","contributors_url":"https://api.github.com/repos/dartsim/dart/contributors","subscribers_url":"https://api.github.com/repos/dartsim/dart/subscribers","subscription_url":"https://api.github.com/repos/dartsim/dart/subscription","commits_url":"https://api.github.com/repos/dartsim/dart/commits{/sha}","git_commits_url":"https://api.github.com/repos/dartsim/dart/git/commits{/sha}","comments_url":"https://api.github.com/repos/dartsim/dart/comments{/number}","issue_comment_url":"https://api.github.com/repos/dartsim/dart/issues/comments{/number}","contents_url":"https://api.github.com/repos/dartsim/dart/contents/{+path}","compare_url":"https://api.github.com/repos/dartsim/dart/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dartsim/dart/merges","archive_url":"https://api.github.com/repos/dartsim/dart/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dartsim/dart/downloads","issues_url":"https://api.github.com/repos/dartsim/dart/issues{/number}","pulls_url":"https://api.github.com/repos/dartsim/dart/pulls{/number}","milestones_url":"https://api.github.com/repos/dartsim/dart/milestones{/number}","notifications_url":"https://api.github.com/repos/dartsim/dart/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dartsim/dart/labels{/name}","releases_url":"https://api.github.com/repos/dartsim/dart/releases{/id}","created_at":"2011-09-19T21:53:51Z","updated_at":"2015-06-18T00:23:27Z","pushed_at":"2015-06-19T15:59:44Z","git_url":"git://github.com/dartsim/dart.git","ssh_url":"git@github.com:dartsim/dart.git","clone_url":"https://github.com/dartsim/dart.git","svn_url":"https://github.com/dartsim/dart","homepage":"http://dartsim.github.io/","size":108655,"stargazers_count":62,"watchers_count":62,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":47,"mirror_url":null,"open_issues_count":99,"forks":47,"open_issues":99,"watchers":62,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dartsim/dart/pulls/414"},"html":{"href":"https://github.com/dartsim/dart/pull/414"},"issue":{"href":"https://api.github.com/repos/dartsim/dart/issues/414"},"comments":{"href":"https://api.github.com/repos/dartsim/dart/issues/414/comments"},"review_comments":{"href":"https://api.github.com/repos/dartsim/dart/pulls/414/comments"},"review_comment":{"href":"https://api.github.com/repos/dartsim/dart/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dartsim/dart/pulls/414/commits"},"statuses":{"href":"https://api.github.com/repos/dartsim/dart/statuses/1353f497c26fb0748656856813669bcc95e2ac71"}}}}