SimCxx是一个用C++编写的最小符号操作Python程序包。

symcxx的Python项目详细描述


Build statusPyPI versionPython versionLicenseairspeedvelocitycoverage

SymCXX是一个实验 Python包(其核心在C++中实现)用于符号操作 范围有限的(如在最小范围内)。 它试图与SymPy的api保持兼容。 其主要目标是探索与自动区分和 数值计算类似于SymEngine的Lambdify功能。

这些功能包括:

  • 微分(包括矩阵的雅可比矩阵)
  • 数值计算

上述能力正是 pyodesys 以及pyneqsys

注意,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]])

许可证

源代码是开源的,在简化的2条款bsd许可下发布。有关详细信息,请参见LICENSE

欢迎投稿人在https://github.com/bjodah/symcxx

作者

比约恩·达尔格伦,联系人:

  • Gmail地址:bjodah
  • KTH.SE地址:bda

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
tomcat java。lang.NoClassDefFoundError:无法初始化类com。太阳代理$Proxy8   java Spring引导CommandLineRunner异常处理建议   java文件。getParentFile()。mkdirs();在osx中创建重复文件夹   java Lucene IndexWriter线程安全   HashMapJava加速了哈希映射的创建   java执行器服务从Servlet线程启动   guava在Java中创建异构列表   泛型Java将比较器传递给构造函数   在Java中生成公钥和私钥的加密会生成类似的所有密钥,包括私钥和公钥   java ResourceLocation抛出FileNotFoundException Minecraft Forge 1.12.2   java使用动态键序列化JSON响应   在空映射上调用方法时发生java NullPointerException   java在Selenium中选择不同行中的按钮   优化在Java中,降低时间和空间复杂性的最佳方法是什么?   java表。setValueAt(…)不为JTable工作   javajsonrpc与JSON   ant从java编译中排除类的特定方法