28#ifndef _CLASSIC_SRC_ALGORITHMS_POLYNOMIALTIMEDEPENDENCE_H_
29#define _CLASSIC_SRC_ALGORITHMS_POLYNOMIALTIMEDEPENDENCE_H_
65 std::vector<double> temp(
coeffs);
83 for (std::size_t i = 0; i <
coeffs.size() ; ++i) {
93 for (std::size_t i = 0; i <
coeffs.size() ; ++i) {
94 result +=
coeffs[i] * t_power / (i + 1);
Inform & operator<<(Inform &os, PolynomialTimeDependence &p)
Time dependence abstraction for field parameters that vary slowly with time; for example,...
Time dependence that follows a polynomial, like p_0 + p_1*t + p_2*t^2 + ... + p_i*t^i + ....
Inform & print(Inform &os)
Print the polynomials.
double getValue(double time)
Return the polynomial Sum_i p_i t^i; returns 0 if p is of 0 length.
PolynomialTimeDependence(std::vector< double > ptd)
Constructor.
PolynomialTimeDependence()
Default Constructor makes a 0 length polynomial.
~PolynomialTimeDependence()
Destructor does nothing.
std::vector< double > coeffs
double getIntegral(double time)
Return the integral of the polynomial from 0 to time.
PolynomialTimeDependence * clone()
Inheritable copy constructor.