OMK::Type::NumericPolatorT< Type > Class Template Reference

a not so basic polator for numeric types. More...

#include <OMKNumericPolator.h>

Inheritance diagram for OMK::Type::NumericPolatorT< Type >:

Inheritance graph
[legend]
Collaboration diagram for OMK::Type::NumericPolatorT< Type >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 NumericPolatorT (void)
virtual ~NumericPolatorT (void)
virtual const SimpleTypeT<
Type > & 
interpolate (SimpleTypeT< Type > &resultPlaceHolder, const int interprecisionLevel, const Date &dateNeeded, const Date &dateAfter, const SimpleTypeT< Type > &valueAfter, const Date &dateBefore, int offsetToMostRecentOfDateBefore) const
virtual const SimpleTypeT<
Type > & 
extrapolate (SimpleTypeT< Type > &resultPlaceHolder, const int requestedPrecisionLevel, const Date &t, const Date &tIndice) const
virtual const SimpleTypeT<
Type > & 
antepolate (SimpleTypeT< Type > &resultPlaceHolder, const int requestedPrecisionLevel, const Date &t, const Date &tIndice, unsigned int indice) const
template<>
int convert (double v)
template<>
float convert (double v)
template<>
double convert (double v)

Static Public Member Functions

static Type linearInterpolate (long t, long t1, Type v1, long t0, Type v0)
 Calculate linear interpolation between two values.
static Type quadraticInterpolate (long t, long t2, Type v2, long t1, Type v1, long t0, Type v0)
 Calculate 2nde degre interpolation between 3 values.
static Type cubicInterpolate (long t, long t3, Type v3, long t2, Type v2, long t1, Type v1, long t0, Type v0)
 Calculate 3rd degre interpolation with 4 values.
static Type linearExtrapolate (long t, long t1, Type v1, long t0, Type v0)
 linear extrapolation
static Type quadraticExtrapolate (long t, long t2, Type v2, long t1, Type v1, long t0, Type v0)
 Quadratic extrapolation.
static Type cubicExtrapolate (long t, long t3, Type v3, long t2, Type v2, long t1, Type v1, long t0, Type v0)
 Cubic extrapolation.

Static Private Member Functions

static Type convert (double v)
 Convertion function to avoid compilation warning.

Detailed Description

template<typename Type>
class OMK::Type::NumericPolatorT< Type >

a not so basic polator for numeric types.

This polator supports 4 levels of polation : from none to 3, which supposes second degre continuity

Definition at line 36 of file OMKNumericPolator.h.


Constructor & Destructor Documentation

template<typename Type>
OMK::Type::NumericPolatorT< Type >::NumericPolatorT ( void   )  [inline]

Definition at line 234 of file OMKNumericPolator.h.

00234                                               : Polator< SimpleTypeT<Type> > (3)
00235 {
00236 }

template<typename Type>
OMK::Type::NumericPolatorT< Type >::~NumericPolatorT ( void   )  [inline, virtual]

Definition at line 240 of file OMKNumericPolator.h.

00241 {
00242 }


Member Function Documentation

template<typename Type>
const SimpleTypeT< Type > & OMK::Type::NumericPolatorT< Type >::interpolate ( SimpleTypeT< Type > &  resultPlaceHolder,
const int  interprecisionLevel,
const Date dateNeeded,
const Date dateAfter,
const SimpleTypeT< Type > &  valueAfter,
const Date dateBefore,
int  offsetToMostRecentOfDateBefore 
) const [inline, virtual]

Definition at line 247 of file OMKNumericPolator.h.

References OMK::Type::PolatorNT::Constant, OMK::Type::PolatorNT::ConstantContinuous, OMK::Type::PolatorNT::Cubic, OMK::Type::PolatorNT::CubicContinuous, OMK::Type::NumericPolatorT< Type >::cubicInterpolate(), OMK::Type::Polator< T >::get(), OMK::Type::Polator< T >::getDate(), OMK::Type::PolatorNT::Linear, OMK::Type::PolatorNT::LinearContinuous, OMK::Type::NumericPolatorT< Type >::linearInterpolate(), OMK_DEBUG_OMK_TYPE, OMTRACEID, OMK::Type::PolatorNT::Quadratic, OMK::Type::PolatorNT::QuadraticContinuous, and OMK::Type::NumericPolatorT< Type >::quadraticInterpolate().

