This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

pycephes

Name:pycephes
Website:https://github.com/poliastro/pycephes
Author:Juan Luis Cano Rodríguez <juanlu001@gmail.com>
Version:0.1.0

pycephes is a thin Python wrapper for the CEPHES mathematical library from Netlib, written using CFFI and easy to use with numba. It is released under the MIT license, hence allowing commercial use.

At present it only interfaces a single hypergeometric function, but is provided here both as a proof of concept of the power of CFFI + numba and as a support for poliastro, a Python library for interplanetary Astrodynamics. It is therefore a work in progress, and all contributions are welcome (see Contributing).

Performance

The motivation for creating this project is mainly achieving a good performance. Time benchmarks are included in the tests/ directory which can be run using pytest-benchmark.

Preliminary studies suggest that pycephes can be nearly 5 times faster on average than the equivalent SciPy function.

Requirements

pycephes requires the following Python packages:

  • NumPy, for basic array handling
  • CFFI, for interfacing with C code
  • numba, to make it compatible with upstream jitted functions

In addition, the CEPHES mathematical library must be present on the system.

Installation

The easiest and fastest way to get the package up and running is to install pycephes using conda. This also installs the CEPHES package as a dependency:

$ conda install pycephes --channel poliastro

It can be installed from PyPI too, provided that the CEPHES library is present on the system:

$ pip install pycephes

You can also download pycephes source from GitHub and type:

$ pip install .

Development installations are supported as well:

$ pip install -e .

Warning

It is recommended that you never ever use sudo with distutils, pip, setuptools and friends in Linux because you might seriously break your system [1][2][3][4]. Options are virtualenvs or local installations.

Contributing

One obvious area of improvement for the library consists in adding more functions. Some other ideas:

  • Create some script to generate the function headers so they don’t have to be added manually.
  • Use the @generated_jit feature introduced in numba 0.24 to automatically trigger the appropriate function depending on the dimension of the inputs, à la Julia.

Potential contributors are encouraged to fork the repository and open a pull request.

Support

You can post support questions regarding pycephes on the poliastro mailing list or the pycephes issue tracker.

License

pycephes is released under the MIT license, hence allowing commercial use of the library. Please refer to the COPYING file.

Release History

Release History

0.1.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pycephes-0.1.0.tar.gz (47.9 kB) Copy SHA256 Checksum SHA256 Source Mar 6, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting