Go to the documentation of this file. 1 #ifndef HOPS_MAXIMUMVOLUMEELLIPSOID_HPP
2 #define HOPS_MAXIMUMVOLUMEELLIPSOID_HPP
9 template<
typename RealType>
36 [[nodiscard]] Eigen::Matrix<RealType, Eigen::Dynamic, 1>
43 [[nodiscard]]
const Eigen::Matrix<RealType, Eigen::Dynamic, 1> &
getCenter()
const;
45 [[nodiscard]] Eigen::Matrix<RealType, Eigen::Dynamic, Eigen::Dynamic>
getEllipsoid()
const;
56 construct(
const Eigen::Matrix<RealType, Eigen::Dynamic, Eigen::Dynamic> &A,
57 const Eigen::Matrix<RealType, Eigen::Dynamic, 1> &b,
58 size_t maximumNumberOfIterationsToRun,
59 const Eigen::Matrix<RealType, Eigen::Dynamic, 1> &startingPoint,
60 RealType tolerance = 1e-6);
63 construct(
const Eigen::Matrix<RealType, Eigen::Dynamic, Eigen::Dynamic> &A,
64 const Eigen::Matrix<RealType, Eigen::Dynamic, 1> &b,
65 size_t maximumNumberOfIterationsToRun,
66 RealType tolerance = 1e-6);
68 template<
typename Derived>
73 template<
typename Derived>
78 Eigen::Matrix<RealType, Eigen::Dynamic, Eigen::Dynamic> roundingTransformation;
79 Eigen::Matrix<RealType, Eigen::Dynamic, Eigen::Dynamic> maximumVolumeEllipsoid;
80 Eigen::Matrix<RealType, Eigen::Dynamic, 1> center;
82 size_t iterations = 0;
83 RealType currentError = 0;
84 RealType tolerance = 0;
85 bool converged =
false;
89 #endif //HOPS_MAXIMUMVOLUMEELLIPSOID_HPP
RealType computeVolume() const
Definition: MaximumVolumeEllipsoid.cpp:41
friend std::ostream & operator<<(std::ostream &out, const MaximumVolumeEllipsoid< Derived > &maximumVolumeEllipsoid)
Definition: MaximumVolumeEllipsoid.cpp:11
[Deprectated] Use PolyRound (https://gitlab.com/csb.ethz/PolyRound) for effective and efficient round...
Definition: MaximumVolumeEllipsoid.hpp:23
bool hasConverged() const
Definition: MaximumVolumeEllipsoid.cpp:63
friend void swap(MaximumVolumeEllipsoid< Derived > &first, MaximumVolumeEllipsoid< Derived > &second)
Definition: MaximumVolumeEllipsoid.cpp:24
static MaximumVolumeEllipsoid construct(const Eigen::Matrix< RealType, Eigen::Dynamic, Eigen::Dynamic > &A, const Eigen::Matrix< RealType, Eigen::Dynamic, 1 > &b, size_t maximumNumberOfIterationsToRun, const Eigen::Matrix< RealType, Eigen::Dynamic, 1 > &startingPoint, RealType tolerance=1e-6)
Definition: MaximumVolumeEllipsoid.cpp:84
Eigen::Matrix< RealType, Eigen::Dynamic, Eigen::Dynamic > getEllipsoid() const
Definition: MaximumVolumeEllipsoid.cpp:58
Eigen::Matrix< RealType, Eigen::Dynamic, 1 > applyRoundingTransformation(Eigen::Matrix< RealType, Eigen::Dynamic, 1 > &x)
Transforms vector x to the rounded space.
Definition: MaximumVolumeEllipsoid.cpp:36
const Eigen::Matrix< RealType, Eigen::Dynamic, Eigen::Dynamic > & getRoundingTransformation() const
Definition: MaximumVolumeEllipsoid.cpp:48
Definition: CsvReader.hpp:8
MaximumVolumeEllipsoid & operator=(const MaximumVolumeEllipsoid &)=default
RealType getTolerance() const
Definition: MaximumVolumeEllipsoid.cpp:78
const Eigen::Matrix< RealType, Eigen::Dynamic, 1 > & getCenter() const
Definition: MaximumVolumeEllipsoid.cpp:53
size_t getNumberOfIterations() const
Definition: MaximumVolumeEllipsoid.cpp:68
RealType getCurrentError() const
Definition: MaximumVolumeEllipsoid.cpp:73