00254 {
00255    
00256 #ifdef _DEBUGTYPEUTIL
00257   cout << "*********************************************" << endl ;
00258   cout << "NumericPolatorT<Type>::interpolate" << endl;
00259   cout << "interpolate level : " << interprecisionLevel <<endl ;
00260   cout << "Date dateAfter  <----- : " << dateAfter << endl ;
00261   cout << "Date dateNeeded <----- : " << dateNeeded << endl ;
00262   cout << "Date dateBefore <----- : " << dateBefore << endl ;
00263   cout << "Type : valueAfter " << valueAfter << endl ;
00264   cout << "int : offsetToMostRecentOfDateBefore " << offsetToMostRecentOfDateBefore << endl ;
00265   cout << "*********************************************" << endl ;
00266 #endif
00267     
00268   switch ( interprecisionLevel ) 
00269   {
00270   case PolatorNT::Constant : 
00271   case PolatorNT::ConstantContinuous :
00272     resultPlaceHolder = ( ( dateAfter - dateNeeded ) <= ( dateNeeded - dateBefore ) ) ?
00273                           valueAfter : get (offsetToMostRecentOfDateBefore) ;
00274     break ;
00275   case PolatorNT::Linear : 
00276   case PolatorNT::LinearContinuous :
00277     resultPlaceHolder = 
00278       linearInterpolate( dateNeeded, 
00279                          dateAfter, (Type)valueAfter, 
00280                          dateBefore, (Type)get( offsetToMostRecentOfDateBefore ) ) ;
00281     break ;
00282   case PolatorNT::Quadratic :
00283   case PolatorNT::QuadraticContinuous :
00284     resultPlaceHolder = 
00285       quadraticInterpolate( dateNeeded, 
00286                             dateAfter, (Type)valueAfter, 
00287                             dateBefore, (Type)get (offsetToMostRecentOfDateBefore) ,
00288                             getDate( offsetToMostRecentOfDateBefore + 1 ), 
00289                             (Type)get( offsetToMostRecentOfDateBefore + 1 ) ) ;
00290     break ;
00291   case PolatorNT::Cubic :
00292   case PolatorNT::CubicContinuous :
00293     resultPlaceHolder = 
00294       cubicInterpolate( dateNeeded, 
00295                         dateAfter, (Type)valueAfter, 
00296                         dateBefore, (Type)get( offsetToMostRecentOfDateBefore ),
00297                         getDate( offsetToMostRecentOfDateBefore + 1 ), 
00298                         (Type)get( offsetToMostRecentOfDateBefore + 1 ), 
00299                         getDate( offsetToMostRecentOfDateBefore + 2 ), 
00300                         (Type)get( offsetToMostRecentOfDateBefore + 2 ) ) ;
00301     break ;
00302   default :
00303     OMTRACEID( OMK_DEBUG_OMK_TYPE, "NumericPolatorT<Type>::interpolate : unknown polation level, using PolatorNT::Constant" ) ;
00304     resultPlaceHolder = ( ( dateAfter - dateNeeded ) <= ( dateNeeded - dateBefore ) ) ?
00305                           valueAfter : get( offsetToMostRecentOfDateBefore ) ;
00306     break ;
00307   }
00308   return resultPlaceHolder ;
00309 }

template<typename Type>
const SimpleTypeT< Type > & OMK::Type::NumericPolatorT< Type >::extrapolate ( SimpleTypeT< Type > &  resultPlaceHolder,
const int  requestedPrecisionLevel,
const Date t,
const Date tIndice 
) const [inline, virtual]

Definition at line 315 of file OMKNumericPolator.h.

References OMK::Type::PolatorNT::Constant, OMK::Type::PolatorNT::ConstantContinuous, OMK::Type::PolatorNT::Cubic, OMK::Type::PolatorNT::CubicContinuous, OMK::Type::NumericPolatorT< Type >::cubicExtrapolate(), OMK::Type::Polator< T >::get(), OMK::Type::Polator< T >::getDate(), OMK::Type::Polator< T >::getNumberOfPresentValues(), OMK::Type::PolatorNT::Linear, OMK::Type::PolatorNT::LinearContinuous, OMK::Type::NumericPolatorT< Type >::linearExtrapolate(), OMK::Type::NumericPolatorT< Type >::linearInterpolate(), OMK_DEBUG_OMK_TYPE, OMTRACEID, OMK::Type::PolatorNT::Quadratic, OMK::Type::PolatorNT::QuadraticContinuous, OMK::Type::NumericPolatorT< Type >::quadraticExtrapolate(), and OMK::Type::SimpleTypeT< T >::setValue().

