NAME

PDL::CCS - Sparse N-dimensional PDLs with compressed column storage

SYNOPSIS

use PDL;
use PDL::CCS;

## ... stuff happens ...

DESCRIPTION

PDL::CCS is now just a wrapper package which pulls in a number of submodules. See the documentation of the respective modules for details.

Modules

PDL::CCS::Nd

Perl class for representing large sparse N-dimensional numeric structures using sorted index vector-vectors and a flat vector of non-missing values. Supports a subset of the perl-side PDL API.

PDL::CCS::Compat

Backwards-compatibility module for Harwell-Boeing compressed row- or column-storage.

PDL::CCS::Functions

Some useful generic pure-perl functions for dealing directly with CCS-, CRS-, and index-encoded PDLs.

PDL::CCS::Utils

Low-level generic PDL::PP utilities for Harwell-Boeing encoding and decoding "pointers" along arbitrary dimensions of a sparse PDL given an index list.

PDL::CCS::Ops

Low-level generic PDL::PP utilities for blockwise alignment of pairs of sparse index-encoded PDLs, useful for implementing binary operations.

PDL::CCS::Ufunc

Various low-level ufunc (accumulator) utilities for index-encoded PDLs.

PDL::CCS::MatrixOps

Low-level generic PDL::PP utilities for matrix operations on index-encoded PDLs.

PDL::CCS::IO::FastRaw

PDL::IO::FastRaw wrappers for PDL::CCS::Nd objects.

ACKNOWLEDGEMENTS

Perl by Larry Wall.

PDL by Karl Glazebrook, Tuomas J. Lukka, Christian Soeller, and others.

Original inspiration and algorithms from the SVDLIBC C library by Douglas Rohde; which is itself based on SVDPACKC by Michael Berry, Theresa Do, Gavin O'Brien, Vijay Krishna and Sowmini Varadhan.

KNOWN BUGS

  • PDL::CCS::Nd supports only a subset of the PDL API (i.e. is not really a PDL).

  • Binary operations via alignment only work correctly when missing values are annihilators.

  • Misleading module name: PDL::CCS::Nd objects actually use a native COO (full coordinate list) format rather than CRS (compressed row storage) or CCS (compressed column storage); see https://en.wikipedia.org/wiki/Sparse_matrix#Coordinate_list_(COO) for a discussion.

AUTHOR

Bryan Jurish <moocow@cpan.org>

Copyright (C) 2005-2024 by Bryan Jurish. All rights reserved.

This package is free software, and entirely without warranty. You may redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

perl(1), PDL(3perl), PDL::CCS::Nd(3perl), PDL::SVDLIBC(3perl), https://en.wikipedia.org/wiki/Sparse_matrix.