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>
114 struct static_for<Index, end, end, step, 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));
141 static const int size = 1;
157 template <
typename Scalar>
182 template <
typename Scalar>
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)
211 template <
typename U,
typename V>
struct Tuple {
233 template <
typename U,
typename V>
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
def step(data, isam, result, truth, currPoseIndex)
#define EIGEN_ALWAYS_INLINE
#define EIGEN_STRONG_INLINE
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator==(const Tuple< U, V > &x, const Tuple< U, V > &y)
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE const T1 & choose(Cond< true >, const T1 &first, const T2 &)
Namespace containing all symbols from the Eigen library.
static const Pose3 T2(Rot3::Rodrigues(0.3, 0.2, 0.1), P2)
EIGEN_STRONG_INLINE void swap(T &a, T &b)
int EIGEN_BLAS_FUNC() swap(int *n, RealScalar *px, int *incx, RealScalar *py, int *incy)
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE IndexPair(Idx f, Idx s)
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE IndexPair()
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void swap(Tuple &rhs)
#define EIGEN_DEVICE_FUNC
void check(bool b, bool ref)
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Tuple(const U &f, const V &s)
static const Similarity3 T1(R, Point3(3.5, -8.2, 4.2), 1)
static EIGEN_DEPRECATED const end_t end
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator!=(const Tuple< U, V > &x, const Tuple< U, V > &y)
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
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Tuple()
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T divup(const X x, const Y y)
internal::packet_traits< Scalar >::type type