Skip to main content

A C++ Sparse Matrix Library

Project description

Up-Down-Left-Right: A C++ Sparse Matrix Library

Up-down-left-right (UDLR) is a templated sparse matrix library designed the facilitate the development of algorithms that run on sparse graphs. The core datastructure is a quadrupally linked list representing the non-zero entries of the matrix. Every entry in this structure is connected with its immediate neighbours in the up, down, left, and right directions. The quad-directional linked layout enables rapid matrix traversal both horizontally and vertically, making it highly efficient for algorithms such as Gaussian elimination. UDLR is fully templated, allowing for arbitrary meta data to be appended to each list entry. This is particularly useful for graph algorithms such as belief propagation in which messages are passed between nodes.

CPP Installation

UDLR is a header only libary. To use, include the file udlr.hpp and enjoy the library!

Python Installation

Install using pip. Navigate to the repository root and run:

pip install -Ue .

CPP Features

UDLR has initially been developed to provide sparse matrix operations over a GF2 field for applications in classical and quantum coding theory. As such, the sparse GF2 matrix is currently the most developed feature of this package. However, more functiionality will be added soon. The current fuctionality is listed below:

  • A sparse GF2 matrix class. This class can be initialised with a custom node type that can contain user defined meta data.
  • Function for performing linear algebra on GF2 matrices. Current funcitons include rank calculation, nullspace computation, LU decomposition and matrix inversion.
  • Python bindings (via cython) for linear algebra operations on sparse GF2 matrices.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

udlr-0.0.5.tar.gz (112.3 kB view details)

Uploaded Source

Built Distributions

udlr-0.0.5-cp311-cp311-win_amd64.whl (168.2 kB view details)

Uploaded CPython 3.11 Windows x86-64

