/* Example programs from the book Scientific and Engineering Programming in C++: An Introduction with Advanced Techniques and Examples, Addison-Wesley, 1994. (c) COPYRIGHT INTERNATIONAL BUSINESS MACHINES CORPORATION 1994. ALL RIGHTS RESERVED. See README file for further details. */ #ifndef FunctionalAlgebraDataModelH #define FunctionalAlgebraDataModelH #include "SciEng/Ptrs.h" #include "Function/FunctionalAlgebra.h" #include "DataModeling/DataModel.h" #include "DataModeling/DataModelParameters.h" #include "Function/FunctionalAlgebra.h" #include "AutoDeriv/Rall1d.h" #include "Vector/ElasticArithmetic.h" template class FunctionalAlgebraDataModel : public virtual DataModel { public: typedef Rall1d > RallT; FunctionalAlgebraDataModel(const FunctionalAlgebra&, const DataModelParameters&); virtual TaylorCoefficient1d operator()(const T& coordinate) const; virtual FunctionalAlgebraDataModel* clone() const { return new FunctionalAlgebraDataModel(*this); } protected: FunctionalAlgebraDataModel(Subscript number_of_variables); FunctionalAlgebra< RallT > f; DataModelParameters parms; // parameter storage implementation. virtual const Array1d& parameters() const { return parms; } virtual Array1d& parameters() { return parms; } }; #ifdef XLC_QNOTEMPINC #include "DataModeling/FunctionalAlgebraDataModel.c" #endif #endif