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

Home » Public Forums » archive » Re: Little help on arrays - 2nd try
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: Little help on arrays - 2nd try [message #38034] Mon, 16 February 2004 16:56
Craig Markwardt is currently offline  Craig Markwardt
Messages: 1869
Registered: November 1996
Senior Member
=?ISO-8859-2?Q?F=F6ldy_Lajos?= <foldy@rmki.kfki.hu> writes:
>
> oops, just a little correction:
>
> if (min(x-y, max=max) eq max) and (max eq 0) then print, 'bingo!'

This is fine, and I agree it's likely to be faster, but I prefer to
pull the MIN() function call out of the IF statement. IDL doesn't
appear to guarantee the order of execution within statements, so it's
a bit risky to assume that the variable MAX will always be set
properly. [ Although, it does appear to be here. ]

Also, and this is a bit nit-picky, perhaps it's a bit dangerous to use
a variable named MAX, when a built-in function of the same name is
also present is a recipe for confusion, no?

Craig

--
------------------------------------------------------------ --------------
Craig B. Markwardt, Ph.D. EMAIL: craigmnet@REMOVEcow.physics.wisc.edu
Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
------------------------------------------------------------ --------------
Re: Little help on arrays - 2nd try [message #38039 is a reply to message #38034] Mon, 16 February 2004 12:45 Go to previous message
Foldy Lajos is currently offline  Foldy Lajos
Messages: 268
Registered: October 2001
Senior Member
On Mon, 16 Feb 2004, Földy Lajos wrote:

>
> On Mon, 16 Feb 2004, Craig Markwardt wrote:
>
>>
>> Nuno Oliveira <nmoliveira@fc.ul.pt> writes:
>>
>>
>>> How do I compare one array with another? I want to avoid comparing
>>> position per position.
>>>
>>> IDL> if [1,1] eq [1,1] then print, 'bingo!'
>>> % Expression must be a scalar or 1 element array in this context: <BYTE
>>> Array[2]>.
>>> % Execution halted at: $MAIN$
>>
>> The other posters have good ideas. My own idiom for this comparison
>> is:
>>
>> if total(abs(X-Y)) EQ 0 then print, 'bingo!'
>>
>> Craig
>>
>>
>
> Hi,
>
> I think
>
> if min(x-y, max=max) eq max then print, 'bingo!' ; for integer arrays
>
> is about 20% faster for arrays greater than cache memory.
>
> regards,
> lajos
>
>

oops, just a little correction:

if (min(x-y, max=max) eq max) and (max eq 0) then print, 'bingo!'

regards,
lajos
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: Destroying objects
Next Topic: Re: Little help on arrays

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

Current Time: Wed Oct 08 13:49:47 PDT 2025

Total time taken to generate the page: 0.00517 seconds