[][src]Crate rgsl

A Rust binding for the GSL library (the GNU Scientific Library).

Installation

This binding requires the GSL library library to be installed.

This crate works with Cargo and is on crates.io. Just add the following to your Cargo.toml file:

[dependencies]
GSL = "*"

Add the following line to your source code:

extern crate rgsl;

Documentation

You can access the rgsl documentation locally, just build it:

> cargo doc --open

Then open this file with an internet browser: file:///{rgsl_location}/target/doc/rgsl/index.html

You can also access the latest build of the documentation via the internet here.

License

rust-GSL is a wrapper for GSL, therefore inherits the GPL license.

Here is the list of all modules :

Re-exports

pub use types::ComplexF32;
pub use types::ComplexF64;
pub use types::Result;
pub use types::ResultE10;
pub use types::MatrixF64;
pub use types::MatrixF32;
pub use types::MatrixView;
pub use types::MatrixComplexF64;
pub use types::MatrixComplexF32;
pub use types::VectorF64;
pub use types::VectorF32;
pub use types::VectorView;
pub use types::VectorComplexF64;
pub use types::VectorComplexF32;
pub use types::Rng;
pub use types::RngType;
pub use types::Permutation;
pub use types::ChebSeries;
pub use types::Combination;
pub use types::PolyComplex;
pub use types::DiscreteHankel;
pub use types::EigenSymmetricWorkspace;
pub use types::EigenSymmetricVWorkspace;
pub use types::EigenHermitianWorkspace;
pub use types::EigenHermitianVWorkspace;
pub use types::EigenNonSymmWorkspace;
pub use types::EigenNonSymmVWorkspace;
pub use types::EigenGenSymmWorkspace;
pub use types::EigenGenSymmVWorkspace;
pub use types::EigenGenHermWorkspace;
pub use types::EigenGenHermVWorkspace;
pub use types::EigenGenWorkspace;
pub use types::EigenGenVWorkspace;
pub use types::FftComplexWaveTable;
pub use types::FftComplexWorkspace;
pub use types::Histogram;
pub use types::HistogramPdf;
pub use types::Histogram2D;
pub use types::Histogram2DPdf;
pub use types::IntegrationWorkspace;
pub use types::IntegrationQawsTable;
pub use types::IntegrationQawoTable;
pub use types::CquadWorkspace;
pub use types::GLFixedTable;
pub use types::InterpAccel;
pub use types::Interp;
pub use types::InterpType;
pub use types::Spline;
pub use types::Minimizer;
pub use types::MinimizerType;
pub use types::PlainMonteCarlo;
pub use types::MiserMonteCarlo;
pub use types::MiserParams;
pub use types::VegasMonteCarlo;
pub use types::VegasParams;
pub use types::NTuples;
pub use types::MultiSet;
pub use types::ODEiv2System;
pub use types::ODEiv2Step;
pub use types::ODEiv2StepType;
pub use types::ODEiv2Control;
pub use types::ODEiv2Evolve;
pub use types::ODEiv2Driver;
pub use types::QRng;
pub use types::QRngType;
pub use types::LevinUWorkspace;
pub use types::LevinUTruncWorkspace;
pub use types::Wavelet;
pub use types::WaveletType;
pub use types::WaveletWorkspace;
pub use types::MultiFitFdfSolver;
pub use types::MultiFitFunction;
pub use types::MultiFitFdfSolverType;
pub use types::MultiFitFunctionFdf;
pub use types::RootFdfSolver;
pub use types::RootFdfSolverType;
pub use types::RootFSolver;
pub use types::RootFSolverType;
pub use types::SimAnnealing;
pub use types::SimAnnealingParams;
pub use elementary::Elementary;
pub use pow::Pow;
pub use trigonometric::Trigonometric;
pub use types::rng;

Modules

airy
bessel
blas
cblas
clausen

The Clausen function is defined by the following integral,

coulomb
coupling_coefficients

The Wigner 3-j, 6-j and 9-j symbols give the coupling coefficients for combined angular momentum vectors. Since the arguments of the standard coupling coefficient functions are integer or half-integer, the arguments of the following functions are, by convention, integers equal to twice the actual spin value.

dawson

The Dawson integral is defined by \exp(-x^2) \int_0^x dt \exp(t^2). A table of Dawson’s integral can be found in Abramowitz & Stegun, Table 7.5.

debye

The Debye functions D_n(x) are defined by the following integral,

dilogarithm
eigen

##References and Further Reading

