Package: hope
HOPEis a specialized method-at-a-time JIT compiler written in Python for
translating Python source code into C++ and compiles this at runtime. In
contrast to other existing JIT compliers, which are designed for general
purpose, we have focused our development of the subset of the Python language
that is most relevant for astrophysical calculations. By concentrating on this
subset,HOPEis able to achieve the highest possible performance.By usingHOPE, the user can benefit from being able to write common
numerical code in Python and having the performance of compiled implementation.
To enable theHOPEJIT compilation, the user needs to add a decorator to
the function definition. The package does not require additional information,
which ensures thatHOPEis as non-intrusive as possible:fromhopeimportjit@jitdefsum(x,y):returnx+yTheHOPEpackage has been developed at ETH Zurich in theSoftware Lab of
the Cosmology Research Groupof theETH
Institute of Astronomy, and is now publicly
available atGitHub.Further information on the package can be found in ourpaper,  onreadthedocs.organd on ourwebsite.Python versions supportedHope supports Python versions from2.7up to3.6.InstallationThe package has been uploaded toPyPIand can be installed at the command line via pip:$ pip install hopeOr, if you have virtualenvwrapper installed:$ mkvirtualenv hope
$ pip install hopeHistory0.7.0 (2017-09-08)Support for Python 3.5 and 3.60.6.1 (2016-07-04)fixing bug when accessing class members for operations0.6.0 (2016-04-19)Fixed bug in 2d array slicingArray slicing with negative indexFixed name clash bug with object attributesReplaced assignment with reference to object attributes0.5.0 (2016-01-20)Fixed memory leak when creating array in jitted fktFixed incorrect bound handling in numpy.interp0.4.0 (2015-02-04)Increased compilation speed for large functionsSupport for variable allocation within if-elseAdded support for numpy.signUpdated Cython implementation in benchmarksFixed array allocation problem under OSX Yosemite (thx iankronquist)0.3.1 (2014-10-24)Better support for Python 3.3 and 3.4Proper integration in Travis CIImproved support for Linux systems (accepting x86_64-linux-gnu-gcc)Avoiding warning on Linux by removingWstrict-prototypesargSupporting gcc proxied clang (OS X)Added set of examples0.3.0 (2014-10-16)Language: scalar return valuesShared libraries are written to hope.config.prefixFunction call can have return valuesFixed function calls to function with no argumentsMake sure code is recompiled if the python code has changedAdded config.optimize to simplify expression using sympy and replace powSpeed improvements for hopeAdded support for object propertiesAdded support for object methodsAddes support for True and FalseAddes support for WhileAddes support for numpy.sumAddes support for numpy.piAdded support for numpy.floor, numpy.ceil, numpy.trunc, numpy.fabs, numpy.logimproved error messagesAdded config.rangecheck flagSupport xrange in for loopAdded cast operators for np.bool_, np.int_, np.intc, np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64, np.float_, np.float32, np.float64,Added bool operatorsAdded the following operators:FloorDiva // bModa % bLShifta << bRShifta >> bBitOra | bBitXora ^ bBitAnda & bAugFloorDiva //= bAugPowa **= bAugModa %= bAugLShifta <<= bAugRShifta <<= bAugBitOra | bAugBitXora ^ bAugBitAnda & b0.2.0 (2014-03-05)First release on private PyPI.0.1.0 (2014-02-27)Initial creation.