29 #ifndef Rythmos_CUBIC_SPLINE_INTERPOLATOR_DECL_H 
   30 #define Rythmos_CUBIC_SPLINE_INTERPOLATOR_DECL_H 
   32 #include "Rythmos_InterpolatorBase.hpp" 
   33 #include "Rythmos_Types.hpp" 
   40 template<
class Scalar>
 
   41 class CubicSplineCoeff {
 
   44     Array<RCP<Thyra::VectorBase<Scalar> > > a;
 
   45     Array<RCP<Thyra::VectorBase<Scalar> > > b;
 
   46     Array<RCP<Thyra::VectorBase<Scalar> > > c;
 
   47     Array<RCP<Thyra::VectorBase<Scalar> > > d;
 
   54 template<
class Scalar>
 
   73     const RCP<
const typename DataStore<Scalar>::DataStoreVector_t> & nodes
 
   78     const Array<Scalar> &t_values,
 
   79     typename DataStore<Scalar>::DataStoreVector_t *data_out
 
   91     const Teuchos::EVerbosityLevel verbLevel
 
  109   RCP<const typename DataStore<Scalar>::DataStoreVector_t> nodes_;
 
  110 #ifdef HAVE_RYTHMOS_DEBUG 
  111   RCP<typename DataStore<Scalar>::DataStoreVector_t> nodes_copy_;
 
  112 #endif // HAVE_RYTHMOS_DEBUG 
  114   mutable CubicSplineCoeff<Scalar> splineCoeff_;
 
  115   mutable bool splineCoeffComputed_;
 
  118   RCP<ParameterList> parameterList_;
 
  123 template<
class Scalar>
 
  124 RCP<CubicSplineInterpolator<Scalar> > cubicSplineInterpolator();
 
  132 template<
class Scalar>
 
  133 void computeCubicSplineCoeff(
 
  134     const typename DataStore<Scalar>::DataStoreVector_t & data,
 
  135     const Ptr<CubicSplineCoeff<Scalar> > & coeffPtr
 
  138 template<
class Scalar>
 
  139 void validateCubicSplineCoeff(
const CubicSplineCoeff<Scalar>& coeff);
 
  143 template<
class Scalar>
 
  144 void evaluateCubicSpline(
 
  145     const CubicSplineCoeff<Scalar>& coeff,
 
  148     const Ptr<Thyra::VectorBase<Scalar> >& S,
 
  149     const Ptr<Thyra::VectorBase<Scalar> >& Sp = Teuchos::null, 
 
  150     const Ptr<Thyra::VectorBase<Scalar> >& Spp = Teuchos::null
 
  157 #endif // Rythmos_CUBIC_SPLINE_INTERPOLATOR_DECL_H 
Base strategy class for interpolation functionality. 
 
CubicSplineInterpolator()
 
~CubicSplineInterpolator()
 
void setNodes(const RCP< const typename DataStore< Scalar >::DataStoreVector_t > &nodes)
 
RCP< const Teuchos::ParameterList > getValidParameters() const 
 
RCP< ParameterList > unsetParameterList()
 
RCP< InterpolatorBase< Scalar > > cloneInterpolator() const 
 
Concrete implemenation of InterpolatorBase that implements cubic spline interpolation. 
 
std::string description() const 
 
void describe(FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const 
 
void setParameterList(RCP< ParameterList > const ¶mList)
 
void interpolate(const Array< Scalar > &t_values, typename DataStore< Scalar >::DataStoreVector_t *data_out) const 
 
RCP< ParameterList > getNonconstParameterList()
 
bool supportsCloning() const