{"action":"closed","number":767,"pull_request":{"url":"https://api.github.com/repos/MRtrix3/mrtrix3/pulls/767","id":83152061,"html_url":"https://github.com/MRtrix3/mrtrix3/pull/767","diff_url":"https://github.com/MRtrix3/mrtrix3/pull/767.diff","patch_url":"https://github.com/MRtrix3/mrtrix3/pull/767.patch","issue_url":"https://api.github.com/repos/MRtrix3/mrtrix3/issues/767","number":767,"state":"closed","locked":false,"title":"in place gaussian filter","user":{"login":"maxpietsch","id":10046944,"avatar_url":"https://avatars.githubusercontent.com/u/10046944?v=3","gravatar_id":"","url":"https://api.github.com/users/maxpietsch","html_url":"https://github.com/maxpietsch","followers_url":"https://api.github.com/users/maxpietsch/followers","following_url":"https://api.github.com/users/maxpietsch/following{/other_user}","gists_url":"https://api.github.com/users/maxpietsch/gists{/gist_id}","starred_url":"https://api.github.com/users/maxpietsch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maxpietsch/subscriptions","organizations_url":"https://api.github.com/users/maxpietsch/orgs","repos_url":"https://api.github.com/users/maxpietsch/repos","events_url":"https://api.github.com/users/maxpietsch/events{/privacy}","received_events_url":"https://api.github.com/users/maxpietsch/received_events","type":"User","site_admin":false},"body":"- reduced memory consumption: does not copy the input image but smoothes it in place\n- uses eigen for product of kernel and image values\n- close to 2x speedup on hcp data\n\nSo far only used in the registration to reduce the memory consumption of mrregister ([forum entry](http://community.mrtrix.org/t/mrregister-error-error-allocating-memory-for-scratch-buffer-while-executing-population-template-command)). \n\nReplacing the default Gaussian smoothing filter in `mrfilter` with the in place filter turns out to be up to twice as fast as the previous Gaussian smoothing (8s vs 4s) for large 4D images but slightly slower for very small images (difference in the lower 10ms). \n\nThe catch is that the smoothing dimension of the in place Gaussian adapter needs to be the same as the inner stride of the threaded loop. This makes the code a bit more verbose.\n\nPossible improvements:\n- Implement a 4D version that uses the `image.row()` method and Eigen matrix products.\n- Smaller buffer size and fill it up on the fly \n\nAny thoughts on whether I shall replace the Gaussian adapter or on the implementation? \n","created_at":"2016-08-29T19:20:21Z","updated_at":"2016-12-09T10:33:14Z","closed_at":"2016-12-09T10:33:14Z","merged_at":null,"merge_commit_sha":"e25da223bfb7eafddacb40ae2bac6980be3f7794","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/MRtrix3/mrtrix3/pulls/767/commits","review_comments_url":"https://api.github.com/repos/MRtrix3/mrtrix3/pulls/767/comments","review_comment_url":"https://api.github.com/repos/MRtrix3/mrtrix3/pulls/comments{/number}","comments_url":"https://api.github.com/repos/MRtrix3/mrtrix3/issues/767/comments","statuses_url":"https://api.github.com/repos/MRtrix3/mrtrix3/statuses/5f10d7b1e190397e0ef7862381d4594e41858c77","head":{"label":"MRtrix3:gaussian_filter_in_place","ref":"gaussian_filter_in_place","sha":"5f10d7b1e190397e0ef7862381d4594e41858c77","user":{"login":"MRtrix3","id":12139692,"avatar_url":"https://avatars.githubusercontent.com/u/12139692?v=3","gravatar_id":"","url":"https://api.github.com/users/MRtrix3","html_url":"https://github.com/MRtrix3","followers_url":"https://api.github.com/users/MRtrix3/followers","following_url":"https://api.github.com/users/MRtrix3/following{/other_user}","gists_url":"https://api.github.com/users/MRtrix3/gists{/gist_id}","starred_url":"https://api.github.com/users/MRtrix3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MRtrix3/subscriptions","organizations_url":"https://api.github.com/users/MRtrix3/orgs","repos_url":"https://api.github.com/users/MRtrix3/repos","events_url":"https://api.github.com/users/MRtrix3/events{/privacy}","received_events_url":"https://api.github.com/users/MRtrix3/received_events","type":"Organization","site_admin":false},"repo":{"id":19347267,"name":"mrtrix3","full_name":"MRtrix3/mrtrix3","owner":{"login":"MRtrix3","id":12139692,"avatar_url":"https://avatars.githubusercontent.com/u/12139692?v=3","gravatar_id":"","url":"https://api.github.com/users/MRtrix3","html_url":"https://github.com/MRtrix3","followers_url":"https://api.github.com/users/MRtrix3/followers","following_url":"https://api.github.com/users/MRtrix3/following{/other_user}","gists_url":"https://api.github.com/users/MRtrix3/gists{/gist_id}","starred_url":"https://api.github.com/users/MRtrix3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MRtrix3/subscriptions","organizations_url":"https://api.github.com/users/MRtrix3/orgs","repos_url":"https://api.github.com/users/MRtrix3/repos","events_url":"https://api.github.com/users/MRtrix3/events{/privacy}","received_events_url":"https://api.github.com/users/MRtrix3/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/MRtrix3/mrtrix3","description":"MRtrix provides a set of tools to perform various advanced diffusion MRI analyses, including constrained spherical deconvolution (CSD), probabilistic tractography, track-density imaging, and apparent fibre density","fork":false,"url":"https://api.github.com/repos/MRtrix3/mrtrix3","forks_url":"https://api.github.com/repos/MRtrix3/mrtrix3/forks","keys_url":"https://api.github.com/repos/MRtrix3/mrtrix3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MRtrix3/mrtrix3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MRtrix3/mrtrix3/teams","hooks_url":"https://api.github.com/repos/MRtrix3/mrtrix3/hooks","issue_events_url":"https://api.github.com/repos/MRtrix3/mrtrix3/issues/events{/number}","events_url":"https://api.github.com/repos/MRtrix3/mrtrix3/events","assignees_url":"https://api.github.com/repos/MRtrix3/mrtrix3/assignees{/user}","branches_url":"https://api.github.com/repos/MRtrix3/mrtrix3/branches{/branch}","tags_url":"https://api.github.com/repos/MRtrix3/mrtrix3/tags","blobs_url":"https://api.github.com/repos/MRtrix3/mrtrix3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MRtrix3/mrtrix3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MRtrix3/mrtrix3/git/refs{/sha}","trees_url":"https://api.github.com/repos/MRtrix3/mrtrix3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MRtrix3/mrtrix3/statuses/{sha}","languages_url":"https://api.github.com/repos/MRtrix3/mrtrix3/languages","stargazers_url":"https://api.github.com/repos/MRtrix3/mrtrix3/stargazers","contributors_url":"https://api.github.com/repos/MRtrix3/mrtrix3/contributors","subscribers_url":"https://api.github.com/repos/MRtrix3/mrtrix3/subscribers","subscription_url":"https://api.github.com/repos/MRtrix3/mrtrix3/subscription","commits_url":"https://api.github.com/repos/MRtrix3/mrtrix3/commits{/sha}","git_commits_url":"https://api.github.com/repos/MRtrix3/mrtrix3/git/commits{/sha}","comments_url":"https://api.github.com/repos/MRtrix3/mrtrix3/comments{/number}","issue_comment_url":"https://api.github.com/repos/MRtrix3/mrtrix3/issues/comments{/number}","contents_url":"https://api.github.com/repos/MRtrix3/mrtrix3/contents/{+path}","compare_url":"https://api.github.com/repos/MRtrix3/mrtrix3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MRtrix3/mrtrix3/merges","archive_url":"https://api.github.com/repos/MRtrix3/mrtrix3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MRtrix3/mrtrix3/downloads","issues_url":"https://api.github.com/repos/MRtrix3/mrtrix3/issues{/number}","pulls_url":"https://api.github.com/repos/MRtrix3/mrtrix3/pulls{/number}","milestones_url":"https://api.github.com/repos/MRtrix3/mrtrix3/milestones{/number}","notifications_url":"https://api.github.com/repos/MRtrix3/mrtrix3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MRtrix3/mrtrix3/labels{/name}","releases_url":"https://api.github.com/repos/MRtrix3/mrtrix3/releases{/id}","deployments_url":"https://api.github.com/repos/MRtrix3/mrtrix3/deployments","created_at":"2014-05-01T14:47:02Z","updated_at":"2016-11-07T11:14:11Z","pushed_at":"2016-12-09T10:32:36Z","git_url":"git://github.com/MRtrix3/mrtrix3.git","ssh_url":"git@github.com:MRtrix3/mrtrix3.git","clone_url":"https://github.com/MRtrix3/mrtrix3.git","svn_url":"https://github.com/MRtrix3/mrtrix3","homepage":"http://www.mrtrix.org","size":22430,"stargazers_count":54,"watchers_count":54,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":38,"mirror_url":null,"open_issues_count":158,"forks":38,"open_issues":158,"watchers":54,"default_branch":"master"}},"base":{"label":"MRtrix3:master","ref":"master","sha":"2af017598b3ce30272d66a370a54cd80fa9f8f22","user":{"login":"MRtrix3","id":12139692,"avatar_url":"https://avatars.githubusercontent.com/u/12139692?v=3","gravatar_id":"","url":"https://api.github.com/users/MRtrix3","html_url":"https://github.com/MRtrix3","followers_url":"https://api.github.com/users/MRtrix3/followers","following_url":"https://api.github.com/users/MRtrix3/following{/other_user}","gists_url":"https://api.github.com/users/MRtrix3/gists{/gist_id}","starred_url":"https://api.github.com/users/MRtrix3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MRtrix3/subscriptions","organizations_url":"https://api.github.com/users/MRtrix3/orgs","repos_url":"https://api.github.com/users/MRtrix3/repos","events_url":"https://api.github.com/users/MRtrix3/events{/privacy}","received_events_url":"https://api.github.com/users/MRtrix3/received_events","type":"Organization","site_admin":false},"repo":{"id":19347267,"name":"mrtrix3","full_name":"MRtrix3/mrtrix3","owner":{"login":"MRtrix3","id":12139692,"avatar_url":"https://avatars.githubusercontent.com/u/12139692?v=3","gravatar_id":"","url":"https://api.github.com/users/MRtrix3","html_url":"https://github.com/MRtrix3","followers_url":"https://api.github.com/users/MRtrix3/followers","following_url":"https://api.github.com/users/MRtrix3/following{/other_user}","gists_url":"https://api.github.com/users/MRtrix3/gists{/gist_id}","starred_url":"https://api.github.com/users/MRtrix3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MRtrix3/subscriptions","organizations_url":"https://api.github.com/users/MRtrix3/orgs","repos_url":"https://api.github.com/users/MRtrix3/repos","events_url":"https://api.github.com/users/MRtrix3/events{/privacy}","received_events_url":"https://api.github.com/users/MRtrix3/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/MRtrix3/mrtrix3","description":"MRtrix provides a set of tools to perform various advanced diffusion MRI analyses, including constrained spherical deconvolution (CSD), probabilistic tractography, track-density imaging, and apparent fibre density","fork":false,"url":"https://api.github.com/repos/MRtrix3/mrtrix3","forks_url":"https://api.github.com/repos/MRtrix3/mrtrix3/forks","keys_url":"https://api.github.com/repos/MRtrix3/mrtrix3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MRtrix3/mrtrix3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MRtrix3/mrtrix3/teams","hooks_url":"https://api.github.com/repos/MRtrix3/mrtrix3/hooks","issue_events_url":"https://api.github.com/repos/MRtrix3/mrtrix3/issues/events{/number}","events_url":"https://api.github.com/repos/MRtrix3/mrtrix3/events","assignees_url":"https://api.github.com/repos/MRtrix3/mrtrix3/assignees{/user}","branches_url":"https://api.github.com/repos/MRtrix3/mrtrix3/branches{/branch}","tags_url":"https://api.github.com/repos/MRtrix3/mrtrix3/tags","blobs_url":"https://api.github.com/repos/MRtrix3/mrtrix3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MRtrix3/mrtrix3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MRtrix3/mrtrix3/git/refs{/sha}","trees_url":"https://api.github.com/repos/MRtrix3/mrtrix3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MRtrix3/mrtrix3/statuses/{sha}","languages_url":"https://api.github.com/repos/MRtrix3/mrtrix3/languages","stargazers_url":"https://api.github.com/repos/MRtrix3/mrtrix3/stargazers","contributors_url":"https://api.github.com/repos/MRtrix3/mrtrix3/contributors","subscribers_url":"https://api.github.com/repos/MRtrix3/mrtrix3/subscribers","subscription_url":"https://api.github.com/repos/MRtrix3/mrtrix3/subscription","commits_url":"https://api.github.com/repos/MRtrix3/mrtrix3/commits{/sha}","git_commits_url":"https://api.github.com/repos/MRtrix3/mrtrix3/git/commits{/sha}","comments_url":"https://api.github.com/repos/MRtrix3/mrtrix3/comments{/number}","issue_comment_url":"https://api.github.com/repos/MRtrix3/mrtrix3/issues/comments{/number}","contents_url":"https://api.github.com/repos/MRtrix3/mrtrix3/contents/{+path}","compare_url":"https://api.github.com/repos/MRtrix3/mrtrix3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MRtrix3/mrtrix3/merges","archive_url":"https://api.github.com/repos/MRtrix3/mrtrix3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MRtrix3/mrtrix3/downloads","issues_url":"https://api.github.com/repos/MRtrix3/mrtrix3/issues{/number}","pulls_url":"https://api.github.com/repos/MRtrix3/mrtrix3/pulls{/number}","milestones_url":"https://api.github.com/repos/MRtrix3/mrtrix3/milestones{/number}","notifications_url":"https://api.github.com/repos/MRtrix3/mrtrix3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MRtrix3/mrtrix3/labels{/name}","releases_url":"https://api.github.com/repos/MRtrix3/mrtrix3/releases{/id}","deployments_url":"https://api.github.com/repos/MRtrix3/mrtrix3/deployments","created_at":"2014-05-01T14:47:02Z","updated_at":"2016-11-07T11:14:11Z","pushed_at":"2016-12-09T10:32:36Z","git_url":"git://github.com/MRtrix3/mrtrix3.git","ssh_url":"git@github.com:MRtrix3/mrtrix3.git","clone_url":"https://github.com/MRtrix3/mrtrix3.git","svn_url":"https://github.com/MRtrix3/mrtrix3","homepage":"http://www.mrtrix.org","size":22430,"stargazers_count":54,"watchers_count":54,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":38,"mirror_url":null,"open_issues_count":158,"forks":38,"open_issues":158,"watchers":54,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/MRtrix3/mrtrix3/pulls/767"},"html":{"href":"https://github.com/MRtrix3/mrtrix3/pull/767"},"issue":{"href":"https://api.github.com/repos/MRtrix3/mrtrix3/issues/767"},"comments":{"href":"https://api.github.com/repos/MRtrix3/mrtrix3/issues/767/comments"},"review_comments":{"href":"https://api.github.com/repos/MRtrix3/mrtrix3/pulls/767/comments"},"review_comment":{"href":"https://api.github.com/repos/MRtrix3/mrtrix3/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/MRtrix3/mrtrix3/pulls/767/commits"},"statuses":{"href":"https://api.github.com/repos/MRtrix3/mrtrix3/statuses/5f10d7b1e190397e0ef7862381d4594e41858c77"}},"merged":false,"mergeable":true,"mergeable_state":"unstable","merged_by":null,"comments":15,"review_comments":0,"commits":12,"additions":156,"deletions":21,"changed_files":6}}
{"actor":{"display_login":"maxpietsch"}}