53 #ifndef Foam_Polynomial_H 54 #define Foam_Polynomial_H 60 #include <initializer_list> 61 #include <type_traits> 75 template<
int PolySize>
78 public VectorSpace<Polynomial<PolySize>, scalar, PolySize>
80 static_assert(PolySize > 0,
"Size must be positive (non-zero)");
108 Polynomial(std::initializer_list<scalar> coeffs);
111 explicit Polynomial(
const scalar coeffs[PolySize]);
137 scalar
value(const scalar
x) const;
143 scalar
integral(const scalar x1, const scalar x2) const;
Polynomial< PolySize+1 > intPolyType
bool logActive() const noexcept
Return true if the log term is active.
Polynomial< PolySize > polyType
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
scalar integral(const scalar x1, const scalar x2) const
Return integral between two values.
Polynomial()
Default construct, with all coefficients = 0.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
A class for handling words, derived from Foam::string.
scalar value(const scalar x) const
Return polynomial value.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
scalar logCoeff() const noexcept
Return the log coefficient.
Polynomial templated on size (order):
polyType integralMinus1(const scalar intConstant=0.0) const
Return integral coefficients when lowest order is -1.
scalar derivative(const scalar x) const
Return derivative of the polynomial at the given x.