92 void generate(std::string wilson, std::string model, std::string model_path);
102 std::string output_model,
103 std::string target_model,
104 std::string model_path,
106 bool bsm_split_generation =
false,
107 bool full_target_generation =
false);
119 void compile_run(std::string wilson, std::string model);
146 std::string output_model,
147 std::string target_model,
148 bool bsm_split_generation =
false,
149 bool full_target_generation =
false);
162 void compile_run_libs(std::string wilson, std::string model,
double Q_match);
178 void calculate(std::string wilson, std::string model,
double Q_match, std::string model_path);
184 std::string output_model,
185 std::string target_model,
187 std::string model_path,
189 bool bsm_split_generation =
false,
190 bool full_target_generation =
false);
200 std::string output_model,
201 std::string target_model,
203 std::string model_path,
205 bool bsm_split_generation =
false,
206 bool full_target_generation =
false);
246 bool already_run(std::string&& outputBinary);
258 std::string output_binary_name(std::string& wilson, std::string& model);
267 std::optional<int> resolve_model_template_index(
const std::string& model)
const;
272 void invalidate_template_model_cache_if_needed(
const std::string& wilson,
273 const std::string& output_model,
274 const std::string& target_model,
275 const std::string& model_path,
276 std::optional<int> model_template_index,
278 bool bsm_split_generation,
279 bool full_target_generation)
const;
282 bool artifacts_ready(
const std::string& wilson,
283 const std::string& output_model,
284 const std::string& target_model,
285 const std::string& model_path,
287 bool bsm_split_generation,
288 bool full_target_generation)
const;
291 void ensure_built(
const std::string& wilson,
292 const std::string& output_model,
293 const std::string& target_model,
294 const std::string& model_path,
296 bool bsm_split_generation,
297 bool full_target_generation);
300 std::unordered_map<std::string, double> snapshot_numeric_params(
301 const std::string& wilson,
302 const std::string& output_model,
303 const std::string& target_model,
304 bool bsm_split_generation,
305 bool full_target_generation
309 void compile_numlib(
const std::string& wilson,
const std::string& model);
312 std::set<std::string> specials_block {
"KIN",
"WEIN",
"Finite",
"REGPROP",
"BETA"};
315 std::string num_file_path{};
318 std::unordered_map<std::string, std::unordered_set<InterpretedParam>> dependencies;
321 std::shared_ptr<ICoreAPI<Model>> core_api;
324 std::shared_ptr<IMartyParameterProxy<std::string, LhaID>> param_proxy_sm;
327 std::shared_ptr<IInterpreterPortsFactory> ports;
331 std::shared_ptr<IMartyParameterProxy<std::string, LhaID>> param_proxy_bsm =
nullptr;
std::string calculate_isolated(std::string wilson, std::string output_model, std::string target_model, double Q_match, std::string model_path, bool sm_like_filter, bool bsm_split_generation=false, bool full_target_generation=false)
Thread-safe calculation using invocation-local parameter and CSV files.
void calculate(std::string wilson, std::string model, double Q_match, std::string model_path)
Convenience shortcut to generate, compile, and run the full pipeline.
MartyInterface(std::shared_ptr< ICoreAPI< Model > > core_api, std::shared_ptr< IMartyParameterProxy< std::string, LhaID > > sm_proxy, std::shared_ptr< IInterpreterPortsFactory > ports, std::shared_ptr< IMartyParameterProxy< std::string, LhaID > > bsm_proxy=nullptr)
Constructs a MartyInterface with explicit dependencies.