Metadata-Version: 2.1
Name: cr-sparse
Version: 0.2.2
Summary: Accelerated sparse representations and compressive sensing
Home-page: https://carnotresearch.github.io/cr-sparse
Author: CR-Sparse Development Team
Author-email: contact@carnotresearch.com
License: Apache 2.0: http://www.apache.org/licenses/LICENSE-2.0
Download-URL: https://github.com/carnotresearch/cr-sparse/archive/v0.2.2.tar.gz
Project-URL: Issue Tracker, https://github.com/carnotresearch/cr-sparse/issues
Keywords: Computer Vision
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Multimedia
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Scientific/Engineering :: Image Processing
Classifier: Topic :: Scientific/Engineering :: Image Recognition
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
Requires-Dist: chex (>=0.0.4)
Requires-Dist: jax (>=0.1.55)
Requires-Dist: jaxlib (>=0.1.37)
Requires-Dist: numpy (>=1.18.0)
Requires-Dist: sympy (>=1.6)
Requires-Dist: scipy
Requires-Dist: matplotlib
Requires-Dist: pandas (>=1.0.0)
Requires-Dist: requests (>=2.20.0)
Requires-Dist: imageio
Requires-Dist: click
Provides-Extra: dev
Provides-Extra: docs
Requires-Dist: sphinx (>=3.3.0) ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme (>=0.5.0) ; extra == 'docs'
Requires-Dist: sphinxcontrib-katex (>=0.7.1) ; extra == 'docs'
Requires-Dist: sphinxcontrib-bibtex (>=1.0.0) ; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints (>=1.11.1) ; extra == 'docs'
Requires-Dist: IPython (>=7.16.1) ; extra == 'docs'
Requires-Dist: ipykernel (>=5.3.4) ; extra == 'docs'
Requires-Dist: pandoc (>>=1.0.2) ; extra == 'docs'
Requires-Dist: nbsphinx (>=0.8.0) ; extra == 'docs'
Requires-Dist: requests ; extra == 'docs'
Provides-Extra: examples
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'

Functional Models and Algorithms for Sparse Signal Processing   
==================================================================


|pypi| |license| |zenodo| |docs| |unit_tests| |coverage| |joss|


Introduction
-------------------


CR-Sparse is a Python library that enables efficiently solving
a wide variety of sparse representation based signal processing problems.
It is a cohesive collection of sub-libraries working together. Individual
sub-libraries provide functionalities for:
wavelets, linear operators, greedy and convex optimization 
based sparse recovery algorithms, subspace clustering, 
standard signal processing transforms,
and linear algebra subroutines for solving sparse linear systems. 
It has been built using `Google JAX <https://jax.readthedocs.io/en/latest/>`_, 
which enables the same high level
Python code to get efficiently compiled on CPU, GPU and TPU architectures
using `XLA <https://www.tensorflow.org/xla>`_. 

.. image:: docs/images/srr_cs.png

For detailed documentation and usage, please visit `online docs <https://cr-sparse.readthedocs.io/en/latest>`_.

Supported Platforms
----------------------

``CR-Sparse`` can run on any platform supported by ``JAX``. 
We have tested ``CR-Sparse`` on Mac and Linux platforms and Google Colaboratory.

``JAX`` is not officially supported on Windows platforms at the moment. 
Although, it is possible to build it from source using Windows Subsystems for Linux.

Installation
-------------------------------

Installation from PyPI:

.. code:: shell

    python -m pip install cr-sparse

Directly from our GITHUB repository:

.. code:: shell

    python -m pip install git+https://github.com/carnotresearch/cr-sparse.git



Examples/Usage
----------------

See the `examples gallery <https://cr-sparse.readthedocs.io/en/latest/gallery/index.html>`_ in the documentation.
Here is a small selection of examples:

