CCS(3pm)

πŸ“¦
version 1.24.1 Β· 5 versions
, in debian trixie, ubuntu resolute

πŸ’– NAME πŸ’–

PDL::CCS β€” Sparse N-dimensional PDLs with compressed column storage πŸ¦‹

okay so bestie, this is the CCS(3pm) page from the User Contributed Perl Documentation section, and it's basically a lil' lobby with a bunch of doors behind it. come on in πŸ’…


✨ SYNOPSIS ✨

use PDL;
use PDL::CCS;

## ... stuff happens ...

yes that is genuinely the whole synopsis. the ## ... stuff happens ... is doing so much heavy lifting and honestly? iconic. the actual magic lives in the submodules, keep scrolling πŸ‘‘


🌸 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. that's it, that's the description β€” she's a socialite, not a solo act πŸ’…

πŸŽ€ Modules πŸŽ€

the way that each of these has its own whole personality. here's the roster, no cap:

  • 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 πŸ’œ

giving credit where credit is due, because we are nothing if not gracious 🫢

  • 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.

the lineage is giving royal family fr fr πŸ‘‘


πŸ’€ KNOWN BUGS πŸ’€

listen. we love her. she has flaws. and we're gonna be honest about them because that's what besties do 😭

  • PDL::CCS::Nd supports only a subset of the PDL API (i.e. is not really a PDL).
bestie she is NOT a PDL. she simply knows a few of the PDL moves. do not expect the full repertoire πŸ’…
  • Binary operations via alignment only work correctly when missing values are annihilators.
if your missing values are not annihilators, the alignment math just Does Not Work Correctly. that's the whole warning, no notes πŸ™ˆ
the name is lying to you a little bit. it's COO in there, not CCS, not CRS. see the linked discussion for the whole tea β˜•

πŸ‘‘ 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.

read that again: entirely without warranty. it's free, it's free-spirited, and if it breaks it breaks πŸ’… same terms as Perl itself, periodt.

🌈 SEE ALSO 🌈

go read those next, iykyk πŸ¦‹


okay that's the whole page bestie!! this one shipped with perl v5.40.0 and it's dated 2025-01-04, so when you see CCS(3pm) floating around, you'll know exactly whose group chat it came from πŸŽ€βœ¨ stay sparse, stay iconic, ily πŸ«ΆπŸ’–

πŸ“¦ where this page comes from