i6engine
1.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
Integration.h
Go to the documentation of this file.
1
/*
2
* i6engine
3
* Copyright (2016) Daniel Bonrath, Michael Baer, All rights reserved.
4
*
5
* This file is part of i6engine; i6engine is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU Lesser General Public
7
* License as published by the Free Software Foundation; either
8
* version 2.1 of the License, or (at your option) any later version.
9
*
10
* This library is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
* Lesser General Public License for more details.
14
*
15
* You should have received a copy of the GNU Lesser General Public
16
* License along with this library; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
*/
19
25
#ifndef __I6ENGINE_MATH_INTEGRATION_H__
26
#define __I6ENGINE_MATH_INTEGRATION_H__
27
28
#include <cmath>
29
30
#include "
i6engine/utils/Exceptions.h
"
31
32
namespace
i6engine
{
33
namespace
math {
34
38
inline
double
integrate
(
double
a,
double
b, uint32_t N,
const
std::function<
double
(
double
)> & f) {
39
double
h = (b - a) / N;
// step size
40
double
sum = 0.5 * (f(a) + f(b));
// area
41
for
(uint32_t i = 1; i < N; i++) {
42
double
x = a + h * i;
43
sum = sum + f(x);
44
}
45
return
sum * h;
46
}
47
48
}
/* namespace math */
49
}
/* namespace i6engine */
50
51
#endif
/* __I6ENGINE_MATH_INTEGRATION_H__ */
52
Exceptions.h
i6engine
Definition:
Integration.h:32
i6engine::math::integrate
double integrate(double a, double b, uint32_t N, const std::function< double(double)> &f)
integration calculated using trapezoidal rule
Definition:
Integration.h:38
Projekte
i6engine
libs
i6engine-math
include
i6engine
math
Integration.h
Generated on Mon May 30 2016 17:33:31 for i6engine by
1.8.9.1