Xmipp  v3.23.11-Nereus
Public Member Functions | Friends | List of all members
Dimensions Class Reference

#include <dimensions.h>

Public Member Functions

constexpr Dimensions (size_t x, size_t y=1, size_t z=1, size_t n=1, size_t pad_x=0, size_t pad_y=0, size_t pad_z=0)
 
constexpr Dimensions createSingle () const
 
constexpr Dimensions copyForN (size_t n) const
 
CUDA_HD constexpr size_t x () const
 
constexpr size_t xPadded () const
 
CUDA_HD constexpr size_t y () const
 
constexpr size_t yPadded () const
 
CUDA_HD constexpr size_t z () const
 
constexpr size_t zPadded () const
 
CUDA_HD constexpr size_t n () const
 
constexpr size_t xy () const
 
constexpr size_t xyPadded () const
 
CUDA_HD constexpr size_t xyz () const
 
constexpr size_t xyzPadded () const
 
CUDA_HD constexpr size_t sizeSingle () const
 
constexpr size_t size () const
 
constexpr size_t sizePadded () const
 
constexpr bool equalSizesIgnorePadding (const Dimensions &b) const
 
constexpr bool equalExceptNPadded (const Dimensions &b) const
 
constexpr bool equalPadding (const Dimensions &b) const
 
constexpr bool isValid () const
 
constexpr bool operator== (const Dimensions &b) const
 
constexpr bool operator!= (const Dimensions &b) const
 
constexpr bool isPadded () const
 
constexpr bool is1D () const
 
CUDA_HD constexpr bool is2D () const
 
CUDA_HD constexpr bool is3D () const
 
CUDA_HD int getDimAsNumber () const
 

Friends

std::ostream & operator<< (std::ostream &os, const Dimensions &d)
 

Detailed Description

Definition at line 35 of file dimensions.h.

Constructor & Destructor Documentation

◆ Dimensions()

constexpr Dimensions::Dimensions ( size_t  x,
size_t  y = 1,
size_t  z = 1,
size_t  n = 1,
size_t  pad_x = 0,
size_t  pad_y = 0,
size_t  pad_z = 0 
)
inlineexplicit

Definition at line 37 of file dimensions.h.

38  :
39  m_x(x), m_y(y), m_z(z), m_n(n),
40  m_pad_x(pad_x), m_pad_y(pad_y), m_pad_z(pad_z) {}
CUDA_HD constexpr size_t z() const
Definition: dimensions.h:69
CUDA_HD constexpr size_t x() const
Definition: dimensions.h:51
CUDA_HD constexpr size_t y() const
Definition: dimensions.h:60
CUDA_HD constexpr size_t n() const
Definition: dimensions.h:78

Member Function Documentation

◆ copyForN()

constexpr Dimensions Dimensions::copyForN ( size_t  n) const
inline

Definition at line 46 of file dimensions.h.

46  {
47  return Dimensions(m_x, m_y, m_z, n, m_pad_x, m_pad_y, m_pad_z);
48  }
constexpr Dimensions(size_t x, size_t y=1, size_t z=1, size_t n=1, size_t pad_x=0, size_t pad_y=0, size_t pad_z=0)
Definition: dimensions.h:37
CUDA_HD constexpr size_t n() const
Definition: dimensions.h:78

◆ createSingle()

constexpr Dimensions Dimensions::createSingle ( ) const
inline

Definition at line 42 of file dimensions.h.

42  {
43  return Dimensions(m_x, m_y, m_z, 1, m_pad_x, m_pad_y, m_pad_z);
44  }
constexpr Dimensions(size_t x, size_t y=1, size_t z=1, size_t n=1, size_t pad_x=0, size_t pad_y=0, size_t pad_z=0)
Definition: dimensions.h:37

◆ equalExceptNPadded()

constexpr bool Dimensions::equalExceptNPadded ( const Dimensions b) const
inline

Definition at line 124 of file dimensions.h.

124  {
125  return (m_x == b.m_x)
126  && (m_y == b.m_y)
127  && (m_z == b.m_z)
128  // && (m_n == b.m_n) ignore on purpose
129  && equalPadding(b);
130  }
constexpr bool equalPadding(const Dimensions &b) const
Definition: dimensions.h:132

◆ equalPadding()

constexpr bool Dimensions::equalPadding ( const Dimensions b) const
inline

Definition at line 132 of file dimensions.h.

132  {
133  return (m_pad_x == b.m_pad_x)
134  && (m_pad_y == b.m_pad_y)
135  && (m_pad_z == b.m_pad_z);
136  }

◆ equalSizesIgnorePadding()

constexpr bool Dimensions::equalSizesIgnorePadding ( const Dimensions b) const
inline

Definition at line 117 of file dimensions.h.

117  {
118  return (m_x == b.m_x)
119  && (m_y == b.m_y)
120  && (m_z == b.m_z)
121  && (m_n == b.m_n);
122  }

◆ getDimAsNumber()

CUDA_HD int Dimensions::getDimAsNumber ( ) const
inline

Definition at line 172 of file dimensions.h.

172  {
173  if (is3D()) return 3;
174  if (is2D()) return 2;
175  return 1;
176  }
CUDA_HD constexpr bool is2D() const
Definition: dimensions.h:162
CUDA_HD constexpr bool is3D() const
Definition: dimensions.h:167

