ccgsl: a C++ interface for the gnu Scientific Library


Home ·
Download ·
Design ·
Documentation ·
Development ·
Example ·
Bugs ·

Online documentation

There is complete documentation online on This is up to date for most functions and classes.

Producing documentation

On unix-like platforms, once you have downloaded and configured the source code you should can produce documentation using:

make doc

You will need to install doxygen and several other packages.

You should can produce the same documentation on any platform. I haven’t tried.

Available features

Expect at least the following features of the gnu Scientific Library to be available:

  • Error handling (and exception handling)
  • Elementary functions and mathematical constants
  • Complex numbers
  • Polynomials
  • Special functions
  • Vectors and matrices
  • Permutations and combinations
  • blas support
  • Linear algebra
  • Eigensystems
  • Fast Fourier transforms
  • Numerical integration
  • Random number generation
  • Quasi-random number sequences
  • Random number distributions
  • Statistics
  • Histograms
  • Monte Carlo integration
  • Simulated annealing
  • Ordinary differential equations
  • Interpolation
  • Numerical differentiation
  • Chebyshev approximations
  • Series acceleration
  • Wavelet transforms
  • Discrete Hankel transforms
  • Interpolation
  • One dimensional root finding
  • One dimensional minimisation
  • Multidimensional root finding
  • Multidimensional minimisation
  • Least-squares fitting
  • Nonlinear least-squares fitting
  • Basis splines
  • Physical constants
  • Ieee floating-point arithmetic

Features not implemented

The following features are not implemented.

  • Multisets
  • Sorting
  • N-tuples

Multisets are available in C++ as std::multiset<double> and so a gsl version is unnecessary. Similarly the gsl sorting algorithms offer no benefit over std::sort<T>. The n-tuple functions in gsl are useful for reading and writing C-style structs to C-style file handles and so specifically C++-style versions of them have little obvious value.

Since ccgsl is a header-only package it must avoid defining constants directly. So, for example, physical constants are defined as inline functions returning a constant value. There is little benefit in using these rather than the gsl constants. But they are included for completeness.

Last modified: Sun 23 Sep 2012 07:50 pm Logo