31 namespace Test_HotStart {
32 const std::string
test_name =
"HotStart.Eigenvalue";
36 const std::string filename_input =
"test_HotStart_Eigenvalue.yaml";
37 const std::string filename_output =
"stdout";
39 class Parameters_Test_HotStart :
public Parameters {
41 Parameters_Test_HotStart()
43 Register_string(
"verbose_level",
"NULL");
45 Register_double(
"expected_result", 0.0);
53 #ifdef USE_TESTMANAGER_AUTOREGISTER
55 #if defined(USE_GROUP_SU2)
73 const double pi = 4.0 * atan(1.0);
75 Parameters *params_test =
new Parameters_Test_HotStart;
81 params_manager.
read_params(filename_input, params_all);
83 const string str_vlevel = params_test->
get_string(
"verbose_level");
85 const bool do_check = params_test->
is_set(
"expected_result");
86 const double expected_result = do_check ? params_test->
get_double(
"expected_result") : 0.0;
108 std::valarray<double> vec(2 * Nc);
110 for (
int site = 0; site < Nvol; ++site) {
111 for (
int mu = 0; mu < Ndim; ++mu) {
112 vec = eigen_qr.
solve(U->
ptr(0, site, mu));
113 for (
int icolor = 0; icolor < Nc; ++icolor) {
114 double arg = atan2(vec[2 * icolor + 1], vec[2 * icolor]);
129 va = va_all / Nval - av * av;
135 vout.
general(vl,
" # of eigenvalue = %10d\n", Nval);
139 vout.
general(vl,
" var(expected) = %23.16e\n", pi / sqrt(3.0));
158 vout.
detailed(vl,
"check skipped: expected_result not set.\n\n");
Random number generator base on M-series.
void read_params(const std::string ¶ms_file, Parameters *params)
read parameters from file.
void detailed(const char *format,...)
void general(const char *format,...)
double * ptr(const int jin, const int site, const int jex)
const std::string test_name
std::valarray< double > solve(const double *matrix)
void set_random(RandomNumbers *rand)
static bool RegisterTest(const std::string &key, const Test_function func)
bool is_set(const string &) const
double get_double(const string &key) const
void Register_Parameters(const string &, Parameters *const)
static int reduce_sum(int count, double *recv_buf, double *send_buf, int pattern=0)
make a global sum of an array of double over the communicator. pattern specifies the dimensions to be...
Parameter manager with YAML parser.
int verify(const double expected, const double result)
string get_string(const string &key) const
void report(const Bridge::VerboseLevel vl=Bridge::GENERAL)
static VerboseLevel set_verbose_level(const std::string &str)