◆ is1D()

constexpr bool Dimensions::is1D ( ) const
inline

Definition at line 157 of file dimensions.h.

157  {
158  return (m_z == 1) && (m_y == 1);
159  }

◆ is2D()

CUDA_HD constexpr bool Dimensions::is2D ( ) const
inline

Definition at line 162 of file dimensions.h.

162  {
163  return (m_z == 1) && (m_y != 1);
164  }

◆ is3D()

CUDA_HD constexpr bool Dimensions::is3D ( ) const
inline

Definition at line 167 of file dimensions.h.

167  {
168  return (m_z != 1) && (m_y != 1);
169  }

◆ isPadded()

constexpr bool Dimensions::isPadded ( ) const
inline

Definition at line 153 of file dimensions.h.

153  {
154  return (0 != m_pad_x) || (0 != m_pad_y) || (0 != m_pad_z);
155  }

◆ isValid()

constexpr bool Dimensions::isValid ( ) const
inline

Definition at line 138 of file dimensions.h.

138  {
139  return (0 != m_x)
140  && (0 != m_y)
141  && (0 != m_z)
142  && (0 != m_n);
143  }

◆ n()

CUDA_HD constexpr size_t Dimensions::n ( ) const
inline

Definition at line 78 of file dimensions.h.

78  {
79  return m_n;
80  }

◆ operator!=()

constexpr bool Dimensions::operator!= ( const Dimensions b) const
inline

Definition at line 149 of file dimensions.h.

149  {
150  return !(*this == b);
151  }
doublereal * b

◆ operator==()

constexpr bool Dimensions::operator== ( const Dimensions b) const
inline

Definition at line 145 of file dimensions.h.

145  {
146  return equalSizesIgnorePadding(b) && equalPadding(b);
147  }
constexpr bool equalPadding(const Dimensions &b) const
Definition: dimensions.h:132
constexpr bool equalSizesIgnorePadding(const Dimensions &b) const
Definition: dimensions.h:117

◆ size()

constexpr size_t Dimensions::size ( ) const
inline

Definition at line 104 of file dimensions.h.

104  {
105  return xyz() * m_n;
106  }
CUDA_HD constexpr size_t xyz() const
Definition: dimensions.h:91

◆ sizePadded()

constexpr size_t Dimensions::sizePadded ( ) const
inline

Definition at line 108 of file dimensions.h.

108  {
109  return xyzPadded() * m_n;
110  }
constexpr size_t xyzPadded() const
Definition: dimensions.h:95

◆ sizeSingle()

CUDA_HD constexpr size_t Dimensions::sizeSingle ( ) const
inline

Definition at line 100 of file dimensions.h.

100  {
101  return xyz();
102  }
CUDA_HD constexpr size_t xyz() const
Definition: dimensions.h:91

◆ x()

CUDA_HD constexpr size_t Dimensions::x ( ) const
inline

Definition at line 51 of file dimensions.h.

51  {
52  return m_x;
53  }

◆ xPadded()

constexpr size_t Dimensions::xPadded ( ) const
inline

Definition at line 55 of file dimensions.h.

55  {
56  return m_x + m_pad_x;
57  }

◆ xy()

constexpr size_t Dimensions::xy ( ) const
inline

Definition at line 82 of file dimensions.h.

82  {
83  return m_x * m_y;
84  }

◆ xyPadded()

constexpr size_t Dimensions::xyPadded ( ) const
inline

Definition at line 86 of file dimensions.h.

86  {
87  return (m_x + m_pad_x) * (m_y + m_pad_y);
88  }

◆ xyz()

CUDA_HD constexpr size_t Dimensions::xyz ( ) const
inline

Definition at line 91 of file dimensions.h.

91  {
92  return m_x * m_y * m_z;
93  }

◆ xyzPadded()

constexpr size_t Dimensions::xyzPadded ( ) const
inline

Definition at line 95 of file dimensions.h.

95  {
96  return (m_x + m_pad_x) * (m_y + m_pad_y) * (m_z + m_pad_z);
97  }

◆ y()

CUDA_HD constexpr size_t Dimensions::y ( ) const
inline

Definition at line 60 of file dimensions.h.

60  {
61  return m_y;
62  }

◆ yPadded()

constexpr size_t Dimensions::yPadded ( ) const
inline

Definition at line 64 of file dimensions.h.

64  {
65  return m_y + m_pad_y;
66  }

◆ z()

CUDA_HD constexpr size_t Dimensions::z ( ) const
inline

Definition at line 69 of file dimensions.h.

69  {
70  return m_z;
71  }

◆ zPadded()

constexpr size_t Dimensions::zPadded ( ) const
inline

Definition at line 73 of file dimensions.h.

73  {
74  return m_z + m_pad_z;
75  }

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const Dimensions d 
)
friend

Definition at line 112 of file dimensions.h.

112  {
113  os << d.x() << " * " << d.y() << " * " << d.z() << " * " << d.n();
114  return os;
115  }
CUDA_HD constexpr size_t z() const
Definition: dimensions.h:69
CUDA_HD constexpr size_t x() const
Definition: dimensions.h:51
CUDA_HD constexpr size_t y() const
Definition: dimensions.h:60
CUDA_HD constexpr size_t n() const
Definition: dimensions.h:78

The documentation for this class was generated from the following file: