I am confused of the relative speed. The two reverses in the explict algorithm is insignificant,and we also ignore additions.Then the explict algorithm has 2*n multiplications,and Mike's algorithm has 3*n multiplication + n divisions.But it's speed is about 10x the speed of the explict algorithm.What's wrong?
2008/3/10, Roger Hui <[EMAIL PROTECTED]>: > > Where it came from before that, I know not. > > > I first saw the algorithm in the APL Quote-Quad magazine > in the 1970's. I'll see if I can find it in my (incomplete) > collection of Quote-Quads. > > > > > ----- Original Message ----- > From: Mike Powell <[EMAIL PROTECTED]> > Date: Saturday, March 8, 2008 19:09 > Subject: Re: [Jprogramming] Is there a tacit version EMA? > To: Programming forum <[email protected]> > > > Xu, > > > > Your EMA question is related to algorithms for linear > > recurrence > > relations. There is a much loved algorithm (probably because > > it's > > usually found to be lean and mean) that I first encountered at > > IP > > Sharp in a newsletter quiz. We used it all over the place, > > particularly wherever a present value or discounted cash flow > > was in > > play. Where it came from before that, I know not. It goes like this. > > > > If you have a linear recurrence relation of the form: > > > > r[0] is m[0] times a[0] > > r[i] is a[i] + m[i] times r[i- > > 1] (i >0) > > > > then this can be calculated in vector languages in the following way: > > > > a recur m;t > > t is timesscan m > > r is t times plusscan a div t > > > > I'd be most interested to see a J algorithm for this, > > particularly a > > tacit one. I note that we have a reflexive piece (t) and that > > there > > may be an opportunity for an inverse (* and %). > > > > As far as the EMA is concerned, I suggest Xu's original > > requirement is > > solved with: > > > > (y[0] , k times 1 drop y) recur (length y) replicate 1 - k > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
