In order to let recur produce the right results in the general case, the
recurrence relation should be

r[0] is a[0]
r[i] is a[i] + m[i] times r[i-1]          (i >0)


R.E. Boss


> -----Oorspronkelijk bericht-----
> Van: [EMAIL PROTECTED] [mailto:programming-
> [EMAIL PROTECTED] Namens Mike Powell
> Verzonden: zondag 9 maart 2008 4:09
> Aan: Programming forum
> Onderwerp: Re: [Jprogramming] Is there a tacit version EMA?
> 
> 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
> 
> Mike Powell
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to