-----Original Message-----
From: [email protected]
Sent: Wednesday, September 30, 2015 11:28 AM
To: Chris Marshall ; perldl
Subject: Re: [Pdl-general] CHM/PDL-2.013_01.tar.gz uploaded to CPAN
> There's also problems with my long double builds of perl on Windows.
No problems when nvtype is "double".
45 of the test scripts are failing because whichdatatype_double(), which is
found in Basic/Core/pdlcore.c, croaks when called with an argument whose
finite floating point decimal value cannot be expressed exactly in base 2.:
Something's gone wrong: 0.000000 cannot be converted by whichdatatype_double
at C:\sisyphusion\PDL-2.013_01\blib\lib/PDL/
(The arg is not zero - it's just that "%lf" does not display the correct
value.)
whichdatatype_double looks like:
##########################
int pdl_whichdatatype_double (NV nv) {
TESTTYPE(PDL_F,PDL_Float)
TESTTYPE(PDL_D,PDL_Double)
if( !finite(nv) ) { return PDL_D; }
croak("Something's gone wrong: %lf cannot be converted by
whichdatatype_double",
nv);
}
##########################
where TESTTYPE is defined as:
#define TESTTYPE(b,a) {a foo = nv; if(nv == foo) return b;}
Given that PDL_Float is 4 bytes, PDL_Double is 8 bytes and NV is 16 bytes,
it should come as no surprise that TESTTYPE should fail to return for any
finite floating point decimal value that cannot be expressed exactly in base
2.
However, the reason that 2.013 succeeds for nvtype='long double' is that
whichdatatype_double() simply does NOT get called at any stage (during the
running of its test suite, at least) .
So ... the question becomes "Why does the PDL-2.013_01 test suite call
whichdatatype_double() at least 45 times when the nvtype is 'long double' ?"
This is not a Windows-only issue. There aren't many cpan-testers
running -Duselongdouble builds, but there's a report from one at:
http://www.cpantesters.org/cpan/report/3b328b0e-66d3-11e5-a1a3-e32696b0373b
and the same thing is happening there.
Cheers,
Rob
------------------------------------------------------------------------------
_______________________________________________
pdl-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pdl-general