blmath的active fork,一个在body labs开发的与数学相关的集合实用程序
metablmath的Python项目详细描述
这是一个活跃的分支 blmath,收藏 身体实验室开发的数学相关实用程序。
叉子的目标是适度的:
- 使库在当前版本的python和其他 工具。
- 修复错误。
- 提供API稳定性和与上游的向后兼容性 版本。
- 添加与此处内容相关的附加功能。
- 响应社区的贡献。
它被相关的叉子使用,比如 lace。
安装
安装依赖项
在MacOS上:
brew install homebrew/science/suite-sparse brew install homebrew/science/opencv --without-numpy
在Linux上:
sudo apt-get install python-opencv libsuitesparse-dev
安装库
pip install metablmath
然后像上游库一样导入:
fromblmath.numericsimportvx
许多BodyLabs使用的数学相关实用程序的集合 代码。
blmath.numerics
用于操作数字数组、数字和线性代数的函数。
直接导入most commonly used of these 变成blmath.numerics。
- blmath.numerics.vx是公共的命名空间 线性代数运算。这些很容易用numpy表示,但是 为了可读性而抽象的。
- blmath.numerics.coercion包含验证 函数as_numeric_array,它产生有用的错误消息 预先处理错误的输入,代替像“cannot 广播……“稍后。
- blmath.numerics.operations包含基本 数值运算,如zero_safe_divide。
- blmath.numerics.predicates包含函数 就像isnumeric。
- blmath.numerics.rounding包含函数 包括“四舍五入”和roundedlist。
- blmath.numerics.numpy_ext包含numpy实用程序 功能。
- blmath.numerics.matlab包含一些Matlab快捷方式 没有同等数量的。在MPI,装配代码是 最初是在移植到python之前用matlab编写的。
blmath.numerics.linalg包含线性代数运算。
- blmath.numerics.linalg.sparse_cg包含 快速矩阵求解稀疏雅可比优化。
- blmath.numerics.linalg.lchol包含 cholesky因子分解的cythonized实现。
- blmath.numerics.linalg.isomorphism 计算两个基之间的同构。
- blmath.numerics.linalg.gram_schmidt 提供用于正交化的函数。
几何图形
二维和三维几何运算、变换和基本体。
直接导入most commonly used of these 变成blmath.geometry。
- blmath.geometry.Box表示 轴对齐长方体。
- blmath.geometry.Plane表示二维 3空间中的平面(不是超平面)。
- blmath.geometry.Polyline表示 三维空间中的无约束多边形链。
blmath.geometry.transform包含用于三维转换的代码。
- blmath.geometry.transform.CompositeTransform 表示使用齐次坐标的复合变换。 (谢谢AVD!)
- blmath.geometry.transform.CoordinateManager 为 从一个参考坐标系到 另一个。
- blmath.geometry.transform.find_rigid_transform 查找紧密转换一组 指向另一个。它的堂兄find_rigid_rotation也这样做, 但只允许旋转,不允许平移。
- blmath.geometry.transform.rotation.rotation_from_up_and_look 生成一个旋转矩阵,使网格进入标准 “向上”和“看”向量的参考帧。
其他模块:
- blmath.geometry.apex提供查找 最极端的一点。
- blmath.geometry.barycentric提供了一个函数 用于使用重心坐标将点投影到三角形上。
- blmath.geometry.convexify为 从大部分平面曲线生成凸面外壳。
- blmath.geometry.segment为 在n空间中处理线段。
blmath.value
用于包装和操作value/units对的类。
数学单位
在这里写点什么
blmath.控制台
- blmath.console.input_float读取并返回浮点 从控制台。
- blmath.console.input_value将units与 从控制台浮动输入并返回Value对象。
开发
pip install -r requirements_dev.txt
pip install -e . # builds the native extension
rake unittest
rake lint
支架
如果你有问题,请告诉我们。
致谢
该系列是在Body Labs开发的,包括 在Body Labs开发的代码,来自遗留代码和重要的新代码 部分由Eric Rachlin、Alex Weiss和Paul Melnikow。它是从 Body Labs的代码库和开源由Alex Weiss。
许可证
该项目根据两条BSD许可证获得许可。