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

Home » Public Forums » archive » smooth() bug in (at least) version 8.5.1
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: smooth() bug in (at least) version 8.5.1 [message #93943 is a reply to message #93939] Fri, 02 December 2016 10:38 Go to previous messageGo to previous message
Burch is currently offline  Burch
Messages: 28
Registered: December 2013
Junior Member
On Friday, December 2, 2016 at 8:03:27 AM UTC-6, Helder wrote:
> Hi,
> I came across this bug and it's a "heavy" one, meaning that IDL crashes and you're thrown back out.
>
> The crashing commands are (try at own risk!):
> sm = smooth(indgen(512,511), 9, /edge_mirror)
> sm = smooth(indgen(512,510), 9, /edge_mirror)
>
> And just to be pedantic, I've tested a few other cases and these did NOT result in a crash:
> sm = smooth(indgen(512,512), 9, /edge_mirror)
> sm = smooth(indgen(511,511), 9, /edge_mirror)
>
> It appears that smooth (stopped?) being able to smooth rectangular arrays.
>
> By running the above from the command line I get the following error (for a couple of seconds on the command line terminal):
> % Array has a corrupted descriptor: <no name>
> % Execution halted at: $Main$
>
> And my IDL version.
> IDL> !version
> {
> "ARCH": "x86_64",
> "OS": "Win32",
> "OS_FAMILY": "Windows",
> "OS_NAME": "Microsoft Windows",
> "RELEASE": "8.5.1",
> "BUILD_DATE": "Nov 14 2015",
> "MEMORY_BITS": 64,
> "FILE_OFFSET_BITS": 64
> }
>
> I others are brave enough, could you let me know if it crashes on other versions of IDL? Edge_mirror and _wrap have been added only in 8.1.
>
> Cheers,
> Helder

It failed for me too. However, I was able to work around it by doing the following:

IDL> arr = indgen(512,511)
IDL> sm1 = smooth(arr, [9,1], /edge_mirror)
IDL> sm2 = smooth(sm1, [1,9], /edge_mirror)

Interestingly, this only failed for me when using integer types. For example, when using floats it worked fine:

IDL> arrFloat = float(arr)
IDL> smFloat = smooth(arrFloat, 9, /edge_mirror)

and to show that I get the same answer as above (at least in this case) by smoothing along each dimension in separate commands:

IDL> smFLoat1 = smooth(arrFloat, [9,1], /edge_mirror)
IDL> smFloat2 = smooth(smFloat1, [1,9], /edge_mirror)
IDL> print, moment(smFloat2 - smFloat)
0.00000 0.00000 NaN NaN

IDL> !version
{
"ARCH": "x86_64",
"OS": "darwin",
"OS_FAMILY": "unix",
"OS_NAME": "Mac OS X",
"RELEASE": "8.5",
"BUILD_DATE": "Jul 7 2015",
"MEMORY_BITS": 64,
"FILE_OFFSET_BITS": 64
}

-Jeff
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: For..Do loop. IDL Beginner
Next Topic: Is it possible to get a free version of coomand line IDL program ?

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

Current Time: Wed Oct 08 14:07:38 PDT 2025

Total time taken to generate the page: 0.00226 seconds