33 template<
int PolySize>
42 template<
int PolySize>
49 if (coeffs.size() != PolySize)
52 <<
"Size mismatch: Needed " << PolySize
53 <<
" but given " << label(coeffs.size())
57 auto iter = coeffs.begin();
58 for (
int i=0; i<PolySize; ++i)
66 template<
int PolySize>
73 for (
int i=0; i<PolySize; ++i)
75 this->v_[i] = coeffs[i];
80 template<
int PolySize>
87 if (coeffs.
size() != PolySize)
90 <<
"Size mismatch: Needed " << PolySize
91 <<
" but given " << coeffs.
size()
95 for (
int i = 0; i < PolySize; ++i)
97 this->v_[i] = coeffs[i];
102 template<
int PolySize>
111 template<
int PolySize>
118 const word isName(is);
123 <<
"Expected polynomial name " <<
name <<
" but read " << isName
137 template<
int PolySize>
144 template<
int PolySize>
151 template<
int PolySize>
154 scalar val = this->v_[0];
158 for (label i=1; i<PolySize; ++i)
160 val += this->v_[i]*powX;
166 val += logCoeff_*
log(
x);
173 template<
int PolySize>
181 deriv += this->v_[1];
184 for (label i=2; i<PolySize; ++i)
186 deriv += i*this->v_[i]*powX;
193 deriv += logCoeff_/
x;
200 template<
int PolySize>
211 scalar integ = this->v_[0]*(powX2 - powX1);
212 for (label i=1; i<PolySize; ++i)
216 integ += this->v_[i]/(i + 1)*(powX2 - powX1);
221 integ += logCoeff_*((x2*
log(x2) - x2) - (x1*
log(x1) - x1));
228 template<
int PolySize>
234 newCoeffs[0] = intConstant;
237 newCoeffs[i+1] = this->v_[i]/(i + 1);
244 template<
int PolySize>
250 if (this->v_[0] > VSMALL)
252 newCoeffs.logActive_ =
true;
253 newCoeffs.logCoeff_ = this->v_[0];
256 newCoeffs[0] = intConstant;
257 for (label i=1; i<PolySize; ++i)
259 newCoeffs[i] = this->v_[i]/i;