Skip to content

heyheyjp/blmath

 
 

Repository files navigation

blmath

A collection of math related utilities used by many bits of BodyLabs' code.

Requirements

On macOS:

brew install homebrew/science/suite-sparse
brew install homebrew/science/opencv --without-numpy

On Linux:

sudo apt-get install python-opencv libsuitesparse-dev

On windows:

TODO: Windows install instructions

blmath.numerics

Functions for manipulating numeric arrays, numbers, and linear algebra.

The most commonly used of these are directly imported into blmath.numerics.

  • blmath.numerics.vx is a namespace of common linear algebra operations. These are easily expressed in numpy, but abstracted for readability purposes.
  • blmath.numerics.coercion contains a validation function as_numeric_array, which produces useful error messages up front on bad inputs, in place of cryptic messages like "cannot broadcast..." later on.
  • blmath.numerics.operations contains basic numerical operations such as zero_safe_divide.
  • blmath.numerics.predicates contains functions like isnumeric.
  • blmath.numerics.rounding contains functions including "round to nearest" and roundedlist.
  • blmath.numerics.numpy_ext contains numpy utility functions.
  • blmath.numerics.matlab contains some matlab shortcuts which have no numpy equivalent. At MPI the fitting code was originally written in Matlab before it was ported to Python.

blmath.numerics.linalg contains linear algebra operations.

blmath.geometry

Geometric operations, transforms, and primitives, in 2D and 3D.

The most commonly used of these are directly imported into blmath.geometry.

blmath.geometry.transform includes code for 3D transforms.

Other modules:

blmath.value

Class for wrapping and manipulating value/units pairs.

blmath.units

TODO write something here

blmath.console

Development

pip install -r requirements_dev.txt
pip install -e .  # builds the native extension
rake unittest
rake lint

Contribute

  • Issue Tracker: github.com/bodylabs/blmath/issues
  • Source Code: github.com/bodylabs/blmath

Pull requests welcome!

Support

If you are having issues, please let us know.

License

The project is licensed under the two-clause BSD license.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 96.5%
  • C 2.8%
  • Ruby 0.7%