Zoltan2
Toggle main menu visibility
Loading...
Searching...
No Matches
Zoltan2_ColoringSolution.hpp
Go to the documentation of this file.
1
// @HEADER
2
//
3
// ***********************************************************************
4
//
5
// Zoltan2: A package of combinatorial algorithms for scientific computing
6
// Copyright 2012 Sandia Corporation
7
//
8
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact Karen Devine (kddevin@sandia.gov)
39
// Erik Boman (egboman@sandia.gov)
40
// Siva Rajamanickam (srajama@sandia.gov)
41
//
42
// ***********************************************************************
43
//
44
// @HEADER
45
49
50
#ifndef _ZOLTAN2_COLORINGSOLUTION_HPP_
51
#define _ZOLTAN2_COLORINGSOLUTION_HPP_
52
53
#include <
Zoltan2_Standards.hpp
>
54
#include <
Zoltan2_Solution.hpp
>
55
56
namespace
Zoltan2
{
57
68
69
template
<
typename
Adapter>
70
class
ColoringSolution
:
public
Solution
71
{
72
private
:
73
typedef
typename
Adapter::gno_t gno_t;
74
typedef
typename
Adapter::scalar_t scalar_t;
75
typedef
typename
Adapter::lno_t lno_t;
76
77
public
:
78
81
ColoringSolution
(
82
size_t
length
// This should be equal to nlids. TODO: Optional?
83
)
84
{
85
HELLO
;
86
length_
= length;
87
colors_
= ArrayRCP<int>(
length_
);
88
}
89
91
// Accessor functions, allowing algorithms to get ptrs to solution memory.
92
// Algorithms can then load the memory.
93
// Non-RCP versions are provided for applications to use.
94
97
inline
size_t
getColorsSize
() {
return
length_
;}
// TODO Deprecate or rename? Should always be numVertices?
98
101
inline
ArrayRCP<int> &
getColorsRCP
() {
return
colors_
;}
102
105
inline
int
*
getColors
() {
return
&(*colors_);}
106
110
int
getNumColors
()
111
{
112
int
maxColor = 0;
113
for
(
size_t
i=0; i<
length_
; i++){
114
if
(
colors_
[i] > maxColor)
115
maxColor =
colors_
[i];
116
}
117
return
maxColor;
118
}
119
122
//int getGlobalNumColors(); // TODO
123
124
protected
:
125
// Coloring solution consists of permutation vector(s).
126
size_t
length_
;
127
ArrayRCP<int>
colors_
;
// zero-based local color array
128
//int numColors_; // Number of colors (local on this proc)
129
//int numColorsGlobal_; // For future distributed coloring
130
};
131
132
}
133
134
#endif
Zoltan2_Solution.hpp
Defines the Solution base class.
Zoltan2_Standards.hpp
Gathering definitions used in software development.
HELLO
#define HELLO
Definition
Zoltan2_Standards.hpp:132
Zoltan2::ColoringSolution::colors_
ArrayRCP< int > colors_
Definition
Zoltan2_ColoringSolution.hpp:127
Zoltan2::ColoringSolution::ColoringSolution
ColoringSolution(size_t length)
Constructor allocates memory for the solution.
Definition
Zoltan2_ColoringSolution.hpp:81
Zoltan2::ColoringSolution::getColorsRCP
ArrayRCP< int > & getColorsRCP()
Get (local) color array by RCP.
Definition
Zoltan2_ColoringSolution.hpp:101
Zoltan2::ColoringSolution::getColors
int * getColors()
Get (local) color array by raw pointer (no RCP).
Definition
Zoltan2_ColoringSolution.hpp:105
Zoltan2::ColoringSolution::length_
size_t length_
Get global number of colors.
Definition
Zoltan2_ColoringSolution.hpp:126
Zoltan2::ColoringSolution::getColorsSize
size_t getColorsSize()
Get (local) size of color array.
Definition
Zoltan2_ColoringSolution.hpp:97
Zoltan2::ColoringSolution::getNumColors
int getNumColors()
Get local number of colors. This is computed from the coloring each time, as this is cheap.
Definition
Zoltan2_ColoringSolution.hpp:110
Zoltan2::Solution
Just a placeholder for now.
Definition
Zoltan2_Solution.hpp:69
Zoltan2
Created by mbenlioglu on Aug 31, 2020.
Definition
Zoltan2_AlgHybrid2GL.hpp:38
core
src
problems
Zoltan2_ColoringSolution.hpp
Generated by
1.17.0