Metadata-Version: 1.1
Name: sparsegrad
Version: 0.0.6
Summary: pure Python automatic calculation of sparse Jacobian
Home-page: http://www.marekszymanski.com/software/sparsegrad
Author: Marek Zdzislaw Szymanski
Author-email: marek@marekszymanski.com
License: GNU Affero General Public License v3
Description-Content-Type: UNKNOWN
Description: # sparsegrad - automatic computation of sparse Jacobian matrices from ```numpy``` expressions
        
        ```sparsegrad``` performs automatic differentiation of vector valued functions in Python. A significant subset of ```numpy``` operation is supported on Python scalars and ```ndarrays``` with dimensionality less than 2:
        
        - all arithmetic operators
        - all elementary functions
        - simple and fancy indexing
        - matrix-vector product ```dot```, restricted to constant matrix
        - concatenation of vectors ```stack```
        - vectorized selection ```where```
        - sum reduction ```sum```
        
        Depending on use, ```sparsegrad``` can provide Jacobian matrix or sparsity pattern.
        
        The primary use of ```sparsegrad``` is to automatically evaluate Jacobian matrices when solving non-linear systems of equations. ```sparsegrad``` uses forward mode automatic differentiation. In contrast to backward mode automatic differentiation, this allows to better control the memory usage of calculation.
        
        ```sparsegrad``` is Python-only and requires only ```numpy``` and ```scipy```. It works both in Python 2.7 and 3.x. In contrast to other pure Python automatic differentiation modules, ```sparsegrad``` attempts to be better suited for calculating moderately large sparse matrices. It has been used for solving problems with >1M equations and >20M nonzeros without causing bottleneck in terms of running time or memory usage.
        
        For basic usage, see tutorial ```doc/tutorial.ipynb```.
        
        ```sparsegrad``` is not yet tested on many combinations of ```numpy``` and ```scipy``` versions. After installing, it is highly recommended to check if all tests pass by running:
        
        ```
        import sparsegrad
        sparsegrad.test()
        ```
        
Platform: any
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Development Status :: 3 - Alpha
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Topic :: Scientific/Engineering :: Mathematics
