Ginkgo Generated from branch based on master. Ginkgo version 1.8.0
A numerical linear algebra library targeting many-core architectures
Loading...
Searching...
No Matches
batch_dim.hpp
1// SPDX-FileCopyrightText: 2017 - 2024 The Ginkgo authors
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
5#ifndef GKO_PUBLIC_CORE_BASE_BATCH_DIM_HPP_
6#define GKO_PUBLIC_CORE_BASE_BATCH_DIM_HPP_
7
8
9#include <iostream>
10
11
12#include <ginkgo/core/base/dim.hpp>
13#include <ginkgo/core/base/types.hpp>
14
15
16namespace gko {
17
18
27template <size_type Dimensionality = 2, typename DimensionType = size_type>
28struct batch_dim {
29 static constexpr size_type dimensionality = Dimensionality;
30 using dimension_type = DimensionType;
31
37 size_type get_num_batch_items() const { return num_batch_items_; }
38
45 {
46 return common_size_;
47 }
48
57 friend bool operator==(const batch_dim& x, const batch_dim& y)
58 {
59 return x.num_batch_items_ == y.num_batch_items_ &&
60 x.common_size_ == y.common_size_;
61 }
62
63
77 {
78 return !(x == y);
79 }
80
81
86 : common_size_(dim<dimensionality, dimension_type>{}),
87 num_batch_items_(0)
88 {}
89
99 explicit batch_dim(const size_type num_batch_items,
100 const dim<dimensionality, dimension_type>& common_size)
101 : common_size_(common_size), num_batch_items_(num_batch_items)
102 {}
103
104private:
105 size_type num_batch_items_{};
106 dim<dimensionality, dimension_type> common_size_{};
107};
108
109
119template <typename DimensionType>
126
127
128} // namespace gko
129
130
131#endif // GKO_PUBLIC_CORE_BASE_BATCH_DIM_HPP_
The Ginkgo namespace.
Definition abstract_factory.hpp:20
std::size_t size_type
Integral type used for allocation quantities.
Definition types.hpp:86
batch_dim< 2, DimensionType > transpose(const batch_dim< 2, DimensionType > &input)
Returns a batch_dim object with its dimensions swapped for batched operators.
Definition batch_dim.hpp:120
A type representing the dimensions of a multidimensional batch object.
Definition batch_dim.hpp:28
batch_dim(const size_type num_batch_items, const dim< dimensionality, dimension_type > &common_size)
Creates a batch_dim object which stores a uniform size for all batch entries.
Definition batch_dim.hpp:99
friend bool operator!=(const batch_dim< Dimensionality, DimensionType > &x, const batch_dim< Dimensionality, DimensionType > &y)
Checks if two batch_dim objects are different.
Definition batch_dim.hpp:75
dim< dimensionality, dimension_type > get_common_size() const
Get the common size of the batch items.
Definition batch_dim.hpp:44
size_type get_num_batch_items() const
Get the number of batch items stored.
Definition batch_dim.hpp:37
friend bool operator==(const batch_dim &x, const batch_dim &y)
Checks if two batch_dim objects are equal.
Definition batch_dim.hpp:57
batch_dim()
The default constructor.
Definition batch_dim.hpp:85
A type representing the dimensions of a multidimensional object.
Definition dim.hpp:27