25 #ifndef UQ_1D_1D_FUNCTION_H 
   26 #define UQ_1D_1D_FUNCTION_H 
   28 #include <queso/ScalarSequence.h> 
   29 #include <queso/1DQuadrature.h> 
   30 #include <queso/Environment.h> 
   31 #include <queso/Defines.h> 
   60                           double maxDomainValue);
 
   68   double minDomainValue() 
const;
 
   72   double maxDomainValue() 
const;
 
   75   virtual  double value         (
double domainValue) 
const = 0;
 
   78   virtual  double deriv         (
double domainValue) 
const = 0;
 
   82   virtual  double multiplyAndIntegrate(
const Base1D1DFunction& func, 
unsigned int quadratureOrder, 
double* resultWithMultiplicationByTAsWell) 
const;
 
  104                              double (*valueRoutinePtr)(
double domainValue, 
const void* routinesDataPtr),
 
  105                              double (*derivRoutinePtr)(
double domainValue, 
const void* routinesDataPtr),
 
  106                              const void* routinesDataPtr);
 
  116   double value(
double domainValue) 
const;
 
  121   double deriv(
double domainValue) 
const;
 
  147                               double constantValue);
 
  158   double value(
double domainValue) 
const;
 
  163   double deriv(
double domainValue) 
const;
 
  195                             double referenceDomainValue,
 
  196                             double referenceImageValue,
 
  207   double value(
double domainValue) 
const;
 
  213   double deriv(
double domainValue) 
const;
 
  244                                      const std::vector<double>& referenceDomainValues,
 
  245                                      double                     referenceImageValue0,
 
  246                                      const std::vector<double>& rateValues);
 
  256   double value(
double domainValue) 
const;
 
  261   double deriv(
double domainValue) 
const;
 
  313   double value(
double domainValue) 
const;
 
  319   double deriv(
double domainValue) 
const;
 
  372   virtual double       value(
double domainValue) 
const;
 
  378   double               deriv(
double domainValue) 
const;
 
  390   void    set(
const std::vector<double>& domainValues,
 
  391               const std::vector<double>& imageValues);
 
  438   double value(
double domainValue) 
const;
 
  442   double deriv(
double domainValue) 
const;
 
  479   double value(
double domainValue) 
const;
 
  484   double deriv(
double domainValue) 
const;
 
  521   double value(
double domainValue) 
const;
 
  525   double deriv(
double domainValue) 
const;
 
  564                                         const std::vector<double>* functionValues);
 
  572   double value(
double domainValue) 
const;
 
  578   double deriv(
double domainValue) 
const;
 
  615                                    unsigned int basisIndex);
 
  623   double value(
double domainValue) 
const;
 
  629   double deriv(
double domainValue) 
const;
 
  654 #endif // UQ_1D_1D_FUNCTION_H 
FuncTimesFunc1D1DFunction(const Base1D1DFunction &func1, const Base1D1DFunction &func2)
Default constructor. 
 
FuncPlusFunc1D1DFunction(const Base1D1DFunction &func1, const Base1D1DFunction &func2)
Default constructor. 
 
Sampled1D1DFunction()
Default constructor. It should not be called by the user. 
 
Generic1D1DFunction(double minDomainValue, double maxDomainValue, double(*valueRoutinePtr)(double domainValue, const void *routinesDataPtr), double(*derivRoutinePtr)(double domainValue, const void *routinesDataPtr), const void *routinesDataPtr)
Default constructor. 
 
std::vector< double > m_functionValues
 
double value(double domainValue) const 
Returns the value of the (one-dimensional) function at point domainValue. 
 
Class for linear one-dimensional functions. 
 
~Constant1D1DFunction()
Destructor. 
 
Class for one-dimensional functions. 
 
unsigned int m_basisIndex
 
double deriv(double domainValue) const 
Returns the value of the derivative of the constant function at point domainValue. 
 
std::vector< double > m_domainValues
Array of the values in the domain of the function (values of the independent variable). 
 
double m_referenceImageValue
Reference value in the function image;  in . 
 
Class for constant one-dimensional functions. 
 
double deriv(double domainValue) const 
Returns the value of the derivative of the function at point domainValue. 
 
Class for handling scalar samples. 
 
LagrangePolynomial1D1DFunction(const std::vector< double > &positionValues, const std::vector< double > *functionValues)
Default constructor. 
 
Class for addition of a one-dimensional function with another. 
 
Class for one-dimensional quadratic functions. 
 
Class for one-dimensional Lagrange polynomials. 
 
~LagrangePolynomial1D1DFunction()
Destructor. 
 
double minDomainValue() const 
Returns the minimum value of the domain of the (one-dimensional) function. 
 
~Linear1D1DFunction()
Destructor. 
 
double SubF1F2Gaussian2dKdeIntegral(const ScalarSequence< T > &scalarSeq1, const ScalarSequence< T > &scalarSeq2, unsigned int initialPos, double scaleValue1, double scaleValue2, const Base1D1DFunction &func1, const Base1D1DFunction &func2, unsigned int quadratureOrder)
Calculates the integral of a 2D Gaussian KDE. 
 
virtual void printForMatlab(const BaseEnvironment &env, std::ofstream &ofsvar, const std::string &prefixName) const 
Prints the values of the function in Matlab/Octave format. 
 
PiecewiseLinear1D1DFunction(double minDomainValue, double maxDomainValue, const std::vector< double > &referenceDomainValues, double referenceImageValue0, const std::vector< double > &rateValues)
Default constructor. 
 
