{"action":"created","issue":{"url":"https://api.github.com/repos/odlgroup/odl/issues/1197","repository_url":"https://api.github.com/repos/odlgroup/odl","labels_url":"https://api.github.com/repos/odlgroup/odl/issues/1197/labels{/name}","comments_url":"https://api.github.com/repos/odlgroup/odl/issues/1197/comments","events_url":"https://api.github.com/repos/odlgroup/odl/issues/1197/events","html_url":"https://github.com/odlgroup/odl/issues/1197","id":266636607,"number":1197,"title":"Solvers API slightly inconsistent","user":{"login":"kohr-h","id":5030250,"avatar_url":"https://avatars2.githubusercontent.com/u/5030250?v=4","gravatar_id":"","url":"https://api.github.com/users/kohr-h","html_url":"https://github.com/kohr-h","followers_url":"https://api.github.com/users/kohr-h/followers","following_url":"https://api.github.com/users/kohr-h/following{/other_user}","gists_url":"https://api.github.com/users/kohr-h/gists{/gist_id}","starred_url":"https://api.github.com/users/kohr-h/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kohr-h/subscriptions","organizations_url":"https://api.github.com/users/kohr-h/orgs","repos_url":"https://api.github.com/users/kohr-h/repos","events_url":"https://api.github.com/users/kohr-h/events{/privacy}","received_events_url":"https://api.github.com/users/kohr-h/received_events","type":"User","site_admin":false},"labels":[{"id":289004173,"url":"https://api.github.com/repos/odlgroup/odl/labels/api%20change","name":"api change","color":"fad8c7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2017-10-18T20:47:36Z","updated_at":"2017-10-19T13:26:33Z","closed_at":null,"author_association":"OWNER","body":"Of the convex solvers we have so far, most have the structure that `f` is not composed, and the compositions with operators happen in the `g` functional(s). Only PDHG does it the other way around.\r\n\r\nShould we change it?\r\n\r\nI'm asking since I'm gonna add linearized ADMM which solves the same problems as PDHG, and I want this to be settled before."},"comment":{"url":"https://api.github.com/repos/odlgroup/odl/issues/comments/337907138","html_url":"https://github.com/odlgroup/odl/issues/1197#issuecomment-337907138","issue_url":"https://api.github.com/repos/odlgroup/odl/issues/1197","id":337907138,"user":{"login":"kohr-h","id":5030250,"avatar_url":"https://avatars2.githubusercontent.com/u/5030250?v=4","gravatar_id":"","url":"https://api.github.com/users/kohr-h","html_url":"https://github.com/kohr-h","followers_url":"https://api.github.com/users/kohr-h/followers","following_url":"https://api.github.com/users/kohr-h/following{/other_user}","gists_url":"https://api.github.com/users/kohr-h/gists{/gist_id}","starred_url":"https://api.github.com/users/kohr-h/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kohr-h/subscriptions","organizations_url":"https://api.github.com/users/kohr-h/orgs","repos_url":"https://api.github.com/users/kohr-h/repos","events_url":"https://api.github.com/users/kohr-h/events{/privacy}","received_events_url":"https://api.github.com/users/kohr-h/received_events","type":"User","site_admin":false},"created_at":"2017-10-19T13:26:33Z","updated_at":"2017-10-19T13:26:33Z","author_association":"OWNER","body":"> My suggestion is either rename to primal_functional, which would solve the naming, or leave names as is and simply keep the argument order the same.\r\n\r\nNot so sure about that. For some algorithms that are not really of primal-dual type (like ADMM?) the names \"primal\" and \"dual\" would be quite a stretch.\r\n\r\n> I think it would be good if our algorithms are consistent. That is more important than the consistency with the papers. \r\n\r\nI fully agree with this. In papers, authors use whatever they like best, and if we mirror every paper notation we end up with a hopeless mess. \r\n\r\nThere's also a practical side to it: when you want to switch between two solvers that handle exactly the same type of problem (like PDHG and ADMM), you shouldn't have to switch the roles of the functionals every time. The same holds when using Forward-Backward or Douglas-Rachford with just one `g` functional.\r\n\r\n> To me, it is more natural that f is composed with an operator as the data term often comes first and f < g in a lexiographic sense. I suppose some of you feel the other way :)\r\n\r\nThis point is perhaps more a matter of taste and practicality. Going with `f` composed and `g` not would mean that we need to change everything except PDHG, the other possibility means only changing PDHG."}}
{"actor":{"display_login":"kohr-h"}}