29 #ifndef RYTHMOS_INTERPOLATION_BUFFER_APPENDER_BASE_HPP 
   30 #define RYTHMOS_INTERPOLATION_BUFFER_APPENDER_BASE_HPP 
   32 #include "Rythmos_InterpolationBufferBase.hpp" 
   33 #include "Rythmos_Types.hpp" 
   34 #include "Thyra_VectorBase.hpp" 
   35 #include "Teuchos_Describable.hpp" 
   36 #include "Teuchos_ParameterListAcceptor.hpp" 
   37 #include "Teuchos_VerboseObject.hpp" 
   38 #include "Teuchos_RCP.hpp" 
   39 #include "Teuchos_implicit_cast.hpp" 
   40 #include "Teuchos_Assert.hpp" 
   49 template<
class Scalar>
 
   51   : 
virtual public Teuchos::Describable
 
   52   , 
virtual public Teuchos::ParameterListAcceptor
 
   53   , 
virtual public Teuchos::VerboseObject<InterpolationBufferAppenderBase<Scalar> >
 
  100 template<
class Scalar>
 
  111     TEUCHOS_TEST_FOR_EXCEPTION(
 
  112         ( compareTimeValues(appendRange.
lower(),interpBuffSink.
getTimeRange().lower()) < 0 &&
 
  113           compareTimeValues(appendRange.
upper(),interpBuffSink.
getTimeRange().lower()) > 0 ),
 
  115       "Error, import range = [" << appendRange.
lower() << 
"," << appendRange.
upper() << 
"] is not a prepend " 
  116       "of the base range = [" << interpBuffSink.
getTimeRange().lower() << 
"," << interpBuffSink.
getTimeRange().upper() << 
"] " 
  117       "interpolation buffer.\n" 
  120     TEUCHOS_TEST_FOR_EXCEPTION(
 
  121         ( compareTimeValues(appendRange.
lower(),interpBuffSink.
getTimeRange().upper()) < 0 &&
 
  122           compareTimeValues(appendRange.
upper(),interpBuffSink.
getTimeRange().upper()) > 0 ),
 
  124       "Error, import range = [" << appendRange.
lower() << 
"," << appendRange.
upper() << 
"] is not an append " 
  125       "of the base range = [" << interpBuffSink.
getTimeRange().lower() << 
"," << interpBuffSink.
getTimeRange().upper() << 
"] " 
  126       "interpolation buffer.\n" 
  129   TEUCHOS_TEST_FOR_EXCEPTION(
 
  130     compareTimeValues(appendRange.
lower(),interpBuffSource.
getTimeRange().lower())<0,
 
  132     "Error, append range's lower bound = " << appendRange.
lower() << 
" does not sit inside incoming" 
  133     " interpolation buffer's time range = " 
  136   TEUCHOS_TEST_FOR_EXCEPTION(
 
  137     compareTimeValues(interpBuffSource.
getTimeRange().upper(),appendRange.
upper())<0,
 
  139     "Error, append range's upper bound = " << appendRange.
upper() << 
"does not sit inside incoming" 
  140     " interpolation buffer's time range = " 
  149 #endif //RYTHMOS_INTERPOLATION_BUFFER_APPENDER_BASE_HPP 
void assertAppendPreconditions(const InterpolationBufferBase< Scalar > &interpBuffSource, const TimeRange< Scalar > &range, const InterpolationBufferBase< Scalar > &interpBuffSink) const 
 
Base class for an interpolation buffer. 
 
Base class for strategy objects that append data from one InterplationBufferBase object to another...
 
virtual TimeRange< Scalar > getTimeRange() const =0
Return the range of time values where interpolation calls can be performed. 
 
virtual void append(const InterpolationBufferBase< Scalar > &interpBuffSource, const TimeRange< Scalar > &range, const Ptr< InterpolationBufferBase< Scalar > > &interpBuffSink)=0
Append or Prepend data from one interpolation buffer into another.