idol
A C++ Framework for Optimization
Loading...
Searching...
No Matches
Mosek.h
1//
2// Created by henri on 23/03/23.
3//
4
5#ifndef IDOL_MOSEK_H
6#define IDOL_MOSEK_H
7
8#include <list>
9#include <memory>
10#include "idol/general/optimizers/OptimizerFactory.h"
11#include "idol/general/utils/Map.h"
12#include "idol/mixed-integer/optimizers/callbacks/CallbackFactory.h"
13
14namespace idol {
15 class Mosek;
16}
17
19 std::optional<bool> m_continuous_relaxation;
20 Map<std::string, double> m_double_parameter;
21 Map<std::string, int> m_int_parameter;
22 Map<std::string, std::string> m_string_parameter;
23 std::list<std::unique_ptr<CallbackFactory>> m_callbacks;
24
25 explicit Mosek(bool t_continuous_relaxation) : m_continuous_relaxation(t_continuous_relaxation) {}
26public:
27 Mosek() = default;
28
29 Mosek(const Mosek&);
30 Mosek(Mosek&&) noexcept = default;
31
32 Mosek& operator=(const Mosek&) = delete;
33 Mosek& operator=(Mosek&&) noexcept = delete;
34
35 Optimizer *operator()(const Model &t_model) const override;
36
37 static Mosek ContinuousRelaxation();
38
39 [[nodiscard]] Mosek *clone() const override;
40
41 Mosek& add_callback(const CallbackFactory& t_cb);
42
43 Mosek& with_continuous_relaxation_only(bool t_value);
44
45 Mosek& with_external_parameter(const std::string& t_param, double t_value);
46
47 Mosek& with_external_parameter(const std::string& t_param, int t_value);
48
49 Mosek& with_external_parameter(const std::string& t_param, std::string t_value);
50};
51
52#endif //IDOL_MOSEK_H
Mosek * clone() const override
Optimizer * operator()(const Model &t_model) const override