sprs, sparse matrices for Rust

.. image:: https://travis-ci.org/vbarrielle/sprs.svg?branch=master :target: https://travis-ci.org/vbarrielle/sprs

sprs implements some sparse matrix data structures and linear algebra algorithms.

WARNING: this library is still in development, its API is not stable yet.

Features

Structures ..........

Operations ..........

Algorithms ..........

Examples

Matrix construction

.. code-block:: rust

use sprs::{CsMat, CsMatOwned, CsVec}; let eye : CsMatOwned = CsMat::eye(sprs::CSR, 3); let a = CsMat::new_owned(sprs::CSC, 3, 3, vec![0, 2, 4, 5], vec![0, 1, 0, 2, 2], vec![1., 2., 3., 4., 5.]).unwrap();

Matrix vector multiplication

.. code-block:: rust

use sprs::{CsMat, CsVec}; let eye = CsMat::eye(sprs::CSR, 5); let x = CsVec::newowned(5, vec![0, 2, 4], vec![1., 2., 3.]).unwrap(); let y = &eye * &x; asserteq!(x, y);

Matrix matrix multiplication, addition

.. code-block:: rust

use sprs::{CsMat, CsVec}; let eye = CsMat::eye(sprs::CSR, 3); let a = CsMat::newowned(sprs::CSC, 3, 3, vec![0, 2, 4, 5], vec![0, 1, 0, 2, 2], vec![1., 2., 3., 4., 5.]).unwrap(); let b = &eye * &a; asserteq!(a, b.to_csr());

Documentation

https://vbarrielle.github.io/sprs/doc/sprs/

Changelog

License

Licensed under either of

at your option.

Contribution ............

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.