{"action":"created","issue":{"url":"https://api.github.com/repos/PyWavelets/pywt/issues/187","repository_url":"https://api.github.com/repos/PyWavelets/pywt","labels_url":"https://api.github.com/repos/PyWavelets/pywt/issues/187/labels{/name}","comments_url":"https://api.github.com/repos/PyWavelets/pywt/issues/187/comments","events_url":"https://api.github.com/repos/PyWavelets/pywt/issues/187/events","html_url":"https://github.com/PyWavelets/pywt/issues/187","id":171896067,"number":187,"title":"'reflect' signal extension mode","user":{"login":"JohnLunzer","id":8135795,"avatar_url":"https://avatars.githubusercontent.com/u/8135795?v=3","gravatar_id":"","url":"https://api.github.com/users/JohnLunzer","html_url":"https://github.com/JohnLunzer","followers_url":"https://api.github.com/users/JohnLunzer/followers","following_url":"https://api.github.com/users/JohnLunzer/following{/other_user}","gists_url":"https://api.github.com/users/JohnLunzer/gists{/gist_id}","starred_url":"https://api.github.com/users/JohnLunzer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JohnLunzer/subscriptions","organizations_url":"https://api.github.com/users/JohnLunzer/orgs","repos_url":"https://api.github.com/users/JohnLunzer/repos","events_url":"https://api.github.com/users/JohnLunzer/events{/privacy}","received_events_url":"https://api.github.com/users/JohnLunzer/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/PyWavelets/pywt/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-08-18T13:05:36Z","updated_at":"2016-09-09T08:58:39Z","closed_at":null,"body":"I've noticed that PyWavelets lacks an important signal extension mode, which is `'reflect'`:\r\n\r\nIt would look like this:\r\n`... x3 x2 | x1 x2 x3 ... xn-2 xn-1 xn | xn-1 xn-2 ...`\r\n\r\nThis extension mode is what is prescribed in the DWT section of the JPEG2000 standard. I assume it is used elsewhere as well.\r\n\r\nPlease see `numpy.pad`'s `'reflect'` mode as an additional example:\r\nhttp://docs.scipy.org/doc/numpy/reference/generated/numpy.pad.html\r\n\r\nI believe a mode would need to be added to three of the four steps (those dealing with the edges) in `pywt/_extensions/c/convolution.template.c`.\r\n\r\nI would do this myself but my C is a little rusty and I am time limited at the moment. For someone adept with C I think the existing code for the 'symmetric' mode could serve as a starting point. \r\n\r\nPlease let me know if anyone has any questions."},"comment":{"url":"https://api.github.com/repos/PyWavelets/pywt/issues/comments/245858448","html_url":"https://github.com/PyWavelets/pywt/issues/187#issuecomment-245858448","issue_url":"https://api.github.com/repos/PyWavelets/pywt/issues/187","id":245858448,"user":{"login":"grlee77","id":6528957,"avatar_url":"https://avatars.githubusercontent.com/u/6528957?v=3","gravatar_id":"","url":"https://api.github.com/users/grlee77","html_url":"https://github.com/grlee77","followers_url":"https://api.github.com/users/grlee77/followers","following_url":"https://api.github.com/users/grlee77/following{/other_user}","gists_url":"https://api.github.com/users/grlee77/gists{/gist_id}","starred_url":"https://api.github.com/users/grlee77/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grlee77/subscriptions","organizations_url":"https://api.github.com/users/grlee77/orgs","repos_url":"https://api.github.com/users/grlee77/repos","events_url":"https://api.github.com/users/grlee77/events{/privacy}","received_events_url":"https://api.github.com/users/grlee77/received_events","type":"User","site_admin":false},"created_at":"2016-09-09T08:58:39Z","updated_at":"2016-09-09T08:58:39Z","body":"This is a reasonable request and also appears to be a mode that is supported in recent versions of Matlab (under the name `symw`).\r\n\r\nSee #193 for a proposed implementation."}}
{"actor":{"display_login":"grlee77"}}