#
# = Using Ruby/GSL
# == Installation
# See {here}[link:index.html].
#
# == Load the library
# Put at the head of your scripts,
#
# require 'rubygems' # if installed via RubyGems
# require 'gsl'
#
# == Naming conventions, C Structs and Ruby Classes
#
# Most of the GSL data types, functions or constants are named as gsl_xxx or GSL_XXX.
# In Ruby/GSL, the prefix gsl_ is replaced by the module identifier GSL::,
# where GSL is the top level module of Ruby/GSL,
# and the Ruby classes are defined for each of the GSL C structs under the GSL module.
# According to the Ruby manner, the name of each class begins with a capital. For example,
#
# * Struct gsl_vector ---> Ruby class GSL::Vector
# * Function call as v = gsl_vector_alloc(5); ---> Class method v = GSL::Vector.alloc(5)
# * Function call as gsl_vector_set(v, i, 1.5); ---> Method v.set(i, 1.5) or v[i] = 1.5
# * Constant GSL_SUCCESS ---> Ruby module constant GSL::SUCCESS
# * Function gsl_sf_bessel_J0(x) --->
# * Submodule GSL::Sf
# * Module function GSL::Sf::bessel_J0(x)
# * GSL::Sf::Bessel::J0(x) is also OK, where J0(x) is a module function of the sub-sub-module GSL::Sf::Bessel.
# * Function gsl_linalg_LU_decomp --->
# * Module GSL::Linalg::LU
# * Singleton method GSL::Linalg::LU_decomp
# * Submodule GSL::Linalg::LU
# * Singleton method GSL::Linalg::LU.decomp
# * Method GSL::Matrix#LU_decomp
#
# == Examples
# See the directories "examples/" and "tests/".
#
# Some of the examples use the graph utility to show the results. The graph
# utility is included in the {GNU plotutils}[https://gnu.org/software/plotutils/plotutils.html] package. Windows-cygwin binaries of GNU plotutils and
# related packages are available from
# {here}[http://gnuwin32.sourceforge.net/packages/plotutils.htm].
#
# == Modules and Classes
# The following is the list of Ruby/GSL modules and classes, ()
#
# * GSL (Module)
# * Complex (Class)
# * Poly (Class)
# * Workspace (Class)
# * DividedDifferenceRepresentation (Class)
# * Taylor (Class)
# * Sf (Module)
# * Result (Class)
# * Block (Class)
# * Int (Class)
# * Byte (Class)
# * Index < Permutation
# * Vector (Class)
# * View < Vector
# * Complex (Class)
# * View < Vector::Complex
# * Matrix (Class)
# * View < Matrix (Class)
# * Complex (Class)
# * View < Matrix::Complex
# * Permutation (Class)
# * Combination (Class)
# * Linalg (Module)
# * LU (Module)
# * QR (Module)
# * QRPT (Module)
# * LQ (Module)
# * LQPT (Module)
# * SV (Module)
# * Cholesky (Module)
# * Symmtd (Module)
# * HH (Module)
# * Eigen (Module)
# * EigenValues < Vector
# * EigenVectors < Matrix
# * Symm (Module)
# * Workspace (Class)
# * Symmv (Module)
# * Workspace (Class)
# * Unsymm (Module)
# * Workspace (Class)
# * Unsymmv (Module)
# * Workspace (Class)
# * Herm (Module)
# * Workspace (Class)
# * Hermv (Module)
# * Workspace (Class)
# * FFT (Module)
# * ComplexWavetable (Class)
# * ComplexWorkspace (Class)
# * HalfComplexWavetable (Class)
# * RealWavetable (Class)
# * RealWorkspace (Class)
# * Wavelet (Class)
# * Wavelet2d < Wavelet
# * Function (Class)
# * Function_fdf (Class)
# * Integration (Module)
# * Workspace
# * QAWS_Table
# * QAWO_Table
# * Rng (Class)
# * QRng (Class)
# * Ran (Module)
# * Stats (Module)
# * Histogram (Class)
# * Integral < Histogram
# * Pdf (Class)
# * Histogram2d (Class)
# * N-tuples
# * SelectFn (Class)
# * ValueFn (Class)
# * Monte (Module)
# * Function (Class)
# * Plain (Class)
# * Miser (Class)
# * Vegas (Class)
# * Siman (Module)
# * Efunc (Class)
# * Step (Class)
# * Metric (Class)
# * Print (Class)
# * Params (Class)
# * Solver (Class)
# * Odeiv (Module)
# * Control (Class)
# * Evolve (Class)
# * System (Class)
# * Solver (Class)
# * Interp (Class)
# * Accel (Class)
# * Spline (Class)
# * Diff (Module)
# * Deriv (Module)
# * Cheb (Class)
# * Sum (Module)
# * Levin_u (Class)
# * Levin_utrunc (Class)
# * Dht (Class)
# * Root (Module)
# * Solver (Class)
# * FdfSolver (Class)
# * Min(Module)
# * FMinimizer (Class)
# * MultiRoot (Module)
# * Function (Class)
# * FSolver (Class)
# * Function_fdf (Class)
# * FdfSolver (Class)
# * MultiMin (Module)
# * Function (Class)
# * FMinimizer (Class)
# * Function_fdf (Class)
# * FdfMinimizer (Class)
# * Fit (Module)
# * MultiFit (Module)
# * Workspace (Class)
# * Solver (Class)
# * Function_fdf (Class)
# * FdfSolver (Class)
# * CONST (Module)
# * MKSA (Module)
# * CGSM (Module)
# * NUM (Module)
#
# {prev}[link:rdoc/intro_rdoc.html]
# {next}[link:rdoc/ehandling_rdoc.html]
#
# {Reference index}[link:rdoc/ref_rdoc.html]
# {top}[link:index.html]
#
#