00319 {
00320   //extrapolate à la sauce David Margery
00321   //il s'agit d'une extrapolation par morceaux
00322   //on cherche à trouver la valeur à t
00323 #ifdef _DEBUGPOLATION
00324   cerr << "NumericPolatorT<Type>::extrapolate (" <<requestedPrecisionLevel<<", "<<t<<", "<<tIndice<<")"<<endl;
00325 #endif
00326   switch (requestedPrecisionLevel) 
00327   {
00328   case PolatorNT::Constant : 
00329     resultPlaceHolder = get( 0 ) ;
00330     break ;
00331   case PolatorNT::ConstantContinuous : 
00332     resultPlaceHolder = get( 0 ) ;
00333     if( 1 < getNumberOfPresentValues() )
00334     {
00335       resultPlaceHolder.setValue( 
00336         linearInterpolate( t, tIndice, (Type)get( 1 ), 
00337                            2 * tIndice - getDate( 1 ), (Type)get( 0 ) ) ) ;
00338     }
00339     break ;
00340   case PolatorNT::Linear : 
00341     resultPlaceHolder.setValue( 
00342       linearExtrapolate( t, tIndice, (Type)get( 0 ), 
00343                          getDate( 1 ), (Type)get( 1 ) ) ) ;
00344     break ; 
00345   case PolatorNT::LinearContinuous : 
00346     resultPlaceHolder.setValue( 
00347       linearExtrapolate( t, tIndice, (Type)get( 0 ), 
00348                          getDate( 1 ), (Type)get( 1 ) ) ) ;
00349     if( 2 < getNumberOfPresentValues() )
00350     {
00351       Type oldResult =
00352         linearExtrapolate( t, getDate( 1 ), (Type)get( 1 ), 
00353                            getDate( 2 ), (Type)get( 2 ) ) ;
00354       resultPlaceHolder.setValue( 
00355         linearInterpolate( t, tIndice, oldResult, 
00356                            2 * tIndice - getDate( 1 ), (Type)resultPlaceHolder ) ) ;
00357     }
00358     break ; 
00359 
00360   case PolatorNT::Quadratic :
00361     resultPlaceHolder.setValue( 
00362       quadraticExtrapolate( t, tIndice, (Type)get( 0 ), 
00363                             getDate( 1 ), (Type)get( 1 ), 
00364                             getDate( 2 ), (Type)get( 2 ) ) ) ;
00365     break;
00366   case PolatorNT::QuadraticContinuous :
00367     resultPlaceHolder.setValue( 
00368       quadraticExtrapolate( t, tIndice, (Type)get( 0 ), 
00369                             getDate( 1 ), (Type)get( 1 ), 
00370                             getDate( 2 ), (Type)get( 2 ) ) ) ;
00371 
00372     if( getNumberOfPresentValues() > 3 )
00373     {
00374       Type oldResult= 
00375         quadraticExtrapolate( t, getDate( 1 ), (Type)get( 1 ), 
00376                               getDate( 2 ), (Type)get( 2 ), 
00377                               getDate( 3 ), (Type)get( 3 ) ) ;
00378       resultPlaceHolder.setValue( 
00379         linearInterpolate( t, tIndice, oldResult, 
00380                            2 * tIndice - getDate( 1 ), (Type)resultPlaceHolder ) ) ;
00381     }
00382     break;
00383 
00384   case PolatorNT::Cubic :
00385     resultPlaceHolder.setValue( cubicExtrapolate( t, tIndice, (Type)get( 0 ), 
00386                                           getDate( 1 ), (Type)get( 1 ), 
00387                                           getDate( 2 ), (Type)get( 2 ), 
00388                                           getDate( 3 ), (Type)get( 3 ) ) ) ;
00389     break;
00390 
00391   case PolatorNT::CubicContinuous :
00392     resultPlaceHolder.setValue( cubicExtrapolate( t, tIndice, (Type)get( 0 ),
00393                                           getDate( 1 ), (Type)get( 1 ),
00394                                           getDate( 2 ), (Type)get( 2 ),
00395                                           getDate( 3 ), (Type)get( 3 ) ) ) ;
00396     if( 4 < getNumberOfPresentValues() )
00397       {
00398         Type oldResult= 
00399           cubicExtrapolate( t, getDate( 1 ), (Type)get( 1 ),
00400                             getDate( 2 ), (Type)get( 2 ),
00401                             getDate( 3 ), (Type)get( 3 ),
00402                             getDate( 4 ), (Type)get( 4 ) ) ;
00403         resultPlaceHolder.setValue( 
00404           linearInterpolate( t, tIndice, oldResult, 
00405                              2*tIndice - getDate( 1 ), (Type)resultPlaceHolder ) ) ;
00406       }
00407 
00408     break;
00409   default :
00410     OMTRACEID( OMK_DEBUG_OMK_TYPE, "NumericPolatorT<Type>::interpolate : unknown polation level, using PolatorNT::Constant" ) ;
00411     resultPlaceHolder = get( 0 ) ;
00412   }
00413   return resultPlaceHolder ;
00414 }

