SimCxx是一个用C++编写的最小符号操作Python程序包。
symcxx的Python项目详细描述
SymCXX是一个实验 Python包(其核心在C++中实现)用于符号操作 范围有限的(如在最小范围内)。 它试图与SymPy的api保持兼容。 其主要目标是探索与自动区分和 数值计算类似于SymEngine的Lambdify功能。
这些功能包括:
- 微分(包括矩阵的雅可比矩阵)
- 数值计算
注意,symcxx中的整数可能溢出,即如果正确性很重要 请使用sympy/symmengine。
文档
目前用户可以参考symy/symmengine的文档。
安装
安装symcxx及其(可选)依赖项的最简单方法是 conda package manager:
$ conda install -c bjodah symcxx pytest $ python -m pytest --pyargs symcxx
或PIP(需要一个C++ 11兼容编译器):
$ pip install --user symcxx pytest $ python -m pytest --pyargs symcxx
python标准库之外没有任何需求。
源分发在以下位置可用: https://pypi.python.org/pypi/symcxx
示例
差异化
>>>fromsymcxximportNameSpace>>>ns=NameSpace()>>>x,y=map(ns.Symbol,'x y'.split())>>>expr=x*y**2-ns.tan(2*x)>>>print(expr.diff(x))Sub(Pow(Symbol(y),Integer(2)),Mul2(Integer(2),Add2(Integer(1),Pow(Tan(Mul2(Symbol(x),Integer(2))),Integer(2)))))
lambdify
>>>lmb=ns.Lambdify([x,y],expr)>>>lmb([1.3,0.2])array([[0.65359661]])