sprs 0.6.2

A sparse matrix library
Documentation
==========
Guidelines
==========

This document describes development guidelines for this library.

Error policy
============

As encouraged by rust, contract violations should be handled by panicking,
whereas softer errors such as I/O errors should be dealt with using the
``Result`` type. Here we describe, in the particular context of sparse linear
algebra, what we consider to be contract violations. Any error not mentionned
here should be dealt with using the ``Result`` type.

Contract violation
------------------

- *Dimension mismatch* in linear algebra operations
- *Storage assumption violation* in functions that require a specific storage
  type.
- *Out of bounds indices* when constructing a sparse matrix. Generally speaking
  all indices should be in bounds for the prescriber shape.
- *Length mismatch in constructors*, such as an ``indptr`` length not
  corresponding to the matrix' dimension, different lengths for ``indices`` and
  ``data``, etc.
- *Wrong workspace length*