template<typename Type>
const SimpleTypeT< Type > & OMK::Type::NumericPolatorT< Type >::antepolate ( SimpleTypeT< Type > &  resultPlaceHolder,
const int  requestedPrecisionLevel,
const Date t,
const Date tIndice,
unsigned int  indice 
) const [inline, virtual]

Definition at line 419 of file OMKNumericPolator.h.

References OMK::Type::PolatorNT::Constant, OMK::Type::PolatorNT::ConstantContinuous, OMK::Type::PolatorNT::Cubic, OMK::Type::PolatorNT::CubicContinuous, OMK::Type::NumericPolatorT< Type >::cubicExtrapolate(), OMK::Type::Polator< T >::get(), OMK::Type::Polator< T >::getDate(), OMK::Type::PolatorNT::Linear, OMK::Type::PolatorNT::LinearContinuous, OMK::Type::NumericPolatorT< Type >::linearExtrapolate(), OMK_DEBUG_OMK_TYPE, OMTRACEID, OMK::Type::PolatorNT::Quadratic, OMK::Type::PolatorNT::QuadraticContinuous, and OMK::Type::NumericPolatorT< Type >::quadraticExtrapolate().

00424 {
00425    
00426 #ifdef _DEBUGTYPEUTIL
00427   cout << "*********************************************" << endl ;
00428   cout << "NumericPolatorT<Type>::antepolate" << endl;
00429   cout << "Date t       <----- : " << t << endl ;
00430   cout << "Date tIndice <----- : " << tIndice << endl ;
00431   cout << "polation level : " << requestedPrecisionLevel << endl ;
00432   cout << "index " << indice << endl ;
00433   cout << "*********************************************" << endl ;
00434 #endif
00435 
00436   switch (requestedPrecisionLevel) 
00437   {
00438   case PolatorNT::Constant : 
00439   case PolatorNT::ConstantContinuous : 
00440     resultPlaceHolder = get( indice ) ;
00441     break ;
00442   case PolatorNT::Linear : 
00443   case PolatorNT::LinearContinuous : 
00444     resultPlaceHolder = 
00445       linearExtrapolate( t, tIndice, (Type)get( indice ), 
00446                          getDate( indice - 1 ), (Type)get( indice - 1 ) ) ;
00447     break ; 
00448   case PolatorNT::Quadratic :
00449   case PolatorNT::QuadraticContinuous :
00450     resultPlaceHolder = 
00451       quadraticExtrapolate( t, tIndice, (Type)get( indice ), 
00452                             getDate( indice - 1 ), (Type)get( indice - 1 ), 
00453                             getDate( indice - 2 ), (Type)get( indice - 2 ) ) ;
00454     break;
00455   case PolatorNT::Cubic :
00456   case PolatorNT::CubicContinuous :
00457     resultPlaceHolder = 
00458       cubicExtrapolate( t, tIndice, (Type)get( indice ), 
00459                         getDate( indice - 1 ), (Type)get( indice - 1 ), 
00460                         getDate( indice - 2 ), (Type)get( indice - 2 ), 
00461                         getDate( indice - 3 ), (Type)get( indice - 3 ) ) ;
00462     break;
00463   default :
00464     OMTRACEID( OMK_DEBUG_OMK_TYPE, "NumericPolatorT<Type>::interpolate : unknown polation level, using PolatorNT::Constant" ) ;
00465     resultPlaceHolder = get(indice) ;
00466   }
00467   return resultPlaceHolder ;
00468 }

