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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.