Go to the documentation of this file.
10 #ifndef EIGEN_CXX11_TENSOR_TENSOR_META_H
11 #define EIGEN_CXX11_TENSOR_TENSOR_META_H
15 template<
bool cond>
struct Cond {};
28 template <
typename T,
typename X,
typename Y>
31 return static_cast<T>((
x +
y - 1) /
y);
37 return static_cast<T>((
x +
y - 1) /
y);
44 static const size_t size = 1;
49 template <
typename Scalar,
typename Device>
55 #if defined(EIGEN_USE_GPU) && defined(EIGEN_HAS_GPU_FP16)
57 typedef ulonglong2 Packet4h2;
60 typedef Packet4h2
type;
61 static const int size = 8;
89 #if defined(EIGEN_USE_SYCL)
91 namespace TensorSycl {
94 template <
typename Index, Index A, Index B>
struct PlusOp {
95 static constexpr
Index Value =
A +
B;
98 template <
typename Index, Index A, Index B>
struct DivOp {
99 static constexpr
Index Value =
A /
B;
103 template <
class Indx, Indx...>
class StepOp>
105 template <
typename UnaryOperator>
108 static_for<Index, StepOp<Index, start, step>::Value,
end,
step,
113 template <
class Indx, Indx...>
class StepOp>
115 template <
typename UnaryOperator>
119 template <
typename OutScalar,
typename Device,
bool Vectorizable>
121 static const int PacketSize = 1;
122 typedef OutScalar PacketReturnType;
125 template <
typename OutScalar,
typename Device>
126 struct Vectorise<OutScalar, Device, true> {
132 return ((((
x) + (
y)-1) / (
y)) * (
y));
139 struct PacketType<half, SyclDevice> {
141 static const int size = 1;
157 template <
typename Scalar>
158 struct PacketType<
Scalar, SyclDevice> : internal::default_packet_traits {
182 template <
typename Scalar>
183 struct PacketType<
Scalar, const SyclDevice> : PacketType<Scalar, SyclDevice>{};
185 #ifndef EIGEN_DONT_VECTORIZE_SYCL
186 #define PACKET_TYPE(CVQual, Type, val, lengths, DEV)\
187 template<> struct PacketType<CVQual Type, DEV> : internal::sycl_packet_traits<val, lengths> \
189 typedef typename internal::packet_traits<Type>::type type;\
190 typedef typename internal::packet_traits<Type>::half half;\
194 PACKET_TYPE(
const,
float, 1, 4, SyclDevice)
195 PACKET_TYPE(,
float, 1, 4, SyclDevice)
196 PACKET_TYPE(
const,
float, 1, 4,
const SyclDevice)
197 PACKET_TYPE(,
float, 1, 4,
const SyclDevice)
199 PACKET_TYPE(
const,
double, 0, 2, SyclDevice)
200 PACKET_TYPE(,
double, 0, 2, SyclDevice)
201 PACKET_TYPE(
const,
double, 0, 2,
const SyclDevice)
202 PACKET_TYPE(,
double, 0, 2,
const SyclDevice)
205 template<>
struct PacketType<half, const SyclDevice>: PacketType<half, SyclDevice>{};
206 template<>
struct PacketType<const half, const SyclDevice>: PacketType<half, SyclDevice>{};
211 template <
typename U,
typename V>
struct Tuple {
233 template <
typename U,
typename V>
236 return (
x.first ==
y.first &&
x.second ==
y.second);
239 template <
typename U,
typename V>
261 #ifdef EIGEN_HAS_SFINAE
264 template<
typename IndexType,
typename Index,
Index... Is>
266 array<
Index,
sizeof...(Is)> customIndices2Array(IndexType& idx, numeric_list<Index, Is...>) {
267 return { idx[Is]... };
269 template<
typename IndexType,
typename Index>
276 template<
typename Index, std::
size_t NumIndices,
typename IndexType>
283 template <
typename B,
typename D>
287 typedef char (&yes)[1];
288 typedef char (&no)[2];
290 template <
typename BB,
typename DD>
293 operator BB*()
const;
301 static const bool value =
sizeof(
check(Host<B,D>(),
int())) ==
sizeof(yes);
311 #endif // EIGEN_CXX11_TENSOR_TENSOR_META_H
#define EIGEN_DEVICE_FUNC
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator!=(const Tuple< U, V > &x, const Tuple< U, V > &y)
Namespace containing all symbols from the Eigen library.
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE IndexPair()
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
internal::packet_traits< Scalar >::type type
EIGEN_DEVICE_FUNC void set(IndexPair< Idx > val)
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Tuple()
void check(bool b, bool ref)
#define EIGEN_STRONG_INLINE
def step(data, isam, result, truth, currPoseIndex, isamArgs=())
#define EIGEN_ALWAYS_INLINE
static const Pose3 T2(Rot3::Rodrigues(0.3, 0.2, 0.1), P2)
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE IndexPair(Idx f, Idx s)
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Tuple(const U &f, const V &s)
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator==(const Tuple< U, V > &x, const Tuple< U, V > &y)
EIGEN_STRONG_INLINE void swap(T &a, T &b)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void swap(Tuple &rhs)
EIGEN_DEVICE_FUNC const EIGEN_ALWAYS_INLINE T1 & choose(Cond< true >, const T1 &first, const T2 &)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T divup(const X x, const Y y)
static const EIGEN_DEPRECATED end_t end
static const Similarity3 T1(R, Point3(3.5, -8.2, 4.2), 1)
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
gtsam
Author(s):
autogenerated on Wed May 15 2024 15:23:41