Installation
============
The lintegrate library requires that you have the `GNU Scientific Library (GSL)
`_ installed on your system. In particular, the development
version of the library is required, so that the header files are present.
For Linux systems, GSL can be installed with:
.. tabbed:: Debian-based
.. code-block:: console
$ sudo apt install libgsl-dev
.. tabbed:: Red Hat-based
.. code-block:: console
$ sudo yum install gsl-devel
.. tabbed:: openSUSE-based
.. code-block:: console
$ sudo zypper install gsl-devel
For Mac OS, GSL can be installed with:
.. code-block:: console
$ brew install gsl
For Windows you can install lintegrate via :ref:`Conda`, which will automatically include
dependencies such as GSL.
Installing from source
----------------------
The C library of lintegrate can be installed on Linux and Mac OS systems from the source hosted on
`GitHub `_. This requires the `SCons
`_ software construction tool. The source repository can be cloned with:
.. tabbed:: HTTPS
.. code-block:: console
$ git clone https://github.com/mattpitkin/lintegrate.git
.. tabbed:: ssh
.. code-block:: console
$ git clone git@github.com:mattpitkin/lintegrate.git
.. tabbed:: GitHub CLI
.. code-block:: console
$ gh repo clone mattpitkin/lintegrate
After cloning, build and install the library with:
.. code-block:: console
$ sudo scons
$ sudo scons install
Python package
^^^^^^^^^^^^^^
The Python package can also be installed by running:
.. code-block:: console
$ pip install .
PyPI
----
To install lintegrate using pip from the `PyPI repository `_
`GSL `_ must be already installed on your system. lintegrate can
then be installed with:
.. code-block:: console
$ pip install lintegrate
Conda
-----
lintegrate can be installed on Linux, Mac OS, or Windows, without having to pre-install any
dependencies by using the `conda-forge `_ version of
the package. This can be done via the Anaconda Navigator or on the command line using:
.. code-block:: console
$ conda install -c conda-forge lintegrate
Contributing
------------
Contributions to lintegrate, either to the C library or the Python wrapper, are welcome. Issues can
be raised via the GitHub `issue tracker `_ and
`pull requests `_ are encouraged.