================
Spectral Toolbox
================

The SpectralToolbox is a collection of tools useful for spectral approximation methods in one or more dimensions.
It include the construction of traditional orthogonal polynomials. Additionally one can construct orthogonal polynomials with respect to a selected measure.

Description
===========

Implementation of Spectral Methods in N dimension.

Available polynomials:
    * Jacobi
    * Hermite Physicists'
    * Hermite Physicists' Function
    * Hermite Probabilists'
    * Hermite Probabilists' Function
    * Laguerre Polynomial
    * Laguerre Function
    * Fourier
    * ORTHPOL package (generation of recursion coefficients using [1]_)

Available quadrature rules (related to selected polynomials):
    * Gauss
    * Gauss-Lobatto
    * Gauss-Radau

Available quadrature rules (without polynomial selection):
    * Kronrod-Patterson on the real line
    * Kronrod-Patterson uniform
    * Clenshaw-Curtis
    * Fejer's

Requirements
============

  * `numpy <https://pypi.python.org/pypi/numpy>`_
  * `scipy <https://pypi.python.org/pypi/scipy>`_
  * `orthpol <https://pypi.python.org/pypi/orthpol>`_ >= 0.2.2

Installation (using pip)
========================

For everything to go smooth, I suggest that you first install the requirements separately, even if in some environments the direct installation of SpectralToolbox should work.

   $ pip install numpy 

   $ pip install scipy

   $ pip install Sphinx

   $ pip install sphinxcontrib-bibtex

You should intall the `orthpol <https://pypi.python.org/pypi/orthpol>`_ package. This dependency is required since v. 0.2.0. The installation might require you to tweak some flags for the compiler (with gcc nothing should be needed).

   $ pip install --install-option="install" orthpol

Finally you can install the toolbox by:

   $ pip install SpectralToolbox

Installation (using Anaconda)
=============================

There is no anaconda package right now, so the dependencies and the installation must be carried out manually. First resolve some of the dependencies through conda:

   $ conda install pip

   $ conda install numpy

   $ conda install scipy

Resolve the remaining dependencies manually:
   
    $ cd <download_dir>

    $ pip install -d ./ <package>

    $ tar xzf <package>-X.X.X.tar.gz

    $ cd <package>-X.X.X

    $ python setup.py install

where <package> are in sequence: orthpol, SpectralToolbox.

References
==========
.. [1] W. Gautschi, "Algorithm 726: ORTHPOL -- a package of routines for generating orthogonal polynomials and Gauss-type quadrature rules". ACM Trans. Math. Softw., vol. 20, issue 1, pp. 21-62, 1994


Change Log
==========

0.1.0:
  * Implementation of Poly1D, PolyND, and additional quadrature rules

0.2.0:
  * New interface for Spectral1D. 
  * All polynomials are now classes.
  * Complete integration of `orthpol <https://pypi.python.org/pypi/orthpol>`_

0.2.7:
  * Python3 support. And fixed installation procedure.

0.2.8:
  * Bug fix from `orthpol <https://pypi.python.org/pypi/orthpol>`_ package

0.2.11:
  * Added function ``generate`` for the generation of polynomials from type and parameters.
