v1.23.26 Fri, 20 Dec 2024 10:55:18 +0100
	+ allow ccs_accum_sumover() to accept empty nzValsIn
	+ add tests for https://github.com/moocow-the-bovine/PDL-CCS/issues/14
	+ set out_type=>indx for ccs_accum_nbad() - https://github.com/moocow-the-bovine/PDL-CCS/issues/6

v1.23.25 Thu, 14 Nov 2024 16:29:14 +0100
	+ fix embarrassing typo in ChangeLog

v1.23.24 Thu, 14 Nov 2024 16:06:52 +0100
	+ PR #13 if want $PDL::VERSION, load PDL
	+ PR #12 ccs_pointerlen removal
	  - keep pure-perl PDL::CCS::Functions::ccs_pointerlen for paranoia reasons

v1.23.23 Wed, 15 May 2024 21:51:55 +0200 mohawk2
	+ PR #8: no strict "refs" instead of string-eval
	+ PR #9: switch from $PP() to $P()

v1.23.22 Fri, 14 Apr 2023 14:11:53 +0200 mohawk2
	+ PR #7 from mowhawk2/tweaks: error-handling tweaks & bugfixes for PDL v2.082
	  - stop passing in outputs in ccs_binop_vector_mia
	  - DRY in CCS::Functions
	  - stop passing in outputs in recode
	  - done_testing means no need count-padding in CCS/t/06_matops.t
	  - DRY in CCS/t/06_matops.t
	  - use params not globals in CCS/t/06_matops.t
	  - _ufuncsub to give stack-trace if $vals1 is empty
	  - zap old files
	  - MANIFEST.SKIP expansion
	  - zap patches
	  - zap nullbarf file
	  - zap CVS remnants
	  - if empty nzvalsIn, stack-trace instead of SEGV
	  - empty nzvalsIn, stack-trace instead of SEGV

v1.23.21 Sat Apr 8 12:01:01 2023 +0200 moocow
	+ adjust test expectations for CCS/Utils/t/02_encode.t
	+ port mohawk2 test tweaks from https://github.com/moocow-the-bovine/PDL-HMM/pull/2/

v1.23.20 Tue, 19 Apr 2022 11:03:00 +0200 moocow
	+ fixed variable-clobbering warning in 02_encode.t
	+ type-mismatch fixes for ccs ufunc counters https://github.com/moocow-the-bovine/PDL-CCS/issues/6
	  - ccs ufunc counters (nbad, ngood, nnz) set out_type=>'indx' rather than out_type=>'int+'
	  - ccs ufunc counters always clear nzvalsOut bad-flag in CopyBadStatusCode
	  - ccs ufunc tests ensure $missing->type==$nzvalsIn->type

v1.23.19 Thu, 14 Apr 2022 17:05:42 +0200 mohawk2
	+ update default config for recent PDL
	+ fix for ccs_accum_hash() code generator in ccsufunc.pd
	+ cleaner tests (use strict+warnings, zap redundant use_ok-only tests)

v1.23.18 Fri, 18 Feb 2022 17:10:21 +0100 moocow
	+ fixes for PDL v2.073, contributed by mohawk2
	+ shared github actions, contributed by zmughal

v1.23.17 Tue, 18 Jan 2022 21:26:32 +0100 moocow
	+ merged changes for PDL 2.066+ from mohawk2
	  - opt in to PDL 2.058 multi-C, dep on PDL v2.019
	  - simplify for 2.014+ types, compat with PDL 2.066+
	+ updated copyright notices in PODs

v1.23.16 Thu, 29 Apr 2021 08:06:04 +0200 moocow
	+ fixed $PDL::VERSION checks in Config.PL to reflect reality
	  - integer-type downcasting behavior actually changed in PDL-2.037 with commit #f892aeb4ae on PDL/Basic/Ufunc/ufunc.pd
	  - should fix new cpantesters failures, e.g. http://www.cpantesters.org/cpan/report/1fc08e78-a7e3-11eb-aa01-337c1f24ea8f
	+ added missing "resources" level to META_MERGE section in Makefile.PL

