5#ifndef XGBOOST_METRIC_METRIC_COMMON_H_
6#define XGBOOST_METRIC_METRIC_COMMON_H_
12#include "../collective/aggregator.h"
13#include "../collective/communicator-inl.h"
14#include "../common/common.h"
26 auto const &info = p_fmat->Info();
28 [&] { result = this->Eval(predts, info); });
39 unsigned topn{std::numeric_limits<unsigned>::max()};
45 double residue_sum_{0};
46 double weights_sum_{0};
51 : residue_sum_{residue}, weights_sum_{weight} {}
55 return PackedReduceResult{residue_sum_ + other.residue_sum_, weights_sum_ + other.weights_sum_};
58 this->residue_sum_ += other.residue_sum_;
59 this->weights_sum_ += other.weights_sum_;
62 [[nodiscard]]
double Residue()
const {
return residue_sum_; }
63 [[nodiscard]]
double Weights()
const {
return weights_sum_; }
Definition host_device_vector.h:87
Definition metric_common.h:20
double Evaluate(HostDeviceVector< float > const &predts, std::shared_ptr< DMatrix > p_fmat) final
Evaluate a metric with DMatrix as input.
Definition metric_common.h:24
interface of evaluation metric used to evaluate model performance. This has nothing to do with traini...
Definition metric.h:29
Definition metric_common.h:44
#define XGBOOST_DEVICE
Tag function as usable by device.
Definition base.h:64
void ApplyWithLabels(MetaInfo const &info, void *buffer, size_t size, Function &&function)
Apply the given function where the labels are.
Definition aggregator.h:36
namespace of xgboost
Definition base.h:90
Definition metric_common.h:35
Copyright 2014-2023 by XGBoost Contributors.