#ifndef GELIB_INCLUDEHEADERFILE_H_
#define GELIB_INCLUDEHEADERFILE_H_

#include "../3_dimensional/d_cube.h"
#include "../3_dimensional/lib_Spline3d.h"
#include "../3_dimensional/lib_BasisFunction3d.h"
#include "../1_dimensional/lib_Spline1d.h"
#include "../1_dimensional/lib_BasisFunction1d.h"

/// <summary>
/// Library of functions for calculating gaussian expectations of correlated random variables
/// </summary>
namespace gelib
{
	using d_cube = gelib_impl::d_cube;
	using d_matrix = gelib_impl::d_matrix;
	using d_vector = gelib_impl::d_vector;
	using PiecewisePoly1d = gelib_impl::Spline1d;
	using PiecewisePoly3d = gelib_impl::Spline3d;
	using BasisPiecewisePoly3d = gelib_impl::BasisSpline3d;
	using Gaussian3d = gelib_impl::Gaussian3d;

	//////////////////////////////////////////////////////////////////////////////////////////////////////
	// If parallelism is desired for multidimensional problems, set the number of threads to use here.
		////////////////////////////////////////////////////////////////////////////////////////////////////
	void set_number_of_threads(size_t num_threads);

}

#endif /* GaussianExpectationLib_H_ */