{ "info": { "author": "Body Labs, Metabolize", "author_email": "github@paulmelnikow.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "blmath\n======\n\n|version| |python versions| |build status|\n\nCollection of math-related utilities developed at Body Labs.\n\nThis is a legacy library in active maintenance. The goals are:\n\n- Keep the library working in current versions of Python and other\n tools.\n- Make bug fixes.\n- Provide API stability and backward compatibility with the upstream\n version.\n\nThe main thrust is to transition the functionality in this library (and\nthe code which depends on it, such as\n`lace `__ to new libraries include\n`vg `__ and\n`polliwog `__. In general, new\nfunctionality should be added in the new libraries. As needed,\nadditional libraries can be added to the lace org.\n\nInstallation\n------------\n\nInstall dependencies\n~~~~~~~~~~~~~~~~~~~~\n\nOn macOS:\n\n::\n\n brew install homebrew/science/suite-sparse\n brew install homebrew/science/opencv --without-numpy\n\nOn Linux:\n\n::\n\n sudo apt-get install python-opencv libsuitesparse-dev\n\nInstall the library\n~~~~~~~~~~~~~~~~~~~\n\n.. code:: sh\n\n pip install blmath\n\nAnd import it just like the upstream library:\n\n.. code:: py\n\n from blmath.numerics import vx\n\nA collection of math related utilities used by many bits of BodyLabs\u2019\ncode.\n\nblmath.numerics\n---------------\n\nFunctions for manipulating numeric arrays, numbers, and linear algebra.\n\nThe `most commonly used of these <__init__.py>`__ are directly imported\ninto ``blmath.numerics``.\n\n- `blmath.numerics.vx `__ is a namespace of common\n linear algebra operations. These are easily expressed in numpy, but\n abstracted for readability purposes.\n- `blmath.numerics.coercion `__ contains a validation\n function ``as_numeric_array``, which produces useful error messages\n up front on bad inputs, in place of cryptic messages like \u201ccannot\n broadcast\u2026\u201d later on.\n- `blmath.numerics.operations `__ contains basic\n numerical operations such as ``zero_safe_divide``.\n- `blmath.numerics.predicates `__ contains functions\n like ``isnumeric``.\n- `blmath.numerics.rounding `__ contains functions\n including \u201cround to nearest\u201d and ``roundedlist``.\n- `blmath.numerics.numpy_ext `__ contains numpy utility\n functions.\n- `blmath.numerics.matlab `__ contains some matlab shortcuts\n which have no numpy equivalent. At MPI the fitting code was\n originally written in Matlab before it was ported to Python.\n\n`blmath.numerics.linalg `__ contains linear algebra operations.\n\n- `blmath.numerics.linalg.sparse_cg `__ contains a\n faster matrix solve optimized for sparse Jacobians.\n- `blmath.numerics.linalg.lchol `__ contains a\n Cythonized implementation of Cholesky factorization.\n- `blmath.numerics.linalg.isomorphism `__\n computes the isomorphism between two bases.\n- `blmath.numerics.linalg.gram_schmidt `__\n provides a function for orthonormalization.\n\nblmath.geometry\n---------------\n\nGeometric operations, transforms, and primitives, in 2D and 3D.\n\nThe `most commonly used of these <__init__.py>`__ are directly imported\ninto ``blmath.geometry``.\n\n- `blmath.geometry.Box `__ represents an\n axis-aligned cuboid.\n- `blmath.geometry.Plane `__ represents a 2-D\n plane in 3-space (not a hyperplane).\n- `blmath.geometry.Polyline `__ represents an\n unconstrained polygonal chain in 3-space.\n\n``blmath.geometry.transform`` includes code for 3D transforms.\n\n- `blmath.geometry.transform.CompositeTransform `__\n represents a composite transform using homogeneous coordinates.\n (Thanks avd!)\n- `blmath.geometry.transform.CoordinateManager `__\n provides a convenient interface for named reference frames within a\n stack of transforms and projecting points from one reference frame to\n another.\n- `blmath.geometry.transform.find_rigid_transform `__\n finds a rotation and translation that closely transforms one set of\n points to another. Its cousin ``find_rigid_rotation`` does the same,\n but only allows rotation, not translation.\n- `blmath.geometry.transform.rotation.rotation_from_up_and_look `__\n produces a rotation matrix that gets a mesh into the canonical\n reference frame from \u201cup\u201d and \u201clook\u201d vectors.\n\nOther modules:\n\n- `blmath.geometry.apex `__ provides functions for finding the\n most extreme point.\n- `blmath.geometry.barycentric `__ provides a function\n for projecting a point to a triangle using barycentric coordinates.\n- `blmath.geometry.convexify `__ provides a function for\n producing a convex hull from a mostly-planar curve.\n- `blmath.geometry.segment `__ provides functions for\n working with line segments in n-space.\n\nblmath.value\n------------\n\nClass for wrapping and manipulating ``value``/``units`` pairs.\n\nblmath.units\n------------\n\nTODO write something here\n\nblmath.console\n--------------\n\n- `blmath.console.input_float `__ reads and returns a float\n from console.\n- `blmath.console.input_value `__ combines ``units`` with a\n float input from console and returns ``Value`` object.\n\nDevelopment\n-----------\n\n.. code:: sh\n\n pip install -r requirements_dev.txt\n pip install -e . # builds the native extension\n rake unittest\n rake lint\n\nTests are configured to run in both python 2.7 and 3.6 locally via tox\nas well as in CircleCI. To run tests in multiple versions of python, run\n``tox``:\n\n.. code:: sh\n\n pip install -r requirements_dev.txt\n tox\n\nYou need to make sure that ``python2.7`` and ``python3.6`` are valid\ncommands; this can be done in pyenv via ``pyenv global 3.6.5 2.7.15``\n\nContribute\n----------\n\n- Issue Tracker: https://github.com/lace/blmath/issues\n- Source Code: https://github.com/lace/blmath\n\nPull requests welcome!\n\nSupport\n-------\n\nIf you are having issues, please let us know.\n\nAcknowledgements\n----------------\n\nThis collection was developed at Body Labs and includes a combination of\ncode developed at Body Labs, from legacy code and significant new\nportions by `Eric Rachlin `__, `Alex\nWeiss `__, and `Paul\nMelnikow `__. It was extracted from the\nBody Labs codebase and open-sourced by `Alex\nWeiss `__. In 2018 it was `forked by Paul\nMelnikow `__ and published as\n`metablmath `__. Thanks to a\nrepository and package transfer from Body Labs, the fork has been merged\nback into the original.\n\nLicense\n-------\n\nThe project is licensed under the two-clause BSD license.\n\n.. |version| image:: https://img.shields.io/pypi/v/blmath?style=flat-square\n :target: https://pypi.org/project/blmath/\n.. |python versions| image:: https://img.shields.io/pypi/pyversions/blmath?style=flat-square\n :target: https://pypi.org/project/blmath/\n.. |build status| image:: https://img.shields.io/circleci/project/github/lace/blmath/master.svg?style=flat-square\n :target: https://circleci.com/gh/lace/blmath", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lace/blmath", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "blmath", "package_url": "https://pypi.org/project/blmath/", "platform": "", "project_url": "https://pypi.org/project/blmath/", "project_urls": { "Homepage": "https://github.com/lace/blmath" }, "release_url": "https://pypi.org/project/blmath/1.6.3/", "requires_dist": null, "requires_python": "", "summary": "Collection math-related utilities developed at Body Labs", "version": "1.6.3" }, "last_serial": 5862829, "releases": { "1.0.2": [ { "comment_text": "", "digests": { "md5": "650d1b089bdbc1ddf8572521ee891c4e", "sha256": "25202f98febec4e45d3df2d345c30d1b26eaf8ec8b539957a9ea72654281cd9a" }, "downloads": -1, "filename": "blmath-1.0.2-cp27-cp27m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "650d1b089bdbc1ddf8572521ee891c4e", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 60900, "upload_time": "2017-04-27T15:14:14", "url": "https://files.pythonhosted.org/packages/5a/f5/20a41d9b844c5b755377da9362b08b15010fafa21477909dc2765fad6fd8/blmath-1.0.2-cp27-cp27m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "02f51146b168c514906baf42e717178c", "sha256": "a304affb32b6cd2237ce3ea8e9b8bdc2ae9f05896f7b3ee4440af36dcbc052b2" }, "downloads": -1, "filename": "blmath-1.0.2.tar.gz", "has_sig": false, "md5_digest": "02f51146b168c514906baf42e717178c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44125, "upload_time": "2017-04-27T15:13:51", "url": "https://files.pythonhosted.org/packages/68/f7/347303f10f4537ee3f793bb53c91dd1197cde447ea2f95fceb1082621d17/blmath-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "5f3b8cdd52b11e728cc0848537c11860", "sha256": "7381b9ae7c9a4ed1f8843fffb0e5e5dbddbac4ff2bc3e899733822aaeca28908" }, "downloads": -1, "filename": "blmath-1.0.3-cp27-cp27m-macosx_10_10_x86_64.whl", "has_sig": false, "md5_digest": "5f3b8cdd52b11e728cc0848537c11860", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 127088, "upload_time": "2017-04-27T17:50:28", "url": "https://files.pythonhosted.org/packages/34/4d/3c04844f3f33b77e6e075682f9c471d0713bf6bcdf707248e677b8c737b2/blmath-1.0.3-cp27-cp27m-macosx_10_10_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "37274b67cfe5591cc98a70f3c3b02e51", "sha256": "a9930a84ce727bedcda89ab6bf25fa1266603ec243eef2c7c8b6f04f255ee223" }, "downloads": -1, "filename": "blmath-1.0.3.tar.gz", "has_sig": false, "md5_digest": "37274b67cfe5591cc98a70f3c3b02e51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46703, "upload_time": "2017-04-27T17:50:37", "url": "https://files.pythonhosted.org/packages/01/47/c0d2df0e1d445420e554c615a4ad4b1220ba9d694950dcdaed00ba43253d/blmath-1.0.3.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "ad60ec4b8a6349810e66925a5c69cd28", "sha256": "8e520171ec96df4c2ecaa5106670108bd156e68b79bafd2e4cd57cad13aafbbf" }, "downloads": -1, "filename": "blmath-1.1.1-cp27-cp27m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "ad60ec4b8a6349810e66925a5c69cd28", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 69764, "upload_time": "2017-05-26T16:48:48", "url": "https://files.pythonhosted.org/packages/00/2e/1540f56799268e7877c55bafbd166037dd82d1dc254185a3ec8b048c4092/blmath-1.1.1-cp27-cp27m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a27eac18b1042bd66019f322119cdffd", "sha256": "cb61dd6d9d1ad0e351998707ac0f803ea9cd9a5f675316799feb38d7909d53c0" }, "downloads": -1, "filename": "blmath-1.1.1.tar.gz", "has_sig": false, "md5_digest": "a27eac18b1042bd66019f322119cdffd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51229, "upload_time": "2017-05-26T16:48:50", "url": "https://files.pythonhosted.org/packages/4a/a4/01b7de46489fc688490fedc47a5c01d5b1c01c7530f095abef5e269fc84b/blmath-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "504fd5ca8e53d5bdfed1aa3593ece828", "sha256": "c18cdb483fe1aaad06e2f927c04f16801c20397cc92020f52358e97cb688f9bf" }, "downloads": -1, "filename": "blmath-1.2.0-cp27-cp27m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "504fd5ca8e53d5bdfed1aa3593ece828", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 69902, "upload_time": "2017-06-08T16:09:48", "url": "https://files.pythonhosted.org/packages/6c/1f/42f470b6769c155f143152dc976a0226652b270f7a83e7b3cff54081d94e/blmath-1.2.0-cp27-cp27m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "28436420835c6d0f1a6525442ca4ae76", "sha256": "95f4b74b7a34555738e134536c6ef71300eb2205c499afa9d6a72e719a461a16" }, "downloads": -1, "filename": "blmath-1.2.0.tar.gz", "has_sig": false, "md5_digest": "28436420835c6d0f1a6525442ca4ae76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51387, "upload_time": "2017-06-08T16:09:51", "url": "https://files.pythonhosted.org/packages/7f/f7/54b6190af73d483fc01f1e84d56a88b77be2bd4336053108150301fd8655/blmath-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "94732e51489dd779d4322244b5cd67b9", "sha256": "67914257ee9b1d0d9c4412cef9418e95a3978ca61010e7bb45a9ba2a7756d396" }, "downloads": -1, "filename": "blmath-1.2.1-cp27-cp27m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "94732e51489dd779d4322244b5cd67b9", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 70146, "upload_time": "2017-06-26T17:08:28", "url": "https://files.pythonhosted.org/packages/a7/e5/f8c41c11a85d5a078819969092c933231032094b1268b19db36f59ece556/blmath-1.2.1-cp27-cp27m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "98636505f5ed8747acae702c93ac8473", "sha256": "5f1dec9787d3be4c0bf927cc2145d23b27b6f7316c464f711fa104361a5a8eee" }, "downloads": -1, "filename": "blmath-1.2.1.tar.gz", "has_sig": false, "md5_digest": "98636505f5ed8747acae702c93ac8473", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51595, "upload_time": "2017-06-26T17:08:31", "url": "https://files.pythonhosted.org/packages/70/13/bfeda7ffea1b112da57fe2e48db2d896dc9cac94d1a22aea74d31f4ae0ec/blmath-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "1cef69ece06aaf846428c1924240af5c", "sha256": "94e9b635b2bf8c8042b15bc2311baf33e643ebbfb6d8d634ceded610fbf26d61" }, "downloads": -1, "filename": "blmath-1.2.2-cp27-cp27m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "1cef69ece06aaf846428c1924240af5c", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 70489, "upload_time": "2017-06-30T14:12:36", "url": "https://files.pythonhosted.org/packages/6e/f3/c69840cdb851281b37d7ee0b849b10909cc4a1b34445e32e2d84ff4f66b3/blmath-1.2.2-cp27-cp27m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "9473ae21349d0c3c4208fe1dfb3e41a3", "sha256": "ed0863dfb4cc174113b72a938c7bca1dcd345187b51e2e1487ab6082c3c376ef" }, "downloads": -1, "filename": "blmath-1.2.2.tar.gz", "has_sig": false, "md5_digest": "9473ae21349d0c3c4208fe1dfb3e41a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52011, "upload_time": "2017-06-30T14:12:38", "url": "https://files.pythonhosted.org/packages/43/02/c8849736d135fa0bc8a3ba7c0a052e6d4d439c8068e3cc0f4e522c1db5af/blmath-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "e013658c8a4a4372a13763fb36da9c4d", "sha256": "3869672abefdc62cd038cc78ecd926171256479224a8cea3374c492047ea9fb7" }, "downloads": -1, "filename": "blmath-1.2.3-cp27-cp27m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "e013658c8a4a4372a13763fb36da9c4d", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 70851, "upload_time": "2017-07-06T20:07:10", "url": "https://files.pythonhosted.org/packages/b1/10/66b16a86deb8b1025096493cb6dcba27c5ef72b6d3690ae121a8a94b9599/blmath-1.2.3-cp27-cp27m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "26ca31444a0759e35c20a1cb95162c67", "sha256": "fc6130be3b2f1b29c3d931dd708fb46c313f57ce526c4507ac1c29ab431f13da" }, "downloads": -1, "filename": "blmath-1.2.3.tar.gz", "has_sig": false, "md5_digest": "26ca31444a0759e35c20a1cb95162c67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52330, "upload_time": "2017-07-06T20:07:13", "url": "https://files.pythonhosted.org/packages/73/3f/bb8c0d6625aa9f0f37b08d5222c068867da7d7d5b42f9146f26211305a2c/blmath-1.2.3.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "044bd2fc18157bed136fa397e6725d1c", "sha256": "43d20c839a4ba45629976eed4b37316e829ae159d2dcf9359eb52102006043ba" }, "downloads": -1, "filename": "blmath-1.2.4-cp27-cp27m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "044bd2fc18157bed136fa397e6725d1c", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 71056, "upload_time": "2017-07-18T20:10:40", "url": "https://files.pythonhosted.org/packages/21/54/ebb15e9ece312616c1eb8391254dbee991896ec6bc6ebdcada1cb33c8bdd/blmath-1.2.4-cp27-cp27m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "5860bd039d985d90d9be3c1356d2dd74", "sha256": "b9778c9fe9bdefbdccccb464036acbb56bcb49709516bce1aa49b61eb99ed3ff" }, "downloads": -1, "filename": "blmath-1.2.4.tar.gz", "has_sig": false, "md5_digest": "5860bd039d985d90d9be3c1356d2dd74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52499, "upload_time": "2017-07-18T20:10:42", "url": "https://files.pythonhosted.org/packages/28/aa/c60a7cf33764a08ce5c9ea260257329db85fec5dc8fabaec04fcb008a8b6/blmath-1.2.4.tar.gz" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "98dddedb460fa53c70f48ae9ff63e671", "sha256": "73bbd9a315857714ed88448230e555b2f0b8164495ea5a83a820752b25d3bbf4" }, "downloads": -1, "filename": "blmath-1.2.5.tar.gz", "has_sig": false, "md5_digest": "98dddedb460fa53c70f48ae9ff63e671", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52712, "upload_time": "2018-08-29T16:43:39", "url": "https://files.pythonhosted.org/packages/ba/8c/7c698a2428b3110024a10ff028ccd06bac36a494a86c5550b53323a11d87/blmath-1.2.5.tar.gz" } ], "1.2.6": [ { "comment_text": "", "digests": { "md5": "36af7cb52ea361d86c7a9137dfb3e33c", "sha256": "db6621f7ba4c22f93c19dd992f57a530daaae95e840243551fb93824e6266097" }, "downloads": -1, "filename": "blmath-1.2.6-cp34-cp34m-macosx_10_12_x86_64.whl", "has_sig": false, "md5_digest": "36af7cb52ea361d86c7a9137dfb3e33c", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 70206, "upload_time": "2018-09-10T13:44:05", "url": "https://files.pythonhosted.org/packages/28/52/d150a8d092df3abb96ae97c3bc9ff18a7c431da51cb5b5864d959d800e87/blmath-1.2.6-cp34-cp34m-macosx_10_12_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "50e8b1ba9127b1487aa6a82109179e16", "sha256": "513a0410ee85919337fc4d02ebf7ef6b81be905df94fbb8867726f566e1a5a11" }, "downloads": -1, "filename": "blmath-1.2.6.tar.gz", "has_sig": false, "md5_digest": "50e8b1ba9127b1487aa6a82109179e16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52729, "upload_time": "2018-09-10T13:44:08", "url": "https://files.pythonhosted.org/packages/45/d1/01fb49e6aa698d09b5ac2701169a13ad9d6db23ae63e57c678e1c0cd37e5/blmath-1.2.6.tar.gz" } ], "1.6.2": [ { "comment_text": "", "digests": { "md5": "5f703943ad24d8eb015cd9334efc7bca", "sha256": "01a2ee5286af42c8a86cc6b475f884341cbfa52536266b15efc96e46dc230a77" }, "downloads": -1, "filename": "blmath-1.6.2.tar.gz", "has_sig": false, "md5_digest": "5f703943ad24d8eb015cd9334efc7bca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57746, "upload_time": "2019-09-09T18:46:31", "url": "https://files.pythonhosted.org/packages/a4/42/a2c4f7416857cecd69dde0f336f04179809ace41cf400515da43603a39a5/blmath-1.6.2.tar.gz" } ], "1.6.3": [ { "comment_text": "", "digests": { "md5": "7f3c4783fc68ee4065722587b20c0ba6", "sha256": "3aa03ddd49c1772ec6249273bd9be8b62c79715d13bf631c0612140d1ed5b11b" }, "downloads": -1, "filename": "blmath-1.6.3.tar.gz", "has_sig": false, "md5_digest": "7f3c4783fc68ee4065722587b20c0ba6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57808, "upload_time": "2019-09-20T15:05:43", "url": "https://files.pythonhosted.org/packages/c8/83/05ea664c1ec90072e65ce7cba7451b411bd87c4736f0050b556ff08ed0b7/blmath-1.6.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7f3c4783fc68ee4065722587b20c0ba6", "sha256": "3aa03ddd49c1772ec6249273bd9be8b62c79715d13bf631c0612140d1ed5b11b" }, "downloads": -1, "filename": "blmath-1.6.3.tar.gz", "has_sig": false, "md5_digest": "7f3c4783fc68ee4065722587b20c0ba6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57808, "upload_time": "2019-09-20T15:05:43", "url": "https://files.pythonhosted.org/packages/c8/83/05ea664c1ec90072e65ce7cba7451b411bd87c4736f0050b556ff08ed0b7/blmath-1.6.3.tar.gz" } ] }