GRALE
Main Page
Related Pages
Classes
Files
File List
src
math
real1dfunctionintegrator.h
Go to the documentation of this file.
1
/*
2
3
This file is a part of GRALE, a library to facilitate the simulation
4
and inversion of gravitational lenses.
5
6
Copyright (C) 2008-2012 Jori Liesenborgs
7
8
Contact: jori.liesenborgs@gmail.com
9
10
This program is free software; you can redistribute it and/or modify
11
it under the terms of the GNU General Public License as published by
12
the Free Software Foundation; either version 2 of the License, or
13
(at your option) any later version.
14
15
This program is distributed in the hope that it will be useful,
16
but WITHOUT ANY WARRANTY; without even the implied warranty of
17
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
GNU General Public License for more details.
19
20
You should have received a copy of the GNU General Public License
21
along with this program; if not, write to the Free Software
22
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23
24
*/
25
30
#ifndef GRALE_REAL1DFUNCTIONINTEGRATOR_H
31
32
#define GRALE_REAL1DFUNCTIONINTEGRATOR_H
33
34
#include "graleconfig.h"
35
#include "
real1dfunction.h
"
36
#include <gsl/gsl_integration.h>
37
#include <vector>
38
39
namespace
grale
40
{
41
43
class
GRALE_IMPORTEXPORT
Real1DFunctionIntegrator
44
{
45
public
:
46
Real1DFunctionIntegrator
(
double
absError = 0,
double
relError = 1e-5,
int
limit = 512);
47
~
Real1DFunctionIntegrator
();
48
49
double
integrate(
Real1DFunction
&f,
double
x1,
double
x2);
50
private
:
51
static
double
staticIntegrationFunction(
double
x,
void
*pParams)
52
{
53
Real1DFunctionIntegrator
*pInstance = (
Real1DFunctionIntegrator
*)pParams;
54
55
return
(*(pInstance->m_pFunction))(x);
56
}
57
58
gsl_integration_workspace *m_pWorkSpace;
59
Real1DFunction
*m_pFunction;
60
double
m_absError, m_relError;
61
int
m_limit;
62
};
63
64
}
// end namespace
65
66
#endif // GRALE_REAL1DFUNCTIONINTEGRATOR_H
67
Generated on Wed Dec 19 2012 09:09:23 for GRALE by
1.8.1.1