Alex Pirciu
/
BFMC
a
Diff: include/BezierCurve/polynomialfunction.hpp
- Revision:
- 1:ceee5a608e7c
diff -r c3e774091195 -r ceee5a608e7c include/BezierCurve/polynomialfunction.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/BezierCurve/polynomialfunction.hpp Thu Mar 28 07:44:42 2019 +0000 @@ -0,0 +1,67 @@ +/** + ****************************************************************************** + * @file PolynomialFunction.hpp + * @author RBRO/PJ-IU + * @version V1.0.0 + * @date day-month-year + * @brief This file contains the class declaration for the Plynomial Function + * methods. + ****************************************************************************** + */ + +/* include guard */ +#ifndef POLYNOMIALFUNCTION_HPP +#define POLYNOMIALFUNCTION_HPP + +#include <stdint.h> +#include <math.h> +#include <iostream> + + +namespace math{ + /** + * @brief It represents a one dimensional polynomial function + * + * @tparam T The type of the Polynomial function + * @tparam N The degree of the polynom. + */ + template <class T,int32_t N> + class PolynomialFunction + { + public: + /* Constructors */ + PolynomialFunction(); + PolynomialFunction(T coefficients[N+1]); + /* Destructors */ + virtual ~PolynomialFunction(); + + // template<int32_t N2> void add(PolynomialFunction<T,N2> poli); + /* Add */ + template<int32_t N2> math::PolynomialFunction<T,(N2<N?N:N2)> add(PolynomialFunction<T,N2> b); + /* Multiply */ + template<int32_t N2> math::PolynomialFunction<T,(N2+N)> multip(PolynomialFunction<T,N2> b); + /* Calculate value */ + T calculateValue(T input_value); + /* First order derivate */ + math::PolynomialFunction<T,N-1> derivateFO(); + /* Get degree */ + int32_t getDegree(); + /* Get coefficient value */ + T getCoefficientValue(int32_t index); + /* Set coefficient value */ + void setCoefficientValue(int32_t index,T value ); + private: + /* Coefficients array */ + /** + * @brief The list of the coeffients. + * + */ + T coefficients[N+1]; + }; + +}; // namepace math + +#include "polynomialfunction.inl" + +#endif // POLYNOMIALFUNCTION_HPP +