digitalmars.D - facilitating automatic differentiation
- Dominic Jones (14/14) Oct 20 2011 I have worked on differentiating algorithms written in Fortran 90/95
- Norbert Nemec (9/23) Oct 20 2011 Do you mean in the sense of symbolic algebraic transformations at
- Don (4/30) Oct 20 2011 From my reading of the website, it seems to be about getting the
I have worked on differentiating algorithms written in Fortran 90/95 using Tapenade (http://www-sop.inria.fr/tropics/tapenade.html) with moderate success. For more expressive languages the source transformation process rapidly tends towards the impossible. However, I speculate that in D some of its language features (e.g. mixin, scope) may facilitate differentiation without recourse to an external tool. I don't know D well enough, and I am not familiar with the possible trickery that can be done with such a language, but if there is someone who does have some understanding of automatic differentiation and is competent with D, I'd be very interested in your comments as to whether or not such a pursuit is worthwhile. Thank you Dominic Jones
Oct 20 2011
Do you mean in the sense of symbolic algebraic transformations at compile time? D would be the prime candidate for that. If you just want to go for a small solution for your specific problem, it should actually be quite straightforward to hack up. A more generic approach like a library should be a fascinating project. I could imagine that this kind of project would lead you very quickly very deep into the design philosophy of the language. I can only encourage you to try it out. On 20.10.2011 12:13, Dominic Jones wrote:I have worked on differentiating algorithms written in Fortran 90/95 using Tapenade (http://www-sop.inria.fr/tropics/tapenade.html) with moderate success. For more expressive languages the source transformation process rapidly tends towards the impossible. However, I speculate that in D some of its language features (e.g. mixin, scope) may facilitate differentiation without recourse to an external tool. I don't know D well enough, and I am not familiar with the possible trickery that can be done with such a language, but if there is someone who does have some understanding of automatic differentiation and is competent with D, I'd be very interested in your comments as to whether or not such a pursuit is worthwhile. Thank you Dominic Jones
Oct 20 2011
On 20.10.2011 20:39, Norbert Nemec wrote:Do you mean in the sense of symbolic algebraic transformations at compile time? D would be the prime candidate for that.From my reading of the website, it seems to be about getting the derivative of a function which is specified in *source code* rather than *algebraically*! Weird stuff.If you just want to go for a small solution for your specific problem, it should actually be quite straightforward to hack up. A more generic approach like a library should be a fascinating project. I could imagine that this kind of project would lead you very quickly very deep into the design philosophy of the language. I can only encourage you to try it out. On 20.10.2011 12:13, Dominic Jones wrote:I have worked on differentiating algorithms written in Fortran 90/95 using Tapenade (http://www-sop.inria.fr/tropics/tapenade.html) with moderate success. For more expressive languages the source transformation process rapidly tends towards the impossible. However, I speculate that in D some of its language features (e.g. mixin, scope) may facilitate differentiation without recourse to an external tool. I don't know D well enough, and I am not familiar with the possible trickery that can be done with such a language, but if there is someone who does have some understanding of automatic differentiation and is competent with D, I'd be very interested in your comments as to whether or not such a pursuit is worthwhile. Thank you Dominic Jones
Oct 20 2011