Cython interface for the GNU Scientific Library (GSL).
Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cython_gsl functions are nogil Dec 23, 2016
examples Port nonlinear least-squares fitting (gsl/gsl_multifit_nlin.h). Jan 18, 2014
CHANGES.rst Bumped version to 0.2.1. Updated CHANGES. Nov 12, 2012
GPLv3.txt DOC: Added license information. Feb 1, 2012
LICENSE
MANIFEST.in Added interface to MANIFEST. Nov 12, 2012
README.rst * like to GSL for Windows Mar 14, 2014
setup.py Bump version to 0.2.2 Feb 23, 2017
setup_interface.py Bumped version to 0.2.1. Updated CHANGES. Nov 12, 2012
setup_test.py Bumped version to 0.2.1. Updated CHANGES. Nov 12, 2012

README.rst

Introduction

Date:May 13, 2012
Version:0.2.1
Authors:Thomas Wiecki, thomas.wiecki[at]gmail.com
Web site:https://github.com/twiecki/CythonGSL
Copyright:This document has been placed in the public domain.
License:CythonGSL is released under the GPLv3.

Purpose

CythonGSL provides a Cython interface for the GNU Scientific Library (GSL).

Cython is the ideal tool to speed up numerical computations by converting typed Python code to C and generating Python wrappers so that these compiled functions can be called from Python. Scientific programming often requires use of various numerical routines (e.g. numerical integration, optimization). While SciPy provides many of those tools, there is an overhead associated with using these functions within your Cython code. CythonGSL allows you to shave off that last layer by providing Cython declarations for the GSL which allow you to use this high-quality library from within Cython without any Python overhead.

Fork of PyrexGsl by Mario Pernici (http://wwwteor.mi.infn.it/~pernici/pyrexgsl/pyrexgsl.html).

Usage

For a quick demo, see: http://nbviewer.ipython.org/urls/raw.github.com/twiecki/CythonGSL/master/examples/cython_gsl_ipythonnb.ipynb

Import CythonGSL in your pyx file

In your cython file from which you want to call gsl routines, import gsl like this:

from cython_gsl cimport *

From there you should be able to call any gsl function, see http://www.gnu.org/software/gsl/manual/gsl-ref.html for the GSL reference.

For more examples, check out the examples directory.

Compile your module

Here is what your setup.py could look like:

from distutils.core import setup
from Cython.Distutils import Extension
from Cython.Distutils import build_ext
import cython_gsl

setup(
    [...]
    include_dirs = [cython_gsl.get_include()],
    cmdclass = {'build_ext': build_ext},
    ext_modules = [Extension("my_cython_script",
                             ["src/my_cython_script.pyx"],
                             libraries=cython_gsl.get_libraries(),
                             library_dirs=[cython_gsl.get_library_dir()],
                             include_dirs=[cython_gsl.get_cython_include_dir()])]
    )

Installation

Dependencies

Installing CythonGSL

python setup.py build
python setup.py install

Installing CythonGSL Unittests

python setup_test.py build
python setup_test.py install
nosetest cython_gsl