{ "info": { "author": "Body Labs", "author_email": "alex@bodylabs.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": "metablmath\n==========\n\n|pip install| |version| |python versions| |build status| |last commit|\n|open pull requests|\n\nThis is an active fork of\n`blmath `__, a collection\nmath-related utilities developed at Body Labs.\n\nThe fork\u2019s goals are moderate:\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- Add additional functionality which relates well to what is here.\n- Respond to community contributions.\n\nIt\u2019s used by related forks such as\n`lace `__.\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 metablmath\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\nContribute\n----------\n\n- Issue Tracker: https://github.com/metabolize/blmath/issues\n- Source Code: https://github.com/metabolize/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 `__.\n\nLicense\n-------\n\nThe project is licensed under the two-clause BSD license.\n\n.. |pip install| image:: https://img.shields.io/badge/pip%20install-metablmath-f441b8.svg?style=flat-square\n :target: https://pypi.org/project/metablmath/\n.. |version| image:: https://img.shields.io/pypi/v/metablmath.svg?style=flat-square\n :target: https://pypi.org/project/metablmath/\n.. |python versions| image:: https://img.shields.io/pypi/pyversions/metablmath.svg?style=flat-square\n :target: https://pypi.org/project/metablmath/\n.. |build status| image:: https://img.shields.io/circleci/project/github/metabolize/blmath/master.svg?style=flat-square\n :target: https://circleci.com/gh/metabolize/blmath\n.. |last commit| image:: https://img.shields.io/github/last-commit/metabolize/blmath.svg?style=flat-square\n :target: https://github.com/metabolize/blmath/commits/master\n.. |open pull requests| image:: https://img.shields.io/github/issues-pr/metabolize/blmath.svg?style=flat-square\n :target: https://github.com/metabolize/blmath/pulls", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/metabolize/blmath", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "metablmath", "package_url": "https://pypi.org/project/metablmath/", "platform": "", "project_url": "https://pypi.org/project/metablmath/", "project_urls": { "Homepage": "https://github.com/metabolize/blmath" }, "release_url": "https://pypi.org/project/metablmath/1.6.1/", "requires_dist": null, "requires_python": "", "summary": "Active fork of blmath, a collection math-related utilities developed at Body Labs", "version": "1.6.1" }, "last_serial": 5755913, "releases": { "1.2.5.post1": [ { "comment_text": "", "digests": { "md5": "45baf7de222747fea9c85fddde88ece5", "sha256": "952a6df2382e38a452f6325f11092769429992107142dce4ae163ed74953c985" }, "downloads": -1, "filename": "metablmath-1.2.5.post1.tar.gz", "has_sig": false, "md5_digest": "45baf7de222747fea9c85fddde88ece5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54656, "upload_time": "2018-09-09T18:16:42", "url": "https://files.pythonhosted.org/packages/1f/7b/36c90f3214c300f446c2195da9db6e636d8b3814c52a9a146be1bbd719ed/metablmath-1.2.5.post1.tar.gz" } ], "1.2.5.post2": [ { "comment_text": "", "digests": { "md5": "5173fddea6f7a4ca7e7988c3242c8e95", "sha256": "31d428bb95574b9f77dce7a25fc4d5cbb37abeed4799c63aa6cbd2e3179b9a84" }, "downloads": -1, "filename": "metablmath-1.2.5.post2.tar.gz", "has_sig": false, "md5_digest": "5173fddea6f7a4ca7e7988c3242c8e95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54674, "upload_time": "2018-09-09T21:58:22", "url": "https://files.pythonhosted.org/packages/21/98/2cb025b49c35c91f4e8700c3e362eea4cdd2fcf87ed61ea52c5ba706ad84/metablmath-1.2.5.post2.tar.gz" } ], "1.2.5.post3": [ { "comment_text": "", "digests": { "md5": "58053cf74802fcd1978e0aabfba95bf3", "sha256": "211f469edda48019cc7cfe0e41628552ee470655174db02ff345eb8ffef14868" }, "downloads": -1, "filename": "metablmath-1.2.5.post3.tar.gz", "has_sig": false, "md5_digest": "58053cf74802fcd1978e0aabfba95bf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55906, "upload_time": "2018-10-03T15:22:13", "url": "https://files.pythonhosted.org/packages/5e/f0/1494cedaa446c55720d66ef40ef0d6f2ea2a501d7615e5481c74bb17c316/metablmath-1.2.5.post3.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "18b4e00530a9c057aee3f11837990b37", "sha256": "b4a01d1a1134b6cb923e206a5ab521c37e0611d633d7819e0caff1577d67ee7d" }, "downloads": -1, "filename": "metablmath-1.3.0.tar.gz", "has_sig": false, "md5_digest": "18b4e00530a9c057aee3f11837990b37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55907, "upload_time": "2018-10-04T18:29:30", "url": "https://files.pythonhosted.org/packages/96/55/05ba7e6c5310f0e6ac201377227e9b6c77894f3ddc0d504ae600bbb8ed2b/metablmath-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "cae32a8a05e27da03382b565bd09c123", "sha256": "0a05231ad40010b4d439b176238a767729c066383a202936e7310cab0af70c4c" }, "downloads": -1, "filename": "metablmath-1.4.0.tar.gz", "has_sig": false, "md5_digest": "cae32a8a05e27da03382b565bd09c123", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56151, "upload_time": "2019-03-22T19:19:47", "url": "https://files.pythonhosted.org/packages/1f/b8/80983ae3d4df2696f9fbe5aa89355ef7052c82ce94f9833c01c80c1c61b6/metablmath-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "5a5043a0a54da2cca474ee096d91fc2d", "sha256": "fe8ab1990c05b2254b582fd4fcb503179c83d8d4f33fd4e0d30e86a3878d9266" }, "downloads": -1, "filename": "metablmath-1.5.0.tar.gz", "has_sig": false, "md5_digest": "5a5043a0a54da2cca474ee096d91fc2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57652, "upload_time": "2019-03-24T20:38:52", "url": "https://files.pythonhosted.org/packages/68/61/a0b57d0f5c0aa4cc446a8c7f49b72fed2066dd63674a559d55024953190a/metablmath-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "a302ed25a03af15fcdf1f041ca37581b", "sha256": "286586aa6e64b6e95e159da7c9dee6ed091d2992dfe823344cc7f4b2a860d12b" }, "downloads": -1, "filename": "metablmath-1.6.0.tar.gz", "has_sig": false, "md5_digest": "a302ed25a03af15fcdf1f041ca37581b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57767, "upload_time": "2019-08-28T17:49:07", "url": "https://files.pythonhosted.org/packages/a3/ed/4f82587072ab72f5e2458ea7610769b32873d049f2d1596e9dc5876432aa/metablmath-1.6.0.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "5ec09e8fb2d8d1559b13799facae7702", "sha256": "c202040095c3b20ec8a9edddba652a7ec6f7940823cc5d269fef3e8e34342ce9" }, "downloads": -1, "filename": "metablmath-1.6.1.tar.gz", "has_sig": false, "md5_digest": "5ec09e8fb2d8d1559b13799facae7702", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57789, "upload_time": "2019-08-29T17:59:00", "url": "https://files.pythonhosted.org/packages/dc/68/01a295a3d6c8edb2a75038f48f987ba45b6e13b04b8e14fb1c0d6031b712/metablmath-1.6.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5ec09e8fb2d8d1559b13799facae7702", "sha256": "c202040095c3b20ec8a9edddba652a7ec6f7940823cc5d269fef3e8e34342ce9" }, "downloads": -1, "filename": "metablmath-1.6.1.tar.gz", "has_sig": false, "md5_digest": "5ec09e8fb2d8d1559b13799facae7702", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57789, "upload_time": "2019-08-29T17:59:00", "url": "https://files.pythonhosted.org/packages/dc/68/01a295a3d6c8edb2a75038f48f987ba45b6e13b04b8e14fb1c0d6031b712/metablmath-1.6.1.tar.gz" } ] }