udlr-0.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (711.6 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

udlr-0.0.5-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

udlr-0.0.5-cp311-cp311-macosx_10_15_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

udlr-0.0.5-cp310-cp310-win_amd64.whl (168.0 kB view details)

Uploaded CPython 3.10 Windows x86-64

udlr-0.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (693.2 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

udlr-0.0.5-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

udlr-0.0.5-cp310-cp310-macosx_10_15_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

udlr-0.0.5-cp39-cp39-win_amd64.whl (168.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

udlr-0.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (696.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

udlr-0.0.5-cp39-cp39-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

udlr-0.0.5-cp39-cp39-macosx_10_15_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

udlr-0.0.5-cp38-cp38-win_amd64.whl (168.8 kB view details)

Uploaded CPython 3.8 Windows x86-64

udlr-0.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (704.8 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

udlr-0.0.5-cp38-cp38-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

udlr-0.0.5-cp38-cp38-macosx_10_15_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

File details

Details for the file udlr-0.0.5.tar.gz.

File metadata

  • Download URL: udlr-0.0.5.tar.gz
  • Upload date:
  • Size: 112.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for udlr-0.0.5.tar.gz
Algorithm Hash digest
SHA256 190880afc5a664a5825db81d9676e3f13634b60b0c2a3ce2101bc899aec4868a
MD5 75890e63972230422c8085c86af24793
BLAKE2b-256 e3426933ce43dcef73af6f7321696ab6ea5d81a109be092c21a157e33d6e379c

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: udlr-0.0.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 168.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for udlr-0.0.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c985c97261e2ee36a0849364720e70c12b6c23088294789d092a929962f3cc3e
MD5 87211a87ec553fb634bca99924d1c389
BLAKE2b-256 c036bec7ecbc5ecd745472d8f7fafde603baaebff8f9d21c47d241f82fe333d1

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for udlr-0.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 44274f6b138a56041c5cf5c9ee63f7f51cf59b06639884911ed0d2c3508d7725
MD5 fea0ce6c3dc1b664b0b3aac8cb561e7b
BLAKE2b-256 fa29aa9e10f6f7feef731aee7bc884d3ceb9b832ca88291c00914ef499b5442d

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for udlr-0.0.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 96f2f7b40b19bbc2068f9501e1af476c8a451212e3e10b1fb3b5ff9d8771de75
MD5 b0f0f3556c8bb11d5da1cec530c6072b
BLAKE2b-256 ae5f743226ad75d4e460a9f2b92df1ee399dd07d9bfca95705dd2ce9771b0402

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for udlr-0.0.5-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b3a56d71c84f1b618a17e542ca7f1abe42b6cf4d7495dc230018ce22bff5a519
MD5 1a0ca8dd3b3d1e37b9d39e43c6ec6470
BLAKE2b-256 84bb2a797c95d8e84af2714c537b90244fad8eef00aa9176c5f64ccc4cae5ce2

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: udlr-0.0.5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 168.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for udlr-0.0.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 08bc6628d3bd222721c4507155048c463da8bdcb99c58e98a770519ffdb9a663
MD5 8634495035d5eb9493708bd7f8518c1d
BLAKE2b-256 ff50556780f63e5cf11b11aeacf012591593bbd5fb11c65db313e1ccfb031a25

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for udlr-0.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7c67c02a2821a73225e8cf8e12e29d65facbd7047da3701d4eff38ee1b8ac67
MD5 9f9221d413e2a1b9f03999b9c0d67d67
BLAKE2b-256 d7320f08e1e405bdd0eb5aa56887220a31f77310cc93459464e320be438709c0

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for udlr-0.0.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 99ad3dd9937c2efe0bd195082d4c636fcb3dbc3a74932caa4ce861fc33233828
MD5 436a1daf67134c1fad109c151eeab81f
BLAKE2b-256 80d6ab353df1bb53bc2d4248807cf9c4e163239d31e5ddd143132bd182827bdf

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for udlr-0.0.5-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0a4e87ac4b6e0f9caef114008dcd76986459b0900691e40f152d0430518303d4
MD5 7cbbc775a5b06af2c53610a0ae948151
BLAKE2b-256 84e7b3dc42136a21e3d3b02a95e72d38998c8401a190c26bc7efd539c0f76aeb

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: udlr-0.0.5-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 168.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for udlr-0.0.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2ae7298e9c03d3725c20da23f43d2c059d2c23dbdb7d5247ac778deb3a9a1345
MD5 7683988fa6746799301e4ee26bfc9f66
BLAKE2b-256 ab696b80b729836fbf1458fe9b6bff104e2100494272b9b9964a34ca1adb8807

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for udlr-0.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9204850a3dc6d6ae9c711c28278fa36af2577cdcab88b44f638925e82d285f26
MD5 b059b736a6d560d753d873623973f1b7
BLAKE2b-256 719b391e2d30ef99dc2296fa8f8f4fcc6d0c0b9a80cd3f0d5d055d8913838e9e

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for udlr-0.0.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11f4935f90c63fbcc5f1554a4f1ef5b6cd0469b0250c056fef47b37a4e3dfdf6
MD5 2d743bb93e223ae4782deb57e6a8507f
BLAKE2b-256 cd3124969f6641589d9ba0d936033a2bdb5e00380b07df732751de366f2bd35a

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for udlr-0.0.5-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 994786fd7516553a8ec2eb96700d505ce3c0cfc530c07f0ce00a694b39bf5699
MD5 cfb2a3b2d776e41228e467ab9ca3dd3a
BLAKE2b-256 f2a4c7f31348e4f529557759725068a7caa8d3bae67ffb1d4f29aa37503a14ca

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: udlr-0.0.5-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 168.8 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for udlr-0.0.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 2d6213bed3397ba058e54fc7018bbfbbcb2a4f403a8c8a70ad355db3fb74bf11
MD5 6ef58f785b5f8c6319b69a634997cd46
BLAKE2b-256 1a190e573314fa1b0daf9552b1efa9dc72b87fd533f1e074d5ebe1bbd9b79176

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for udlr-0.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3ef58600e81473bf62c23a2b1fabe165fefccc0e618b04fca358e892bf28b23b
MD5 fea2ec48d3497d38bed6659cacaa499f
BLAKE2b-256 764923e201c07153dd724093323a9889a40718fc13096186c3d993d208a971a0

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for udlr-0.0.5-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4bc0d4cc1bfbea6f818c89bc23f4e805647cd343d89e1bdf9ddc226f34502a8
MD5 842076ed8c1345b492381c6843317c44
BLAKE2b-256 bafdb872b5fe695dcfbb4b3d33ff787c1a898a32a61b16627c76ac82a74f763c

See more details on using hashes here.

File details

Details for the file udlr-0.0.5-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for udlr-0.0.5-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ea07a7cff51d4946d5278178f7450ec4d323550f8afc942d82d9577263103c0d
MD5 2cedc570e739c60e9ab6a0a6fdc921fc
BLAKE2b-256 625fd1aea9cdacace03c4d4cf7e753717007c3dac3a5dc666bf024086532490b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page