* `Sparse recovery using Truncated Newton Interior Points Method <https://cr-sparse.readthedocs.io/en/latest/gallery/rec_l1/spikes_l1ls.html>`_ 
* `Sparse recovery with ADMM <https://cr-sparse.readthedocs.io/en/latest/gallery/rec_l1/partial_wh_sensor_cosine_basis.html>`_ 
* `Compressive sensing operators <https://cr-sparse.readthedocs.io/en/latest/gallery/lop/cs_operators.html>`_ 
* `Image deblurring with LSQR and FISTA algorithms <https://cr-sparse.readthedocs.io/en/latest/gallery/lop/deblurring.html>`_ 
* `Deconvolution of the effects of a Ricker wavelet <https://cr-sparse.readthedocs.io/en/latest/gallery/lop/deconvolution.html>`_ 
* `Wavelet transform operators <https://cr-sparse.readthedocs.io/en/latest/gallery/lop/wt_op.html>`_ 
* `CoSaMP step by step <https://cr-sparse.readthedocs.io/en/latest/gallery/pursuit/cosamp_step_by_step.html>`_ 


A more extensive collection of example notebooks is available in the `companion repository <https://github.com/carnotresearch/cr-sparse-companion>`_.
Some micro-benchmarks are reported `here <https://github.com/carnotresearch/cr-sparse/blob/master/paper/paper.md#runtime-comparisons>`_.


Contribution Guidelines/Code of Conduct
----------------------------------------

* `Contribution Guidelines <CONTRIBUTING.md>`_
* `Code of Conduct <CODE_OF_CONDUCT.md>`_

Citing CR-Sparse
------------------------


To cite this repository:

.. code:: tex

    @software{crsparse2021github,
    author = {Shailesh Kumar},
    title = {{CR-Sparse}: Functional Models and Algorithms for Sparse Signal Processing},
    url = {https://cr-sparse.readthedocs.io/en/latest/},
    version = {0.2.1},
    year = {2021},
    doi={10.5281/zenodo.5322044},
    }




`Documentation <https://carnotresearch.github.io/cr-sparse>`_ | 
`Code <https://github.com/carnotresearch/cr-sparse>`_ | 
`Issues <https://github.com/carnotresearch/cr-sparse/issues>`_ | 
`Discussions <https://github.com/carnotresearch/cr-sparse/discussions>`_ |


.. |docs| image:: https://readthedocs.org/projects/cr-sparse/badge/?version=latest
    :target: https://cr-sparse.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status
    :scale: 100%

.. |unit_tests| image:: https://github.com/carnotresearch/cr-sparse/actions/workflows/ci.yml/badge.svg
    :alt: Unit Tests
    :scale: 100%
    :target: https://github.com/carnotresearch/cr-sparse/actions/workflows/ci.yml


.. |pypi| image:: https://badge.fury.io/py/cr-sparse.svg
    :alt: PyPI cr-sparse
    :scale: 100%
    :target: https://badge.fury.io/py/cr-sparse

.. |coverage| image:: https://codecov.io/gh/carnotresearch/cr-sparse/branch/master/graph/badge.svg?token=JZQW6QU3S4
    :alt: Coverage
    :scale: 100%
    :target: https://codecov.io/gh/carnotresearch/cr-sparse


.. |license| image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
    :alt: License
    :scale: 100%
    :target: https://opensource.org/licenses/Apache-2.0

.. |codacy| image:: https://app.codacy.com/project/badge/Grade/36905009377e4a968124dabb6cd24aae
    :alt: Codacy Badge
    :scale: 100%
    :target: https://www.codacy.com/gh/carnotresearch/cr-sparse/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=carnotresearch/cr-sparse&amp;utm_campaign=Badge_Grade

.. |zenodo| image:: https://zenodo.org/badge/323566858.svg
    :alt: DOI
    :scale: 100%
    :target: https://zenodo.org/badge/latestdoi/323566858

.. |joss| image:: https://joss.theoj.org/papers/ebd4e5ca27a5db705b1dc382b64e0bed/status.svg
    :alt: JOSS
    :scale: 100%
    :target: https://joss.theoj.org/papers/ebd4e5ca27a5db705b1dc382b64e0bed


