Ginkgo
Generated from branch based on main. Ginkgo version 1.11.0
A numerical linear algebra library targeting many-core architectures
Toggle main menu visibility
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
#include <ginkgo/core/base/dim.hpp>
12
#include <ginkgo/core/base/types.hpp>
13
14
15
namespace
gko
{
16
17
26
template
<
size_t
ype Dimensionality = 2,
typename
DimensionType =
size_t
ype>
27
struct
batch_dim
{
28
static
constexpr
size_type
dimensionality = Dimensionality;
29
using
dimension_type = DimensionType;
30
36
size_type
get_num_batch_items
()
const
{
return
num_batch_items_; }
37
43
dim<dimensionality, dimension_type>
get_common_size
()
const
44
{
45
return
common_size_;
46
}
47
56
friend
bool
operator==
(
const
batch_dim
& x,
const
batch_dim
& y)
57
{
58
return
x.num_batch_items_ == y.num_batch_items_ &&
59
x.common_size_ == y.common_size_;
60
}
61
62
74
friend
bool
operator!=
(
const
batch_dim<Dimensionality, DimensionType>
& x,
75
const
batch_dim<Dimensionality, DimensionType>
& y)
76
{
77
return
!(x == y);
78
}
79
80
84
batch_dim
()
85
: num_batch_items_(0),
86
common_size_(
dim
<dimensionality, dimension_type>{})
87
{}
88
98
explicit
batch_dim
(
const
size_type
num_batch_items,
99
const
dim<dimensionality, dimension_type>
& common_size)
100
: num_batch_items_(num_batch_items), common_size_(common_size)
101
{}
102
103
private
:
104
size_type
num_batch_items_{};
105
dim<dimensionality, dimension_type> common_size_{};
106
};
107
108
118
template
<
typename
DimensionType>
119
inline
batch_dim<2, DimensionType>
transpose
(
120
const
batch_dim<2, DimensionType>
& input)
121
{
122
return
batch_dim<2, DimensionType>
(input.
get_num_batch_items
(),
123
transpose
(input.
get_common_size
()));
124
}
125
126
127
}
// namespace gko
128
129
130
#endif
// GKO_PUBLIC_CORE_BASE_BATCH_DIM_HPP_
gko
The Ginkgo namespace.
Definition
abstract_factory.hpp:20
gko::size_type
std::size_t size_type
Integral type used for allocation quantities.
Definition
types.hpp:90
gko::transpose
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:119
gko::batch_dim
A type representing the dimensions of a multidimensional batch object.
Definition
batch_dim.hpp:27
gko::batch_dim::batch_dim
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:98
gko::batch_dim::operator!=
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:74
gko::batch_dim::get_common_size
dim< dimensionality, dimension_type > get_common_size() const
Get the common size of the batch items.
Definition
batch_dim.hpp:43
gko::batch_dim::get_num_batch_items
size_type get_num_batch_items() const
Get the number of batch items stored.
Definition
batch_dim.hpp:36
gko::batch_dim::operator==
friend bool operator==(const batch_dim &x, const batch_dim &y)
Checks if two batch_dim objects are equal.
Definition
batch_dim.hpp:56
gko::batch_dim::batch_dim
batch_dim()
The default constructor.
Definition
batch_dim.hpp:84
gko::dim
A type representing the dimensions of a multidimensional object.
Definition
dim.hpp:26
ginkgo
core
base
batch_dim.hpp
Generated by
1.18.0