{ "info": { "author": "Eloy Romero Alcalde, Andreas Stathopoulos and Lingfei Wu", "author_email": "eloy@cs.wm.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: C", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering", "Topic :: Software Development" ], "description": "PRIMME: PReconditioned Iterative MultiMethod Eigensolver\n========================================================\n\n`primme` is a Python interface to PRIMME_, a high-performance library for computing a few eigenvalues/eigenvectors, and singular values/vectors.\nPRIMME is especially optimized for large, difficult problems.\nReal symmetric and complex Hermitian problems, standard `A x = \\lambda x` and generalized `A x = \\lambda B x`, are supported.\nIt can find largest, smallest, or interior singular/eigenvalues, and can use preconditioning to accelerate convergence.\n\nThe main contributors to PRIMME are James R. McCombs, Eloy Romero Alcalde, Andreas Stathopoulos and Lingfei Wu.\n\nInstall\n-------\n\nYou can install the latest version with `pip`::\n\n pip install numpy # if numpy is not installed yet\n pip install scipy # if scipy is not installed yet\n pip install future # if using python 2\n conda install mkl-devel # if using Anaconda Python distribution\n pip install primme\n\nOptionally for building the development version do::\n\n git clone https://github.com/primme/primme\n cd primme\n make python_install\n\nUsage\n-----\n\nThe following examples compute a few eigenvalues and eigenvectors from a real symmetric matrix::\n\n >>> import Primme, scipy.sparse\n >>> A = scipy.sparse.spdiags(range(100), [0], 100, 100) # sparse diag. matrix\n >>> evals, evecs = Primme.eigsh(A, 3, tol=1e-6, which='LA')\n >>> evals # the three largest eigenvalues of A\n array([ 99., 98., 97.])\n\n >>> new_evals, new_evecs = Primme.eigsh(A, 3, tol=1e-6, which='LA', ortho=evecs)\n >>> new_evals # the next three largest eigenvalues\n array([ 96., 95., 94.])\n\n >>> evals, evecs = primme.eigsh(A, 3, tol=1e-6, which=50.1)\n >>> evals # the three closest eigenvalues to 50.1\n array([ 50., 51., 49.])\n\n\nThe following examples compute a few eigenvalues and eigenvectors from a generalized Hermitian problem, without factorizing or inverting `B`::\n\n >>> import Primme, scipy.sparse\n >>> A = scipy.sparse.spdiags(range(100), [0], 100, 100) # sparse diag. matrix\n >>> M = scipy.sparse.spdiags(np.asarray(range(99,-1,-1)), [0], 100, 100)\n >>> evals, evecs = primme.eigsh(A, 3, M=M, tol=1e-6, which='SA')\n >>> evals\n array([1.0035e-07, 1.0204e-02, 2.0618e-02])\n\nThe following examples compute a few singular values and vectors::\n\n >>> import Primme, scipy.sparse\n >>> A = scipy.sparse.spdiags(range(1, 11), [0], 100, 10) # sparse diag. rect. matrix\n >>> svecs_left, svals, svecs_right = Primme.svds(A, 3, tol=1e-6, which='SM')\n >>> svals # the three smallest singular values of A\n array([ 1., 2., 3.])\n\n >>> A = scipy.sparse.rand(10000, 100, random_state=10)\n >>> prec = scipy.sparse.spdiags(np.reciprocal(A.multiply(A).sum(axis=0)),\n ... [0], 100, 100) # square diag. preconditioner\n >>> svecs_left, svals, svecs_right = Primme.svds(A, 3, which=6.0, tol=1e-6,\n ... precAHA=prec)\n >>> [\"%.5f\" % x for x in svals.flat] # the three closest singular values of A to 0.5\n ['5.99871', '5.99057', '6.01065']\n\nFurther examples_.\n\nDocumentation of eigsh_ and svds_.\n\nCiting this code \n----------------\n\nPlease cite (bibtex_):\n\n* A. Stathopoulos and J. R. McCombs *PRIMME: PReconditioned Iterative\n MultiMethod Eigensolver: Methods and software description*, ACM\n Transaction on Mathematical Software Vol. 37, No. 2, (2010),\n 21:1-21:30.\n\n* L. Wu, E. Romero and A. Stathopoulos, *PRIMME_SVDS: A High-Performance\n Preconditioned SVD Solver for Accurate Large-Scale Computations*,\n J. Sci. Comput., Vol. 39, No. 5, (2017), S248--S271.\n\nLicense Information\n-------------------\n\nPRIMME and this interface is licensed under the 3-clause license BSD.\n\nContact Information \n-------------------\n\nFor reporting bugs or questions about functionality contact `Andreas Stathopoulos`_ by\nemail, `andreas` at `cs.wm.edu`. See further information in\nthe webpage http://www.cs.wm.edu/~andreas/software.\n\n.. _PRIMME: https://github.com/primme/primme\n.. _`Andreas Stathopoulos`: http://www.cs.wm.edu/~andreas/software\n.. _`github`: https://github.com/primme/primme\n.. _`doc`: http://www.cs.wm.edu/~andreas/software/doc/readme.html\n.. _PETSc: http://www.mcs.anl.gov/petsc/\n.. _`bibtex`: https://raw.githubusercontent.com/primme/primme/master/doc/primme.bib\n.. _eigsh: http://www.cs.wm.edu/~andreas/software/doc/pyeigsh.html\n.. _svds: http://www.cs.wm.edu/~andreas/software/doc/pysvds.html\n.. _examples: https://github.com/primme/primme/blob/master/Python/examples.py", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/primme/primme", "keywords": "eigenvalues singular values generalized Hermitian symmetric Davidson-type high-performance large-scale matrix", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "primme", "package_url": "https://pypi.org/project/primme/", "platform": "", "project_url": "https://pypi.org/project/primme/", "project_urls": { "Homepage": "https://github.com/primme/primme" }, "release_url": "https://pypi.org/project/primme/3.0.2/", "requires_dist": null, "requires_python": "", "summary": "PRIMME wrapper for Python", "version": "3.0.2" }, "last_serial": 5638855, "releases": { "2.1.3": [ { "comment_text": "", "digests": { "md5": "243ac694b624a4034bd57fd19d55c2df", "sha256": "b09f085246b1e190e2a2c244578800ea2377c069ae194b2bb38546a90c17abcf" }, "downloads": -1, "filename": "primme-2.1.3.tar.gz", "has_sig": false, "md5_digest": "243ac694b624a4034bd57fd19d55c2df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 245459, "upload_time": "2017-04-11T02:28:08", "url": "https://files.pythonhosted.org/packages/a8/4a/de99fe8aac33dd82227d9002ce5acae9c0054335f9aa4c28dd0fd1e2594f/primme-2.1.3.tar.gz" } ], "2.1.4": [ { "comment_text": "", "digests": { "md5": "3a25151a58b573ccf0809f75b74d4f66", "sha256": "09b2bb52cf83d802d2d33a6bad53bd5e56ff3399d25f5b557178f5bd331af0c0" }, "downloads": -1, "filename": "primme-2.1.4.tar.gz", "has_sig": false, "md5_digest": "3a25151a58b573ccf0809f75b74d4f66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 245472, "upload_time": "2017-04-11T03:21:40", "url": "https://files.pythonhosted.org/packages/57/22/40bbabf5137f6b57df32b762734e39145fb1aafaeec34fd8c1c93c317b21/primme-2.1.4.tar.gz" } ], "2.1.5": [ { "comment_text": "", "digests": { "md5": "6da909267904d8eda26ddb55440ff4e7", "sha256": "3e04f7ceffb41e00dd03a8d59658884e877e15e41b217aae0d1bce4d7833caae" }, "downloads": -1, "filename": "primme-2.1.5.tar.gz", "has_sig": false, "md5_digest": "6da909267904d8eda26ddb55440ff4e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 246152, "upload_time": "2017-04-14T04:08:32", "url": "https://files.pythonhosted.org/packages/aa/05/150b5fe5ea1e852b31adf2993e36ef3cc55d2ba186121e9093d139ed30c7/primme-2.1.5.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "aae546525c4f7df1d66e268fdf5b41b2", "sha256": "26a113a8f78796d4c740ffec178390dc2c82b56442bc5fdc001ce9e680566a64" }, "downloads": -1, "filename": "primme-3.0.1.tar.gz", "has_sig": false, "md5_digest": "aae546525c4f7df1d66e268fdf5b41b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 523328, "upload_time": "2019-08-05T09:39:23", "url": "https://files.pythonhosted.org/packages/18/9c/312a46705f8cbbbf571c745df93cc961b0354748d863f56d01c208fedfba/primme-3.0.1.tar.gz" } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "c6441518891f2775f833959a083d2bcd", "sha256": "4ca3498349eb27eff192556717d5ed9c7afd5d23ca29cdd38e33bf7371f01303" }, "downloads": -1, "filename": "primme-3.0.2.tar.gz", "has_sig": false, "md5_digest": "c6441518891f2775f833959a083d2bcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 522804, "upload_time": "2019-08-06T10:16:38", "url": "https://files.pythonhosted.org/packages/83/02/91237f33f5fd7b53cf9eab7ec67eb1a19eab6473cf4739de64d51fc68796/primme-3.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c6441518891f2775f833959a083d2bcd", "sha256": "4ca3498349eb27eff192556717d5ed9c7afd5d23ca29cdd38e33bf7371f01303" }, "downloads": -1, "filename": "primme-3.0.2.tar.gz", "has_sig": false, "md5_digest": "c6441518891f2775f833959a083d2bcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 522804, "upload_time": "2019-08-06T10:16:38", "url": "https://files.pythonhosted.org/packages/83/02/91237f33f5fd7b53cf9eab7ec67eb1a19eab6473cf4739de64d51fc68796/primme-3.0.2.tar.gz" } ] }