27 switch (ambiguityResolutionStrategy)
32 return "Fix and Hold";
41 switch (decorrelationAlgorithm)
46 return "Z-Transformation";
55 switch (searchAlgorithm)
60 return "Integer Rounding (IR)";
62 return "Integer Bootstrapping (IB)";
64 return "Integer least-squares (ILS) Search (LAMBDA)";
66 return "Integer least-squares (ILS) Search-And-Shrink (MLAMBDA)";
75 switch (searchAlgorithm)
80 return "Integer Rounding (IR)";
82 return "Integer Bootstrapping (IB)";
84 return "ILS Search (LAMBDA)";
86 return "ILS Search-And-Shrink (MLAMBDA)";
95 switch (validationAlgorithm)
100 return "Difference Test";
102 return "Projector Test";
104 return "Ratio Test (critical value)";
106 return "Ratio Test (failure rate)";
115 bool changed =
false;
118 ImGui::SetNextItemWidth(width - ImGui::GetStyle().IndentSpacing);
122 ImGui::SetNextItemWidth(width - ImGui::GetStyle().IndentSpacing);
125 changed |= ImGui::Checkbox(fmt::format(
"Partial fixing##{}",
id).c_str(), ¶ms.
partialFixing);
129 ImGui::SetNextItemWidth(width - ImGui::GetStyle().IndentSpacing);
137 "and can be analytically calculated. If the bootstrapped failure rate is\n"
138 "smaller than the selected failure rate, the ratio test can be skipped.");
141 ImGui::SetNextItemWidth(width - ImGui::GetStyle().IndentSpacing);
144 changed |= ImGui::InputDouble(fmt::format(
"Critical Value c (R2 - R1 ≥ c)##{}",
id).c_str(), ¶ms.
validationTestCriticalValueC, 0.0, 0.0,
"%.3g");
156 int item_current = 0;
161 item_current =
static_cast<int>(i);
165 if (ImGui::Combo(fmt::format(
"Failure rate##{}",
id).c_str(), &item_current,
"0.1 %\0001 %\0\0"))
193 if (j.contains(
"decorrelationAlgorithm")) { j.at(
"decorrelationAlgorithm").get_to(obj.
decorrelationAlgorithm); }
194 if (j.contains(
"searchAlgorithm")) { j.at(
"searchAlgorithm").get_to(obj.
searchAlgorithm); }
195 if (j.contains(
"partialFixing")) { j.at(
"partialFixing").get_to(obj.
partialFixing); }
197 if (j.contains(
"validationAlgorithm")) { j.at(
"validationAlgorithm").get_to(obj.
validationAlgorithm); }
Ambiguity resolution algorithms.
Combo representing an enumeration.
Combo representing an enumeration.
nlohmann::json json
json namespace
Text Help Marker (?) with Tooltip.
bool InputDoubleL(const char *label, double *v, double v_min, double v_max, double step, double step_fast, const char *format, ImGuiInputTextFlags flags)
Shows a value limited InputText GUI element for 'double'.
void to_json(json &j, const Node &node)
Converts the provided node into a json object.
AmbiguityResolutionStrategy
Ambiguity resolution strategies.
@ FixAndHold
Do not change the ambiguity once it is fixed.
@ COUNT
Amount of items in the enum.
@ Continuous
Estimate ambiguities every epoch.
const char * to_string_short(AmbiguityResolutionParameters::SearchAlgorithm searchAlgorithm)
Converts the enum to a string.
const char * to_string(gui::widgets::PositionWithFrame::ReferenceFrame refFrame)
Converts the enum to a string.
void from_json(const json &j, Node &node)
Converts the provided json object into a node object.
bool GuiAmbiguityResolution(const char *id, AmbiguityResolutionParameters ¶ms, float width)
Shows a ComboBox to select the ambiguity resolution algorithms.
Ambiguity resolution algorithms and parameters.
bool validationBootstrappedSuccessRate
Validation with Bootstrapped success rate (Bootstrapped failure rate is an upper bound for the ILS fa...
ValidationAlgorithm
Validation algorithms.
@ RatioTestFailureRate
Accept if , but with calculated from given failure rate (see verhagen2013 Verhagen 2013,...
@ COUNT
Amount of items in the enum.
@ None
Do not validate the solution (always accept the integer solution, if one is found)
SearchAlgorithm searchAlgorithm
Search algorithm.
double validationTestCriticalValueC
Critical value c for the the difference test.
double validationTestCriticalValueMu
Critical value µ for the the ratio and projector test (0, 1].
double validationRatioTestFailureRate
Failure rate for the ratio test (used to calculate µ)
DecorrelationAlgorithm
Decorrelation algorithms.
@ Z_Transformation
Z-Transformation.
@ COUNT
Amount of items in the enum.
@ None
Do not decorrelate.
static constexpr std::array< double, 2 > allowedFailureRateValues
Possible failure rates for the look-up tables.
DecorrelationAlgorithm decorrelationAlgorithm
Decorrelation algorithm.
ValidationAlgorithm validationAlgorithm
Validation algorithm.
bool partialFixing
Attempt partial fixing of ambiguities.
SearchAlgorithm
Search algorithms.
@ COUNT
Amount of items in the enum.
@ None
Disable the search.
@ IntegerLeastSquaresSearchAndShrink
Integer least-squares (ILS) Search-and-Shrink (MLAMBDA)
@ IntegerBootstrapping
Integer Bootstrapping (IB)
@ IntegerRounding
Integer Rounding (IR)
@ IntegerLeastSquaresSearch
Integer least-squares (ILS) Search (LAMBDA)