On Mon, Feb 23, 2009 at 5:04 AM, Andrew Ross <[email protected]> wrote: > > Hez, > > Thanks for this. You've got me started thinking about something that has > been on my todo list for a long time. Actually, it may not be as much > work as I had assumed. It is not just plimage that has to worry about > these issue - at least plline and plcont / plshade have problems too. > plgriddata also doesn't handle nan's well. > > A couple of comments about your patch. > > 1) isnan / isinf are only defined in the C99 standard and so are not > available for all compilers. We already have a test for isnan in place and > provide a replacement. We would need to do something similar with isinf. > > 2) I'm not sure in principle whether a max / min function should exclude > +/- inf values. These do behave correctly with respect to ordering, i.e. > -inf < real / double number < inf. Of course from the point of view of > plotting you want the finite max/min, which is perhaps a different thing. > NaN's return false for any comparison and hence should be filtered out > anyway by the test. > > Can you leave this with me for now and I'll try and integrate it along > with further NaN / inf changes in the near future? > > Thanks > > Andrew
Andrew, Thank you for the detailed reply. I'd be happy to leave the final implementation with you on this and provide whatever testing or assistance would be useful. Regarding your comments: 1) I thought that isnan and isinf were C99 standards, thank you for clarifying this. An isinf replacement would be useful as infinite values will wreck the automatic color scaling in plimage unless they are either filtered or somehow handled explicitly. 2) The plMinMax2dGrid function changes are there largely to go along with my comment in (1) in its filtering of +/- infinity. But perhaps a better method would be to provide an (internal) min/max function which filters inf and nan values and either leave plMinMax2dGrid as is or just update to filter nan values. At least plimage needs finite limits to function properly. Regarding NaNs being filtered out in plMinMax2dGrid - I'm not sure that they would if a NaN is the first element in the array. The comparisons would then always return false so the nan would filter through as both the minimum and maximum values. I think you are correct that the NaN check in the inner for loop could be removed. The original patch is something I added to my local PLplot installation because I have been repeatedly bitten by strange plot results and/or segfaults related to NaNs and/or infinite values slipping through to PLplot function calls. Again, I would be happy to help in the testing or implementation of these updates. Thank you again for the comments. Hez -- Hezekiah M. Carty Graduate Research Assistant University of Maryland Department of Atmospheric and Oceanic Science ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Plplot-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/plplot-devel
