Re: DSL to C code generation with symbolic computations en route
Jerzy Karczmarczuk <[email protected]>
| Newsgroups | gmane.comp.lang.racket.user,gmane.lisp.scheme.plt |
|---|---|
| Message-ID | <[email protected]> |
Hello. About the automatic differentiation /encore/ Le 20/04/2016 18:02, Hendrik Boom a écrit : > Instead of eveluating the function at x = 1, > you essentially symbolically evaluate it at 1 + dx. The key here is > that you use the algebra of differentials instead of the arithmetic of > numbers. Yes, more or less, although this is one of numerous interpretations of the process. You may map your numerical domain into the dual numbers of Clifford (Wipedia duly mentions the relation to auto. diff.) or do some specific processing of the original source code, which is not easy to interpret mathematically. Some hundreds years ago I implemented the lazy generalization of this "x + dx" idea, constructing in Haskell the closed differential algebra based on "infinite" lists, permitting (in principle) to compute ALL the derivatives at a given point. The complexity of higher derivatives could be quite nasty, although the co-recursive algorithmization of the technique was extremely compact, and, I think, elegant... == And educated gentlemen should know also a bit something about the *reverse* automatic differentiation, which is algorithmically very different from the standard "forward" one. The reverse technique is a kind of "time vehicle", and it is a fascinating subject. Jerzy Karczmarczuk -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected] For more options, visit https://groups.google.com/d/optout.