{"action":"created","comment":{"url":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls/comments/203722967","pull_request_review_id":138667513,"id":203722967,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwMzcyMjk2Nw==","diff_hunk":"@@ -557,6 +583,17 @@ end\n # convolution in the time domain using filt or in the frequency domain\n # using fftfilt\n function filt(b::AbstractVector{T}, x::AbstractArray{T}) where T<:Number\n+    filt_choose_alg!(Array{T}(undef, size(x)), b, x)\n+end\n+\n+# Like filt but mutates output array\n+function filt!(out::AbstractArray, b::AbstractVector, x::AbstractArray)\n+    size(out) == size(x) || throw(ArgumentError(\"out must be the same size as x\"))\n+    filt_choose_alg!(out, b, x)\n+end\n+\n+# like filt_choose_alg! but does not check if out and x are the same size","path":"src/Filters/filt.jl","position":null,"original_position":95,"commit_id":"27a9199510cfab76c8d90ea829c7cc003848ba55","original_commit_id":"f43c585cbef4ce4b7ee3a335397cfe75fada42b3","user":{"login":"galenlynch","id":6831311,"node_id":"MDQ6VXNlcjY4MzEzMTE=","avatar_url":"https://avatars3.githubusercontent.com/u/6831311?v=4","gravatar_id":"","url":"https://api.github.com/users/galenlynch","html_url":"https://github.com/galenlynch","followers_url":"https://api.github.com/users/galenlynch/followers","following_url":"https://api.github.com/users/galenlynch/following{/other_user}","gists_url":"https://api.github.com/users/galenlynch/gists{/gist_id}","starred_url":"https://api.github.com/users/galenlynch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/galenlynch/subscriptions","organizations_url":"https://api.github.com/users/galenlynch/orgs","repos_url":"https://api.github.com/users/galenlynch/repos","events_url":"https://api.github.com/users/galenlynch/events{/privacy}","received_events_url":"https://api.github.com/users/galenlynch/received_events","type":"User","site_admin":false},"body":"Fixed","created_at":"2018-07-19T13:21:48Z","updated_at":"2018-07-19T13:21:48Z","html_url":"https://github.com/JuliaDSP/DSP.jl/pull/206#discussion_r203722967","pull_request_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls/206","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls/comments/203722967"},"html":{"href":"https://github.com/JuliaDSP/DSP.jl/pull/206#discussion_r203722967"},"pull_request":{"href":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls/206"}},"in_reply_to_id":200814103},"pull_request":{"url":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls/206","id":198752297,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk4NzUyMjk3","html_url":"https://github.com/JuliaDSP/DSP.jl/pull/206","diff_url":"https://github.com/JuliaDSP/DSP.jl/pull/206.diff","patch_url":"https://github.com/JuliaDSP/DSP.jl/pull/206.patch","issue_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/issues/206","number":206,"state":"open","locked":false,"title":"Create mutating versions of fftfilt and filt","user":{"login":"galenlynch","id":6831311,"node_id":"MDQ6VXNlcjY4MzEzMTE=","avatar_url":"https://avatars3.githubusercontent.com/u/6831311?v=4","gravatar_id":"","url":"https://api.github.com/users/galenlynch","html_url":"https://github.com/galenlynch","followers_url":"https://api.github.com/users/galenlynch/followers","following_url":"https://api.github.com/users/galenlynch/following{/other_user}","gists_url":"https://api.github.com/users/galenlynch/gists{/gist_id}","starred_url":"https://api.github.com/users/galenlynch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/galenlynch/subscriptions","organizations_url":"https://api.github.com/users/galenlynch/orgs","repos_url":"https://api.github.com/users/galenlynch/repos","events_url":"https://api.github.com/users/galenlynch/events{/privacy}","received_events_url":"https://api.github.com/users/galenlynch/received_events","type":"User","site_admin":false},"body":"I have split `fftfilt` into two functions, the original `fftfilt` which\r\ninitializes the output array, `ffiltfilt!` which checks the size of the output\r\narray is consistent with the input array, and `_fftfilt!` which performs the\r\nfiltering by mutating the output array without checking its inputs.\r\n\r\nSimilarly, I have separated the FIR method of `filt` into the original function\r\nwhich initializes the output array, `filt_choose_alg!` which checks if the\r\noutput array and input array are the same size, and `_filt_choose_alg!` which\r\nwill choose to use fftfilt or time-domain filtering based on the same heuristics.","created_at":"2018-07-02T18:09:36Z","updated_at":"2018-07-19T13:21:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f6c3120f6cc67732f980a76c00797c5b3d8bad1e","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls/206/commits","review_comments_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls/206/comments","review_comment_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls/comments{/number}","comments_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/issues/206/comments","statuses_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/statuses/27a9199510cfab76c8d90ea829c7cc003848ba55","head":{"label":"galenlynch:master","ref":"master","sha":"27a9199510cfab76c8d90ea829c7cc003848ba55","user":{"login":"galenlynch","id":6831311,"node_id":"MDQ6VXNlcjY4MzEzMTE=","avatar_url":"https://avatars3.githubusercontent.com/u/6831311?v=4","gravatar_id":"","url":"https://api.github.com/users/galenlynch","html_url":"https://github.com/galenlynch","followers_url":"https://api.github.com/users/galenlynch/followers","following_url":"https://api.github.com/users/galenlynch/following{/other_user}","gists_url":"https://api.github.com/users/galenlynch/gists{/gist_id}","starred_url":"https://api.github.com/users/galenlynch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/galenlynch/subscriptions","organizations_url":"https://api.github.com/users/galenlynch/orgs","repos_url":"https://api.github.com/users/galenlynch/repos","events_url":"https://api.github.com/users/galenlynch/events{/privacy}","received_events_url":"https://api.github.com/users/galenlynch/received_events","type":"User","site_admin":false},"repo":{"id":139477566,"node_id":"MDEwOlJlcG9zaXRvcnkxMzk0Nzc1NjY=","name":"DSP.jl","full_name":"galenlynch/DSP.jl","owner":{"login":"galenlynch","id":6831311,"node_id":"MDQ6VXNlcjY4MzEzMTE=","avatar_url":"https://avatars3.githubusercontent.com/u/6831311?v=4","gravatar_id":"","url":"https://api.github.com/users/galenlynch","html_url":"https://github.com/galenlynch","followers_url":"https://api.github.com/users/galenlynch/followers","following_url":"https://api.github.com/users/galenlynch/following{/other_user}","gists_url":"https://api.github.com/users/galenlynch/gists{/gist_id}","starred_url":"https://api.github.com/users/galenlynch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/galenlynch/subscriptions","organizations_url":"https://api.github.com/users/galenlynch/orgs","repos_url":"https://api.github.com/users/galenlynch/repos","events_url":"https://api.github.com/users/galenlynch/events{/privacy}","received_events_url":"https://api.github.com/users/galenlynch/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/galenlynch/DSP.jl","description":"Filter design, periodograms, window functions, and other digital signal processing functionality","fork":true,"url":"https://api.github.com/repos/galenlynch/DSP.jl","forks_url":"https://api.github.com/repos/galenlynch/DSP.jl/forks","keys_url":"https://api.github.com/repos/galenlynch/DSP.jl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/galenlynch/DSP.jl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/galenlynch/DSP.jl/teams","hooks_url":"https://api.github.com/repos/galenlynch/DSP.jl/hooks","issue_events_url":"https://api.github.com/repos/galenlynch/DSP.jl/issues/events{/number}","events_url":"https://api.github.com/repos/galenlynch/DSP.jl/events","assignees_url":"https://api.github.com/repos/galenlynch/DSP.jl/assignees{/user}","branches_url":"https://api.github.com/repos/galenlynch/DSP.jl/branches{/branch}","tags_url":"https://api.github.com/repos/galenlynch/DSP.jl/tags","blobs_url":"https://api.github.com/repos/galenlynch/DSP.jl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/galenlynch/DSP.jl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/galenlynch/DSP.jl/git/refs{/sha}","trees_url":"https://api.github.com/repos/galenlynch/DSP.jl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/galenlynch/DSP.jl/statuses/{sha}","languages_url":"https://api.github.com/repos/galenlynch/DSP.jl/languages","stargazers_url":"https://api.github.com/repos/galenlynch/DSP.jl/stargazers","contributors_url":"https://api.github.com/repos/galenlynch/DSP.jl/contributors","subscribers_url":"https://api.github.com/repos/galenlynch/DSP.jl/subscribers","subscription_url":"https://api.github.com/repos/galenlynch/DSP.jl/subscription","commits_url":"https://api.github.com/repos/galenlynch/DSP.jl/commits{/sha}","git_commits_url":"https://api.github.com/repos/galenlynch/DSP.jl/git/commits{/sha}","comments_url":"https://api.github.com/repos/galenlynch/DSP.jl/comments{/number}","issue_comment_url":"https://api.github.com/repos/galenlynch/DSP.jl/issues/comments{/number}","contents_url":"https://api.github.com/repos/galenlynch/DSP.jl/contents/{+path}","compare_url":"https://api.github.com/repos/galenlynch/DSP.jl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/galenlynch/DSP.jl/merges","archive_url":"https://api.github.com/repos/galenlynch/DSP.jl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/galenlynch/DSP.jl/downloads","issues_url":"https://api.github.com/repos/galenlynch/DSP.jl/issues{/number}","pulls_url":"https://api.github.com/repos/galenlynch/DSP.jl/pulls{/number}","milestones_url":"https://api.github.com/repos/galenlynch/DSP.jl/milestones{/number}","notifications_url":"https://api.github.com/repos/galenlynch/DSP.jl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/galenlynch/DSP.jl/labels{/name}","releases_url":"https://api.github.com/repos/galenlynch/DSP.jl/releases{/id}","deployments_url":"https://api.github.com/repos/galenlynch/DSP.jl/deployments","created_at":"2018-07-02T18:05:27Z","updated_at":"2018-07-10T10:19:03Z","pushed_at":"2018-07-11T14:10:45Z","git_url":"git://github.com/galenlynch/DSP.jl.git","ssh_url":"git@github.com:galenlynch/DSP.jl.git","clone_url":"https://github.com/galenlynch/DSP.jl.git","svn_url":"https://github.com/galenlynch/DSP.jl","homepage":"https://juliadsp.github.io/DSP.jl/latest/contents.html","size":1107,"stargazers_count":0,"watchers_count":0,"language":"Julia","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"JuliaDSP:master","ref":"master","sha":"f92dcd746f43c6f43adeaa52d038587cc4668394","user":{"login":"JuliaDSP","id":6054300,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwNTQzMDA=","avatar_url":"https://avatars0.githubusercontent.com/u/6054300?v=4","gravatar_id":"","url":"https://api.github.com/users/JuliaDSP","html_url":"https://github.com/JuliaDSP","followers_url":"https://api.github.com/users/JuliaDSP/followers","following_url":"https://api.github.com/users/JuliaDSP/following{/other_user}","gists_url":"https://api.github.com/users/JuliaDSP/gists{/gist_id}","starred_url":"https://api.github.com/users/JuliaDSP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JuliaDSP/subscriptions","organizations_url":"https://api.github.com/users/JuliaDSP/orgs","repos_url":"https://api.github.com/users/JuliaDSP/repos","events_url":"https://api.github.com/users/JuliaDSP/events{/privacy}","received_events_url":"https://api.github.com/users/JuliaDSP/received_events","type":"Organization","site_admin":false},"repo":{"id":14762054,"node_id":"MDEwOlJlcG9zaXRvcnkxNDc2MjA1NA==","name":"DSP.jl","full_name":"JuliaDSP/DSP.jl","owner":{"login":"JuliaDSP","id":6054300,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwNTQzMDA=","avatar_url":"https://avatars0.githubusercontent.com/u/6054300?v=4","gravatar_id":"","url":"https://api.github.com/users/JuliaDSP","html_url":"https://github.com/JuliaDSP","followers_url":"https://api.github.com/users/JuliaDSP/followers","following_url":"https://api.github.com/users/JuliaDSP/following{/other_user}","gists_url":"https://api.github.com/users/JuliaDSP/gists{/gist_id}","starred_url":"https://api.github.com/users/JuliaDSP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JuliaDSP/subscriptions","organizations_url":"https://api.github.com/users/JuliaDSP/orgs","repos_url":"https://api.github.com/users/JuliaDSP/repos","events_url":"https://api.github.com/users/JuliaDSP/events{/privacy}","received_events_url":"https://api.github.com/users/JuliaDSP/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/JuliaDSP/DSP.jl","description":"Filter design, periodograms, window functions, and other digital signal processing functionality","fork":false,"url":"https://api.github.com/repos/JuliaDSP/DSP.jl","forks_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/forks","keys_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/teams","hooks_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/hooks","issue_events_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/issues/events{/number}","events_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/events","assignees_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/assignees{/user}","branches_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/branches{/branch}","tags_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/tags","blobs_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/git/refs{/sha}","trees_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/statuses/{sha}","languages_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/languages","stargazers_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/stargazers","contributors_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/contributors","subscribers_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/subscribers","subscription_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/subscription","commits_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/commits{/sha}","git_commits_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/git/commits{/sha}","comments_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/comments{/number}","issue_comment_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/issues/comments{/number}","contents_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/contents/{+path}","compare_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/merges","archive_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/downloads","issues_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/issues{/number}","pulls_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls{/number}","milestones_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/milestones{/number}","notifications_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/labels{/name}","releases_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/releases{/id}","deployments_url":"https://api.github.com/repos/JuliaDSP/DSP.jl/deployments","created_at":"2013-11-27T23:35:58Z","updated_at":"2018-07-18T01:29:47Z","pushed_at":"2018-07-14T16:15:39Z","git_url":"git://github.com/JuliaDSP/DSP.jl.git","ssh_url":"git@github.com:JuliaDSP/DSP.jl.git","clone_url":"https://github.com/JuliaDSP/DSP.jl.git","svn_url":"https://github.com/JuliaDSP/DSP.jl","homepage":"https://juliadsp.github.io/DSP.jl/latest/contents.html","size":1126,"stargazers_count":95,"watchers_count":95,"language":"Julia","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":44,"mirror_url":null,"archived":false,"open_issues_count":53,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":44,"open_issues":53,"watchers":95,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls/206"},"html":{"href":"https://github.com/JuliaDSP/DSP.jl/pull/206"},"issue":{"href":"https://api.github.com/repos/JuliaDSP/DSP.jl/issues/206"},"comments":{"href":"https://api.github.com/repos/JuliaDSP/DSP.jl/issues/206/comments"},"review_comments":{"href":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls/206/comments"},"review_comment":{"href":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/JuliaDSP/DSP.jl/pulls/206/commits"},"statuses":{"href":"https://api.github.com/repos/JuliaDSP/DSP.jl/statuses/27a9199510cfab76c8d90ea829c7cc003848ba55"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"galenlynch"}}