18#ifndef itkMultivariateLegendrePolynomial_h
19#define itkMultivariateLegendrePolynomial_h
25#include "ITKPolynomialsExport.h"
122 const DomainSizeType &
169 const double norm_y =
m_NormFactor[1] *
static_cast<double>(index[1] - 1);
176 const double norm_x =
m_NormFactor[0] *
static_cast<double>(index[0] - 1);
185 const double norm_z =
m_NormFactor[2] *
static_cast<double>(index[2] - 1);
193 const double norm_y =
m_NormFactor[1] *
static_cast<double>(index[1] - 1);
199 const double norm_x =
m_NormFactor[0] *
static_cast<double>(index[0] - 1);
233 for (
unsigned int dim = 0; dim <
m_Dimension; ++dim)
248 for (
unsigned int dim = 0; dim <
m_Dimension; ++dim)
315ITKPolynomials_EXPORT std::ostream &
Array class with size defined at construction time.
Control indentation during Print() invocation.
CoefficientVectorSizeMismatch(const vcl_size_t given, const vcl_size_t required)
Iterator which only supports forward iteration and Begin(), IsAtEnd(), and Get() method which work ju...
SimpleForwardIterator & operator++()
SimpleForwardIterator(MultivariateLegendrePolynomial *polynomial)
MultivariateLegendrePolynomial * m_MultivariateLegendrePolynomial
DomainSizeType m_DomainSize
2D and 3D multivariate Legendre Polynomial
Array< double > ParametersType
void Print(std::ostream &os) const
DoubleArrayType m_NormFactor
ULongArrayType DomainSizeType
void SetCoefficients(const ParametersType &coefficients)
const CoefficientArrayType & GetCoefficients() const
Gets Legendre polynomials' coefficients.
void CalculateXCoef(double norm_y, const CoefficientArrayType &coef)
void PrintSelf(std::ostream &os, Indent indent) const
unsigned int GetNumberOfCoefficients(unsigned int dimension, unsigned int degree)
MultivariateLegendrePolynomial Self
DomainSizeType m_DomainSize
unsigned int GetDimension() const
void CalculateYCoef(double norm_z, const CoefficientArrayType &coef)
virtual ~MultivariateLegendrePolynomial()
CoefficientArrayType m_CachedXCoef
CoefficientArrayType m_CachedYCoef
unsigned int GetNumberOfCoefficients() const
unsigned int GetDegree() const
double Evaluate(IndexType &index)
DoubleArrayType CoefficientArrayType
const DomainSizeType & GetDomainSize() const
void SetCoefficients(const CoefficientArrayType &coefficients)
Sets the Legendre polynomials' parameters.
unsigned int m_NumberOfCoefficients
MultivariateLegendrePolynomial(unsigned int dimension, unsigned int degree, const DomainSizeType &domainSize)
CoefficientArrayType m_CoefficientArray
CoefficientArrayType m_CachedZCoef
std::vector< long > LongArrayType
double LegendreSum(const double x, int n, const CoefficientArrayType &coef, int offset=0)
std::vector< double > DoubleArrayType
std::vector< unsigned long > ULongArrayType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)