-
-
Notifications
You must be signed in to change notification settings - Fork 49
Conversation
Yeah, this looks good to me - at least it's a very good start towards documenting the API we're aiming for, and I think the discussion will benefit from us being able to do it in terms of pull requests with changes to this document. Any idea why the travis build fails? (It's the nightlies build, so it's not unlikely that something has changed due to changes in julia master - I don't see why this PR would cause braking changes...) |
Travis is failing because of #29, so it is not related. |
Drafted some general API documentation
There. Now discussion can continue in more pull requests. |
|
||
Each (adaptive) solver accepts 3 arguments | ||
|
||
- `F`: the RHS of the ODE `dy/dt = F(t,y)`, which is a function of `t` and `y(t)` and returns `dy/dt::typeof(y./t)` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why y./t
rather than y/t
? Division by a scalar should always be defined (though we could also write it as y*inv(t)
), and I think we should specify that t
will be a scalar.
(In principle, you could have an interface where a vector of times are passed, but this is more important in languages that rely on vectorization for performance. It greatly simplifies the implementation of F
if you know that t
will always be a scalar.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because of JuliaLang/julia#5810. If you think "Division by a scalar should always be defined", you must raise your concern there. (Or maybe I'm just plaint wrong, in which case you should tell me here)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A/α
is still defined. JuliaLang/julia#5810 only deprecated α/A
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, I was confused in that regard. Thanks for the clarification. I'll change this.
I think the time has now come to try to agree on some sort of document that describes the basic elements of a ODE solver interface in Julia.
The long discussions in the last few issues, has been very enlightening, but very hard to follow by outsiders who just wonder what the result of the discussion was.
I think this should be merged fairly soon, and then we can discuss details in later PR/issues. I have definitely ignored a few arguments, so please put them back in if you feel strongly for them.