Program Listing for File convergence_metrics.hpp

Return to documentation for file (cosm/convergence/metrics/convergence_metrics.hpp)

#pragma once

/*******************************************************************************
 * Includes
 ******************************************************************************/
#include <tuple>

#include "rcppsw/metrics/base_metrics.hpp"
#include "rcppsw/rcppsw.hpp"

/*******************************************************************************
 * Namespaces/Decls
 ******************************************************************************/
namespace cosm::convergence::metrics {

/*******************************************************************************
 * Class Definitions
 ******************************************************************************/

class convergence_metrics : public virtual rmetrics::base_metrics {
 public:
  convergence_metrics(void) = default;
  using conv_status_t = std::tuple<double, double, bool>;

  virtual double swarm_conv_epsilon(void) const = 0;

  virtual conv_status_t swarm_interactivity(void) const = 0;

  virtual conv_status_t swarm_angular_order(void) const = 0;

  virtual conv_status_t swarm_positional_entropy(void) const = 0;

  virtual conv_status_t swarm_task_dist_entropy(void) const = 0;

  virtual conv_status_t swarm_velocity(void) const = 0;
};

} /* namespace cosm::convergence::metrics */