comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » efficient kernel or masking algorithm ?
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: efficient kernel or masking algorithm ? [message #22759 is a reply to message #22645] Fri, 01 December 2000 00:00 Go to previous messageGo to previous message
Craig Markwardt is currently offline  Craig Markwardt
Messages: 1869
Registered: November 1996
Senior Member
"J.D. Smith" <jdsmith@astro.cornell.edu> writes:
> Ahh yes, multiplication by decimation. Must have missed that one. I
> simply read the comment in your code without looking at the details:
>
>
> ;; *** Multiplication
> (newop EQ '*'): begin ;; Multiplication (by summation of logarithms)
>
> Did you do some time testing and find all that shifted indexing was
> really faster than the logarithm? This I suspect will be very
> architecture dependent. Looks neat though.

The summation of logarithms was never very satisfactory. It never
handled zeroes very well. Since there can be multiplication by
negative numbers you really had to do a complex logarithm. All of
these conversions made it quite slow.

> Maybe I'll write up the 100 lines of C it would take for a shared
> library to do dimensional multiply, sum, add, median, min, max, and, or,
> mode, variance, etc., and send it to RSI. The problem with all of this
> specific "vector-aware" coding, is that it reveals a dirty secret of
> IDL's. It was built to do some vector operations fast, but was never a
> truly generic vector language like APL or J.

Yorick is very similar to IDL, but "better" in a lot of ways. One
thing it has is the ability to write array indices which are
functions. So, if you had a 2 dimensional array, you could get the
MIN along one dimension or the other by doing this:

array[min,*] or array[*,min] [syntax not totally correct]

This is a very compact and meaningful notation. It has all sorts of
functions that can go in there, like cumulative sum, first difference,
etc.

Now, people who want to do complicated sliding variances and medians,
that's a much harder thing to accomplish with a vector language. We
would need a fairly sophisticated "convolution" routine, which might
be hard to optimize.

Craig

--
------------------------------------------------------------ --------------
Craig B. Markwardt, Ph.D. EMAIL: craigmnet@cow.physics.wisc.edu
Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
------------------------------------------------------------ --------------
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: How Computers Represent Floats
Next Topic: Re: Object Graphics+Win2k+nVidia Lockups

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat Oct 11 08:17:45 PDT 2025

Total time taken to generate the page: 1.19860 seconds