v1.23.15 Tue, 27 Apr 2021 13:13:20 +0200 moocow
	+ added new PDL-2.039 integer-type listing code to Config.PL
	+ fixed downcasting in b*over methods be PDL-compatible (problem was 'max_int_type' option to ccs_accum_def())
	+ re-enabled b*over tests skipped in v1.23.14
	+ added Makefile.PL META_MERGE section pointing to new public github repo moocow-the-bovine/PDL-CCS
	  - github repo is just a fork of read-only ZDL git mirror of upstream SVN repository

v1.23.14 Mon, 26 Apr 2021 14:58:50 +0200 moocow
	+ skip some b(and|or)over type-check tests to avoid test failures for PDL >= v2.039
	  - CCS implementations are returning 'indx' type here, dense PDL versions are giving 'longlong' for input type=double

v1.23.13 Thu, 19 Nov 2020 06:54:54 +0100 moocow
	+ fix RT bug #133772, reported by Sebastiaan Couwenberg (spelling error in POD)

v1.23.12 Tue, 28 Aug 2018 09:20:08 +0200 moocow
	+ RT bug #126924, part III
	  - added exception to CCS::Nd::borover() test in CCS/t/03_ufuncs.t
	  - analogous to v1.23.11 fix for CCS/Ufunc/t/01_ufunc.t

v1.23.11 Mon, 27 Aug 2018 14:35:47 +0200 moocow
	+ workaround for RT bug #126294, reported by G. Herrmann
	  - skip ufunc "borover:missing=BAD" test in CCS/Ufunc/t/01_ufunc.t if PDL::borover() is broken
	  - upstream patch submitted to PDL maintainers as https://sourceforge.net/p/pdl/bugs/446/

v1.23.10 Fri, 24 Aug 2018 10:14:40 +0200 moocow
	+ fixed typo in failed test label-reporting labstr() in t/common.plt, added 'use strict'
	+ may help to diagnose RT bug #126294 (CCS/Ufunc/t/01_ufunc.t test 'borover:missing=BAD' fails on armv6l-linux ~ rpi)

v1.23.9 Fri, 22 Jun 2018 13:55:35 +0200 moocow
	+ ufunc.pd: avoid "|=" and "&=" operators (attempt to get build working on ARM64, reported by L. Baillet)
	  - see http://www.cpantesters.org/cpan/report/eaad8962-7102-11e8-905e-5ddc267117a8
	  - see https://buildd.debian.org/status/package.php?p=libpdl-ccs-perl
	+ more verbose diagnostics for failed pdlok() tests in t/common.plt

