22 SolutionStatus m_status = Loaded;
23 SolutionReason m_reason = NotSpecified;
24 std::optional<double> m_objective_value;
27 explicit Point(
const SparseVector<T, double>& t_vector) : SparseVector<T, double>(t_vector) {}
28 explicit Point(SparseVector<T, double>&& t_vector) : SparseVector<T, double>(std::move(t_vector)) {}
30 [[nodiscard]] SolutionStatus status()
const {
return m_status; }
31 void set_status(SolutionStatus t_status) { m_status = t_status; }
33 [[nodiscard]] SolutionReason reason()
const {
return m_reason; }
35 void set_reason(SolutionReason t_reason) { m_reason = t_reason; }
37 [[nodiscard]]
double objective_value()
const;
39 void set_objective_value(
double t_objective_value) { m_objective_value = t_objective_value; }
41 [[nodiscard]]
bool has_objective_value()
const {
return m_objective_value.has_value(); }
43 void reset_objective_value() { m_objective_value.reset(); }
45 Point& operator*=(
double t_factor)
override {
return static_cast<Point&
>(SparseVector<T, double>::operator*=(t_factor)); }
46 Point& operator+=(
const Point& t_other) {
return static_cast<Point&
>(SparseVector<T, double>::operator+=(t_other)); }
47 Point& operator+=(Point&& t_other) {
return static_cast<Point&
>(SparseVector<T, double>::operator+=(std::move(t_other))); }
48 Point& operator-=(
const Point& t_other) {
return static_cast<Point&
>(SparseVector<T, double>::operator-=(t_other)); }
49 Point& operator-=(Point&& t_other) {
return static_cast<Point&
>(SparseVector<T, double>::operator-=(std::move(t_other))); }