16 #ifdef USE_PARAMETERS_FACTORY
35 #ifdef USE_PARAMETERS_FACTORY
48 const string str_vlevel = params.
get_string(
"verbose_level");
58 err += params.
fetch_int(
"number_of_poles", Np);
59 err += params.
fetch_int(
"exponent_numerator", n_exp);
60 err += params.
fetch_int(
"exponent_denominator", d_exp);
65 vout.
crucial(
m_vl,
"Math_Rational: fetch error, input parameter not found.\n");
76 const double x_min,
const double x_max)
115 std::valarray<double>& pole)
117 if (res.size() !=
m_Np) {
122 if (pole.size() !=
m_Np) {
128 for (
int i = 0; i <
m_Np; ++i) {
146 char filename[FILENAME_MAX];
148 snprintf(filename, FILENAME_MAX,
149 "parameter_rational.%1d_%1d%s_%02d_%010.8f_%07.3f",
155 vout.
general(
m_vl,
"Math_rational: expected filename: %s\n", filename);
157 int Np, n_exp, d_exp;
161 std::fstream parameterfile;
162 parameterfile.open(filename, std::ios::in);
163 if (!parameterfile.is_open()) {
169 parameterfile >> Np >> n_exp >> d_exp;
170 parameterfile >> x_min >> x_max;
173 for (
int i = 0; i < Np; i++) {
176 parameterfile.close();
178 vout.
general(
m_vl,
"Math_Rational: read parameter file successful.\n");
198 assert(fabs(
m_x_min - x_min) < 1.e-12);
201 assert(fabs(
m_x_min - x_min) < 1.e-8);
202 assert(fabs(
m_x_max - x_max) < 1.e-8);
211 for (
int k = 0; k <
m_Np; ++k) {