22 Sep 2012 06:24 PM |
|
Here is a tiny snippet I used to test the speed of IDL. Originally I thought it would be slow. However it turned out that it was even worse: IDL didn't give correct result!
Code:
x = interpol([-10d, 10d] * !dpi, 1d8)
y = sin(x)
t1 = systime(/sec)
plot, x, y
t2 = systime(/sec)
print, t2 - t1
The code is supposed to plot a sine curve between -10pi and 10pi. However, the *plot* procedure only gave less than 2 cycles of the correct curve (about 20% of the whole curve).
My platform is IDL 8.2 + OS X 10.8 (Mountain Lion).
|
|
|
|
Deleted User New Member
Posts:  
05 Oct 2012 04:27 PM |
|
Dear Jianbao,
Your line of code works fine in Windows 7 64bit.
I have tried it in a iMac 64bit with 10.8 and the result is good as well.
I'm wondering if you need to upgrade the X11 version (Xquartz 2.7.4)?.
Cheers,
Fernando
Exelis VIS
|
|
|
|
Deleted User New Member
Posts:20  
08 Oct 2012 07:38 AM |
|
Dear Fernando,
I was quite curious to see Exelis Vis' response to this question, for the line of code doesn't work on my station either.
I'm running IDL 8.2 on a Windows 7, 64bit machine (Intel Xeon E5620, 12 GB RAM).
So, how's that possible?
Cheers,
Wouter
|
|
|
|
Deleted User New Member
Posts:33  
15 Oct 2012 02:30 PM |
|
The problem is in interpol(), in the findgen() call. If findgen() is replaced with dindgen() in the interpol routine, then your results work.
The math is a bit strange, too. I don't know why they subtract 1.0 from nout in the denominator; seems better mathematically to subtract 1 which the long nout (or long long, I guess) can deal with.
|
|
|
|
Deleted User New Member
Posts:33  
15 Oct 2012 02:50 PM |
|
In fact, for my version/OS of IDL, findgen stops incrementing at index 16777216; I'm on a MacOSX Lion, IDL is 8.0.
|
|
|
|