{"action":"created","issue":{"url":"https://api.github.com/repos/PerezHz/TaylorIntegration.jl/issues/31","repository_url":"https://api.github.com/repos/PerezHz/TaylorIntegration.jl","labels_url":"https://api.github.com/repos/PerezHz/TaylorIntegration.jl/issues/31/labels{/name}","comments_url":"https://api.github.com/repos/PerezHz/TaylorIntegration.jl/issues/31/comments","events_url":"https://api.github.com/repos/PerezHz/TaylorIntegration.jl/issues/31/events","html_url":"https://github.com/PerezHz/TaylorIntegration.jl/pull/31","id":251801669,"number":31,"title":"Macro wizardry to improve performance","user":{"login":"lbenet","id":5237744,"avatar_url":"https://avatars0.githubusercontent.com/u/5237744?v=4","gravatar_id":"","url":"https://api.github.com/users/lbenet","html_url":"https://github.com/lbenet","followers_url":"https://api.github.com/users/lbenet/followers","following_url":"https://api.github.com/users/lbenet/following{/other_user}","gists_url":"https://api.github.com/users/lbenet/gists{/gist_id}","starred_url":"https://api.github.com/users/lbenet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lbenet/subscriptions","organizations_url":"https://api.github.com/users/lbenet/orgs","repos_url":"https://api.github.com/users/lbenet/repos","events_url":"https://api.github.com/users/lbenet/events{/privacy}","received_events_url":"https://api.github.com/users/lbenet/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":98,"created_at":"2017-08-22T00:00:48Z","updated_at":"2018-04-27T21:36:40Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/PerezHz/TaylorIntegration.jl/pulls/31","html_url":"https://github.com/PerezHz/TaylorIntegration.jl/pull/31","diff_url":"https://github.com/PerezHz/TaylorIntegration.jl/pull/31.diff","patch_url":"https://github.com/PerezHz/TaylorIntegration.jl/pull/31.patch"},"body":"This is work in process towards getting better performance when using `taylorinteg`. I'm just opening this for testing, clarifying cases where the current implementation may not work, for criticism and improvements (among other, about naming of the macro and functions). :-)\r\n\r\nThe basic usage is through the macro `@taylorize_ode` which should be used in front of the function defining the equations of motion:\r\n```julia\r\n@taylorize_ode function eqdiff!(t, x, dx)\r\n...\r\nend\r\n```\r\n\r\nThis defines a new method of `TaylorIntegration.jetcoeffs!` (but eventually there will be more), which is so constructed to use less memory, and compute only once each Taylor coefficient of the expansion. The new method may be called (if it exists), which is done internally at `TaylorIntegration.taylorstep!`.\r\n\r\nThere are still some things to be done, which I am working at at the moment, aside from what it may be discussed here. Among others I mention extend what it has been done to also work with complex dependent variables, or for jettransport. Also, currently the macro does not get generated if the body of the function contains `for` loops, conditionals, and perhaps other possibilities of the language. The possibility for simple tests of the new methods, and documentation clarifying some style of the function which is assumed are also lacking.\r\n\r\nOnce said all this, I should mention that the tests I have performed show in simple cases  improvements of a factor 4-9 in timing, and something close to ~1/10 in the number of allocations, which scales with the number of equations. So this is really promising. Note that this requires TaylorSeries.jl using what has been coded in the branch \"mutating_functions\".\r\n\r\nFeedback will be appreciated."},"comment":{"url":"https://api.github.com/repos/PerezHz/TaylorIntegration.jl/issues/comments/385100597","html_url":"https://github.com/PerezHz/TaylorIntegration.jl/pull/31#issuecomment-385100597","issue_url":"https://api.github.com/repos/PerezHz/TaylorIntegration.jl/issues/31","id":385100597,"user":{"login":"PerezHz","id":12105713,"avatar_url":"https://avatars3.githubusercontent.com/u/12105713?v=4","gravatar_id":"","url":"https://api.github.com/users/PerezHz","html_url":"https://github.com/PerezHz","followers_url":"https://api.github.com/users/PerezHz/followers","following_url":"https://api.github.com/users/PerezHz/following{/other_user}","gists_url":"https://api.github.com/users/PerezHz/gists{/gist_id}","starred_url":"https://api.github.com/users/PerezHz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PerezHz/subscriptions","organizations_url":"https://api.github.com/users/PerezHz/orgs","repos_url":"https://api.github.com/users/PerezHz/repos","events_url":"https://api.github.com/users/PerezHz/events{/privacy}","received_events_url":"https://api.github.com/users/PerezHz/received_events","type":"User","site_admin":false},"created_at":"2018-04-27T21:36:40Z","updated_at":"2018-04-27T21:36:40Z","author_association":"OWNER","body":"> I've created a PR for Espresso v0.4.2: JuliaLang/METADATA.jl#14386\r\n\r\nMany thanks, @dfdx !"}}
{"actor":{"display_login":"PerezHz"}}