Whishlist: version
BMangum
Of course I can achieve the same thing with Igor 6, it just takes longer.
For compatibility it would be nice to have the ability to do something like:
Function igortest()
Make/I/O/N = 1E7 RawData = p
Variable start = startmstimer
if (igorversion() > 6.99)
//stuff that will only work with Igor 7
MatrixOp/O result = bitShift(RawData,-25)
else
//different stuff that will work with igor 6 versions
MatrixOp/O result = RawData/33554432
endif
Variable stop = stopmstimer(start)/1000000
Print stop
End
Make/I/O/N = 1E7 RawData = p
Variable start = startmstimer
if (igorversion() > 6.99)
//stuff that will only work with Igor 7
MatrixOp/O result = bitShift(RawData,-25)
else
//different stuff that will work with igor 6 versions
MatrixOp/O result = RawData/33554432
endif
Variable stop = stopmstimer(start)/1000000
Print stop
End
Note: I use way more of the new function than this in Igor 7, the overall result of the new functions allows for much faster execution (about 50% faster for me).
Of course this code will compile and execute fine in igor 7, but not in igor 6 as there will be unknown flags, functions, etc.
Is there any way to do this already that I don't know about?
Make/I/O/N = 1E7 RawData = p
Variable start = startmstimer
#if (igorversion() > 6.99)
//stuff that will only work with Igor 7
MatrixOp/O result = bitShift(RawData,-25)
#else
//different stuff that will work with igor 6 versions
MatrixOp/O result = RawData/33554432
#endif
Variable stop = stopmstimer(start)/1000000
Print stop
End
For Igor 6.3.8.1
•igortest()
0.0450491
For Igor 7.0.0.3
•igortest()
0.0252351
(Win7 64 bit)
November 11, 2015 at 11:43 am - Permalink
Make/I/O/N = 1E7 RawData = p
Variable start = startmstimer
#if (igorversion() >= 7.0)
//stuff that will only work with Igor 7
MatrixOp/O result = bitShift(RawData,-25)
#else
//different stuff that will work with igor 6 versions
MatrixOp/O result = RawData/33554432
#endif
Variable stop = stopmstimer(start)/1000000
Print stop
End
November 12, 2015 at 07:13 am - Permalink
//stuff that will only work with Igor 7
Function igortest()
Make/I/O/N = 1E7 RawData = p
Variable start = startmstimer
MatrixOp/O result = bitShift(RawData,-25)
Variable stop = stopmstimer(start)/1000000
Print stop
End
#else
//different stuff that will work with igor 6 versions
Function igortest()
Make/I/O/N = 1E7 RawData = p
Variable start = startmstimer
MatrixOp/O result = RawData/33554432
Variable stop = stopmstimer(start)/1000000
Print stop
End
#endif
November 12, 2015 at 07:51 am - Permalink
November 12, 2015 at 03:10 pm - Permalink
Awesome tips.
Problem solved.
November 13, 2015 at 08:39 am - Permalink