25 #ifndef MATHUTILS_PIECEWISE_H 26 #define MATHUTILS_PIECEWISE_H 65 Piecewise(std::vector<double> knots, std::vector<std::shared_ptr<Function>> functions);
67 Piecewise(std::vector<double> knots, std::vector<std::unique_ptr<Function>>&& functions);
73 const std::vector<double>& getKnots()
const;
76 const std::vector<std::unique_ptr<Function>>& getFunctions()
const;
80 double operator()(
const double)
const override;
84 std::unique_ptr<Function> clone()
const override;
93 double integrate(
const double x1,
const double x2)
const override;
std::vector< double > m_knots
A vector where the knots are kept.
Interface representing an integrable function.
std::vector< std::unique_ptr< Function > > m_functions
A vector where the sub-functions are kept.
ELEMENTS_API double integrate(const Function &function, const double min, const double max, std::unique_ptr< NumericalIntegrationScheme > numericalIntegrationScheme=nullptr)
Represents a piecewise function.