34 have_no_convergence_Mu_MassB_MassWB =
false;
35 have_no_convergence_me2 =
false;
36 convergence_problem_Mu_MassB_MassWB.
clear();
37 convergence_problem_me2.
clear();
49 std::sort(tachyons.begin(), tachyons.end());
50 tachyons.erase(std::unique(tachyons.begin(), tachyons.end()), tachyons.end());
54 double precision,
unsigned iterations)
56 have_no_convergence_Mu_MassB_MassWB =
true;
57 convergence_problem_Mu_MassB_MassWB.
precision = precision;
58 convergence_problem_Mu_MassB_MassWB.
iterations = iterations;
63 have_no_convergence_Mu_MassB_MassWB =
false;
64 convergence_problem_Mu_MassB_MassWB.
clear();
68 double precision,
unsigned iterations)
70 have_no_convergence_me2 =
true;
71 convergence_problem_me2.
precision = precision;
72 convergence_problem_me2.
iterations = iterations;
77 have_no_convergence_me2 =
false;
78 convergence_problem_me2.
clear();
83 return !tachyons.empty();
93 return have_no_convergence_Mu_MassB_MassWB || have_no_convergence_me2;
99 return have_no_convergence_Mu_MassB_MassWB;
105 return have_no_convergence_me2;
112 return convergence_problem_Mu_MassB_MassWB;
119 return convergence_problem_me2;
124 std::ostringstream
ostr;
131 std::ostringstream
ostr;
143 for (
auto it = tachyons.cbegin(), end = tachyons.cend();
it != end; ++
it) {
144 if (
it != tachyons.begin()) {
147 ostr << *
it <<
" tachyon";
158 if (have_no_convergence_Mu_MassB_MassWB) {
159 ostr <<
" DR-bar to on-shell conversion for Mu, M1, M2 failed"
160 " (reached absolute accuracy: "
161 << convergence_problem_Mu_MassB_MassWB.
precision <<
" GeV),";
164 if (have_no_convergence_me2) {
165 ostr <<
" DR-bar to on-shell conversion for me2 failed"
166 " (reached absolute accuracy: "
167 << convergence_problem_me2.
precision <<
" GeV)";
contains problem and warning flags
void print_warnings(std::ostream &) const
print warnings to stream
void clear_warnings()
delete all warnings
Convergence_problem get_me2_convergence_problem() const
returns information about convergence problem for me2(1,1) iteration
void unflag_no_convergence_me2()
void unflag_no_convergence_Mu_MassB_MassWB()
bool have_tachyon() const
returns true if tachyon exists
void flag_no_convergence_me2(double, unsigned)
bool have_problem() const
returns true if problem has occurred
std::string get_warnings() const
get warnings as string
Convergence_problem get_Mu_MassB_MassWB_convergence_problem() const
returns information about convergence problem for Mu, M1, M2 iteration
void clear_problems()
delete all problems
void clear()
delete all problems and warnings
bool no_me2_convergence() const
returns true if DR-bar to OS conversion for me2(1,1) did not converge
bool no_Mu_MassB_MassWB_convergence() const
returns true if DR-bar to OS conversion for Mu, M1, M2 did not converge
void print_problems(std::ostream &) const
print problems to stream
void print(std::ostream &) const
print problems and warnings to stream
void flag_tachyon(const std::string &)
void flag_no_convergence_Mu_MassB_MassWB(double, unsigned)
bool have_warning() const
returns true if there is a warning
std::string get_problems() const
get problems as string
void svd_eigen(const Eigen::Matrix< Scalar, M, N > &m, Eigen::Array< Real,(((M)<(N)) ?(M) :(N)), 1 > &s, Eigen::Matrix< Scalar, M, M > *u, Eigen::Matrix< Scalar, N, N > *vh)
std::ostream & operator<<(std::ostream &os, const MSSMNoFV_onshell &model)
streaming operator
unsigned iterations
used number of iterations
double precision
achieved accuracy (in GeV)