12using Vec = std::vector<double>;
86 virtual std::map<ObservableId, std::vector<ObservableValue>>
predict_optimized(
const std::map<ParamId, double>& p,
const std::map<ParamId, double>& eta) = 0;
virtual ~IModelThreadGuard()=default
Interface for a model capable of producing observable predictions.
virtual void prepare_for_prediction()
Materialize model-side runtime state before repeated predictions.
virtual std::unordered_set< ParamId > get_obs_deps(ObservableId id)=0
Returns the model parameters required by an observable.
virtual std::unique_ptr< IModelThreadGuard > force_decay_threads(size_t)
Temporarily force internal model/decay thread counts.
virtual std::size_t n_observables() const =0
Returns the number of currently active binned observables.
virtual std::shared_ptr< IModel > clone_for_worker() const
Returns an isolated model instance suitable for one worker thread.
virtual std::map< ObservableId, std::vector< ObservableValue > > predict_optimized(const std::map< ParamId, double > &p, const std::map< ParamId, double > &eta)=0
Computes model predictions for a given parameter point.
virtual ~IModel()=default
Default virtual destructor.
virtual bool can_clone_for_worker() const
Whether clone_for_worker is implemented.
virtual void compute_observables() const =0
Forces computation of the currently configured observables.
virtual std::vector< BinnedObservableId > get_obs_ids()=0
Returns the identifiers of the currently active observable bins.
std::vector< double > Vec