25 const std::vector<double>& f,
const std::vector<double>& p,
const std::vector<double>&
a,
26 const std::vector<double>& o)
27 : f_m(f), p_m(p), a_m(
a), o_m(o) {
32 for (
size_t i = 0; i <
f_m.size(); i++) {
33 const auto f =
f_m[i];
46 const auto angle = 2.0 *
Physics::pi * f * time + p;
54 for (
size_t i = 0; i <
f_m.size(); i++) {
55 const auto f =
f_m[i];
80 os << std::scientific;
82 for (
size_t i = 0; i < this->
f_m.size(); i++) {
89 for (
size_t i = 0; i < this->
p_m.size(); i++) {
96 for (
size_t i = 0; i < this->
a_m.size(); i++) {
103 for (
size_t i = 0; i < this->
o_m.size(); i++) {
Tps< T > cos(const Tps< T > &x)
Cosine.
Tps< T > sin(const Tps< T > &x)
Sine.
Inform & endl(Inform &inf)
constexpr double two_pi
The value of.
constexpr double pi
The value of.
Time dependence that follows sum of a set of sinusoids sigma_over_i(a[i] / 2 * sin(2 * pi * f[i] * t ...
std::vector< double > f_m
SinusoidalTimeDependence * clone() override
Inheritable clone function.
Inform & print(Inform &os) const
Print the sinusoidals.
std::vector< double > a_m
std::vector< double > o_m
SinusoidalTimeDependence()=default
Default Constructor makes a 0 length polynomial.
double getIntegral(double time) override
Return the integral from 0 to time.
double getValue(double time) override
Return the sinusoidal value.
std::vector< double > p_m
std::ios_base::fmtflags FmtFlags_t