DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Data Structures | Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends
DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX > Class Template Reference

#include <MPolynomial.h>

Inheritance diagram for DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >:
Inheritance graph
[legend]

Data Structures

class  EvalFun
class  EvalFun2

Public Types

typedef TRing Ring
typedef TOwner Owner
typedef TAlloc Alloc
typedef TX X
typedef MPolynomial< n, Ring,
Alloc
MPolyN
typedef MPolynomial< n-1, X,
typename Alloc::template
rebind< X >::other > 
MPolyNM1

Public Member Functions

 operator MPolyNM1 () const
template<typename XX >
MPolynomialEvaluatorImpl< n-1,
Ring, MPolynomialEvaluatorImpl
< n, Ring, Owner, Alloc, X >
, Alloc, XX > 
operator() (const XX &x) const

Private Member Functions

 MPolynomialEvaluatorImpl (const Owner &owner, const X &evalpoint)
template<typename XX , typename Fun >
void evaluate (XX &res, const Fun &evalfun) const

Private Attributes

const OwnermyOwner
const XmyEvalPoint

Friends

class MPolynomialEvaluator
class MPolynomialEvaluatorImpl

Detailed Description

template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
class DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >

Description of template class 'MPolynomialEvaluatorImpl'

Another helper for polynomial evaluation. This template is returned from MPolynomialEvaluator<n, TRing, TAlloc>::operator().

The template parameter TOwner is the type of the "owner" of this template, i.e. either MPolynomialEvaluator<n+1, TRing, TAlloc> or MPolynomialEvaluatorImpl<n+1, TRing, ..., TAlloc>.

This class is a backport from Spielwiese.

Definition at line 182 of file MPolynomial.h.


Member Typedef Documentation

template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
typedef TAlloc DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >::Alloc

Definition at line 187 of file MPolynomial.h.

template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
typedef MPolynomial< n, Ring, Alloc> DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >::MPolyN

Type for the multivariate polynomial.

Definition at line 190 of file MPolynomial.h.

template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
typedef MPolynomial< n - 1, X, typename Alloc::template rebind<X>::other > DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >::MPolyNM1

Type for the "child" multivariate polynomial, where the first variable X has been substituted by its value. Note that the ring type has been substituted by the type of the variable (i.e. X).

Definition at line 199 of file MPolynomial.h.

template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
typedef TOwner DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >::Owner

Definition at line 186 of file MPolynomial.h.

template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
typedef TRing DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >::Ring

Definition at line 185 of file MPolynomial.h.

template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
typedef TX DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >::X

Definition at line 188 of file MPolynomial.h.


Constructor & Destructor Documentation

template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >::MPolynomialEvaluatorImpl ( const Owner owner,
const X evalpoint 
)
inlineprivate

Definition at line 212 of file MPolynomial.h.

: myOwner(owner), myEvalPoint(evalpoint)
{}

Member Function Documentation

template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
template<typename XX , typename Fun >
void DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >::evaluate ( XX &  res,
const Fun &  evalfun 
) const
inlineprivate

This will be called from a child (i.e. a class of type MPolynomialEvaluatorImpl<n-1, Ring, MPolynomialEvaluator<n,Ring,Owner,Alloc,X>, Alloc, X>) to trigger evaluation.

Definition at line 261 of file MPolynomial.h.

{
// We have to pass evaluation on to our owner, but give a new
// functor which now evaluates polynomials of type poly<n, T>.
myOwner.evaluate( res, EvalFun< XX, Fun >( *this, evalfun ) );
}
template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >::operator MPolyNM1 ( ) const
inline

Allows casting to poly<n-1, S>.

Definition at line 309 of file MPolynomial.h.

{
MPolyNM1 res; // missing: determine allocator object
// We need to pass evaluation on to our owner
myOwner.evaluate( res, EvalFun2( *this ) );
return res;
}
template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
template<typename XX >
MPolynomialEvaluatorImpl< n - 1, Ring, MPolynomialEvaluatorImpl< n, Ring, Owner, Alloc, X >, Alloc, XX > DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >::operator() ( const XX &  x) const
inline

Definition at line 327 of file MPolynomial.h.


Friends And Related Function Documentation

template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
friend class MPolynomialEvaluator
friend

Definition at line 202 of file MPolynomial.h.

template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
friend class MPolynomialEvaluatorImpl
friend

Definition at line 205 of file MPolynomial.h.


Field Documentation

template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
const X& DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >::myEvalPoint
private
template<int n, typename TRing, typename TOwner, typename TAlloc, typename TX>
const Owner& DGtal::MPolynomialEvaluatorImpl< n, TRing, TOwner, TAlloc, TX >::myOwner
private

The documentation for this class was generated from the following file: