Eric Firing wrote:
> John Hunter wrote:
>   
>> On Tue, Aug 5, 2008 at 3:46 PM, Mark Bakker <[EMAIL PROTECTED]> wrote:
>>
>>     
>>> But if I replace the Inf by a nan: y[2] = np.nan, then it plots fine.
>>>
>>> I know, I know, I can do this with masked arrays, but it cannot be that hard
>>> to make this work correctly, and wouldn't that be much nicer? Desirable?
>>>       
>> The question is: what should happen with inf?  Do you know what matlab does?
>>     
>
> Matlab ignores it, same as with a nan.
>
> This needs a bit of thought and checking.  Mike went to some trouble, I 
> believe, to make nans work without running everything through masked 
> arrays--whether this is actually *faster* than doing an initial masking 
> operation when needed and then using masked arrays everywhere internally 
> when bad values are present, I don't know.  
It definitely was faster at the time I implemented it (particularly as 
the arrays get larger).  The difference is that masked arrays must be 
handled in Python, and converted to regular arrays before passing on to 
the Agg backend by performing a compress (which implies a memcpy) and 
inserting MOVETO codes in the appropriate place.  (I don't know if the 
new masked arrays have a C API we could use -- the old ones apparently 
didn't.) 

With the Agg backend, NaNs are all handled in C code -- the iterator 
over the array just skips over them, so there's no memory copy.  (The 
other backends still use Python, so the difference is probably a wash.)
> It is possible that 
> everything could be made to work with infs simply by changing all 
> "isnan(x)" to "~isfinite(x)", which has the advantage of being slightly 
> faster (surprisingly) as well as more general.
>   
As long as we can do the equivalent in C, that seems fine.  _path.cpp's 
get_path_extents is probably the most important place to be updated -- it 
currently doesn't even support NaNs.  And then, of course, we'll need to update 
the "isnan" stuff in agg_py_path_iterator.h

Cheers,
Mike


-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to