Hi,

This has been reported at https://rt.perl.org/Public/Bug/Display.html?id=132347 . That particular ticket is now closed, as it's encompassed in https://rt.perl.org/Public/Bug/Display.html?id=132385

Test 13 ("patchbad2d") fails.

The problem is with line 118 of t/image2d.t:
   $m .= $pa->badvalue;

With perl-5.26.0 that produces a $m that looks like:

[
[-1.7976931e+308 -1.7976931e+308 -1.7976931e+308]
[-1.7976931e+308 -1.7976931e+308 -1.7976931e+308]
[-1.7976931e+308 -1.7976931e+308 -1.7976931e+308]
]

whereas, with current blead, we get:

[
[-Inf -Inf -Inf]
[-Inf -Inf -Inf]
[-Inf -Inf -Inf]
]

For both of those perls $m is identical and $pa->badvalue is reported as -1.79769313486232e+308 - hence the difference is in the overloading of the .= operator.

Both blead and 5.26 recognize that $pa->badvalue == POSIX::DBL_MAX * -1.0, so it's rather puzzling that $pa->badvalue should end up as -Inf. However "-1.79769313486232e+308" when assigned to a double (rounded to nearest) is actually less than POSIX::DBL_MAX * -1.0, so '-Inf' is perhaps not so surprising after all.
OTOH, -1.7976931e+308 is greater than POSIX::DBL_MAX * -1.0 :

C:\>perl -e "print -1.79769313486232e+308;"
-Inf
C:\>perl -e "print -1.7976931e+308;"
-1.7976931e+308

Additionally, in the course of taking a quick look at this, I discovered that:

   $m .= $pa->badvalue;
and
   $m = $m . $pa->badvalue;

do not do the same thing.
I find that very surprising. (And it's like that on perl-5.26, not just blead.)

Cheers,
Rob





------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
pdl-devel mailing list
pdl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pdl-devel

Reply via email to