Dear PDL folks, PDL 2.040 has just been uploaded to CPAN. Notable additions since the last announcement:
* Continuing the GSL trend, there is now a (slightly minimal) PDL::GSL::LINALG. It only has basic LU decomp and solver, and a real-only tridiagonal solver – to my great surprise, GSL does not currently have a complex one, which renders it not useful for e.g. Photonic. I have filed an issue offering to implement one. * The “core version” has been bumped, due to adding various values to the Core structure. This will mean needing to reinstall your compiled PDL extensions, sorry. * BADVAL_PER_PDL is permanently on now (see below, you can use NaN as the bad value now) * Added ->floatsuffix and ->isnan methods to PDL::Type * Most PDL::Primitive functions have been updated to support native complex types, so e.g. complex matrix multiplication works right. * lu_backsub docs have working examples of actual usage, with comparisons with PDL::Slatec, PDL::LinearAlgebra, and the new PDL::GSL::LINALG routines. * The various “set” and “badvalue” methods can take PDL objects, of which the zero-th value will be used. * “badvalue” returns a PDL object, no longer a Perl value * When returning, or taking for initialisation, Perl values for complex values, Math::Complex objects (or in fact a tiny subclass) values are used. Notable bugfixes: * cfloat comparison was wrong, fixed by the pdl.h tidy-up * The “complex” type qualifier didn’t work completely Notable removals: * Two module dependencies have been dropped which should make for faster installs with no loss of functionality * BADVAL_USENAN is gone but you can set NaN as the bad value for floating-point PDL objects and it works right * Special cases for MS compilers <= 1400, which is from 2005. Native complex support, which we now require, they only supported from the 2015 release, so we lose nothing in supported version by this change. Notable tidy-ups: * Now the C99 isnan() function is used to detect NaNs, not isfinite(), which is more correct. * pdl.h’s various per-type things are no longer manually written, but generated from the PDL::Type definitions, which will aid adding new types. Many function definitions have also been generalised using these techniques, with the same effect. * renaming PDL objects in the docs to “ndarrays” As usual, please try it out, and report any issues! Best regards, Ed
_______________________________________________ pdl-devel mailing list pdl-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pdl-devel