16 #ifdef USE_PARAMETERS_FACTORY
36 #ifdef USE_PARAMETERS_FACTORY
49 const string str_vlevel = params.
get_string(
"verbose_level");
60 err += params.
fetch_int(
"number_of_poles", Np);
63 err += params.
fetch_int(
"maximum_number_of_iteration", Niter);
64 err += params.
fetch_double(
"convergence_criterion_squared", Stop_cond);
67 vout.
crucial(
m_vl,
"Fopr_Sign: fetch error, input parameter not found.\n");
144 for (
int i = 0; i <
m_Np; i++) {
148 for (
int i = 0; i <
m_Np; i++) {
157 for (
int i = 0; i <
m_Np; ++i) {
158 m_xq[i].reset(Nin, Nvol, Nex);
198 for (
int i = 1; i <
m_Np; i++) {
199 v +=
m_bl[i] * m_xq[i];
219 if ((w.
nin() % 2) != 0) abort();
227 for (
int k = 0; k <
m_Nsbt; ++k) {
230 for (
int ex = 0; ex < Nex; ++ex) {
231 for (
int iv = 0; iv < Nvol; ++iv) {
232 for (
int in = 0; in < Nin; in += 2) {
233 prd_r += (*m_vk)[k].cmp(in, iv, ex) * w.
cmp(in, iv, ex)
234 + (*m_vk)[k].cmp(in + 1, iv, ex) * w.
cmp(in + 1, iv, ex);
235 prd_i += (*m_vk)[k].cmp(in, iv, ex) * w.
cmp(in + 1, iv, ex)
236 - (*m_vk)[k].cmp(in + 1, iv, ex) * w.
cmp(in, iv, ex);
244 for (
int ex = 0; ex < Nex; ++ex) {
245 for (
int iv = 0; iv < Nvol; ++iv) {
246 for (
int in = 0; in < Nin; in += 2) {
247 v_r = w.
cmp(in, iv, ex) - prd_r * (*m_vk)[k].cmp(in, iv, ex)
248 + prd_i * (*m_vk)[k].cmp(in + 1, iv, ex);
249 v_i = w.
cmp(in + 1, iv, ex) - prd_r * (*m_vk)[k].cmp(in + 1, iv, ex)
250 - prd_i * (*m_vk)[k].cmp(in, iv, ex);
251 w.
set(in, iv, ex, v_r);
252 w.
set(in + 1, iv, ex, v_i);
263 if ((w.
nin() % 2) != 0) abort();
271 for (
int k = 0; k <
m_Nsbt; ++k) {
274 for (
int ex = 0; ex < Nex; ++ex) {
275 for (
int iv = 0; iv < Nvol; ++iv) {
276 for (
int in = 0; in < Nin; in += 2) {
277 prd_r += (*m_vk)[k].cmp(in, iv, ex) * w.
cmp(in, iv, ex)
278 + (*m_vk)[k].cmp(in + 1, iv, ex) * w.
cmp(in + 1, iv, ex);
279 prd_i += (*m_vk)[k].cmp(in, iv, ex) * w.
cmp(in + 1, iv, ex)
280 - (*m_vk)[k].cmp(in + 1, iv, ex) * w.
cmp(in, iv, ex);
288 double sgn = (*m_ev)[k] / fabs((*
m_ev)[k]);
292 for (
int ex = 0; ex < Nex; ++ex) {
293 for (
int iv = 0; iv < Nvol; ++iv) {
294 for (
int in = 0; in < Nin; in += 2) {
295 v_r = x.
cmp(in, iv, ex) + prd_r * (*m_vk)[k].cmp(in, iv, ex)
296 - prd_i * (*m_vk)[k].cmp(in + 1, iv, ex);
297 v_i = x.
cmp(in + 1, iv, ex) + prd_r * (*m_vk)[k].cmp(in + 1, iv, ex)
298 + prd_i * (*m_vk)[k].cmp(in, iv, ex);
299 x.
set(in, iv, ex, v_r);
300 x.
set(in + 1, iv, ex, v_i);
315 for (
int l = 0; l <
m_Np; l++) {
316 x2R +=
m_bl[l] / (x * x +
m_cl[2 * l]);
318 x2R = x2R * (x * x +
m_cl[2 * m_Np - 1]);