IIRC Roger decided that implementing d. in C code was a mistake, because
there are so many possible forms. They could be recognized by a J
adverb that analyzed the operand and produced the correct verb. Then it
would be easy to expand the list.
So we haven't worked much on fixing/extending d.
The real boon would be if you stepped up and wrote that adverb (in J)
that did the work of d. . I will help you if you like. The end result
would be better symbolic integration.
If you make progress, we could think about how to make a J primitive
(d.) turn into an invocation of a user-defined verb: a feature that
would have wide ramifications.
Henry Rich
On 9/28/2017 11:38 PM, 'Jon Hough' via Source wrote:
Looking through cd.c (bearing in mind I am still trying to get my head around
the source code), I noticed d. has missed a lot of low hanging fruit in the
form of
(f * g) d. _1
e.g from around line 337 of cd.c:
static F2(jtintgtymes){A f=a,g=w;
RZ(a&&w);
R A0;
} /* integral of a * w */
d. gives up for pretty much any case of f * g, when it should be possible to
evaluate a lot of expressions, e.g. polynomial * exponential and some trig *
exponential, and some trig * polynomial.
I know symbolic integration is a vipers nest and the complexity can explode,
but it should be possible to add more functionality to d.
I have done some playing around and implemented some functionality (poly *
exp), but still very messy and not worth showing yet. One issue is tidying up
the resulting expression. e.g. rebracketing and factoring out common
expressions.
Anyway, I wonder if it is worth adding more functionality to d.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
---
This email has been checked for viruses by AVG.
http://www.avg.com
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm