{"action":"created","issue":{"url":"https://api.github.com/repos/invenia/Nabla.jl/issues/105","repository_url":"https://api.github.com/repos/invenia/Nabla.jl","labels_url":"https://api.github.com/repos/invenia/Nabla.jl/issues/105/labels{/name}","comments_url":"https://api.github.com/repos/invenia/Nabla.jl/issues/105/comments","events_url":"https://api.github.com/repos/invenia/Nabla.jl/issues/105/events","html_url":"https://github.com/invenia/Nabla.jl/issues/105","id":371814886,"node_id":"MDU6SXNzdWUzNzE4MTQ4ODY=","number":105,"title":"Handling of chol and mapreducedim in the 0.7 new world order","user":{"login":"ararslan","id":6396159,"node_id":"MDQ6VXNlcjYzOTYxNTk=","avatar_url":"https://avatars1.githubusercontent.com/u/6396159?v=4","gravatar_id":"","url":"https://api.github.com/users/ararslan","html_url":"https://github.com/ararslan","followers_url":"https://api.github.com/users/ararslan/followers","following_url":"https://api.github.com/users/ararslan/following{/other_user}","gists_url":"https://api.github.com/users/ararslan/gists{/gist_id}","starred_url":"https://api.github.com/users/ararslan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ararslan/subscriptions","organizations_url":"https://api.github.com/users/ararslan/orgs","repos_url":"https://api.github.com/users/ararslan/repos","events_url":"https://api.github.com/users/ararslan/events{/privacy}","received_events_url":"https://api.github.com/users/ararslan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-10-19T05:45:26Z","updated_at":"2018-10-19T12:10:03Z","closed_at":null,"author_association":"MEMBER","body":"In going through #101, I've found two functions we handle in `∇` which are posing issues that are not straightforward to resolve:\r\n\r\n* `chol`. We have code in place to compute sensitivities of the Cholesky factorization using `chol` in Julia 0.6, which returns a matrix. In Julia 0.7 this is called `cholesky`, but the dilemma is that it returns a `Cholesky` factorization object, which does not participate in most algebraic operations. To fully recover the behavior of 0.6's `chol(X)`, you need `cholesky(X).U`.\r\n\r\n  Now, it is pretty straightforward to make `∇(cholesky, ...)` return a `Cholesky` object; that's not a problem. The complication comes with how the result of the function is used: much of the machinery, particularly `compute_Dv`, seems to assume that the result of the function [can be multiplied](https://github.com/invenia/Nabla.jl/blob/master/src/finite_differencing.jl#L52) by a scalar or vector. This is not true of `Cholesky` objects.\r\n\r\n* `mapreducedim`. We allow `Node`s in the arguments corresponding to the input array and the dimension. In Julia 0.7, `mapreducedim` is deprecated in favor of `mapreduce` with a `dims` keyword. Julia does not currently dispatch on keyword arguments, which means that all of the machinery we have in place here for handling `Node`s as particular arguments doesn't go so smoothly if the argument we want to be a `Node` is a keyword argument.\r\n\r\n  Similarly, we're defining the method for `sum` which takes a dimension in terms of our overloaded `mapreduce`, but that too became a keyword argument in 0.7.\r\n\r\nThose seem to be the only blocking issues at the moment for 0.7 support in this package. Let me know what the best course of action is for these items and I'll get things updated.\r\n\r\ncc @willtebbutt, @eperim "},"comment":{"url":"https://api.github.com/repos/invenia/Nabla.jl/issues/comments/431341854","html_url":"https://github.com/invenia/Nabla.jl/issues/105#issuecomment-431341854","issue_url":"https://api.github.com/repos/invenia/Nabla.jl/issues/105","id":431341854,"node_id":"MDEyOklzc3VlQ29tbWVudDQzMTM0MTg1NA==","user":{"login":"eperim","id":22550528,"node_id":"MDQ6VXNlcjIyNTUwNTI4","avatar_url":"https://avatars0.githubusercontent.com/u/22550528?v=4","gravatar_id":"","url":"https://api.github.com/users/eperim","html_url":"https://github.com/eperim","followers_url":"https://api.github.com/users/eperim/followers","following_url":"https://api.github.com/users/eperim/following{/other_user}","gists_url":"https://api.github.com/users/eperim/gists{/gist_id}","starred_url":"https://api.github.com/users/eperim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eperim/subscriptions","organizations_url":"https://api.github.com/users/eperim/orgs","repos_url":"https://api.github.com/users/eperim/repos","events_url":"https://api.github.com/users/eperim/events{/privacy}","received_events_url":"https://api.github.com/users/eperim/received_events","type":"User","site_admin":false},"created_at":"2018-10-19T12:10:03Z","updated_at":"2018-10-19T12:10:03Z","author_association":"CONTRIBUTOR","body":"@wesselb may want to see this as well."}}
{"actor":{"display_login":"eperim"}}