Crate rgsl

source ·
Expand description

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

The Clausen function is defined by the following integral,
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. !
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. !
The Debye functions D_n(x) are defined by the following integral,
##References and Further Reading
Further information about the elliptic integrals can be found in Abramowitz & Stegun, Chapter 17.
The error function is described in Abramowitz & Stegun, Chapter 7.
#Fast Fourier Transforms (FFTs)
Linear Regression
This following routines compute the gamma and beta functions in their full and incomplete forms, as well as various kinds of factorials.
The Gegenbauer polynomials are defined in Abramowitz & Stegun, Chapter 22, where they are known as Ultraspherical polynomials.
Hypergeometric functions are described in Abramowitz & Stegun, Chapters 13 and 15.
##Introduction
The Jacobian Elliptic functions are defined in Abramowitz & Stegun, Chapter 16. !
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’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. !
The Legendre Functions and Legendre Polynomials are described in Abramowitz & Stegun, Chapter 8.
#Linear Algebra
Information on the properties of the Logarithm function can be found in Abramowitz & Stegun, Chapter 4.
#Numerical Differentiation
Physical Constants
#Polynomials
The following functions are equivalent to the function gsl_pow_int (see 1Small integer powers1) with an error estimate.
The polygamma functions of order n are defined by
#Random Number Distributions
#Sorting
#Statistics
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.
##Transform Functions
The Riemann zeta function is defined in Abramowitz & Stegun, Section 23.2.

Macros

Structs

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

Enums

this gives the sign in the formula
The low-level integration rules in QUADPACK are identified by small integers (1-6). We’ll use symbolic constants to refer to them.
Used by workspace for QAWO integrator
Possible return values for an hadjust() evolution method for ordinary differential equations
Used by VegasMonteCarlo struct

Statics

Type Definitions

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