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

Reply via email to