Kernel Tuning Toolkit 2.3
 
Loading...
Searching...
No Matches
DimensionVector.h
Go to the documentation of this file.
1
4#pragma once
5
6#include <cstddef>
7#include <string>
8#include <vector>
9
12#include <KttPlatform.h>
13
14namespace ktt
15{
16
20class KTT_API DimensionVector
21{
22public:
27
32 explicit DimensionVector(const size_t sizeX);
33
39 explicit DimensionVector(const size_t sizeX, const size_t sizeY);
40
47 explicit DimensionVector(const size_t sizeX, const size_t sizeY, const size_t sizeZ);
48
54 explicit DimensionVector(const std::vector<size_t>& vector);
55
60 void SetSizeX(const size_t sizeX);
61
66 void SetSizeY(const size_t sizeY);
67
72 void SetSizeZ(const size_t sizeZ);
73
79 void SetSize(const ModifierDimension modifierDimension, const size_t size);
80
85 void Multiply(const DimensionVector& factor);
86
91 void Divide(const DimensionVector& divisor);
92
97 void RoundUp(const DimensionVector& multiple);
98
105 void ModifyByValue(const size_t value, const ModifierAction modifierAction, const ModifierDimension modifierDimension);
106
111 size_t GetSizeX() const;
112
117 size_t GetSizeY() const;
118
123 size_t GetSizeZ() const;
124
130 size_t GetSize(const ModifierDimension modifierDimension) const;
131
136 size_t GetTotalSize() const;
137
142 std::vector<size_t> GetVector() const;
143
148 std::string GetString() const;
149
154 bool operator==(const DimensionVector& other) const;
155
160 bool operator!=(const DimensionVector& other) const;
161
162private:
163 size_t m_SizeX;
164 size_t m_SizeY;
165 size_t m_SizeZ;
166
167 void AddValue(const size_t value, const ModifierDimension modifierDimension);
168 void SubtractValue(const size_t value, const ModifierDimension modifierDimension);
169 void MultiplyByValue(const size_t value, const ModifierDimension modifierDimension);
170 void DivideByValue(const size_t value, const ModifierDimension modifierDimension);
171 void DivideCeilByValue(const size_t value, const ModifierDimension modifierDimension);
172};
173
174} // namespace ktt
Definition DimensionVector.h:21
void SetSizeY(const size_t sizeY)
void SetSize(const ModifierDimension modifierDimension, const size_t size)
DimensionVector(const size_t sizeX)
size_t GetSizeZ() const
size_t GetSize(const ModifierDimension modifierDimension) const
size_t GetSizeY() const
void RoundUp(const DimensionVector &multiple)
DimensionVector(const size_t sizeX, const size_t sizeY, const size_t sizeZ)
size_t GetSizeX() const
DimensionVector(const std::vector< size_t > &vector)
void Multiply(const DimensionVector &factor)
void SetSizeZ(const size_t sizeZ)
bool operator!=(const DimensionVector &other) const
std::vector< size_t > GetVector() const
void SetSizeX(const size_t sizeX)
void ModifyByValue(const size_t value, const ModifierAction modifierAction, const ModifierDimension modifierDimension)
void Divide(const DimensionVector &divisor)
size_t GetTotalSize() const
DimensionVector(const size_t sizeX, const size_t sizeY)
std::string GetString() const
bool operator==(const DimensionVector &other) const
Definition KttPlatform.h:41
ModifierDimension
Definition ModifierDimension.h:14
ModifierAction
Definition ModifierAction.h:13