Skip to main content

Python interface to UMFPACK sparse direct solver.

Project description

scikit-umfpack

scikit-umfpack provides wrapper of UMFPACK sparse direct solver to SciPy.

Usage:

>>> from scikits.umfpack import spsolve, splu
>>> lu = splu(A)
>>> x = spsolve(A, b)

Installing scikits.umfpack also enables using UMFPACK solver via some of the scipy.sparse.linalg functions, for SciPy >= 0.14.0. Note you will need to have installed UMFPACK before hand. UMFPACK is a part of SuiteSparse.

References

Installation

Releases of scikit-umfpack can be installed from source using pip, or with a package manager like conda . To install from source, first ensure the dependencies described in the next section are installed, then run:

pip install scikit-umfpack

To install scikit-umfpack from its source code directory, run in the root of a clone of the Git repository:

pip install .

Dependencies

scikit-umfpack depends on NumPy, SciPy, and SuiteSparse.

To build scikit-umfpack, the following are needed: - a C compiler - a BLAS library with CBLAS symbols (e.g., OpenBLAS, Accelerate on macOS, or reference BLAS) - NumPy - SuiteSparse (which contains UMFPACK) - SWIG

pkg-config is an optional dependency, if it’s installed it may be used to detect a BLAS library.

SuiteSparse cannot be installed from PyPI, however it will likely be available from your package manager of choice. E.g., installing on Ubuntu 22.04 can be achieved with:

sudo apt-get install libsuitesparse-dev

or from Conda-forge on any supported OS with:

conda install suitesparse

SuiteSparse can also be built from source, see the instructions in the README of the SuiteSparse repository.

Detection of UMFPACK

During the build, scikit-umfpack tries to automatically detect the UMFPACK shared library and headers. In case SuiteSparse is installed in a non-standard location, this autodetection may fail. If that happens, it is possible to provide the paths to the library and include directories in a config file (a Meson machine file). This file should contain absolute paths. For example, for a conda env on Windows, it may look like:

[properties]
umfpack-libdir = 'C:\Users\micromamba\envs\scikit-umfpack-dev\Library\lib'
umfpack-includedir = 'C:\Users\micromamba\envs\scikit-umfpack-dev\Library\include\suitesparse'

If that file is named nativefile.ini, then the pip invocation should look like (note that $PWD ensures an absolute path to the native file is used):

pip install . -Csetup-args=--native-file=$PWD/nativefile.ini

Development

Code

You can check the latest sources with the command:

git clone https://github.com/scikit-umfpack/scikit-umfpack.git

or if you have write privileges:

git clone git@github.com:scikit-umfpack/scikit-umfpack.git

Testing

After installation, you can launch the test suite from outside the source directory (you will need to have the pytest package installed):

pip install pytest
pytest --pyargs scikits.umfpack

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

scikit_umfpack-0.4.1.tar.gz (31.8 kB view details)

Uploaded Source

File details

Details for the file scikit_umfpack-0.4.1.tar.gz.

File metadata

  • Download URL: scikit_umfpack-0.4.1.tar.gz
  • Upload date:
  • Size: 31.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.12

File hashes

Hashes for scikit_umfpack-0.4.1.tar.gz
Algorithm Hash digest
SHA256 23a16750fbf866d32341ab3885fd59687bc9d5fbb9d372e50f6a968059604d59
MD5 19e55127b1cf985f4e90bce865a6735d
BLAKE2b-256 9e2c0f3158c39a2212ce90c4e2da38178bbe7520449e9ff0c01cf9346bb498ef

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