用于天体物理计算的python实时编译器

hope的Python项目详细描述


https://badge.fury.io/py/hope.svghttp://img.shields.io/badge/arXiv-1410.4345-brightgreen.svg?style=flathttps://cosmo-gitlab.phys.ethz.ch/cosmo/hope/badges/master/build.svghttps://cosmo-gitlab.phys.ethz.ch/cosmo/hope/badges/master/coverage.svg

hope是用python为 将Python源代码翻译成C++,并在运行时编译该代码。在 与其他现有的JIT编译器相比,它们是为一般设计的 目的,我们重点开发了python语言的子集 这与天体物理计算最为相关专注于此 子集,hope能够获得尽可能高的性能。

通过使用hope,用户可以从编写common 用Python编写的具有编译实现性能的数字代码。 要启用HOPEJIT编译,用户需要将decorator添加到 函数定义。该包不需要其他信息, 这样可以确保hope尽可能地非侵入性:

fromhopeimportjit@jitdefsum(x,y):returnx+y

hope包是在苏黎世eth的ETH Institute of AstronomySoftware Lab of the Cosmology Research Group中开发的,现已公开 在GitHub提供。

有关该包的更多信息,请参见 readthedocs.org和我们的 website

支持的Python版本

hope支持从2.7到3.6的python版本。

安装

包已上载到PyPI 可通过pip安装在命令行:

$ pip install hope

或者,如果安装了virtualenvwrapper:

$ mkvirtualenv hope
$ pip install hope

历史记录

0.7.0(2017-09-08)

  • 支持Python3.5和3.6

0.6.1(2016-07-04)

  • 当访问类成员操作错误
  • 时修复bug

0.6.0(2016-04-19)

  • 修正了二维数组切片中的错误
  • 负索引数组切片
  • 修复了具有对象属性的名称冲突错误
  • 将赋值替换为对对象属性的引用

0.5.0(2016-01-20)

  • 修复了在jitted fkt中创建数组时的内存泄漏
  • 修复了numpy.interp中不正确的绑定处理

0.4.0(2015-02-04)

  • 提高了大型函数的编译速度
  • 支持if else中的变量分配
  • 添加了对numpy.sign的支持
  • 更新了基准中的cython实现
  • 修正了osx yosemite下的阵列分配问题(thx iankronquist)

0.3.1(2014-10-24)

  • 更好地支持Python3.3和3.4
  • travis ci中的适当积分
  • 改进了对Linux系统的支持(接受x86-linux-gnu-gcc
  • 通过删除Wstrict原型避免在Linux上发出警告
  • 支持GCC代理铿锵(OSX)
  • 添加了一组示例

0.3.0(2014-10-16)

  • 语言:标量返回值
  • 共享库被写入hope.config.prefix
  • 函数调用可以有返回值
  • 修复了对没有参数的函数的函数调用
  • 如果python代码已更改,请确保重新编译代码
  • 添加了config.optimize以使用sympy和replace pow简化表达式
  • 希望的速度改进
  • 添加了对对象属性的支持
  • 增加了对对象方法的支持
  • 添加对true和false的支持
  • 添加对While的支持
  • 添加对numpy.sum的支持
  • 添加对numpy.pi的支持
  • 添加了对numpy.floor、numpy.ceil、numpy.trunc、numpy.fabs、numpy.log的支持
  • 改进的错误消息
  • 添加了config.rangecheck标志
  • 在for循环中支持xrange
  • 为np.bool_u、np.int_u、np.intc、np.int8、np.int16、np.int32、np.int64、np.uint8、np.uint16、np.uint添加了强制转换运算符32个,np.uint64个,np.float_u个,np.float32个,np.float64个,
  • 添加了bool运算符
  • 添加了以下运算符:
FloorDiv^{tt1}$
Mod^{tt2}$
LShift^{tt3}$
RShift^{tt4}$
BitOr^{tt5}$
BitXor^{tt6}$
BitAnd^{tt7}$
AugFloorDiv^{tt8}$
AugPow^{tt9}$
AugMod^{tt10}$
AugLShift^{tt11}$
AugRShift^{tt11}$
AugBitOr^{tt5}$
AugBitXor^{tt6}$
AugBitAnd^{tt7}$

0.2.0(2014-03-05)

  • 在私有PyPI上发布的第一个版本

0.1.0(2014-02-27)

  • 初始创建。

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

推荐PyPI第三方库


热门话题
java OnResizeListener或OnDrawListener或类似的东西   java Orika映射嵌套子列表   保存时java Heroku请求超时代码H12   数据库在Java中出现socket读取超时异常的原因是什么?   java如何更改来自Sqlite数据库的特定数据在Listview中的行颜色   java JAXB解组器无法正确处理XML中的列表   java Android日期时区让我抓狂   java不透明属性在Swing中如何工作?   eclipse从JavaEE代码生成流程图   java如何在Hibernate中从相关表中获取计数   java Glassfish部署了项目的依赖项库   java使内容适合JavaFx中的WebView   java不满意的链接错误libcrypto。所以1.0.0   循环中java数组的使用   java找出哪个包调用服务