32 template<
int PolySize>
39 for (
int i = 0; i < PolySize; ++i)
46 template<
int PolySize>
53 logActive_(poly.logActive_),
54 logCoeff_(poly.logCoeff_)
58 template<
int PolySize>
65 for (
int i=0; i<PolySize; i++)
67 this->v_[i] = coeffs[i];
72 template<
int PolySize>
79 if (coeffs.
size() != PolySize)
82 <<
"Size mismatch: Needed " << PolySize
83 <<
" but given " << coeffs.
size()
87 for (
int i = 0; i < PolySize; ++i)
89 this->v_[i] = coeffs[i];
94 template<
int PolySize>
103 template<
int PolySize>
115 <<
"Expected polynomial name " <<
name <<
" but read " << isName
122 if (this->size() == 0)
125 <<
"Polynomial coefficients for entry " << isName
133 template<
int PolySize>
140 template<
int PolySize>
147 template<
int PolySize>
150 scalar
val = this->v_[0];
154 for (
label i=1; i<PolySize; ++i)
157 val += this->v_[i]*powX;
169 template<
int PolySize>
177 deriv += this->v_[1];
180 for (
label i=2; i<PolySize; ++i)
183 deriv += i*this->v_[i]*powX;
189 deriv += logCoeff_/
x;
196 template<
int PolySize>
207 scalar integ = this->v_[0]*(powX2 - powX1);
208 for (
label i=1; i<PolySize; ++i)
212 integ += this->v_[i]/(i + 1)*(powX2 - powX1);
217 integ += logCoeff_*((x2*
log(x2) - x2) - (x1*
log(x1) - x1));
224 template<
int PolySize>
230 newCoeffs[0] = intConstant;
233 newCoeffs[i+1] = this->v_[i]/(i + 1);
240 template<
int PolySize>
246 if (this->v_[0] > VSMALL)
248 newCoeffs.logActive_ =
true;
249 newCoeffs.logCoeff_ = this->v_[0];
252 newCoeffs[0] = intConstant;
253 for (
label i=1; i<PolySize; ++i)
255 newCoeffs[i] = this->v_[i]/i;