template<typename Type>
static Type OMK::Type::NumericPolatorT< Type >::convert ( double  v  )  [static, private]

Convertion function to avoid compilation warning.

Referenced by OMK::Type::NumericPolatorT< Type >::cubicExtrapolate(), OMK::Type::NumericPolatorT< Type >::linearExtrapolate(), and OMK::Type::NumericPolatorT< Type >::quadraticExtrapolate().

template<typename Type>
static Type OMK::Type::NumericPolatorT< Type >::linearInterpolate ( long  t,
long  t1,
Type  v1,
long  t0,
Type  v0 
) [inline, static]

Calculate linear interpolation between two values.

Parameters:
t date of the produced values
t1 t1 > t
v1 value at t1
t0 t0 < t
v0 value at t0

Definition at line 78 of file OMKNumericPolator.h.

References OMK::Type::NumericPolatorT< Type >::linearExtrapolate().

Referenced by OMK::Type::NumericPolatorT< Type >::extrapolate(), and OMK::Type::NumericPolatorT< Type >::interpolate().

00081   {
00082     return linearExtrapolate( t, t1,  v1, t0, v0 ) ;
00083   }

template<typename Type>
static Type OMK::Type::NumericPolatorT< Type >::quadraticInterpolate ( long  t,
long  t2,
Type  v2,
long  t1,
Type  v1,
long  t0,
Type  v0 
) [inline, static]

Calculate 2nde degre interpolation between 3 values.

Parameters:
t date of the produced values
t2 t2 > t
v2 value at t2
t1 t1 < t
v1 value at t1
t0 t0 < t1
v0 value at t0

Definition at line 93 of file OMKNumericPolator.h.

References OMK::Type::NumericPolatorT< Type >::quadraticExtrapolate().

Referenced by OMK::Type::NumericPolatorT< Type >::interpolate().

00097   {
00098     return quadraticExtrapolate( t, t2, v2, t1, v1, t0, v0 ) ;
00099   }

template<typename Type>
static Type OMK::Type::NumericPolatorT< Type >::cubicInterpolate ( long  t,
long  t3,
Type  v3,
long  t2,
Type  v2,
long  t1,
Type  v1,
long  t0,
Type  v0 
) [inline, static]

Calculate 3rd degre interpolation with 4 values.

Parameters:
t date of the produced values
t3 t3 > t
v3 value at t3
t2 t2 < t
v2 value at t2
t1 t1 < t2
v1 value at t1
t0 t0 < t1
v0 value at t0

Definition at line 112 of file OMKNumericPolator.h.

References OMK::Type::NumericPolatorT< Type >::cubicExtrapolate().

Referenced by OMK::Type::NumericPolatorT< Type >::interpolate().

00117   {
00118     return cubicExtrapolate( t, t3, v3, t2, v2, t1, v1, t0, v0 ) ;
00119   }

template<typename Type>
static Type OMK::Type::NumericPolatorT< Type >::linearExtrapolate ( long  t,
long  t1,
Type  v1,
long  t0,
Type  v0 
) [inline, static]

linear extrapolation

Parameters:
t date of returned value
t1 t1 < t
v1 value at t1
t0 t0 < t1
v0 value at t0
Returns:
value at t

Definition at line 130 of file OMKNumericPolator.h.

References OMK::Type::NumericPolatorT< Type >::convert(), and OMASSERTM.

Referenced by OMK::Type::NumericPolatorT< Type >::antepolate(), OMK::Type::NumericPolatorT< Type >::extrapolate(), and OMK::Type::NumericPolatorT< Type >::linearInterpolate().

00133   {
00134     double d0 = t1 - t0 ; OMASSERTM ( d0, "Will divide by 0" ) ;
00135     double f0 = t - t0 ; 
00136     // formula :  ((t - t0) / d0) * v1  +((t1 - t) / d0)* v0 ;
00137     return convert( ( v1 - v0 ) * ( f0 / d0 ) + v0 ) ;
00138   }

template<typename Type>
static Type OMK::Type::NumericPolatorT< Type >::quadraticExtrapolate ( long  t,
long  t2,
Type  v2,
long  t1,
Type  v1,
long  t0,
Type  v0 
) [inline, static]

Quadratic extrapolation.

Parameters:
t date of returned value
t2 t2 < t
v2 value at t2
t1 t1 < t2
v1 value at t1
t0 t0 < t1
v0 value at t0
Returns:
value at t, with speed linerly extrapolated

