14 constexpr bool operator()(std::pair<int, double>
const &a,
15 std::pair<int, double>
const &b)
const noexcept {
16 return a.second > b.second;
35 const float coords_z) {
36 this->
coords_ = {coords_x, coords_y, coords_z};
48 std::array<double, 5> &coordinates)
const {
49 coordinates[0] = geometricalFactor * this->
x_;
50 coordinates[1] = geometricalFactor * this->
y_;
51 if(geometricalFactor < 1) {
52 coordinates[2] = (1 - geometricalFactor) * this->
coords_[0];
53 coordinates[3] = (1 - geometricalFactor) * this->
coords_[1];
54 coordinates[4] = (1 - geometricalFactor) * this->
coords_[2];
73 return this->
y_ - this->
x_;
81 const int wasserstein,
82 const double geometricalFactor)
const;
85 const int wasserstein,
86 const double geometricalFactor)
const {
87 return this->
cost(*g, wasserstein, geometricalFactor);
110 Good(
double x,
double y,
bool is_diagonal,
int id)
129 std::array<float, 3> coords{};
130 const float lb = lambda;
170 inline void assign(
const int b,
const double price) {
199 Bidder(
const double x,
const double y,
const bool is_diagonal,
const int id)
218 std::array<float, 3> coords{};
219 const float lb = lambda;
243 < Geometry::powIntTen<double>(-12);
253 double geometricalFactor);
258 double geometricalFactor,
260 const int kdt_index = 0);
268 double geometricalFactor,
269 std::priority_queue<std::pair<int, double>,
270 std::vector<std::pair<int, double>>,
277 double geometricalFactor,
278 std::vector<KDT *> &correspondence_kdt_map,
279 std::priority_queue<std::pair<int, double>,
280 std::vector<std::pair<int, double>>,
282 const int kdt_index = 0);
301 this->position_in_auction_ = pos;
304 return this->position_in_auction_;
317 int position_in_auction_{};
int runKDTBidding(GoodDiagram *goods, Good &diagonalGood, int wasserstein, double epsilon, double geometricalFactor, KDT *kdt, const int kdt_index=0)
void setDiagonalPrice(const double price)
void setPricePaid(const double price)
int runBidding(GoodDiagram *goods, Good &diagonalGood, int wasserstein, double epsilon, double geometricalFactor)
int runDiagonalKDTBidding(GoodDiagram *goods, Good &diagonalGood, int wasserstein, double epsilon, double geometricalFactor, std::vector< KDT * > &correspondence_kdt_map, std::priority_queue< std::pair< int, double >, std::vector< std::pair< int, double > >, Compare > &diagonal_queue, const int kdt_index=0)
int runDiagonalBidding(GoodDiagram *goods, Good &twinGood, int wasserstein, double epsilon, double geometricalFactor, std::priority_queue< std::pair< int, double >, std::vector< std::pair< int, double > >, Compare > &diagonal_queue)
void setPositionInAuction(const int pos)
void setProperty(const Good &g)
Bidder(const PersistencePair &pair, const int id, const double lambda)
int getPositionInAuction() const
const Good & getProperty() const
Bidder(const double x, const double y, const bool is_diagonal, const int id)
Good(double x, double y, bool is_diagonal, int id)
void setOwner(const int idx)
Good(const PersistencePair &pair, const int id, const double lambda)
Good & operator=(const Good &)=default
void assign(const int b, const double price)
void setPrice(const double price)
Good(const PersistencePair &pair, const int id)
Good(const Good &)=default
double cost(const PersistenceDiagramAuctionActor &g, const int wasserstein, const double geometricalFactor) const
void SetCriticalCoordinates(const float coords_x, const float coords_y, const float coords_z)
std::array< float, 3 > coords_
PersistenceDiagramAuctionActor(double x, double y, bool is_diagonal, int id)
double getPersistence() const
std::array< double, 3 > geom_pair_length_
PersistenceDiagramAuctionActor()=default
double getPairGeometricalLength(const int wasserstein) const
std::array< float, 3 > GetCriticalCoordinates() const
void GetKDTCoordinates(double geometricalFactor, std::array< double, 5 > &coordinates) const
double cost(const PersistenceDiagramAuctionActor *g, const int wasserstein, const double geometricalFactor) const
void SetCriticalCoordinates(const std::array< float, 3 > coords)
void SetCoordinates(const double x, const double y)
T1 pow(const T1 val, const T2 n)
std::vector< Bidder > BidderDiagram
std::vector< Good > GoodDiagram
constexpr bool operator()(std::pair< int, double > const &a, std::pair< int, double > const &b) const noexcept
std::array< float, 3 > coords
ttk::CriticalVertex birth
ttk::CriticalVertex death