12#ifndef BEMBEL_SRC_SPLINE_BERNSTEIN_HPP_
13#define BEMBEL_SRC_SPLINE_BERNSTEIN_HPP_
24#ifdef _spline_debug_flag_
26 (
"Function only valid for 0 <= x <= 1!"));
44template <
int N,
int P>
52template <
typename T,
int N,
int P>
88template <
typename T,
int P>
121template <
typename T,
int P>
129 "Pos.A This should not happen. Something is wrong with the recursion");
142 "Pos.C This should not happen. Something is wrong with the recursion");
155 "Pos.C This should not happen. Something is wrong with the recursion");
167template <
typename T,
int P>
172template <
typename T,
int P>
176 for (
int i = 0;
i <
N;
i++)
181template <
typename T,
int P>
185 std::vector<double>
out(
N);
186 for (
int i = 0;
i <
N;
i++)
191template <
typename T,
int P>
197template <
typename T,
int P>
205template <
typename T,
int P>
211template <
typename T,
int P>
215 for (
int i = 0;
i <
N;
i++)
216 out[
i] =
P * HiddenBernsteinClass<T, P - 1, P - 1>::EvalDerCoefs(
221template <
typename T,
int P>
225 std::vector<double>
out(
N);
226 for (
int i = 0;
i <
N;
i++)
227 out[
i] =
P * HiddenBernsteinClass<T, P - 1, P - 1>::EvalDerCoefs(
232template <
typename T,
int P>
239template <
typename T,
int P>
constexpr double BernsteinX(double evaluation_point) noexcept
Template recursion to produce Bernstein polynomials. This is only limited by the binomial coefficient...
T EvalBernstein(T *in, double evaluation_point) noexcept
Evaluation Routines.
T EvalBernsteinDer(T *in, double evaluation_point) noexcept
Evaluation of the Derivatives.
Routines for the evalutation of pointwise errors.
constexpr int getFunctionSpaceOutputDimension()