Definition at line 150 of file OMKNumericPolator.h.

References OMK::Type::NumericPolatorT< Type >::convert(), and OMASSERTM.

Referenced by OMK::Type::NumericPolatorT< Type >::antepolate(), OMK::Type::NumericPolatorT< Type >::extrapolate(), and OMK::Type::NumericPolatorT< Type >::quadraticInterpolate().

00154   {
00155     double d0 = t1 - t0 ;  OMASSERTM( d0, "Will divide by 0" ) ;
00156     double d1 = t2 - t0 ;  OMASSERTM( d1, "Will divide by 0" ) ;
00157     double d2 = t1 - t2 ;  OMASSERTM( d2, "Will divide by 0" ) ;
00158     
00159     double k0 = ( t - t1 ) / d1 ;
00160     double k1 = ( t - t2 ) / d0 ;
00161     double k2 = ( t - t0 ) / d2 ;
00162     // formula : (v1*(k2*k1)) - (v2*(k2*k0))  + ((k0*k1)*v0)
00163     return convert( ( ( v1 - v0 ) * k1 - ( v2 - v0 ) * k0 ) * k2 + v0 ) ; 
00164   }

template<typename Type>
static Type OMK::Type::NumericPolatorT< Type >::cubicExtrapolate ( long  t,
long  t3,
Type  v3,
long  t2,
Type  v2,
long  t1,
Type  v1,
long  t0,
Type  v0 
) [inline, static]

Cubic extrapolation.

Parameters:
t date of returned value
t3 t3 < t
v3 value at t3
t2 t2 < t3
v2 value at t2
t1 t1 < t2
v1 value at t1
t0 t0 < t1
v0 value at t0
Returns:
value at t, with acceleration linerly extrapolated

Definition at line 178 of file OMKNumericPolator.h.

References OMK::Type::NumericPolatorT< Type >::convert(), and OMASSERTM.

Referenced by OMK::Type::NumericPolatorT< Type >::antepolate(), OMK::Type::NumericPolatorT< Type >::cubicInterpolate(), and OMK::Type::NumericPolatorT< Type >::extrapolate().

00183   {
00184     double d0 = t0 - t1 ;  OMASSERTM( d0, "Will divide by 0" ) ;
00185     double d1 = t2 - t0 ;  OMASSERTM( d1, "Will divide by 0" ) ;
00186     double d2 = t0 - t3 ;  OMASSERTM( d2, "Will divide by 0" ) ;
00187     double d3 = t1 - t2 ;  OMASSERTM( d3, "Will divide by 0" ) ;
00188     double d4 = t1 - t3 ;  OMASSERTM( d4, "Will divide by 0" ) ;
00189     double d5 = t3 - t2 ;  OMASSERTM( d5, "Will divide by 0" ) ;
00190     
00191     double f0 = t - t0 ;
00192     double f1 = t - t1 ;
00193     double f2 = t - t2 ;
00194     double f3 = t - t3 ;
00195 
00196     double k0 = f1 * ( f2 / d2 ) ;
00197     double k1 = f0 * ( f3 / d3 ) ;
00198     //  formula : v3*((f0/d5)*(k0/d4))+v2*((f1/d1)*(k1/d5))-v1*((k1/d0)*(f2/d4))-v0*((k0/d0)*(f3/d1))
00199     return convert( ( v3 - v0 ) * ( ( f0 / d5 ) * ( k0 / d4 ) )
00200                  + ( v2 - v0 ) * ( ( f1 / d1 ) * ( k1 / d5 ) )
00201                  - ( v1 - v0 ) * ( ( k1 / d0 ) * ( f2 / d4 ) )
00202                  + v0 ) ; 
00203     }

template<>
int OMK::Type::NumericPolatorT< int >::convert ( double  v  )  [inline]

Definition at line 207 of file OMKNumericPolator.h.

00208 {
00209   return (int)v ;
00210 }

template<>
float OMK::Type::NumericPolatorT< float >::convert ( double  v  )  [inline]

Definition at line 213 of file OMKNumericPolator.h.

00214 {
00215   return (float)v ;
00216 }

template<>
double OMK::Type::NumericPolatorT< double >::convert ( double  v  )  [inline]

Definition at line 219 of file OMKNumericPolator.h.

00220 {
00221   return v ;
00222 }


logo OpenMask

Documentation generated on Mon Jun 9 11:46:05 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007