42   const std::string 
test_name = 
"Rational.Smeared_Rational";
 
   46     const std::string filename_input = 
"test_Rational_Smeared.yaml";
 
   52 #ifdef USE_TESTMANAGER_AUTOREGISTER 
   54 #if defined(USE_GROUP_SU2) 
   73     const int NinF = 2 * Nc * Nd;
 
   85     const string        str_gconf_status = params_test.
get_string(
"gauge_config_status");
 
   86     const string        str_gconf_read   = params_test.
get_string(
"gauge_config_type_input");
 
   87     const string        readfile         = params_test.
get_string(
"config_filename_input");
 
   88     const string        str_rand_type    = params_test.
get_string(
"random_number_type");
 
   89     const unsigned long seed             = params_test.
get_unsigned_long(
"seed_for_random_number");
 
   90     const string        str_vlevel       = params_test.
get_string(
"verbose_level");
 
   92     const bool   do_check        = params_test.
is_set(
"expected_result");
 
   93     const double expected_result = do_check ? params_test.
get_double(
"expected_result") : 0.0;
 
   95     const string str_gmset_type = params_clover.
get_string(
"gamma_matrix_type");
 
   96     const string str_proj_type  = params_proj.
get_string(
"projection_type");
 
   97     const string str_smear_type = params_smear.
get_string(
"smear_type");
 
   99     const string str_source_type = params_source.
get_string(
"source_type");
 
  104     vout.
general(
vl, 
"  gconf_status = %s\n", str_gconf_status.c_str());
 
  105     vout.
general(
vl, 
"  gconf_read   = %s\n", str_gconf_read.c_str());
 
  107     vout.
general(
vl, 
"  rand_type    = %s\n", str_rand_type.c_str());
 
  110     vout.
general(
vl, 
"  gmset_type   = %s\n", str_gmset_type.c_str());
 
  111     vout.
general(
vl, 
"  proj_type    = %s\n", str_proj_type.c_str());
 
  112     vout.
general(
vl, 
"  smear_type   = %s\n", str_smear_type.c_str());
 
  113     vout.
general(
vl, 
"  source_type  = %s\n", str_source_type.c_str());
 
  126     if (str_proj_type == 
"Stout_SU3") {
 
  140     if (str_gconf_status == 
"Continue") {
 
  142     } 
else if (str_gconf_status == 
"Cold_start") {
 
  144     } 
else if (str_gconf_status == 
"Hot_start") {
 
  147       vout.
crucial(
vl, 
"Error at %s: unsupported gconf status \"%s\"\n", 
test_name.c_str(), str_gconf_status.c_str());
 
  153     unique_ptr<Fopr> fopr_c(Fopr::New(
"Clover", params_clover));
 
  155     unique_ptr<Projection>     proj(Projection::New(str_proj_type, params_proj));
 
  156     unique_ptr<Smear>          smear(Smear::New(str_smear_type, proj.get(), params_smear));
 
  157     unique_ptr<Director_Smear> dr_smear(
new Director_Smear(smear.get(), params_dr_smear));
 
  159     unique_ptr<Fopr> fopr_r(Fopr::New(
"Rational", fopr_c.get(), params_rational));
 
  161     unique_ptr<Source> source(Source::New(str_source_type, params_source));
 
  164     Fopr_Smeared fopr_smear_1(fopr_c.get(), dr_smear.get());
 
  165     Fopr_Smeared fopr_smear_2(fopr_r.get(), dr_smear.get());
 
  179     Field   xq(NinF, Nvol, 1), b(NinF, Nvol, 1);
 
  180     Field   v(NinF, Nvol, 1), w(NinF, Nvol, 1);
 
  183     vout.
general(
vl, 
"Consistency check of smeared-rational and rational-smeared.\n");
 
  190         const int icolor = 0;
 
  194         int idx = icolor + Nc * ispin;
 
  195         source->set(b2, 
idx);
 
  199         fopr_smear_2.
mult(v, b);
 
  202         fopr_smear_1.
mult(w, v);
 
  204         fopr_smear_2.
mult(v, w);
 
  207         double vv = v.norm2();
 
  219         const int icolor = 0;
 
  223         int idx = icolor + Nc * ispin;
 
  224         source->set(b2, 
idx);
 
  228         fopr_r_smear_1.
mult(v, b);
 
  231         fopr_smear_1.
mult(w, v);
 
  233         fopr_r_smear_1.
mult(v, w);
 
  242     const double result = vv;