30 inline static double evalCoef(
int p,
double*
ar,
double x) {
31 return p ==
P ? Bembel::Basis::EvalBernstein<double, P>(
ar,
x)
34 inline static double evalDerCoef(
int p,
double*
ar,
double x) {
35 return p ==
P ? Bembel::Basis::EvalBernsteinDer<double, P>(
ar,
x)
38 inline static void evalBasis(
int p,
double*
ar,
double x) {
39 return p ==
P ? Bembel::Basis::EvalBernsteinBasis<double, P>(
ar,
x)
42 inline static void evalDerBasis(
int p,
double*
ar,
double x) {
44 ? Bembel::Basis::EvalBernsteinDerBasis<double, P>(
ar,
x)
47 inline static constexpr funptr_doubleOut_doubleptrDoubleIn ptrEvalCoef(
49 return p ==
P ? &Bembel::Basis::EvalBernstein<double, P>
52 inline static constexpr funptr_doubleOut_doubleptrDoubleIn ptrEvalDerCoef(
54 return p ==
P ? &Bembel::Basis::EvalBernsteinDer<double, P>
57 inline static constexpr funptr_voidOut_doubleptrDoubleIn ptrEvalBasis(
int p) {
58 return p ==
P ? &Bembel::Basis::EvalBernsteinBasis<double, P>
61 inline static constexpr funptr_voidOut_doubleptrDoubleIn ptrEvalDerBasis(
63 return p ==
P ? &Bembel::Basis::EvalBernsteinDerBasis<double, P>
66 inline static constexpr bool checkP(
int p) {
67 static_assert(
P > 0,
"Polynomial degree must be larger than zero");
68 return p <= Constants::MaxP;
75 inline static double evalCoef(
int p,
double*
ar,
double x) {
76 return Bembel::Basis::EvalBernstein<double, 0>(
ar,
x);
78 inline static double evalDerCoef(
int p,
double*
ar,
double x) {
79 return Bembel::Basis::EvalBernsteinDer<double, 0>(
ar,
x);
81 inline static void evalBasis(
int p,
double*
ar,
double x) {
82 return Bembel::Basis::EvalBernsteinBasis<double, 0>(
ar,
x);
84 inline static void evalDerBasis(
int p,
double*
ar,
double x) {
85 return Bembel::Basis::EvalBernsteinDerBasis<double, 0>(
ar,
x);
87 inline static constexpr funptr_doubleOut_doubleptrDoubleIn ptrEvalCoef(
89 return &Bembel::Basis::EvalBernstein<double, 0>;
91 inline static constexpr funptr_doubleOut_doubleptrDoubleIn ptrEvalDerCoef(
93 return &Bembel::Basis::EvalBernsteinDer<double, 0>;
95 inline static constexpr funptr_voidOut_doubleptrDoubleIn ptrEvalBasis(
int p) {
96 return &Bembel::Basis::EvalBernsteinBasis<double, 0>;
98 inline static constexpr funptr_voidOut_doubleptrDoubleIn ptrEvalDerBasis(
100 return &Bembel::Basis::EvalBernsteinDerBasis<double, 0>;
102 inline static constexpr bool checkP(
int p) {
return Constants::MaxP >= 0; }