22 #ifndef _nmrBernsteinPolynomialLineIntegral_h
23 #define _nmrBernsteinPolynomialLineIntegral_h
37 #define CACHE_POWER_BASIS 1
44 #define USE_INTEGRAND_TABLEAU 1
161 : IntegrandTermCounter(0)
162 , EvaluatePowerProductCounter(0)
163 , TimeOfSingleTermIntegration(0)
169 : Integrand(integrand)
171 , PowersAtP0(Integrand.GetNumVariables(), Integrand.GetMaxDegree())
172 , PowersAtP1(Integrand.GetNumVariables(), Integrand.GetMaxDegree())
175 #if USE_INTEGRAND_TABLEAU
176 InitializePolynomialIntegrationTableau(Integrand, IntegrationTableau);
186 InitializePolynomialIntegrationTableau(Integrand, IntegrationTableau);
209 ValueType EvaluateForSegment(
210 const VariableType p0[],
const VariableType p1[],
211 const VariableType gradientNorm,
212 const double roundoffTolerance = DefaultRoundoffTolerance,
213 CoefficientType
const * coefficients = NULL)
214 #if !CACHE_POWER_BASIS
228 #if CACHE_POWER_BASIS
232 #endif // CACHE_POWER_BASIS
271 const double roundoffTolerance = DefaultRoundoffTolerance);
308 static void InitializePolynomialIntegrationTableau(
312 static void InitializeSingleTermIntegrationTableau(
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
#define CACHE_POWER_BASIS
Definition: nmrBernsteinPolynomialLineIntegral.h:37
StandardPowerBasis(VariableIndexType numVariables, PowerType maxPower)
Definition: nmrMultiVariablePowerBasis.h:146
Definition: nmrBernsteinPolynomial.h:66
void UpdateIntegrationTableau()
Definition: nmrBernsteinPolynomialLineIntegral.h:184
double ValueType
Definition: nmrPolynomialBase.h:54
nmrBernsteinPolynomial IntegrandType
Definition: nmrBernsteinPolynomialLineIntegral.h:144
std::vector< VariableIndexType > IndexContainerForZeroVariables
Definition: nmrBernsteinPolynomialLineIntegral.h:275
PolynomialIntegrationTableau IntegrationTableau
Definition: nmrBernsteinPolynomialLineIntegral.h:245
Definition: nmrBernsteinPolynomialLineIntegral.h:155
nmrPolynomialTermPowerIndex::PowerType PowerType
Definition: nmrPolynomialBase.h:58
std::vector< PowerType > PowerIndexType
Definition: nmrBernsteinPolynomialLineIntegral.h:234
nmrMultiVariablePowerBasis::StandardPowerBasis PowersAtP1
Definition: nmrBernsteinPolynomialLineIntegral.h:231
Definition: nmrBernsteinPolynomialLineIntegral.h:128
nmrPolynomialBase::CoefficientType CoefficientType
Definition: nmrBernsteinPolynomialLineIntegral.h:140
MultinomialType P0MultinomialFactor
Definition: nmrBernsteinPolynomialLineIntegral.h:237
Definition: nmrBernsteinPolynomialLineIntegral.h:235
nmrPolynomialBase::VariableType VariableType
Definition: nmrBernsteinPolynomialLineIntegral.h:135
std::vector< TermSummationElement > SingleTermIntegrationTableau
Definition: nmrBernsteinPolynomialLineIntegral.h:241
double VariableType
Definition: nmrPolynomialBase.h:55
const IntegrandType & Integrand
Definition: nmrBernsteinPolynomialLineIntegral.h:226
unsigned long IntegrandTermCounter
Definition: nmrBernsteinPolynomialLineIntegral.h:156
unsigned long EvaluatePowerProductCounter
Definition: nmrBernsteinPolynomialLineIntegral.h:157
nmrMultiVariablePowerBasis::StandardPowerBasis PowersAtP0
Definition: nmrBernsteinPolynomialLineIntegral.h:230
nmrPolynomialBase::ValueType ValueType
Definition: nmrBernsteinPolynomialLineIntegral.h:132
std::vector< SingleTermIntegrationTableau > PolynomialIntegrationTableau
Definition: nmrBernsteinPolynomialLineIntegral.h:243
double CoefficientType
Definition: nmrPolynomialBase.h:56
nmrPolynomialBase::PowerType PowerType
Definition: nmrBernsteinPolynomialLineIntegral.h:142
nmrPolynomialTermPowerIndex::MultinomialCoefficientType MultinomialType
Definition: nmrBernsteinPolynomialLineIntegral.h:146
nmrPolynomialTermPowerIndex::VariableIndexType VariableIndexType
Definition: nmrPolynomialBase.h:57
ProfilingInfo()
Definition: nmrBernsteinPolynomialLineIntegral.h:160
unsigned long TimeOfSingleTermIntegration
Definition: nmrBernsteinPolynomialLineIntegral.h:158
static const double DefaultRoundoffTolerance
Definition: nmrBernsteinPolynomialLineIntegral.h:150
PowerIndexType P1PowerIndex
Definition: nmrBernsteinPolynomialLineIntegral.h:238
PowerIndexType P0PowerIndex
Definition: nmrBernsteinPolynomialLineIntegral.h:236
unsigned long MultinomialCoefficientType
Definition: nmrPolynomialTermPowerIndex.h:101
Definition: nmrMultiVariablePowerBasis.h:37
MultinomialType P1MultinomialFactor
Definition: nmrBernsteinPolynomialLineIntegral.h:239
const IntegrandType & GetIntegrand() const
Definition: nmrBernsteinPolynomialLineIntegral.h:219
Represents the power index of a single term in a multi-variable polynomial.
Definition: nmrPolynomialTermPowerIndex.h:89
nmrPolynomialBase::VariableIndexType VariableIndexType
Definition: nmrBernsteinPolynomialLineIntegral.h:137
nmrBernsteinPolynomialLineIntegral(const IntegrandType &integrand)
Definition: nmrBernsteinPolynomialLineIntegral.h:168