{ "info": { "author": "IBM", "author_email": "gh@rayglover.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "sparsesolvers\n=============\n\n.. code::\n\n import sparsesolvers as ss\n import numpy as np\n\n N = 10\n\n # Create an example sensing matrix\n A = np.random.normal(loc=0.025, scale=0.025, size=(N, N)) + np.identity(N)\n\n # An incoming signal\n signal = np.zeros(N)\n signal[2] = 1\n\n # Use the homotopy solver to produce sparse solution, x.\n x, info = ss.Homotopy(A).solve(signal, tolerance=0.1)\n\n # Example output: error=0.064195, sparsity=0.9, argmax=2\n print(\"error=%f, sparsity=%f, argmax=%i\" % (\n info.solution_error, 1 - np.count_nonzero(x) / np.double(N),\n np.argmax(x)))\n\nReferences\n----------\n\n1. *A. Y. Yang, Z. Zhou, A. Ganesh, S. S. Sastry, and Y. Ma* \u2013 **Fast\n \u2113\u2081-minimization Algorithms For Robust Face Recognition** \u2013 IEEE\n Trans. Image Processing, vol. 22, pp. 3234\u20133246, Aug 2013.\n\n2. *R. Chartrand, W. Yin* \u2013 **Iteratively Reweighted Algorithms For\n Compressive Sensing** \u2013 Acoustics Speech and Signal Processing 2008.\n ICASSP 2008. IEEE International Conference, pp. 3869-3872, March\n 2008.\n\n3. *D. O\u2019Leary* \u2013 **Robust Regression Computation Using Iteratively\n Reweighted Least Squares** \u2013 Society for Industrial and Applied\n Mathematics, 1990\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rayglover-ibm/sparse-solvers", "keywords": "compressive sensing,sparsity,homotopy,blas", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "sparsesolvers", "package_url": "https://pypi.org/project/sparsesolvers/", "platform": "", "project_url": "https://pypi.org/project/sparsesolvers/", "project_urls": { "Homepage": "https://github.com/rayglover-ibm/sparse-solvers" }, "release_url": "https://pypi.org/project/sparsesolvers/0.8.8/", "requires_dist": [ "numpy (>=0.11)", "wheel (>=0.27)" ], "requires_python": "", "summary": "High performance \u2113\u2081-minimization solvers", "version": "0.8.8" }, "last_serial": 3902303, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "dd3d1be3e5cd315b462d696bb78ae641", "sha256": "1977a7e2e3ac8c06601df366610a02675da1ec2b88d26fcc0767de649307522e" }, "downloads": -1, "filename": "sparsesolvers-0.0.1-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "dd3d1be3e5cd315b462d696bb78ae641", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1899162, "upload_time": "2017-10-01T14:29:33", "url": "https://files.pythonhosted.org/packages/da/87/df0e6d4de867083d3c5bffaa3eb704a733a5330fe9b66e27d1f3347940e8/sparsesolvers-0.0.1-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "0cfb798c08329baca9955b4627ec59ef", "sha256": "7179ad37037e1f0edd6117b188404104f470bec4c111daafed02a699806cdcc5" }, "downloads": -1, "filename": "sparsesolvers-0.0.1-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "0cfb798c08329baca9955b4627ec59ef", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 3429883, "upload_time": "2017-10-14T12:16:54", "url": "https://files.pythonhosted.org/packages/c4/07/818f4e9a26abbdeeda92148496b642c9801378b99630e2120a6a14eb11ab/sparsesolvers-0.0.1-cp35-cp35m-manylinux1_x86_64.whl" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "8a323f2089da5d64dd8f3e6486741f36", "sha256": "e9c6a7f2db11da14ffd0c76b90d4c51b761a227389b06eb83c1bdd473664cc3b" }, "downloads": -1, "filename": "sparsesolvers-0.0.2-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "8a323f2089da5d64dd8f3e6486741f36", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1338096, "upload_time": "2017-10-14T21:50:40", "url": "https://files.pythonhosted.org/packages/c0/c4/b8e442d349a20f6077ed8eddf186fe3f7c6e0c12f25ac8342102376e83f1/sparsesolvers-0.0.2-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "17868687b17289ed16a766edc335a659", "sha256": "e91ecd9f9b2db59f7184547650b478fe9161bcfcbf03e932afd67c19a291cb29" }, "downloads": -1, "filename": "sparsesolvers-0.0.2-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "17868687b17289ed16a766edc335a659", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1338226, "upload_time": "2017-10-14T21:27:28", "url": "https://files.pythonhosted.org/packages/bb/73/996548829b91a54949d8cd69d16a05a3fa1ad605d4ef2468becb9bfec746/sparsesolvers-0.0.2-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "62359643fa79463ecb585f5262c54066", "sha256": "09c3dcb6a5db12c9ed335c498c7152d4fab292be0fb510b5c2d84dd9d4581f51" }, "downloads": -1, "filename": "sparsesolvers-0.0.2-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "62359643fa79463ecb585f5262c54066", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1338224, "upload_time": "2017-10-14T21:29:59", "url": "https://files.pythonhosted.org/packages/3e/b4/06b4d0089478879ba954fa40a7b59ffb100bd3c6cd19ca038c6d8ab3044e/sparsesolvers-0.0.2-cp36-cp36m-manylinux1_x86_64.whl" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "b65ea11ddb1967d17b550be0640db797", "sha256": "4f4166527ca07289b27fbebed5fd2f3e10d986c3ff8cbe2910d18e6ed9e8a60e" }, "downloads": -1, "filename": "sparsesolvers-0.8.1-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "b65ea11ddb1967d17b550be0640db797", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1401953, "upload_time": "2018-01-21T20:15:58", "url": "https://files.pythonhosted.org/packages/d4/35/952ee4eeb91d7481cf6f2540c6b670186520102900c46f7f359a73b8e480/sparsesolvers-0.8.1-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "63f30663b569e91ad6efa01a18540259", "sha256": "fb0f237716b6515769203bdb9d67b4e14e1483e33ee5b4d34169b61cef1d0eca" }, "downloads": -1, "filename": "sparsesolvers-0.8.1-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "63f30663b569e91ad6efa01a18540259", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1401947, "upload_time": "2018-01-21T20:14:40", "url": "https://files.pythonhosted.org/packages/95/94/d439a4121f20e837b7923b8ec171e878521e70c8078fe2406a72930b2b08/sparsesolvers-0.8.1-cp36-cp36m-manylinux1_x86_64.whl" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "09a031bb01be0aceda2aadce978e6644", "sha256": "244c4a277bba151e81f19e941d6be93de9505948e498e5cb2804f237d999faf2" }, "downloads": -1, "filename": "sparsesolvers-0.8.2-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "09a031bb01be0aceda2aadce978e6644", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1402204, "upload_time": "2018-01-21T22:48:02", "url": "https://files.pythonhosted.org/packages/42/c9/fc4a9b9e794ad0db32a7210e01ebfa98683ce833c2f48b72751eedc99508/sparsesolvers-0.8.2-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "7183047750f259ee2c4991b3281414f9", "sha256": "c3b26fafed368efb8c7e3f6ab053d3e7558d787c8793a47fcb6f827d2d4fc985" }, "downloads": -1, "filename": "sparsesolvers-0.8.2-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "7183047750f259ee2c4991b3281414f9", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1401956, "upload_time": "2018-01-21T22:54:08", "url": "https://files.pythonhosted.org/packages/18/d9/a828c9f0791a2e10d13a26166dfe60caec38ae041a6f76fa6554412d2768/sparsesolvers-0.8.2-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "5dc7f96a7a805c84cc8a5bc798063af9", "sha256": "feae7dbbdadc83152e9b025dd4a0ce6a83706fa37a21921ecafa599bfa236127" }, "downloads": -1, "filename": "sparsesolvers-0.8.2-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "5dc7f96a7a805c84cc8a5bc798063af9", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1401946, "upload_time": "2018-01-21T22:56:18", "url": "https://files.pythonhosted.org/packages/88/ad/979c871f918f02e7ba9bf918bbf444146cc1fecfb746f109369299286914/sparsesolvers-0.8.2-cp36-cp36m-manylinux1_x86_64.whl" } ], "0.8.5": [ { "comment_text": "", "digests": { "md5": "71eb7fc3c86fdf0905122dd454b18c21", "sha256": "9649925516e9497b4a0f55b21029d8c9a86fa7cc863f8cc1911b8e6b37241442" }, "downloads": -1, "filename": "sparsesolvers-0.8.5-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "71eb7fc3c86fdf0905122dd454b18c21", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1405841, "upload_time": "2018-05-26T17:49:23", "url": "https://files.pythonhosted.org/packages/f4/4b/ae31f2ced465adaa7301e4c515ef20a7f65d249a7e3bae4c04d9264d46ad/sparsesolvers-0.8.5-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "8a2cbbe4e3ee951d1ea26adc4b9acb88", "sha256": "eb0870ed843cfca186558a2d7af2a0f700827e8953df7dc0d39e4af694c1e03b" }, "downloads": -1, "filename": "sparsesolvers-0.8.5-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "8a2cbbe4e3ee951d1ea26adc4b9acb88", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1405862, "upload_time": "2018-05-26T17:52:08", "url": "https://files.pythonhosted.org/packages/0b/89/0dea32b388fc2755ba4497231f56c4a8a6aac340bbd6c810eb24c78e7abc/sparsesolvers-0.8.5-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "8b3633d310cf10db7f2663b31d335aed", "sha256": "c1842af38ceb2ee9bf23613876af49fe017024477f877475ed4cae80c6e51d70" }, "downloads": -1, "filename": "sparsesolvers-0.8.5-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "8b3633d310cf10db7f2663b31d335aed", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1405834, "upload_time": "2018-05-26T17:51:44", "url": "https://files.pythonhosted.org/packages/ac/28/28e0aea5209720e11042b6e997707a519340172b77b37618ee9fe8b97d72/sparsesolvers-0.8.5-cp36-cp36m-manylinux1_x86_64.whl" } ], "0.8.6": [ { "comment_text": "", "digests": { "md5": "3c2a6eab1d30bb480a23b23764d7f75e", "sha256": "196393e43a25fdc43dd46a5149e6f375c27303c42713fd0bd73285d7ea0fbca8" }, "downloads": -1, "filename": "sparsesolvers-0.8.6-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "3c2a6eab1d30bb480a23b23764d7f75e", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1405843, "upload_time": "2018-05-26T18:47:41", "url": "https://files.pythonhosted.org/packages/34/02/dfadacc7966fa00ecb871991feb2b80ea4cf0917ce647da69cc977f19e58/sparsesolvers-0.8.6-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "4223e3425a98d44718fbb9c82dcf2130", "sha256": "6b3e8527e5cefacb38bfb00387613fe41657a6af42675919d101653d7e13ff6d" }, "downloads": -1, "filename": "sparsesolvers-0.8.6-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "4223e3425a98d44718fbb9c82dcf2130", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1405863, "upload_time": "2018-05-26T18:51:20", "url": "https://files.pythonhosted.org/packages/37/16/6d345df64700c6d3a3a06244833e3ea1bb72cac2795355aba94d89f70e68/sparsesolvers-0.8.6-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "9616f2d12d65d56a0e23a77dc6a2387d", "sha256": "5feabbc85b8517b32b68b6615949dfe91e410c80162741209e1883cd9d25793c" }, "downloads": -1, "filename": "sparsesolvers-0.8.6-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "9616f2d12d65d56a0e23a77dc6a2387d", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1405835, "upload_time": "2018-05-26T18:50:22", "url": "https://files.pythonhosted.org/packages/cc/95/ddcc59f474b4a93cc378eb6bc6137a39f6bb4e533b0d2c1a69e31e13d314/sparsesolvers-0.8.6-cp36-cp36m-manylinux1_x86_64.whl" } ], "0.8.7": [ { "comment_text": "", "digests": { "md5": "04f40aba6156f9fc0d28ef844a50fc62", "sha256": "453504bbd2b4b13a26d13305cb47741a6c3139512c9405c2939a5c76c9f93c80" }, "downloads": -1, "filename": "sparsesolvers-0.8.7-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "04f40aba6156f9fc0d28ef844a50fc62", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1405844, "upload_time": "2018-05-26T22:29:09", "url": "https://files.pythonhosted.org/packages/fc/9b/e044e401230028e6ee1af0b12cbf33324d2871bd7e85cff2b640f9173302/sparsesolvers-0.8.7-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "e6bf1afb92f56b90a49a9e54239cb26a", "sha256": "90cd02358e012bfb5fea570285ef123891f85ea381f8e630ca5cb3c1f26b79e6" }, "downloads": -1, "filename": "sparsesolvers-0.8.7-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "e6bf1afb92f56b90a49a9e54239cb26a", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1405862, "upload_time": "2018-05-26T22:33:34", "url": "https://files.pythonhosted.org/packages/cb/02/f61969b083dd73c7cda78137b367d8da8bbea7969e6818634feecc72d160/sparsesolvers-0.8.7-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "17ac67fc60c012e3572fa2d8fed4f98e", "sha256": "6f933b16b3e3917613e9ba0caf8a8e393b51a95f42cfb300b058d4e0ab55bedb" }, "downloads": -1, "filename": "sparsesolvers-0.8.7-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "17ac67fc60c012e3572fa2d8fed4f98e", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1405837, "upload_time": "2018-05-26T22:21:34", "url": "https://files.pythonhosted.org/packages/9d/f0/b1cc637f6c68760a81fa78db6db25d6090e7869e5011183787d1344ec77a/sparsesolvers-0.8.7-cp36-cp36m-manylinux1_x86_64.whl" } ], "0.8.8": [ { "comment_text": "", "digests": { "md5": "0c3930642e50f3bd46343ebad74d9a1e", "sha256": "b9fff8b5d465c060ada2caeaf31677bda6ccd13d20428d268c67552cea21451f" }, "downloads": -1, "filename": "sparsesolvers-0.8.8-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "0c3930642e50f3bd46343ebad74d9a1e", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1406482, "upload_time": "2018-05-27T00:04:21", "url": "https://files.pythonhosted.org/packages/2a/ec/8d9f1f7aa79f940745630b483e4eee8330ec25edb195834693ee8626af5a/sparsesolvers-0.8.8-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "ac2992e6575cbec79c9b2e2e0f476401", "sha256": "af1da4670d429c95509ab3ede4fed4a86d52ae067a73961a9c17c7b36760fc8e" }, "downloads": -1, "filename": "sparsesolvers-0.8.8-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "ac2992e6575cbec79c9b2e2e0f476401", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1406505, "upload_time": "2018-05-27T00:07:56", "url": "https://files.pythonhosted.org/packages/d8/c5/b96ae62f2302761eb50ea833888995630899a1208053d2f1a8fa6e23a98c/sparsesolvers-0.8.8-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "24d84d22026f3219bf77f2bf97f7dcef", "sha256": "ef43e9bd38a928e09f969b4327a5042da8e2c93a94c9060b366d5b7dff15f6e6" }, "downloads": -1, "filename": "sparsesolvers-0.8.8-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "24d84d22026f3219bf77f2bf97f7dcef", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1406479, "upload_time": "2018-05-26T23:57:26", "url": "https://files.pythonhosted.org/packages/81/52/22e7ca1b336ad1632903997b8aad40360d9ea40c10a6d8a3f25211b6c97a/sparsesolvers-0.8.8-cp36-cp36m-manylinux1_x86_64.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0c3930642e50f3bd46343ebad74d9a1e", "sha256": "b9fff8b5d465c060ada2caeaf31677bda6ccd13d20428d268c67552cea21451f" }, "downloads": -1, "filename": "sparsesolvers-0.8.8-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "0c3930642e50f3bd46343ebad74d9a1e", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1406482, "upload_time": "2018-05-27T00:04:21", "url": "https://files.pythonhosted.org/packages/2a/ec/8d9f1f7aa79f940745630b483e4eee8330ec25edb195834693ee8626af5a/sparsesolvers-0.8.8-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "ac2992e6575cbec79c9b2e2e0f476401", "sha256": "af1da4670d429c95509ab3ede4fed4a86d52ae067a73961a9c17c7b36760fc8e" }, "downloads": -1, "filename": "sparsesolvers-0.8.8-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "ac2992e6575cbec79c9b2e2e0f476401", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1406505, "upload_time": "2018-05-27T00:07:56", "url": "https://files.pythonhosted.org/packages/d8/c5/b96ae62f2302761eb50ea833888995630899a1208053d2f1a8fa6e23a98c/sparsesolvers-0.8.8-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "24d84d22026f3219bf77f2bf97f7dcef", "sha256": "ef43e9bd38a928e09f969b4327a5042da8e2c93a94c9060b366d5b7dff15f6e6" }, "downloads": -1, "filename": "sparsesolvers-0.8.8-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "24d84d22026f3219bf77f2bf97f7dcef", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1406479, "upload_time": "2018-05-26T23:57:26", "url": "https://files.pythonhosted.org/packages/81/52/22e7ca1b336ad1632903997b8aad40360d9ea40c10a6d8a3f25211b6c97a/sparsesolvers-0.8.8-cp36-cp36m-manylinux1_x86_64.whl" } ] }