double value(double domainValue) const 
Returns the value of the constant function at point domainValue. 
 
Linear1D1DFunction(double minDomainValue, double maxDomainValue, double referenceDomainValue, double referenceImageValue, double rateValue)
Default constructor. 
 
virtual double value(double domainValue) const 
Returns the value of the sampled function at point domainValue. 
 
double value(double domainValue) const 
Returns the value of the piecewise-linear function at point domainValue. 
 
~LagrangeBasis1D1DFunction()
Destructor. 
 
double maxDomainValue() const 
Returns the maximum value of the domain of the (one-dimensional) function. 
 
~ScalarTimesFunc1D1DFunction()
Destructor. 
 
LagrangeBasis1D1DFunction(const std::vector< double > &positionValues, unsigned int basisIndex)
Default constructor. 
 
Class for one-dimensional sampled functions. 
 
std::vector< double > m_rateValues
Rate value;  in , for each =1 .. m_numRefValues. 
 
double value(double domainValue) const 
Returns the value of the addition of function func1 and func2 evaluated at the point domainValue...
 
Quadratic1D1DFunction(double minDomainValue, double maxDomainValue, double a, double b, double c)
Default constructor. 
 
double value(double domainValue) const 
Returns the value of the Lagrange polynomial at point domainValue. 
 
Class for generic one-dimensional functions. 
 
const Base1D1DFunction & m_func
 
virtual double deriv(double domainValue) const =0
Returns the value of the derivative of the function. See template specialization. ...
 
std::vector< double > m_referenceImageValues
Reference values in the piecewise-linear function image;  in , for each =1 .. m_numRefValues. 
 
~FuncTimesFunc1D1DFunction()
Destructor. 
 
Class for piecewise-linear one-dimensional functions. 
 
~Generic1D1DFunction()
Destructor. 
 
const Base1D1DFunction & m_func2
 
This (virtual) class sets up the environment underlying the use of the QUESO library by an executable...
 
double m_referenceDomainValue
Reference value in the function domain;  in . 
 
~FuncPlusFunc1D1DFunction()
Destructor. 
 
std::vector< double > m_referenceDomainValues
Reference values in the piecewise-linear function domain;  in , for each =1 .. m_numRefValues. 
 
virtual ~Sampled1D1DFunction()
Destructor. 
 
bool domainValueMatchesExactly(double domainValue) const 
Checks whether the domain value domainValue matches exactly one of the values in the function domain ...
 
double deriv(double domainValue) const 
Returns the value of the derivative of the piecewise-linear function at point domainValue. 
 
unsigned int m_numRefValues
Number of points which will be evaluated. 
 
~PiecewiseLinear1D1DFunction()
Destructor. 
 
const Base1D1DFunction & m_func1
 
std::vector< double > m_imageValues
Array of the values in the image of the function (values of the dependent variable). 
 
Class for Lagrange polynomial basis. 
 
const Base1D1DFunction & m_func1
 
std::vector< double > m_positionValues
 
double value(double domainValue) const 
Returns the value of the linear function at point domainValue. 
 
const std::vector< double > & domainValues() const 
Array of the domain values (values of the independent variable). 
 
const Base1D1DFunction & m_func2
 
virtual double value(double domainValue) const =0
Returns the value of the (one-dimensional) function. See template specialization. ...
 
std::vector< double > m_positionValues
 
double deriv(double domainValue) const 
TODO: Returns the value of the derivative of the addition of two functions. 
 
double deriv(double domainValue) const 
TODO: Returns the value of the derivative of the function func1 by another function func2 at the poin...
 
void set(const std::vector< double > &domainValues, const std::vector< double > &imageValues)
Sets the values of the independent (domainValues) and dependent (imageValues) variables of this sampl...
 
ScalarTimesFunc1D1DFunction(double scalar, const Base1D1DFunction &func)
Default constructor. 
 
double deriv(double domainValue) const 
TODO: Returns the value of the derivative of the function multiplied by the given scalar at point dom...
 
double m_rateValue
Rate value;  in . 
 
~Quadratic1D1DFunction()
Destructor. 
 
double(* m_derivRoutinePtr)(double domainValue, const void *routinesDataPtr)
 
const void * m_routinesDataPtr
 
double deriv(double domainValue) const 
TODO: Returns the value of the derivative of the Lagrange basis at point domainValue. 
 
double(* m_valueRoutinePtr)(double domainValue, const void *routinesDataPtr)
 
double value(double domainValue) const 
Returns the value of the Lagrange basis at point domainValue. 
 
double value(double domainValue) const 
Returns the value of the (one-dimensional) function at point domainValue, already multiplied by the s...
 
double deriv(double domainValue) const 
Returns the value of the derivative of the linear function at point domainValue. 
 
const std::vector< double > & imageValues() const 
Array of the image values (values of the dependent variable). 
 
Class for multiplication of a one-dimensional function by a scalar. 
 
Class for multiplication of a one-dimensional function by another. 
 
double deriv(double domainValue) const 
TODO: Returns the value of the derivative of the Lagrange polynomial at point domainValue. 
 
double value(double domainValue) const 
Returns the value of the multiplication of a function func1 by another function func2 at the point do...
 
double deriv(double domainValue) const 
Bogus: Derivative of the function. 
 
Constant1D1DFunction(double minDomainValue, double maxDomainValue, double constantValue)
Default constructor.