On Tue, Jan 3, 2012 at 4:34 PM, David Mertens <[email protected]> wrote:
>
>
> On Tue, Jan 3, 2012 at 3:18 PM, Douglas Burke <[email protected]>
> wrote:
>>
>> On 1/2/12 11:18 PM, David Mertens wrote:
>>
>>> Because PDL doesn't like boolean evaluations **except for single-element
>>> piddles**, this expression will croak if $a is anything more than a
>>> one-dimensional vector. Have you tried running that conditional when $a
>>> is more complex? For example, if $a is a matrix, this will croak.
>>> Something I didn't realize, but just learned messing with this, is that
>>> a single BAD value is considered boolean false. That's more clever than
>>> I had expected. :-)
>>>
>>>
>>
>> It's kind-of discussed in
>>
>>
>> http://pdl.perl.org/PDLdocs/BadValues.html#bad_values_and_boolean_operators
>>
>> (or, perhaps, this is out of date and needs re-writing), but it may well
>> make sense for someone (not me, as I don't have the energy) to move the
>> operational/useful parts of this document to PDL::Bad, leaving the BadValues
>> document more for the
>> implementation/you-don't-need-to-read-this-to-just-use-it documentation. I
>> can't remember if the docs for PDL::Bad is empty if support is not included,
>> and - of so - whether it is that serious an issue (since if you don't have
>> the support compiled in then you don't really need to know about how it
>> works).
>>
>>> In PDL 2.4.10, you should be able to return pdl('bad'). That's a recent
>>> implementation of mine. :-) Alternatively, perhaps PDL should add BAD to
>>> PDL::Constants (as well as INF, for that matter).
>>
>>
>> As the bad-value can be changed for the integer types (and even
>> floating-point types, depending on how the code is built), I'm not sure that
>> you can really treat it as a constant, but this comment comes after spending
>> all of 5 seconds thinking about the matter, so I may well be missing
>> something completely obvious here ;-)

Yes, that is why it is not in there.  Even IEEE values like Inf and NaN
can be ambiguous.

> Oh yeah, we discussed recently, perhaps on the porters list, didn't we?
> *Assigning* a bad value to a piddle does not turn on the bad flag to the
> left-hand-side, so it may not work as expected. However, it should work just
> fine if you simply want to return a bad value.
>
> David

_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to