DGtal 1.3.0
Searching...
No Matches
DGtal::MPolynomialEvaluator< n, TRing, TAlloc, TX > Class Template Reference

#include <DGtal/math/MPolynomial.h>

## Public Types

typedef TRing Ring

typedef TAlloc Alloc

typedef TX X

typedef MPolynomial< n, Ring, AllocMPolyN

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, MPolynomialEvaluator< n, Ring, Alloc, X >, Alloc, XX > operator() (const XX &x) const

## Private Member Functions

MPolynomialEvaluator (const MPolyN &poly, const X &evalpoint)

template<typename XX , typename Fun >
void evaluate (XX &res, const Fun &evalfun) const

## Private Attributes

const MPolyNmyPoly
The polynomial in question. More...

const XmyEvalPoint
the evaluation point More...

## Friends

class MPolynomial< n, TRing, TAlloc >

template<int nn, class TT , class HLHL , class AA , class SS >
class MPolynomialEvaluatorImpl

## Detailed Description

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

The top level polynomial evaluation class, in case n > 1, i.e. in case the coefficients are polynomials by themselves.

This class is a backport from Spielwiese.

Definition at line 400 of file MPolynomial.h.

## ◆ Alloc

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

Definition at line 409 of file MPolynomial.h.

## ◆ MPolyN

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

Definition at line 411 of file MPolynomial.h.

## ◆ MPolyNM1

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

Definition at line 413 of file MPolynomial.h.

## ◆ Ring

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

Definition at line 408 of file MPolynomial.h.

## ◆ X

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

Definition at line 410 of file MPolynomial.h.

## ◆ MPolynomialEvaluator()

template<int n, typename TRing , typename TAlloc , typename TX >
 DGtal::MPolynomialEvaluator< n, TRing, TAlloc, TX >::MPolynomialEvaluator ( const MPolyN & poly, const X & evalpoint )
inlineprivate

Definition at line 419 of file MPolynomial.h.

420 : myPoly( poly ), myEvalPoint( evalpoint )
421 {}
const X & myEvalPoint
the evaluation point
Definition: MPolynomial.h:416
const MPolyN & myPoly
The polynomial in question.
Definition: MPolynomial.h:415

## ◆ evaluate()

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

Will be called by "child". Evaluates the polynomial into an element of XX (which must not necessarily be X, it can also be MPolynomial<k, X> for some k < n - 1) using the given functor to evaluate the coefficients, which are of type MPolynomial<n-1, Ring>.

Definition at line 431 of file MPolynomial.h.

432 {
433 X xx = (X) 1;
434 for ( int i = 0; i < (int) myPoly.myValue.size(); ++i )
435 {
436 res += evalfun( myPoly.myValue[i] ) * xx;
437 xx = xx * myEvalPoint;
438 }
439 }
Size size() const
Definition: MPolynomial.h:742

## ◆ operator MPolyNM1()

template<int n, typename TRing , typename TAlloc , typename TX >
 DGtal::MPolynomialEvaluator< n, TRing, TAlloc, TX >::operator MPolyNM1 ( ) const
inline

Evaluate to polynomial of type MPolynomial< n-1, X>.

Definition at line 446 of file MPolynomial.h.

447 {
449 X xx = (X) 1;
450 for ( int i = 0; i < (int) myPoly.myValue.size(); ++i )
451 {
452 res += MPolyNM1( myPoly.myValue[i] ) * xx;
453 xx = xx * myEvalPoint;
454 }
455 return res;
456 }
MPolynomial< n - 1, X, typename Alloc::template rebind< X >::other > MPolyNM1
Definition: MPolynomial.h:413
Alloc getAllocator() const
Definition: MPolynomial.h:1097

## ◆ operator()()

template<int n, typename TRing , typename TAlloc , typename TX >
template<typename XX >
 MPolynomialEvaluatorImpl< n - 1, Ring, MPolynomialEvaluator< n, Ring, Alloc, X >, Alloc, XX > DGtal::MPolynomialEvaluator< n, TRing, TAlloc, TX >::operator() ( const XX & x ) const
inline

Continue evaluation to lower level.

Definition at line 465 of file MPolynomial.h.

466 {
468 < n - 1, Ring, MPolynomialEvaluator< n, Ring, Alloc, X >, Alloc, XX >
469 ( *this, x );
470 }
friend class MPolynomialEvaluatorImpl
Definition: MPolynomial.h:405

## ◆ MPolynomial< n, TRing, TAlloc >

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

Definition at line 384 of file MPolynomial.h.

## ◆ MPolynomialEvaluatorImpl

template<int n, typename TRing , typename TAlloc , typename TX >
template<int nn, class TT , class HLHL , class AA , class SS >
 friend class MPolynomialEvaluatorImpl
friend

Definition at line 405 of file MPolynomial.h.

## ◆ myEvalPoint

template<int n, typename TRing , typename TAlloc , typename TX >
 const X& DGtal::MPolynomialEvaluator< n, TRing, TAlloc, TX >::myEvalPoint
private

the evaluation point

Definition at line 416 of file MPolynomial.h.

## ◆ myPoly

template<int n, typename TRing , typename TAlloc , typename TX >
 const MPolyN& DGtal::MPolynomialEvaluator< n, TRing, TAlloc, TX >::myPoly
private

The polynomial in question.

Definition at line 415 of file MPolynomial.h.

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