v1.23.8 Fri, 15 Jun 2018 13:45:06 +0200 moocow
	+ various fixes for debian packaging (RT bug #125587),
	  patches provided by L. Baillet and G. Herrmann

v1.23.7 Wed, 06 Jun 2018 09:18:55 +0200 moocow
	+ CCS/IO 'clean' target: remove test temporaries t/ccs3.* t/dense3.*

v1.23.6 Tue, 05 Jun 2018 16:39:46 +0200 moocow
	+ fixed "do 'Config.PL'" call in Makefile.PL

v1.23.5 Tue, 05 Jun 2018 15:05:00 +0200 moocow
	+ fixed typos reported by L. Baillet (RT bug #125493)

v1.23.4 Tue, 06 Jun 2017 10:17:44 +0200 moocow
	+ fixed bogus bareword pdl() call in CCS/Nd.pm (RT bug #121952)
	+ added 'use lib "."' to Makefile.PL (RT bug #121661)

v1.23.3 Mon, 06 Jun 2016 14:45:29 +0200 moocow
	+ fixed ccs_wfits() typecast-to-long hack for indx types
	  - feature request including patch posted to https://sourceforge.net/p/pdl/bugs/421/

v1.23.2 Mon, 06 Jun 2016 11:20:12 +0200 moocow
	+ win32/NaN fixes for tests (RT bug #115078)

v1.23.1 Tue, 12 Jan 2016 13:24:00 +0100 moocow
	+ fixed index overflow bug picking maximum output dimension in perl-side ccs_xindex2d()
	+ added optional pass-in $anorm() for ccs_vcos_zdd()
	+ added pointer-optimized sparse-crs matrix vs. sparse-coo vector cosine method ccs_vcos_pzd()

v1.23.0 Tue, 15 Dec 2015 13:25:35 +0100 moocow
	+ fixed "uninitialized value" warnings for PDL->can($type) in PDL::CCS::IO::*
	+ added support for ndims>2 to PDL::CCS::IO::MatrixMarket
	+ added sparse/dense vector-cosine ccs_vcos_zdd() in PDL::CCS::MatrixOps, with wrapper PDL::CCS::Nd::vcos_zdd()
	  - dense/dense variant in PDL::VectorValued::Utils::vv_vcos() for PDL::VectorValued v1.0.5
	+ fixed BAD handling in CCS::Compat::ccsget(), CCS::Compat::ccsget2d()
	+ fixed I/O type handling in integer ufuncs (borover)
	+ fixed wrongly succeeding bogus tests with unary ok()
	  - tests now use Test::More and re-factored common test subroutines
	+ fixed C-level abs() function in CCS::Utils::nnza(); now dispatches to one of {abs,labs,llabs,fabsf,fabs} using PDL::PP types(...) macro
	+ fixed CCS ufunc type-promotion logic to be compatible with PDL v2.015
	+ pared down CCS/t/06_matops.t to test only missing==0 : matrix ops don't work correctly with missing!=0
	+ pdlmaker.plm doesn't distribute generated PM files any more (PDL now does this for us)

v1.22.6 Wed, 25 Nov 2015 16:27:24 +0100 moocow
	+ added CCS::IO::FITS, CCS::IO::MatrixMarket, CCS::IO::LDAC, CCS::IO::PETSc
	+ moved common I/O utilities to CCS::IO::Common
	+ added CCS::IO tests

v1.22.5 Mon, 23 Nov 2015 12:34:25 +0100 moocow
	+ no real joy with Makefile.PL workaround (UNKNOWN results are still pretty wonky)
	+ updating PDL::VectorValued to use shared $VERSION via perl-reversion script from module Perl::Version
	+ PDL::CCS can now depend directly on PDL::VectorValued

v1.22.4 Tue, 17 Nov 2015 09:54:23 +0100 mocoow
	+ Makefile.PL workaround for PDL::VectorValued(::Version) strangeness on cpantesters
	  - see http://sourceforge.net/p/pdl/mailman/message/34623263/ ("headaches with indirect PDL-related dependencies on cpantesters", 2015-11-16 13:16:44)

v1.22.3 Thu, 05 Nov 2015 10:43:54 +0100 moocow
	+ workaround for PDL::clump(-N) bug in PDL-v2.014: compute non-negative clump() arguments in CCS/Compat.pm
	  - see RT bug #108472; PDL bug https://sourceforge.net/p/pdl/bugs/406/
	+ workaround for changed PDL::reshape() behavior in CCS/t/05_binops.t, CCS/t/06_matops.t : getting ugly realloc errors without it
	  - see RT bug #107829

v1.22.2 Tue, 18 Aug 2015 13:04:09 +0200 moocow
	+ added clearptr($pdimi) method

v1.22.1 Wed, 08 Apr 2015 16:09:43 +0200 moocow
	+ fixed ccs_xindex2d() utility and added CCS::Nd::xsubset2d() wrapper

v1.22.0 Wed, 08 Apr 2015 13:49:14 +0200
	+ added ccs_xindex2d() utility function: fast Cartesian product indexing of sparse 2d matrices

v1.21.0 Mon, 16 Mar 2015 13:22:34 +0100 moocow
	+ added PDL::IO::FastRaw wrappers (incl mapfraw) for PDL::CCS::Nd objects
	+ PDL::CCS::Nd->fromWhich() now accepts ARRAY-refs for 'pdims' and 'vdims' options

v1.20.2 Wed, 05 Nov 2014 13:24:55 +0100 moocow
	+ more empty-piddle fixes for PDL-v2.4.11 (kaskade / debian wheezy)

v1.20.1 Wed, 05 Nov 2014 10:41:19 +0100 moocow
	+ improved handling of empty pdls in PDL::CCS::Nd

v1.19.1 Thu, 26 Sep 2013 08:57:11 +0200 moocow
	+ use ExtUtils::MakeMaker::prompt() for configuration questions; fixes RT #88972

v1.19.0 Wed, 25 Sep 2013 12:13:27 +0200 moocow
	+ added (optional) support for 64-bit indices via PDL_Indx (requires PDL >= v2.007)

v1.18.0 Wed, 07 Nov 2012 13:57:26 +0100
	+ added CCS::Functions::ccs_qsort(), CCS::Nd::qsort(), CCS::Nd::qsorti()
	+ new qsort code requires PDL::VectorValued >= v0.06 (for enumvec())
	+ added :lvalue attribute to selected CCS::Nd and CCS::Functions subs

v1.16 Mon, 02 Jan 2012 13:38:48 +0100 moocow
	+ cpan-friendly distribution with pdlmaker.plm

v1.15 2011-12-20 moocow
	* [r5936] band-aided barf()ing PDL::CCS::Functions::ccs_decode()
	  due to mismatched dimensions in empty index and value piddles

v1.14 2011-03-31  moocow
	* [r5596] CCS/Makefile.PL, CCS/Nd.pm, CCS/Version.pm,
	  CCS/testme.perl, ChangeLog, Makefile.PL, testme.perl: + v1.14:
	  updated for PDL::VectorValued 0.04 (qsortveci -> vv_qsortveci)

v1.13 2010-02-26  moocow
	* [r4085] CCS/MatrixOps/ccsmatops.pd, CCS/Nd.pm, CCS/Version.pm,
	  testme.perl: + updated MatrixOps::ccs_matmult2d_sdd : 2d matrix
	  mult with arbitrary finite missing values
	* [r4084] MANIFEST: + updated MANIFEST (added CCS/MatrixOps/
	  subdir)

v1.12 2009-11-04  moocow
	* [r3653] CCS/Nd.pm: + v1.12: fixed empty-dimension bug in
	  CCS::Nd::dice_axis() [not indexND as in last log message]
	* [r3652] CCS/Nd.pm, CCS/Utils/ccsutils.pd, CCS/Version.pm: +
	  v1.12: fixed empty-dimension bug in CCS::Nd::indexND()

v1.11 2009-10-31  moocow
	* [r3621] CCS/MatrixOps/ccsmatops.pd, CCS/Nd.pm, CCS/t/06_matops.t,
	  testme.perl: + added matmult2d_zdd() variant: should really work
	* [r3618] CCS.pm, CCS/Attic, CCS/Makefile.PL, CCS/MatrixOps,
	  CCS/MatrixOps/Makefile.PL, CCS/MatrixOps/ccsmatops.pd,
	  CCS/MatrixOps/t, CCS/MatrixOps/t/00_basic.t,
	  CCS/MatrixOps/t/common.plt, CCS/Nd.pm, CCS/Version.pm,
	  CCS/t/06_matops.t, testme.perl: + v1.11: added
	  CCS::Nd::matmult2d_sdd for correct matrix multiplication with
	  dense 2nd operand and output

v1.10 2009-10-22  moocow
	* [r3567] CCS/Nd.pm, CCS/Version.pm: + v1.10: added isbad(),
	  isgood()

v1.09 2009-10-19  moocow
	* [r3540] CCS/Ufunc/ccsufunc.pd:
	* [r3539] CCS/Ufunc/ccsufunc.pd, CCS/Version.pm:
	* [r3538] CCS/Ufunc/ccsufunc.pd:

v1.08 2009-07-16  moocow
	* [r3395] CCS/Nd.pm, CCS/Version.pm, ChangeLog, testme.perl: +
	  added CCS::Nd methods interpolate(), interpol()

v1.07 2008-07-26  moocow
	* [r2534] CCS/Nd.pm: + improved BAD handling in
	  _ccsnd_binary_op_mia()
	* [r2533] CCS/Nd.pm, CCS/Version.pm: + improved BAD handling in
	  _ccsnd_binary_op_mia()

v1.06 2008-06-26  moocow
	* [r2490] CCS/Version.pm: + v1.06: added CCS::Nd::_missing()
	* [r2489] CCS/Nd.pm: + added '_missing()' method

v1.05 Fri, 02 May 2008 13:00:22 +0200
	+ added CCS::Nd::ismissing(), CCS::Nd::ispresent() mask methods
	+ added CCS::Nd::maximum_ind(), CCS::Nd::minimum_ind()

v1.04 Mon, 28 Apr 2008 23:48:57 +0200
	+ added PDL::CCS::Ufunc::ccs_accum_average()
	+ added PDL::CCS::Nd wrappers: average_nz, avg_nz, average, avg
	+ documented PDL::CCS::Nd method _nzvals(), added alias _whichVals()
	+ added CCS::Nd::badflag()

v1.03 Wed, 20 Feb 2008 10:30:39 +0100
	+ fixed some bugs in PDL::CCS::Nd::to_physically_indexed()
	  - bad use of vdims for pdims (output pdl should be physically ordered)
	  - missing value wasn't getting appended to output pdl

v1.02 Thu, 14 Feb 2008 12:50:11 +0100
	+ fixed some bugs in PDL::CCS::Nd::string(), ::appendWhich() for objects with empty index pdls
	+ fixed virtual-dimension indexing bug in PDL::CCS::Nd::indexNDi
	  causing indexing to fail for e.g. transposed sparse matrices

v1.01 Tue, 24 Apr 2007 01:24:05 +0200 (moocow)
	+ added PDL::CCS::Nd perl class for sparse Nd piddle-like structures
	+ separated out submodules Utils, Ufunc, Ops
	+ added PDL::CCS::Compat for backwards-compatibility

2007-03-27  moocow
	* [r1933] Attic/CCS.pd, CCS.pd: + minor documentation fixes

2007-02-27  moocow
	* [r1847] Attic/CCS.pd, CCS.pd, t/02_encode.t, t/03_ops.t,
	  t/Attic/02_encode.t, t/Attic/03_ops.t, t/common.plt, testme.perl:
	  + added partial decoding, encoding from indices, ufuncs

2007-02-26  moocow
	* [r1845] Attic/CCS.pd, CCS.pd, t/03_ops.t, t/Attic/03_ops.t,
	  testme.perl: + added whichND, which, transpose, and basic vector
	  ops
	* [r1842] Attic/CCS.pd, CCS.pd: + added bad-processing stuff to
	  PDL::CCS

2007-02-26  moocow
	* [r1845] Attic/CCS.pd, CCS.pd, t/03_ops.t, t/Attic/03_ops.t,
	  testme.perl: + added whichND, which, transpose, and basic vector
	  ops
	* [r1842] Attic/CCS.pd, CCS.pd: + added bad-processing stuff to
	  PDL::CCS

2005-08-02  moocow
	* [r1215] Attic/CCS.pd, CCS.pd, ChangeLog: re-import (gaspode)

v0.01 Sat, 11 Jun 2005 10:32:05 +0200 (moocow)
	+ initial version, 2d pdls only