[](https://github.com/pyamg/pyamg/actions?query=workflow%3ACI-test+branch%3Amain)
[](https://github.com/pyamg/pyamg/actions?query=workflow%3ACI-lint+branch%3Amain)
[](https://pypi.org/project/pyamg/)
[](https://pypi.org/project/pyamg/)
[](https://app.codecov.io/gh/pyamg/pyamg)
[](https://doi.org/10.21105/joss.05495)
# Installation
PyAMG requires `numpy` and `scipy`
```
pip install pyamg
```
or from source:
```
pip install .
```
(`python setup.py install` will no longer work)
or with conda (see details below)
```
conda config --add channels conda-forge
conda install pyamg
```
# Introduction
PyAMG is a library of **Algebraic Multigrid (AMG)** solvers with a convenient Python interface.

PyAMG is currently developed and maintained by
[Luke Olson](http://lukeo.cs.illinois.edu),
[Jacob Schroder](https://www.unm.edu/~jbschroder), and
[Ben Southworth](https://arxiv.org/a/southworth_b_1.html).
The organization of the project can be found in [`organization.md`](organization.md) and
examples of use can be found in [`pyamg-examples`](https://github.com/pyamg/pyamg-examples).
**Acknowledgements:**
PyAMG was created by
[Nathan Bell](http://wnbell.com/),
[Luke Olson](http://lukeo.cs.illinois.edu), and
[Jacob Schroder](https://www.unm.edu/~jbschroder).
Portions of the project were partially supported by the NSF under award DMS-0612448.
# Citing
If you use PyAMG in your work, please consider using the following citation:
<pre>
@article{pyamg2023,
author = {Nathan Bell and Luke N. Olson and Jacob Schroder and Ben Southworth},
title = {{PyAMG}: Algebraic Multigrid Solvers in Python},
journal = {Journal of Open Source Software},
year = {2023},
publisher = {The Open Journal},
volume = {8},
number = {87},
pages = {5495},
doi = {10.21105/joss.05495},
url = {https://doi.org/10.21105/joss.05495},
}
</pre>
# Getting Help
- For documentation see [http://pyamg.readthedocs.io/en/latest/](http://pyamg.readthedocs.io/en/latest/).
- Create an [issue](https://github.com/pyamg/pyamg/issues).
- Look at the [Tutorial](https://github.com/pyamg/pyamg/wiki/Tutorial) or the [examples](https://github.com/pyamg/pyamg-examples) (for instance the [0_start_here](https://github.com/pyamg/pyamg-examples/blob/main/0_start_here/demo.py) example).
- Run the unit tests (`pip install pytest`):
- With PyAMG installed and from a non-source directory:
```python
import pyamg
pyamg.test()
```
- From the PyAMG source directory and installed (e.g. with `pip install -e .`):
```python
pytest .
```
# What is AMG?
AMG is a multilevel technique for solving large-scale linear systems with optimal or near-optimal efficiency. Unlike geometric multigrid, AMG requires little or no geometric information about the underlying problem and develops a sequence of coarser grids directly from the input matrix. This feature is especially important for problems discretized on unstructured meshes and irregular grids.
# PyAMG Features
PyAMG features implementations of:
- **Ruge-Stuben (RS)** or *Classical AMG*
- AMG based on **Smoothed Aggregation (SA)**
and experimental support for:
- **Adaptive Smoothed Aggregation (αSA)**
- **Compatible Relaxation (CR)**
The predominant portion of PyAMG is written in Python with a smaller amount of supporting C++ code for performance critical operations.
# Example Usage
PyAMG is easy to use! The following code constructs a two-dimensional Poisson problem and solves the resulting linear system with Classical AMG.
````python
import pyamg
import numpy as np
A = pyamg.gallery.poisson((500,500), format='csr') # 2D Poisson problem on 500x500 grid
ml = pyamg.ruge_stuben_solver(A) # construct the multigrid hierarchy
print(ml) # print hierarchy information
b = np.random.rand(A.shape[0]) # pick a random right hand side
x = ml.solve(b, tol=1e-10) # solve Ax=b to a tolerance of 1e-10
print("residual: ", np.linalg.norm(b-A*x)) # compute norm of residual vector
````
Program output:
<pre>
multilevel_solver
Number of Levels: 9
Operator Complexity: 2.199
Grid Complexity: 1.667
Coarse Solver: 'pinv2'
level unknowns nonzeros
0 250000 1248000 [45.47%]
1 125000 1121002 [40.84%]
2 31252 280662 [10.23%]
3 7825 70657 [ 2.57%]
4 1937 17971 [ 0.65%]
5 483 4725 [ 0.17%]
6 124 1352 [ 0.05%]
7 29 293 [ 0.01%]
8 7 41 [ 0.00%]
residual: 1.24748994988e-08
</pre>
# Conda
More information can be found at [conda-forge/pyamg-feedstock](https://github.com/conda-forge/pyamg-feedstock).
*Linux:*
[](https://circleci.com/gh/conda-forge/pyamg-feedstock)
*OSX:*
[](https://travis-ci.org/conda-forge/pyamg-feedstock)
*Windows:*
[](https://ci.appveyor.com/project/conda-forge/pyamg-feedstock/branch/master)
*Version:*
[](https://anaconda.org/conda-forge/pyamg)
*Downloads:*
[](https://anaconda.org/conda-forge/pyamg)
Installing `pyamg` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with:
```
conda config --add channels conda-forge
```
Once the `conda-forge` channel has been enabled, `pyamg` can be installed with:
```
conda install pyamg
```
It is possible to list all of the versions of `pyamg` available on your platform with:
```
conda search pyamg --channel conda-forge
```
Raw data
{
"_id": null,
"home_page": "https://github.com/pyamg/pyamg",
"name": "pyamg",
"maintainer": "Luke Olson",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "luke.olson@gmail.com",
"keywords": "algebraic multigrid, AMG, sparse matrix, preconditioning",
"author": "Nathan Bell, Luke Olson, and Jacob Schroder",
"author_email": "luke.olson@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/54/f1/e7f0466af00dc59b6592f03499a8ca1c839d5265a045d0b010b574f67143/pyamg-5.3.0.tar.gz",
"platform": null,
"description": "[](https://github.com/pyamg/pyamg/actions?query=workflow%3ACI-test+branch%3Amain)\n[](https://github.com/pyamg/pyamg/actions?query=workflow%3ACI-lint+branch%3Amain)\n[](https://pypi.org/project/pyamg/)\n[](https://pypi.org/project/pyamg/)\n[](https://app.codecov.io/gh/pyamg/pyamg)\n[](https://doi.org/10.21105/joss.05495)\n\n# Installation\nPyAMG requires `numpy` and `scipy`\n\n```\npip install pyamg\n```\n\nor from source:\n\n```\npip install .\n```\n\n(`python setup.py install` will no longer work)\n\nor with conda (see details below)\n\n```\nconda config --add channels conda-forge\nconda install pyamg\n```\n\n# Introduction\n\nPyAMG is a library of **Algebraic Multigrid (AMG)** solvers with a convenient Python interface.\n\n\n\nPyAMG is currently developed and maintained by\n[Luke Olson](http://lukeo.cs.illinois.edu),\n[Jacob Schroder](https://www.unm.edu/~jbschroder), and\n[Ben Southworth](https://arxiv.org/a/southworth_b_1.html).\nThe organization of the project can be found in [`organization.md`](organization.md) and\nexamples of use can be found in [`pyamg-examples`](https://github.com/pyamg/pyamg-examples).\n\n**Acknowledgements:**\nPyAMG was created by\n[Nathan Bell](http://wnbell.com/), \n[Luke Olson](http://lukeo.cs.illinois.edu), and\n[Jacob Schroder](https://www.unm.edu/~jbschroder).\nPortions of the project were partially supported by the NSF under award DMS-0612448.\n\n# Citing\n\nIf you use PyAMG in your work, please consider using the following citation:\n\n<pre>\n@article{pyamg2023,\n author = {Nathan Bell and Luke N. Olson and Jacob Schroder and Ben Southworth},\n title = {{PyAMG}: Algebraic Multigrid Solvers in Python},\n journal = {Journal of Open Source Software},\n year = {2023},\n publisher = {The Open Journal},\n volume = {8},\n number = {87},\n pages = {5495},\n doi = {10.21105/joss.05495},\n url = {https://doi.org/10.21105/joss.05495},\n}\n</pre>\n\n# Getting Help\n\n- For documentation see [http://pyamg.readthedocs.io/en/latest/](http://pyamg.readthedocs.io/en/latest/).\n\n- Create an [issue](https://github.com/pyamg/pyamg/issues).\n\n- Look at the [Tutorial](https://github.com/pyamg/pyamg/wiki/Tutorial) or the [examples](https://github.com/pyamg/pyamg-examples) (for instance the [0_start_here](https://github.com/pyamg/pyamg-examples/blob/main/0_start_here/demo.py) example).\n\n- Run the unit tests (`pip install pytest`):\n - With PyAMG installed and from a non-source directory:\n ```python\n import pyamg\n pyamg.test()\n ```\n - From the PyAMG source directory and installed (e.g. with `pip install -e .`):\n ```python\n pytest .\n ```\n\n# What is AMG?\n\n AMG is a multilevel technique for solving large-scale linear systems with optimal or near-optimal efficiency. Unlike geometric multigrid, AMG requires little or no geometric information about the underlying problem and develops a sequence of coarser grids directly from the input matrix. This feature is especially important for problems discretized on unstructured meshes and irregular grids.\n\n# PyAMG Features\n\nPyAMG features implementations of:\n\n- **Ruge-Stuben (RS)** or *Classical AMG*\n- AMG based on **Smoothed Aggregation (SA)**\n\nand experimental support for:\n\n- **Adaptive Smoothed Aggregation (\u03b1SA)**\n- **Compatible Relaxation (CR)**\n\nThe predominant portion of PyAMG is written in Python with a smaller amount of supporting C++ code for performance critical operations.\n\n# Example Usage\n\nPyAMG is easy to use! The following code constructs a two-dimensional Poisson problem and solves the resulting linear system with Classical AMG.\n\n````python\nimport pyamg\nimport numpy as np\nA = pyamg.gallery.poisson((500,500), format='csr') # 2D Poisson problem on 500x500 grid\nml = pyamg.ruge_stuben_solver(A) # construct the multigrid hierarchy\nprint(ml) # print hierarchy information\nb = np.random.rand(A.shape[0]) # pick a random right hand side\nx = ml.solve(b, tol=1e-10) # solve Ax=b to a tolerance of 1e-10\nprint(\"residual: \", np.linalg.norm(b-A*x)) # compute norm of residual vector\n````\n\nProgram output:\n\n<pre>\nmultilevel_solver\nNumber of Levels: 9\nOperator Complexity: 2.199\nGrid Complexity: 1.667\nCoarse Solver: 'pinv2'\n level unknowns nonzeros\n 0 250000 1248000 [45.47%]\n 1 125000 1121002 [40.84%]\n 2 31252 280662 [10.23%]\n 3 7825 70657 [ 2.57%]\n 4 1937 17971 [ 0.65%]\n 5 483 4725 [ 0.17%]\n 6 124 1352 [ 0.05%]\n 7 29 293 [ 0.01%]\n 8 7 41 [ 0.00%]\n\nresidual: 1.24748994988e-08\n</pre>\n\n# Conda\n\nMore information can be found at [conda-forge/pyamg-feedstock](https://github.com/conda-forge/pyamg-feedstock).\n\n*Linux:*\n[](https://circleci.com/gh/conda-forge/pyamg-feedstock)\n\n*OSX:*\n[](https://travis-ci.org/conda-forge/pyamg-feedstock)\n\n*Windows:*\n[](https://ci.appveyor.com/project/conda-forge/pyamg-feedstock/branch/master)\n\n*Version:*\n[](https://anaconda.org/conda-forge/pyamg)\n\n*Downloads:*\n[](https://anaconda.org/conda-forge/pyamg)\n\nInstalling `pyamg` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with:\n\n```\nconda config --add channels conda-forge\n```\n\nOnce the `conda-forge` channel has been enabled, `pyamg` can be installed with:\n\n```\nconda install pyamg\n```\n\nIt is possible to list all of the versions of `pyamg` available on your platform with:\n\n```\nconda search pyamg --channel conda-forge\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "PyAMG: Algebraic Multigrid Solvers in Python",
"version": "5.3.0",
"project_urls": {
"Download": "https://github.com/pyamg/pyamg/releases",
"Homepage": "https://github.com/pyamg/pyamg"
},
"split_keywords": [
"algebraic multigrid",
" amg",
" sparse matrix",
" preconditioning"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "76d121cbb2322b289ad903523c62bd89ecf6f31d6cdc682945fc0c3ebf7499d4",
"md5": "39bd154c820cd53b7a87ef000a814620",
"sha256": "8c5101865fb9135dd87c5039f8e5427e3d526df48cbb03338d4c8823c70eff33"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "39bd154c820cd53b7a87ef000a814620",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 1825211,
"upload_time": "2025-08-24T02:05:26",
"upload_time_iso_8601": "2025-08-24T02:05:26.522167Z",
"url": "https://files.pythonhosted.org/packages/76/d1/21cbb2322b289ad903523c62bd89ecf6f31d6cdc682945fc0c3ebf7499d4/pyamg-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7b023da10e9ca92f68f5ec839fb4cc53429aca63ad901a1c13e871b51c644fdc",
"md5": "83eab5ac55477c829433d75ff6e26c06",
"sha256": "6d5a724a9257d4d5da2155501cff00d643673d17e3da4b5b2cb4e26df1d23b13"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "83eab5ac55477c829433d75ff6e26c06",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 1740669,
"upload_time": "2025-08-24T02:05:28",
"upload_time_iso_8601": "2025-08-24T02:05:28.878562Z",
"url": "https://files.pythonhosted.org/packages/7b/02/3da10e9ca92f68f5ec839fb4cc53429aca63ad901a1c13e871b51c644fdc/pyamg-5.3.0-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "219b68d64577035dc30f1c420f73e8e418afd9299f50b1d3bec153d6abaf1af2",
"md5": "fa8ee4d3f4974c9246b5946a6ee97a38",
"sha256": "564b2b0356f0e948a2fc531834766a75005e3de325619735d612b767dad73339"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "fa8ee4d3f4974c9246b5946a6ee97a38",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 1871905,
"upload_time": "2025-08-24T02:05:30",
"upload_time_iso_8601": "2025-08-24T02:05:30.839891Z",
"url": "https://files.pythonhosted.org/packages/21/9b/68d64577035dc30f1c420f73e8e418afd9299f50b1d3bec153d6abaf1af2/pyamg-5.3.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fd7bf90952de16963ddcfafdc0c8aeb238a6e4bf59f10f6ae59d9617d8944680",
"md5": "c96fdbf0edb4bc9b4cbb946c01d815c9",
"sha256": "e642cec5ff3b386e6087ccdda1b28b3d683f00437245b23c13f39b22ff08b058"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "c96fdbf0edb4bc9b4cbb946c01d815c9",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 2913195,
"upload_time": "2025-08-24T02:05:33",
"upload_time_iso_8601": "2025-08-24T02:05:33.047582Z",
"url": "https://files.pythonhosted.org/packages/fd/7b/f90952de16963ddcfafdc0c8aeb238a6e4bf59f10f6ae59d9617d8944680/pyamg-5.3.0-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "79a40c29d5a4503e874c6cbf923ff60dcd77c900945b62f87be1708f237423ce",
"md5": "4a7023bfb2ba00f432db25e17990d6b7",
"sha256": "dcd4f1bbf0f4566d62c0dbcbfb428fbb256c44d8b70e1abe903505d1af19c3f6"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "4a7023bfb2ba00f432db25e17990d6b7",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 1545120,
"upload_time": "2025-08-24T02:05:35",
"upload_time_iso_8601": "2025-08-24T02:05:35.128124Z",
"url": "https://files.pythonhosted.org/packages/79/a4/0c29d5a4503e874c6cbf923ff60dcd77c900945b62f87be1708f237423ce/pyamg-5.3.0-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "57a593bff939b883fb15fa6e8b67bbf01aadaa60ff5c77737c5404f960210a7d",
"md5": "55c5cbf89342dbec490b577da097caa2",
"sha256": "dc2ee51c0a9c1a9d265d360b8dad4ef981fa8742bdc641a4e8698c438e6c7e33"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "55c5cbf89342dbec490b577da097caa2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 1666849,
"upload_time": "2025-08-24T02:05:36",
"upload_time_iso_8601": "2025-08-24T02:05:36.615909Z",
"url": "https://files.pythonhosted.org/packages/57/a5/93bff939b883fb15fa6e8b67bbf01aadaa60ff5c77737c5404f960210a7d/pyamg-5.3.0-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f5022f5bb76d617a6932c832b71947d57a304a418f95476ff4ea72708b1bac17",
"md5": "4d9f7881acd52230459e088e8f0f0cc3",
"sha256": "82619094609688d715871bce25eadfe425156242ea2ce1d73388b8af85e75f9d"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "4d9f7881acd52230459e088e8f0f0cc3",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 1838059,
"upload_time": "2025-08-24T02:05:38",
"upload_time_iso_8601": "2025-08-24T02:05:38.717121Z",
"url": "https://files.pythonhosted.org/packages/f5/02/2f5bb76d617a6932c832b71947d57a304a418f95476ff4ea72708b1bac17/pyamg-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "dcc83dfa1198a989f72d628675f81025d80863fc9759bfcc2c2eb1c0bde465ce",
"md5": "054353893cb3b2bbf6d5b6f03552df68",
"sha256": "cd91201d246824bdf2ff16129db48b764cf10e5b45f1fd0b4af537591be1091c"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "054353893cb3b2bbf6d5b6f03552df68",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 1752381,
"upload_time": "2025-08-24T02:05:40",
"upload_time_iso_8601": "2025-08-24T02:05:40.378155Z",
"url": "https://files.pythonhosted.org/packages/dc/c8/3dfa1198a989f72d628675f81025d80863fc9759bfcc2c2eb1c0bde465ce/pyamg-5.3.0-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "af6adea72ea86c94aadab83a1ff8bd4198897a350325911749fb26a2a61271bd",
"md5": "2b726a87b25b4e40dcca67518a6f23b0",
"sha256": "8701ed806ed2195ff9cdad6f2b80d2b0a4d5b652d0232c0ebc43c677db88662f"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "2b726a87b25b4e40dcca67518a6f23b0",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 1880268,
"upload_time": "2025-08-24T02:05:42",
"upload_time_iso_8601": "2025-08-24T02:05:42.018532Z",
"url": "https://files.pythonhosted.org/packages/af/6a/dea72ea86c94aadab83a1ff8bd4198897a350325911749fb26a2a61271bd/pyamg-5.3.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "488388bbcfab2c40d1cb04baab71f8c8d08c00aeab3202a4ea0e81b365c07311",
"md5": "30e13e061cfc772fef7976ba50b31c07",
"sha256": "14d921d6f09eb9b4b3e6c22e1ef19ec27ddd193cf406dbec43ccadc4baf2a2f9"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "30e13e061cfc772fef7976ba50b31c07",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 2921913,
"upload_time": "2025-08-24T02:05:43",
"upload_time_iso_8601": "2025-08-24T02:05:43.720050Z",
"url": "https://files.pythonhosted.org/packages/48/83/88bbcfab2c40d1cb04baab71f8c8d08c00aeab3202a4ea0e81b365c07311/pyamg-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0116814d99c2d2bb52617b0848a62b5b4dad0cc381096ee65f5a382fe356d414",
"md5": "815303dd1cd8bee80a33b38c4f7c5d5f",
"sha256": "d43fac3c4b5f2195716d1630bf7e7123bd1cc40f61d78cb8f257876a9816eb6a"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "815303dd1cd8bee80a33b38c4f7c5d5f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 1555492,
"upload_time": "2025-08-24T02:05:45",
"upload_time_iso_8601": "2025-08-24T02:05:45.307582Z",
"url": "https://files.pythonhosted.org/packages/01/16/814d99c2d2bb52617b0848a62b5b4dad0cc381096ee65f5a382fe356d414/pyamg-5.3.0-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e57f3e724b274f4dce9934f05f5df76ef17b4312dbffda11cb24b37ba47ada39",
"md5": "631589e6c1fa0cb15afbf45a43b596b5",
"sha256": "6aff801a44a5eac40ffc171e326467daa571ddc93511db7c35a17150b8bed77a"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "631589e6c1fa0cb15afbf45a43b596b5",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 1673450,
"upload_time": "2025-08-24T02:05:46",
"upload_time_iso_8601": "2025-08-24T02:05:46.948369Z",
"url": "https://files.pythonhosted.org/packages/e5/7f/3e724b274f4dce9934f05f5df76ef17b4312dbffda11cb24b37ba47ada39/pyamg-5.3.0-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2c6f603ade45abb6ef8fdc40884cb246733efe110db2563c54fd19f7dc240832",
"md5": "4a746c79f1108280cb1969a4d7c31a59",
"sha256": "661f510311fbfa03b8b317ce9cdb6602902321dd936bcc975ee94bfe43eacb72"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp312-cp312-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "4a746c79f1108280cb1969a4d7c31a59",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 1852410,
"upload_time": "2025-08-24T02:05:48",
"upload_time_iso_8601": "2025-08-24T02:05:48.601644Z",
"url": "https://files.pythonhosted.org/packages/2c/6f/603ade45abb6ef8fdc40884cb246733efe110db2563c54fd19f7dc240832/pyamg-5.3.0-cp312-cp312-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6bc4ae346f844d4e08a15b9178707ced39de3f92c4e1b0447d0a9c5ccd24eaac",
"md5": "ba019145c4dd0036f7e538ec5b366f53",
"sha256": "d7d38303310e8551ae737898577c6ec69a1ee0fa4baf95f525c86f0071d94260"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "ba019145c4dd0036f7e538ec5b366f53",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 1763595,
"upload_time": "2025-08-24T02:05:50",
"upload_time_iso_8601": "2025-08-24T02:05:50.550365Z",
"url": "https://files.pythonhosted.org/packages/6b/c4/ae346f844d4e08a15b9178707ced39de3f92c4e1b0447d0a9c5ccd24eaac/pyamg-5.3.0-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "db451c03a50699d1ce96f5a3f54755c3bdd575e459f8ba2c66eba3365881584c",
"md5": "15b738467e5e75bd91764cb2d8c5f03b",
"sha256": "2a69c7974b26b1d5cd5bc0e371c565239199e9032b2ceb97190d492cd6498367"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "15b738467e5e75bd91764cb2d8c5f03b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 1899545,
"upload_time": "2025-08-24T02:05:52",
"upload_time_iso_8601": "2025-08-24T02:05:52.522612Z",
"url": "https://files.pythonhosted.org/packages/db/45/1c03a50699d1ce96f5a3f54755c3bdd575e459f8ba2c66eba3365881584c/pyamg-5.3.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ff16d703720aeaf57eca57867993b57d969ed1bc9675a93c82606663587aa285",
"md5": "66f2acd4591a98e1b581d0e74c38e597",
"sha256": "4a6de101435d11645293f83b23c22830c372100d13e6d0bcb8d1abd3e92c88c8"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "66f2acd4591a98e1b581d0e74c38e597",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2943354,
"upload_time": "2025-08-24T02:05:54",
"upload_time_iso_8601": "2025-08-24T02:05:54.065347Z",
"url": "https://files.pythonhosted.org/packages/ff/16/d703720aeaf57eca57867993b57d969ed1bc9675a93c82606663587aa285/pyamg-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7984cefaabc44798ba7df2e806f4eb06ea435fe627886b40f312d263aaa7b76f",
"md5": "c77b3fb2f4fe18f94e027bfe63a7cf44",
"sha256": "0561b942b7b8a35700842077a2b6a228510ae8fcc402862bd3f60dc7d2cd75f4"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "c77b3fb2f4fe18f94e027bfe63a7cf44",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 1563969,
"upload_time": "2025-08-24T02:05:55",
"upload_time_iso_8601": "2025-08-24T02:05:55.662037Z",
"url": "https://files.pythonhosted.org/packages/79/84/cefaabc44798ba7df2e806f4eb06ea435fe627886b40f312d263aaa7b76f/pyamg-5.3.0-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9d8bff8c56c1f7a7997c7988c84bc55bc34b336b862531fbf88d3a8c5aa3fe5f",
"md5": "fc1596899fb42c10f0dc7cdb2ecf08c6",
"sha256": "dd832b392314c5d4dbb6464f7ba8d788694d253a51b9809af8ade4886d24565f"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "fc1596899fb42c10f0dc7cdb2ecf08c6",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 1681747,
"upload_time": "2025-08-24T02:05:57",
"upload_time_iso_8601": "2025-08-24T02:05:57.421024Z",
"url": "https://files.pythonhosted.org/packages/9d/8b/ff8c56c1f7a7997c7988c84bc55bc34b336b862531fbf88d3a8c5aa3fe5f/pyamg-5.3.0-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "66b9705e5f5177d545114d8ae46245de6bb5b8e3e92d9886a31b7fa475762efd",
"md5": "a5e543a43a8c3f0d7c5c029f17735ff0",
"sha256": "c8e70912b1f6fd02c2d40ca10f6e94cce24181a1baa029f084aee74600242686"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "a5e543a43a8c3f0d7c5c029f17735ff0",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 1852677,
"upload_time": "2025-08-24T02:05:59",
"upload_time_iso_8601": "2025-08-24T02:05:59.084607Z",
"url": "https://files.pythonhosted.org/packages/66/b9/705e5f5177d545114d8ae46245de6bb5b8e3e92d9886a31b7fa475762efd/pyamg-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "48399da477018dd8eee06f064eee3d9047089c0621b3bda63ee99f256b27b287",
"md5": "a895e8336d48bac684bc299e70693fc7",
"sha256": "e8f771f1ad314534d14d6d8a47d289b191f081abdd1443c491ac93f6d3102be5"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "a895e8336d48bac684bc299e70693fc7",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 1763803,
"upload_time": "2025-08-24T02:06:01",
"upload_time_iso_8601": "2025-08-24T02:06:01.006665Z",
"url": "https://files.pythonhosted.org/packages/48/39/9da477018dd8eee06f064eee3d9047089c0621b3bda63ee99f256b27b287/pyamg-5.3.0-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "63f3c13ae1422434baeefe4d4f306a1cc77f024fe96d2abab3c212cfa1bf3ff8",
"md5": "26f10315cff9168a5efd9df559acfd7f",
"sha256": "5cc223c66a7aca06fba898eb5e8ede6bb7974a9ddf7b8a98f56143c829e63631"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "26f10315cff9168a5efd9df559acfd7f",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 1900343,
"upload_time": "2025-08-24T02:06:03",
"upload_time_iso_8601": "2025-08-24T02:06:03.103949Z",
"url": "https://files.pythonhosted.org/packages/63/f3/c13ae1422434baeefe4d4f306a1cc77f024fe96d2abab3c212cfa1bf3ff8/pyamg-5.3.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c98613b27316cf5f984720b736b58d7a0d8bf94870b99a546a0137f53f36924c",
"md5": "117742ecf33228583216ac79e1868dae",
"sha256": "fddf30940d422d97a24b6211e3405bf707688a94d0683780ae40073209c3aa6d"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "117742ecf33228583216ac79e1868dae",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 2946401,
"upload_time": "2025-08-24T02:06:05",
"upload_time_iso_8601": "2025-08-24T02:06:05.101574Z",
"url": "https://files.pythonhosted.org/packages/c9/86/13b27316cf5f984720b736b58d7a0d8bf94870b99a546a0137f53f36924c/pyamg-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "96e2ac14da5a3df18652f651788bf8eda9dcf99a485787ccb28add2fcd5d8eda",
"md5": "93cb8a41c1f8d3cec5ac5f8b158c4059",
"sha256": "6f7ea204aafc7e57a1900d47067430b059954d293a11025aea8616e5b6fba493"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp313-cp313-win32.whl",
"has_sig": false,
"md5_digest": "93cb8a41c1f8d3cec5ac5f8b158c4059",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 1564120,
"upload_time": "2025-08-24T02:06:06",
"upload_time_iso_8601": "2025-08-24T02:06:06.688010Z",
"url": "https://files.pythonhosted.org/packages/96/e2/ac14da5a3df18652f651788bf8eda9dcf99a485787ccb28add2fcd5d8eda/pyamg-5.3.0-cp313-cp313-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d5b472f17561584b51d9c9ca121b5307699eb6aa8300c812a31c8b4ea4ad9d2a",
"md5": "1310c8db45c7af7c40286b8a81f13580",
"sha256": "3965844194dc15be5c9d7198086b58496c2833e40e60b1133ab340d24fac950c"
},
"downloads": -1,
"filename": "pyamg-5.3.0-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "1310c8db45c7af7c40286b8a81f13580",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.9",
"size": 1681868,
"upload_time": "2025-08-24T02:06:08",
"upload_time_iso_8601": "2025-08-24T02:06:08.388388Z",
"url": "https://files.pythonhosted.org/packages/d5/b4/72f17561584b51d9c9ca121b5307699eb6aa8300c812a31c8b4ea4ad9d2a/pyamg-5.3.0-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "54f1e7f0466af00dc59b6592f03499a8ca1c839d5265a045d0b010b574f67143",
"md5": "17ae5f3ee1d371b21a5f423e709b1deb",
"sha256": "5323d0f1a4cd999be246a90d580c9e1e9b584b98887f6298d397611087ef860b"
},
"downloads": -1,
"filename": "pyamg-5.3.0.tar.gz",
"has_sig": false,
"md5_digest": "17ae5f3ee1d371b21a5f423e709b1deb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 4161140,
"upload_time": "2025-08-24T02:06:10",
"upload_time_iso_8601": "2025-08-24T02:06:10.133808Z",
"url": "https://files.pythonhosted.org/packages/54/f1/e7f0466af00dc59b6592f03499a8ca1c839d5265a045d0b010b574f67143/pyamg-5.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-24 02:06:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pyamg",
"github_project": "pyamg",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "numpy",
"specs": []
},
{
"name": "scipy",
"specs": [
[
">=",
"1.11.0"
]
]
}
],
"lcname": "pyamg"
}