8 const std::vector<double>& coefnum,
9 const std::vector<double>& coefdenom,
10 const std::vector<double>& coefnumphi,
11 const std::vector<double>& coefdenomphi):
39 const std::vector<double>& coefnum =
coefs[
type];
40 const std::vector<double>& coefdenom =
coefs[type+1];
44 for (std::size_t i = 1; i < coefnum.size(); ++i) {
45 dnum += coefnum[i] * powval * i;
47 num += coefnum[i] * powval;
54 denom += coefdenom[0];
55 for (std::size_t i = 1; i < coefdenom.size(); ++i) {
56 ddenom += coefdenom[i] * powval * i;
58 denom += coefdenom[i] * powval;
63 der_quot = (dnum * denom - ddenom * num) / (denom*denom);
73 const std::vector<double>& coefnum =
coefs[
type];
74 const std::vector<double>& coefdenom =
coefs[type+1];
76 unsigned int order = coefnum.size();
81 num += coefnum[1] * val;
84 for (std::size_t i = 2; i < coefnum.size(); ++i) {
85 d2_num += coefnum[i] * powval * i * (i-1);
87 d_num += coefnum[i] * powval * i;
88 num += coefnum[i] * powval * val;
93 double d2_denom = 0.0;
95 order = coefdenom.size();
98 denom += coefdenom[0];
100 denom += coefdenom[1] * val;
101 d_denom += coefdenom[1];
103 for (std::size_t i = 2; i < coefdenom.size(); ++i) {
104 d2_denom += coefdenom[i] * powval * i * (i-1);
106 d_denom += coefdenom[i] * powval * i;
107 denom += coefdenom[i] * powval * val;
113 der_quot = (d_num * denom - d_denom * num) / (denom*denom);
117 der2_quot = (d2_num - 2*der_quot*d_denom - quot * d2_denom) / denom;
std::vector< std::vector< double > > coefs
rational function coefficients
void calculateRationalFunction(FunctionType, double value, double ", double &der_quot) const
calculate rational function and its first derivative