EllAlgo 1.6.13
Loading...
Searching...
No Matches
ell.hpp
Go to the documentation of this file.
1
6#pragma once
7
8#include <valarray>
9
10#include "ell_base.hpp"
11
24template <typename Arr> class Ell : public EllBase<Arr, false> {
26
27 public:
28 using Vec = std::valarray<double>;
29 using ArrayType = Arr;
30
38 static auto from_radii(const Vec& val, Arr x) -> Ell { return Ell(val, std::move(x)); }
39
47 static auto from_alpha(const double alpha, Arr x) -> Ell { return Ell(alpha, std::move(x)); }
48
50 Ell(const Vec& val, Arr x) : Base(val, std::move(x)) {}
51
53 Ell(const double alpha, Arr x) : Base(alpha, std::move(x)) {}
54
56 Ell(Ell&& E) noexcept = default;
57
59 auto operator=(Ell&& E) noexcept -> Ell& = default;
60
62 ~Ell() = default;
63
65 explicit Ell(const Ell& E) = default;
66
68 auto operator=(const Ell& E) -> Ell& = delete;
69
75 auto copy() const -> Ell { return Ell(*this); }
76}; // } Ell
1D or 2D array backed by std::vector<double> for small optimization problems
Definition arr.hpp:23
Ellipsoid Search Space (shared base)
Definition ell_base.hpp:49
Ellipsoid Search Space (classic strategy)
Definition ell.hpp:24
static auto from_alpha(const double alpha, Arr x) -> Ell
Named constructor: initial ellipsoid from a scaling factor.
Definition ell.hpp:47
std::valarray< double > Vec
Definition ell.hpp:28
~Ell()=default
Destructor.
Ell(Ell &&E) noexcept=default
Move constructor.
static auto from_radii(const Vec &val, Arr x) -> Ell
Named constructor: initial ellipsoid from per-axis radii.
Definition ell.hpp:38
auto operator=(const Ell &E) -> Ell &=delete
Deleted copy assignment operator (non-copyable).
auto operator=(Ell &&E) noexcept -> Ell &=default
Move assignment operator.
Ell(const double alpha, Arr x)
Construct from a scaling factor and a center point (moved in).
Definition ell.hpp:53
Ell(const Vec &val, Arr x)
Construct from a diagonal vector and a center point (moved in).
Definition ell.hpp:50
Ell(const Ell &E)=default
Explicit copy constructor.
auto copy() const -> Ell
Explicitly copy the Ell object.
Definition ell.hpp:75
auto invalid_value() -> T
Return an invalid/sentinel value for type T.
Definition cutting_plane.hpp:27
Shared ellipsoid search space base (compile-time Strategy)