Skip to main content

Python3 Interface for HIFIR (hifir4py)

https://github.com/hifirworks/hifir4py/actions/workflows/python-app.yml/badge.svg?branch=main https://img.shields.io/pypi/v/hifir4py.svg?branch=main https://img.shields.io/pypi/pyversions/hifir4py.svg?style=flat-square https://img.shields.io/badge/code%20style-black-000000.svg

Welcome to the Python3 interface of HIFIR package— hifir4py. The Python interface is implemented with Cython.

Detailed documentation of hifir4py can be found at https://hifirworks.github.io/hifir4py.

Installation

One can simply use pip to install hifir4py, i.e.,

pip3 install hifir4py --user

Installation from Source

It is also possible to install from the source. First, down load the most recent stable release

git clone -b release https://github.com/hifirworks/hifir4py.git

You can update to the most recent version via git pull since git clone or last git pull. In addition, you can download the archives at https://github.com/hifirworks/hifir4py/releases.

You need to configure linking against LAPACK by setting the environment variable HIFIR_LAPACK_LIB whose default is -llapack. If you have a specific library path to LAPACK, you then need to set the environment variable HIFIR_LAPACK_LIB_PATH.

To sum up, the following environment variables can be configured

  1. HIFIR_LAPACK_LIB, default is -llapack

  2. HIFIR_LAPACK_LIB_PATH, default is empty

pip3 install . --user

Installation with customized LAPACK/BLAS

Sometimes, it’s helpful to have optimized LAPACK package. The following command shows how to link MKL (on Ubuntu).

HIFIR_LAPACK_LIB="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core" HIFIR_LAPACK_LIB_PATH=/opt/intel/mkl/lib/intel64 pip3 install . --user

Copyrights & Licenses

hifir4py is developed and maintained by the NumGeom Research Group at Stony Brook University.

This software suite is released under a dual-license model. For academic users, individual users, or open-source software developers, you can use HIFIR under the AGPLv3+ license free of charge for research and evaluation purpose. For commercial users, separate commercial licenses are available through the Stony Brook University. For inqueries regarding commercial licenses, please contact Prof. Xiangmin Jiao at xiangmin.jiao@stonybrook.edu.

How to Cite hifir4py

If you use HIFIR (including hifir4py) in your research for nonsingular systems, please cite the following paper.

@article{chen2021hilucsi,
    author  = {Chen, Qiao and Ghai, Aditi and Jiao, Xiangmin},
    title   = {{HILUCSI}: Simple, robust, and fast multilevel {ILU} for
               large-scale saddle-point problems from {PDE}s},
    journal = {Numer. Linear Algebra Appl.},
    year    = {2021},
    doi     = {10.1002/nla.2400}
}

If you use our work in solving ill-conditioned and singular systems, we recommend you to cite the following papers.

@article{jiao2020approximate,
    author  = {Xiangmin Jiao and Qiao Chen},
    journal = {arxiv},
    title   = {Approximate generalized inverses with iterative refinement
              for $\epsilon$-accurate preconditioning of singular systems},
    year    = {2020},
    note    = {arXiv:2009.01673}
}

@article{chen2021hifir,
    author  = {Chen, Qiao and Jiao, Xiangmin},
    title   = {{HIFIR}: Hybrid incomplete factorization with iterative
               refinement for preconditioning ill-conditioned and singular
               Systems},
    journal = {arxiv},
    year    = {2021},
    note    = {arXiv:2106.09877}
}

Contacts

  1. Qiao (Chiao) Chen, <qiao.chen@stonybrook.edu>, <benechiao@gmail.com>

  2. Xiangmin Jiao, <xiangmin.jiao@stonybrook.edu>

Metadata

Release files for hifir4py 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hifir4py 0.1.0
File Size Uploaded
hifir4py-0.1.0.tar.gz 549.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for hifir4py 0.1.0
File
hifir4py-0.1.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-64 Details
hifir4py-0.1.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-64 Details
hifir4py-0.1.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64 Details
hifir4py-0.1.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64 Details

Total release size: 112.3 MB

Release files / hifir4py-0.1.0.tar.gz

Download URL hifir4py-0.1.0.tar.gz
Size 549.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6b4cd1f657a8180c34887a6b230a30773d17ac42f1e3ed194338b80228033b3d
BLAKE2b-256 checksum
How to use checksums
56eeab858fc7f3a14c68d47346c6449a0f3d082883868f4753a7fef17c06d4e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.4.2 requests/2.26.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.9

Release files / hifir4py-0.1.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL hifir4py-0.1.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 28.0 MB
Tags CPython 3.9 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
d5c5f62e8bc0bca21d4daadfc18bd4f124f7af06b8ba963719d1f714cd61b636
BLAKE2b-256 checksum
How to use checksums
5cc1e183012d7f824d80e7d200848dc12158350dfbdf8f36c305c43f5557ae9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.4.2 requests/2.26.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.9

Release files / hifir4py-0.1.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL hifir4py-0.1.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 28.1 MB
Tags CPython 3.8 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
7ba48a2fdd26ae8f9ba0d4a7e16645880545d618f92cf096dbd7bd7c6564b81a
BLAKE2b-256 checksum
How to use checksums
f3c183dae8d22e5ac847f63858f0aca64509eff540d58ea188d37906f80d50dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.4.2 requests/2.26.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.9

Release files / hifir4py-0.1.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL hifir4py-0.1.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 27.8 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
a54a26653e1800375fa3c5aa9dfd4b649a4dcd8801947a844c9dc20f0e21265d
BLAKE2b-256 checksum
How to use checksums
c40c8a1383934d61c3e9f46c93bafbb918786e3e365ac16d588d796f3178d36f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.4.2 requests/2.26.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.9

Release files / hifir4py-0.1.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL hifir4py-0.1.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 27.8 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
103a0e32b284ace2482579f81fa138d4d3c5538b46302c69c329ce320b37c9c6
BLAKE2b-256 checksum
How to use checksums
b9f98dcf9d390a5ff7acd01c197e1a64dd3fdb88ebfa4964db2af947a0735286
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.4.2 requests/2.26.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.9

Release history Release notifications | RSS feed

This release

0.1.0 This release

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page