Optimized Belief Propagation (CPU and GPU)
BpConstsEnumsAliases.h
Go to the documentation of this file.
1 /*
2 Copyright (C) 2024 Scott Grauer-Gray
3 
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8 
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13 
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */
18 
28 #ifndef BP_CONSTS_ENUMS_ALIASES_H_
29 #define BP_CONSTS_ENUMS_ALIASES_H_
30 
31 #include <array>
33 
38 namespace beliefprop {
39 
42 enum class MessageArrays : unsigned int {
45 
47 constexpr unsigned int kNumCheckerboardParts{2};
48 
50 constexpr unsigned int kNumMessageArrays{4};
51 
60 template <RunData_ptr T>
61 using CheckerboardMessages = std::array<std::array<T, kNumMessageArrays>, kNumCheckerboardParts>;
62 
71 template <RunData_ptr T>
72 using DataCostsCheckerboards = std::array<T, kNumCheckerboardParts>;
73 
74 constexpr unsigned int kNumKernels{6};
75 
77 enum class BpKernel : unsigned int {
81  kBpAtLevel,
84 };
85 
86 };
87 
88 #endif /* BP_CONSTS_ENUMS_ALIASES_H_ */
Define constraints for data type in processing.
Namespace for enums, constants, structures, and functions specific to belief propagation processing.
BpKernel
Enum corresponding to each kernel in belief propagation that can be run in parallel.
std::array< T, kNumCheckerboardParts > DataCostsCheckerboards
Define alias for two-element array with data costs for each bp processing checkerboard....
constexpr unsigned int kNumCheckerboardParts
Number of checkerboard parts for processing.
constexpr unsigned int kNumKernels
constexpr unsigned int kNumMessageArrays
Number of message arrays in each checkerboard part.
CheckerboardPart
Define the two checkerboard "parts" that the image is divided into.
std::array< std::array< T, kNumMessageArrays >, kNumCheckerboardParts > CheckerboardMessages
Define alias for array with message costs for each bp processing checkerboard. Each checkerboard mes...