elementary
elementary_operations
elliptic

Further information about the elliptic integrals can be found in Abramowitz & Stegun, Chapter 17.

error

The error function is described in Abramowitz & Stegun, Chapter 7.

exponential
exponential_integrals
fermi_dirac
fft

#Fast Fourier Transforms (FFTs)

fit

Linear Regression

gamma_beta

This following routines compute the gamma and beta functions in their full and incomplete forms, as well as various kinds of factorials.

gegenbauer

The Gegenbauer polynomials are defined in Abramowitz & Stegun, Chapter 22, where they are known as Ultraspherical polynomials.

hypergeometric

Hypergeometric functions are described in Abramowitz & Stegun, Chapters 13 and 15.

integration

##Introduction

interpolation
jacobian_elliptic

The Jacobian Elliptic functions are defined in Abramowitz & Stegun, Chapter 16.

laguerre

The generalized Laguerre polynomials are defined in terms of confluent hypergeometric functions as L^a_n(x) = ((a+1)n / n!) 1F1(-n,a+1,x), and are sometimes referred to as the associated Laguerre polynomials. They are related to the plain Laguerre polynomials L_n(x) by L^0_n(x) = L_n(x) and L^k_n(x) = (-1)^k (d^k/dx^k) L(n+k)(x). For more information see Abramowitz & Stegun, Chapter 22.

lambert_w

Lambert’s W functions, W(x), are defined to be solutions of the equation W(x) \exp(W(x)) = x. This function has multiple branches for x < 0; however, it has only two real-valued branches. We define W_0(x) to be the principal branch, where W > -1 for x < 0, and W_{-1}(x) to be the other real branch, where W < -1 for x < 0.

legendre

The Legendre Functions and Legendre Polynomials are described in Abramowitz & Stegun, Chapter 8.

linear_algebra

#Linear Algebra

logarithm

Information on the properties of the Logarithm function can be found in Abramowitz & Stegun, Chapter 4.

minimizer
multifit
numerical_differentiation

#Numerical Differentiation

physical_constant

Physical Constants

polynomials

#Polynomials

pow
power

The following functions are equivalent to the function gsl_pow_int (see 1Small integer powers1) with an error estimate.

psi

The polygamma functions of order n are defined by

randist

#Random Number Distributions

roots
sort

#Sorting

statistics

#Statistics

synchrotron
transport

The transport functions J(n,x) are defined by the integral representations J(n,x) := \int_0^x dt t^n e^t /(e^t - 1)^2.

trigonometric
types
util
wavelet_transforms

##Transform Functions

zeta

The Riemann zeta function is defined in Abramowitz & Stegun, Section 23.2.

Macros

ffi_wrap

Structs

IOStream

A wrapper to handle I/O operations between GSL and rust

RootFunction
RootFunctionFdf

Enums

EigenSort
FftDirection

this gives the sign in the formula

GaussKonrodRule

The low-level integration rules in QUADPACK are identified by small integers (1-6). We'll use symbolic constants to refer to them.

IntegrationQawo

Used by workspace for QAWO integrator

Mode
ODEiv

Possible return values for an hadjust() evolution method for ordinary differential equations

SfLegendreNorm
Value
VegasMode

Used by VegasMonteCarlo struct

WaveletDirection

Statics

DBL_EPSILON
DBL_MAX
DBL_MIN
LOG_DBL_MAX
NAN
NEGINF
POSINF
ROOT3_DBL_EPSILON
ROOT3_DBL_MIN
ROOT3_DBL_MAX
ROOT4_DBL_EPSILON
ROOT4_DBL_MIN
ROOT4_DBL_MAX
ROOT5_DBL_EPSILON
ROOT5_DBL_MIN
ROOT5_DBL_MAX
ROOT6_DBL_EPSILON
ROOT6_DBL_MIN
ROOT6_DBL_MAX
SF_DOUBLEFACT_NMAX

The maximum n such that gsl_sf_doublefact(n) does not give an overflow.

SF_FACT_NMAX

The maximum n such that gsl_sf_fact(n) does not give an overflow.

SF_GAMMA_XMAX

The maximum x such that gamma(x) is not considered an overflow.

SF_MATHIEU_COEFF
SQRT_DBL_EPSILON
SQRT_DBL_MAX
SQRT_DBL_MIN

Type Definitions

GSLResult

A type for results generated by GSL functions where Err is enums::Value.

comparison_fn
function
integration_function
monte_function
select_function
value_function