4 std::shared_ptr<ILikelihood> base,
5 std::shared_ptr<Profiler> profiler,
6 std::shared_ptr<IProfilingStrategy> profiling_strategy
8: base(
std::move(base)),
9 profiler(
std::move(profiler)),
10 profiling_strategy(
std::move(profiling_strategy))
12 this->last = this->profiling_strategy->init_warm_start();
16 ProfileRequest pr = profiling_strategy->build_request(px, py, this->last);
24 if (std::isfinite(res.
nll_hat)) {
25 LOG_INFO(
"[PROFILED_NLL] weak profile at (", px,
',', py,
"), using finite value", res.
nll_hat);
29 LOG_INFO(
"[PROFILED_NLL] rejected point (", px,
',', py,
"), using fallback penalty");
34 auto all_p_defs = this->base->get_param_defs();
36 all_p_defs[this->profiling_strategy->get_x_id()],
37 all_p_defs[this->profiling_strategy->get_y_id()]
#define LOG_INFO(...)
Macro for logging informational messages.
Two-dimensional profiled likelihood wrapper.
ProfiledLikelihood2D()=default
Default constructor.
double profiled_nll(double px, double py)
Evaluates the profiled NLL at one 2D scan point.
std::array< fit_app::ParameterDefinition, 2 > get_param_defs() const
Returns the parameter definitions for the two scan coordinates.
Hash specialization for SymbolId<Tag>.
Input specification for a constrained profile minimization.
Output of a constrained profile minimization.
double nll_hat
Minimum or approximate profiled NLL value.
bool converged
True when the profiler accepted the result as reliable.
std::map< std::size_t, double > theta_hat
Profiled parameter values keyed by global parameter index.