Zoltan2
Toggle main menu visibility
Loading...
Searching...
No Matches
Zoltan2_GraphMetrics.hpp
Go to the documentation of this file.
1
// @HEADER
2
// *****************************************************************************
3
// Zoltan2: A package of combinatorial algorithms for scientific computing
4
//
5
// Copyright 2012 NTESS and the Zoltan2 contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
12
13
#ifndef ZOLTAN2_GRAPHCMETRICS_HPP
14
#define ZOLTAN2_GRAPHCMETRICS_HPP
15
16
#include <
Zoltan2_BaseClassMetrics.hpp
>
17
#include <
Zoltan2_GraphModel.hpp
>
18
#include <
Zoltan2_MetricUtility.hpp
>
19
20
#define GRAPH_METRICS_TYPE_NAME "GraphMetrics"
21
22
namespace
Zoltan2
{
23
25
template
<
typename
scalar_t>
26
class
GraphMetrics
:
public
BaseClassMetrics
<scalar_t> {
27
28
public
:
30
GraphMetrics
(std::string mname) :
BaseClassMetrics
<
scalar_t
>(
static_metricNames_
.size(), mname) {}
31
33
GraphMetrics
() :
BaseClassMetrics
<
scalar_t
>(
static_metricNames_
.size()) {}
34
36
virtual
const
std::string &
getMetricType
()
const
{
return
GraphMetrics<scalar_t>::static_metricTypeName_
; }
37
39
static
void
printHeader
(std::ostream &os);
40
42
virtual
void
printLine
(std::ostream &os)
const
;
43
45
void
setGlobalSum
(
scalar_t
x) { this->
setMetricValue
(
"global sum"
, x);}
46
48
void
setGlobalMax
(
scalar_t
x) { this->
setValue
(
"global maximum"
, x);}
49
51
scalar_t
getGlobalSum
()
const
{
return
this->
getMetricValue
(
"global sum"
);}
52
54
scalar_t
getGlobalMax
()
const
{
return
this->
getMetricValue
(
"global maximum"
);}
55
57
virtual
const
std::vector<std::string> &
getMetrics
()
const
{
return
GraphMetrics<scalar_t>::static_metricNames_
; }
58
60
static
std::vector<std::string>
static_metricNames_
;
61
63
static
std::string
static_metricTypeName_
;
64
};
// end class
65
67
template
<
typename
scalar_t>
68
std::string
GraphMetrics<scalar_t>::static_metricTypeName_
=
GRAPH_METRICS_TYPE_NAME
;
69
71
template
<
typename
scalar_t>
72
std::vector<std::string>
GraphMetrics<scalar_t>::static_metricNames_
= {
73
"global sum"
,
74
"global maximum"
75
};
76
77
template
<
typename
scalar_t>
78
void
GraphMetrics<scalar_t>::printHeader
(std::ostream &os)
79
{
80
os << std::setw(20) <<
" "
;
81
os << std::setw(12) <<
"total"
<< std::setw(12) <<
"max"
;
82
os << std::endl;
83
}
84
85
template
<
typename
scalar_t>
86
void
GraphMetrics<scalar_t>::printLine
(std::ostream &os)
const
87
{
88
std::string label( this->
getName
() );
89
90
os << std::setw(20) << label;
91
os << std::setw(12) << std::setprecision(4) << this->
getMetricValue
(
"global sum"
);
92
os << std::setw(12) << std::setprecision(4) << this->getMetricValue(
"global maximum"
);
93
94
os << std::endl;
95
}
96
97
}
//namespace Zoltan2
98
#endif
Zoltan2_BaseClassMetrics.hpp
GRAPH_METRICS_TYPE_NAME
#define GRAPH_METRICS_TYPE_NAME
Definition
Zoltan2_GraphMetrics.hpp:20
Zoltan2_GraphModel.hpp
Defines the GraphModel interface.
Zoltan2_MetricUtility.hpp
Zoltan2::BaseClassMetrics::setMetricValue
void setMetricValue(const std::string &metric_name, scalar_t value) const
Definition
Zoltan2_BaseClassMetrics.hpp:110
Zoltan2::BaseClassMetrics::setValue
void setValue(int enumIndex, scalar_t value)
Definition
Zoltan2_BaseClassMetrics.hpp:50
Zoltan2::BaseClassMetrics::getMetricValue
scalar_t getMetricValue(const std::string &metric_name) const
Definition
Zoltan2_BaseClassMetrics.hpp:101
Zoltan2::BaseClassMetrics::BaseClassMetrics
BaseClassMetrics()
Constructor - for compiling but not used.
Definition
Zoltan2_BaseClassMetrics.hpp:55
Zoltan2::BaseClassMetrics::getName
const std::string & getName() const
Get the name of the item measured.
Definition
Zoltan2_BaseClassMetrics.hpp:90
Zoltan2::GraphMetrics::printHeader
static void printHeader(std::ostream &os)
Print a standard header.
Definition
Zoltan2_GraphMetrics.hpp:78
Zoltan2::GraphMetrics::getGlobalSum
scalar_t getGlobalSum() const
Get the global sum of edge cuts for all parts.
Definition
Zoltan2_GraphMetrics.hpp:51
Zoltan2::GraphMetrics::static_metricTypeName_
static std::string static_metricTypeName_
Definition
Zoltan2_GraphMetrics.hpp:63
Zoltan2::GraphMetrics::getMetricType
virtual const std::string & getMetricType() const
Get the class type of the metric.
Definition
Zoltan2_GraphMetrics.hpp:36
Zoltan2::GraphMetrics::setGlobalMax
void setGlobalMax(scalar_t x)
Set the global maximum across parts.
Definition
Zoltan2_GraphMetrics.hpp:48
Zoltan2::GraphMetrics::setGlobalSum
void setGlobalSum(scalar_t x)
Set the global sum.
Definition
Zoltan2_GraphMetrics.hpp:45
Zoltan2::GraphMetrics::printLine
virtual void printLine(std::ostream &os) const
Print a standard line of data that fits under the header.
Definition
Zoltan2_GraphMetrics.hpp:86
Zoltan2::GraphMetrics::getMetrics
virtual const std::vector< std::string > & getMetrics() const
Definition
Zoltan2_GraphMetrics.hpp:57
Zoltan2::GraphMetrics::getGlobalMax
scalar_t getGlobalMax() const
Get the global maximum of edge cuts per part across all parts.
Definition
Zoltan2_GraphMetrics.hpp:54
Zoltan2::GraphMetrics::static_metricNames_
static std::vector< std::string > static_metricNames_
Definition
Zoltan2_GraphMetrics.hpp:60
Zoltan2::GraphMetrics::GraphMetrics
GraphMetrics()
Constructor.
Definition
Zoltan2_GraphMetrics.hpp:33
Zoltan2::GraphMetrics::GraphMetrics
GraphMetrics(std::string mname)
Constructor.
Definition
Zoltan2_GraphMetrics.hpp:30
Zoltan2
Created by mbenlioglu on Aug 31, 2020.
Definition
Zoltan2_AlgHybrid2GL.hpp:47
Zoltan2::scalar_t
core
src
util
Zoltan2_GraphMetrics.hpp
Generated by
1.17.0