[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: multiplication



meron@cars3.uchicago.edu wrote:
> 
> In article <38E03BDC.868B8396@hotmail.com>, marc <m_schellens@hotmail.com> writes:
> >Is there a function like TOTAL but for multiplication.
> >Like the big PI symbol in mathematical notation.
> >Or this really something for the for loop?
> >
> >I.E.
> >
> >a=[1,2,3,...]
> >
> >result=a[1]*a[2]*a[3]...
> >
> if all the elements of a are positive then you can simply do
> 
> result = exp(total(alog(a)))
...
> If some of the elements are negative, you can still handle it.  do
> 
> dum = where(a lt 0, ndum)
> sig = (-1)^ndum
> result = sig*exp(total(alog(abs(a))))

You can't honestly be suggesting that this is a good technique? Ignore
for a momement what happens if any element of 'a' is 0. That code
performs two transcendental function evaluations per element of 'a'. IDL
would have to be very badly engineered (which I suppose is possible),
for a 'for' loop to execute more slowly than your code.