/*
  rb_gsl.h
  Ruby/GSL: Ruby extension library for GSL (GNU Scientific Library)
    (C) Copyright 2001-2004 by Yoshiki Tsunesada

  Ruby/GSL is free software: you can redistribute it and/or modify it
  under the terms of the GNU General Public License.
  This library is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY
*/

#ifndef ___RB_GSL_H___
#define ___RB_GSL_H___

#include "ruby.h"
#include "rubyio.h"
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <gsl/gsl_mode.h>
#include "rb_gsl_common.h"
#include "rb_gsl_math.h"
#include "rb_gsl_complex.h"
#include "rb_gsl_array.h"
#include "rb_gsl_function.h"
#include "rb_gsl_poly.h"
#include "rb_gsl_sf.h"
#include "rb_gsl_linalg.h"
#include "rb_gsl_eigen.h"
#include "rb_gsl_fft.h"
#include "rb_gsl_integration.h"
#include "rb_gsl_rng.h"
#include "rb_gsl_statistics.h"
#include "rb_gsl_histogram.h"
#include "rb_gsl_odeiv.h"
#include "rb_gsl_interp.h"
#include "rb_gsl_cheb.h"
#include "rb_gsl_root.h"
#include "rb_gsl_fit.h"
#include "rb_gsl_const.h"

EXTERN VALUE mgsl;

void Init_gsl_error();
void Init_gsl_math();
void Init_gsl_complex();
void Init_gsl_array();
void Init_gsl_blas();
void Init_gsl_sort();
void Init_gsl_poly();
void Init_gsl_sf();
void Init_gsl_linalg();
void Init_gsl_linalg_complex();
void Init_gsl_eigen();
void Init_gsl_fft();
void Init_gsl_function();
void Init_gsl_integration();

void Init_gsl_rng();
void Init_gsl_qrng();
void Init_gsl_ran();
void Init_gsl_stats();

void Init_gsl_histogram();
void Init_gsl_histogram2d();
void Init_gsl_ntuple();
void Init_gsl_monte();
void Init_gsl_siman();

void Init_gsl_odeiv();
void Init_gsl_interp();
void Init_gsl_diff();

void Init_gsl_cheb();
void Init_gsl_sum();
void Init_gsl_dht();

void Init_gsl_root();
void Init_gsl_multiroot();
void Init_gsl_min();
void Init_gsl_multimin();
void Init_gsl_fit();
void Init_gsl_multifit();

void Init_gsl_const();

void Init_gsl_ieee();

#ifdef HAVE_NARRAY_H
void Init_gsl_narray();
#endif

#ifdef HAVE_WAVELET_H
void Init_wavelet();
#endif

#ifdef GSL_1_4_9_LATER
void Init_deriv();
#endif

#ifdef HAVE_PLOT_H
void Init_gsl_plot();
#endif

#endif
