TensorBase.h
Go to the documentation of this file.
1 // This file is part of Eigen, a lightweight C++ template library
2 // for linear algebra.
3 //
4 // Copyright (C) 2014 Benoit Steiner <benoit.steiner.goog@gmail.com>
5 //
6 // This Source Code Form is subject to the terms of the Mozilla
7 // Public License v. 2.0. If a copy of the MPL was not distributed
8 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 
10 #ifndef EIGEN_CXX11_TENSOR_TENSOR_BASE_H
11 #define EIGEN_CXX11_TENSOR_TENSOR_BASE_H
12 
13 // clang-format off
14 
15 namespace Eigen {
16 
25 #ifndef EIGEN_PARSED_BY_DOXYGEN
26 // FIXME Doxygen does not like the inheritance with different template parameters
27 // Since there is no doxygen documentation inside, we disable it for now
28 template<typename Derived>
30 {
31  public:
33  typedef typename DerivedTraits::Scalar Scalar;
34  typedef typename DerivedTraits::Index Index;
36  static const int NumDimensions = DerivedTraits::NumDimensions;
37 
38  // Generic nullary operation support.
39  template <typename CustomNullaryOp> EIGEN_DEVICE_FUNC
41  nullaryExpr(const CustomNullaryOp& func) const {
43  }
44 
45  // Coefficient-wise nullary operators
46  EIGEN_DEVICE_FUNC
48  constant(const Scalar& value) const {
49  return nullaryExpr(internal::scalar_constant_op<Scalar>(value));
50  }
51 
52  EIGEN_DEVICE_FUNC
54  random() const {
55  return nullaryExpr(internal::UniformRandomGenerator<Scalar>());
56  }
57  template <typename RandomGenerator> EIGEN_DEVICE_FUNC
59  random(const RandomGenerator& gen = RandomGenerator()) const {
60  return nullaryExpr(gen);
61  }
62 
63  // Tensor generation
64  template <typename Generator> EIGEN_DEVICE_FUNC
66  generate(const Generator& generator) const {
68  }
69 
70  // Generic unary operation support.
71  template <typename CustomUnaryOp> EIGEN_DEVICE_FUNC
73  unaryExpr(const CustomUnaryOp& func) const {
75  }
76 
77  // Coefficient-wise unary operators
78  EIGEN_DEVICE_FUNC
80  operator-() const {
82  }
83 
84  EIGEN_DEVICE_FUNC
86  sqrt() const {
88  }
89 
90  EIGEN_DEVICE_FUNC
92  sign() const {
94  }
95 
96  EIGEN_DEVICE_FUNC
98  rsqrt() const {
100  }
101 
102  EIGEN_DEVICE_FUNC
104  square() const {
106  }
107 
108  EIGEN_DEVICE_FUNC
110  cube() const {
112  }
113 
114  EIGEN_DEVICE_FUNC
116  inverse() const {
118  }
119 
120  EIGEN_DEVICE_FUNC
122  tanh() const {
124  }
125 
126  EIGEN_DEVICE_FUNC
128  lgamma() const {
130  }
131 
132  EIGEN_DEVICE_FUNC
134  digamma() const {
136  }
137 
138  // igamma(a = this, x = other)
139  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
140  const TensorCwiseBinaryOp<internal::scalar_igamma_op<Scalar>, const Derived, const OtherDerived>
141  igamma(const OtherDerived& other) const {
142  return binaryExpr(other.derived(), internal::scalar_igamma_op<Scalar>());
143  }
144 
145  // igammac(a = this, x = other)
146  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
147  const TensorCwiseBinaryOp<internal::scalar_igammac_op<Scalar>, const Derived, const OtherDerived>
148  igammac(const OtherDerived& other) const {
149  return binaryExpr(other.derived(), internal::scalar_igammac_op<Scalar>());
150  }
151 
152  // zeta(x = this, q = other)
153  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
154  const TensorCwiseBinaryOp<internal::scalar_zeta_op<Scalar>, const Derived, const OtherDerived>
155  zeta(const OtherDerived& other) const {
156  return binaryExpr(other.derived(), internal::scalar_zeta_op<Scalar>());
157  }
158 
159  // polygamma(n = this, x = other)
160  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
161  const TensorCwiseBinaryOp<internal::scalar_polygamma_op<Scalar>, const Derived, const OtherDerived>
162  polygamma(const OtherDerived& other) const {
163  return binaryExpr(other.derived(), internal::scalar_polygamma_op<Scalar>());
164  }
165 
166  EIGEN_DEVICE_FUNC
168  erf() const {
170  }
171 
172  EIGEN_DEVICE_FUNC
174  erfc() const {
176  }
177 
178  EIGEN_DEVICE_FUNC
180  sigmoid() const {
182  }
183 
184  EIGEN_DEVICE_FUNC
186  exp() const {
188  }
189 
190  EIGEN_DEVICE_FUNC
192  log() const {
194  }
195 
196  EIGEN_DEVICE_FUNC
198  log1p() const {
200  }
201 
202  EIGEN_DEVICE_FUNC
204  abs() const {
206  }
207 
208  EIGEN_DEVICE_FUNC
210  conjugate() const {
212  }
213 
214  EIGEN_DEVICE_FUNC
216  pow(Scalar exponent) const {
218  }
219 
220  EIGEN_DEVICE_FUNC
222  real() const {
224  }
225 
226  EIGEN_DEVICE_FUNC
228  imag() const {
230  }
231 
232  EIGEN_DEVICE_FUNC
234  operator+ (Scalar rhs) const {
236  }
237 
238  EIGEN_DEVICE_FUNC
239  EIGEN_STRONG_INLINE friend
241  operator+ (Scalar lhs, const Derived& rhs) {
242  return rhs.unaryExpr(internal::bind1st_op<internal::scalar_sum_op<Scalar> >(lhs));
243  }
244 
245  EIGEN_DEVICE_FUNC
247  operator- (Scalar rhs) const {
248  EIGEN_STATIC_ASSERT((NumTraits<Scalar>::IsSigned || internal::is_same<Scalar, const std::complex<float> >::value), YOU_MADE_A_PROGRAMMING_MISTAKE);
250  }
251 
252  EIGEN_DEVICE_FUNC
253  EIGEN_STRONG_INLINE friend
255  operator- (Scalar lhs, const Derived& rhs) {
257  }
258 
259  EIGEN_DEVICE_FUNC
261  operator* (Scalar rhs) const {
263  }
264 
265  EIGEN_DEVICE_FUNC
266  EIGEN_STRONG_INLINE friend
268  operator* (Scalar lhs, const Derived& rhs) {
269  return rhs.unaryExpr(internal::bind1st_op<internal::scalar_product_op<Scalar> >(lhs));
270  }
271 
272  EIGEN_DEVICE_FUNC
274  operator/ (Scalar rhs) const {
276  }
277 
278  EIGEN_DEVICE_FUNC
279  EIGEN_STRONG_INLINE friend
281  operator/ (Scalar lhs, const Derived& rhs) {
282  return rhs.unaryExpr(internal::bind1st_op<internal::scalar_quotient_op<Scalar> >(lhs));
283  }
284 
285  EIGEN_DEVICE_FUNC
287  operator% (Scalar rhs) const {
288  EIGEN_STATIC_ASSERT(NumTraits<Scalar>::IsInteger, YOU_MADE_A_PROGRAMMING_MISTAKE_TRY_MOD);
290  }
291 
292  EIGEN_DEVICE_FUNC
294  cwiseMax(Scalar threshold) const {
295  return cwiseMax(constant(threshold));
296  }
297 
298  EIGEN_DEVICE_FUNC
300  cwiseMin(Scalar threshold) const {
301  return cwiseMin(constant(threshold));
302  }
303 
304  template <typename NewType> EIGEN_DEVICE_FUNC
306  cast() const {
308  }
309 
310  EIGEN_DEVICE_FUNC
312  round() const {
314  }
315 
316  EIGEN_DEVICE_FUNC
318  ceil() const {
320  }
321 
322  EIGEN_DEVICE_FUNC
324  floor() const {
326  }
327 
328  // Generic binary operation support.
329  template <typename CustomBinaryOp, typename OtherDerived> EIGEN_DEVICE_FUNC
331  binaryExpr(const OtherDerived& other, const CustomBinaryOp& func) const {
333  }
334 
335  // Coefficient-wise binary operators.
336  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
337  const TensorCwiseBinaryOp<internal::scalar_sum_op<Scalar>, const Derived, const OtherDerived>
338  operator+(const OtherDerived& other) const {
339  return binaryExpr(other.derived(), internal::scalar_sum_op<Scalar>());
340  }
341 
342  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
343  const TensorCwiseBinaryOp<internal::scalar_difference_op<Scalar>, const Derived, const OtherDerived>
344  operator-(const OtherDerived& other) const {
345  return binaryExpr(other.derived(), internal::scalar_difference_op<Scalar>());
346  }
347 
348  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
349  const TensorCwiseBinaryOp<internal::scalar_product_op<Scalar>, const Derived, const OtherDerived>
350  operator*(const OtherDerived& other) const {
351  return binaryExpr(other.derived(), internal::scalar_product_op<Scalar>());
352  }
353 
354  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
355  const TensorCwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>
356  operator/(const OtherDerived& other) const {
357  return binaryExpr(other.derived(), internal::scalar_quotient_op<Scalar>());
358  }
359 
360  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
361  const TensorCwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const OtherDerived>
362  cwiseMax(const OtherDerived& other) const {
363  return binaryExpr(other.derived(), internal::scalar_max_op<Scalar>());
364  }
365 
366  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
367  const TensorCwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const OtherDerived>
368  cwiseMin(const OtherDerived& other) const {
369  return binaryExpr(other.derived(), internal::scalar_min_op<Scalar>());
370  }
371 
372  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
374  operator&&(const OtherDerived& other) const {
375  return binaryExpr(other.derived(), internal::scalar_boolean_and_op());
376  }
377 
378  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
380  operator||(const OtherDerived& other) const {
381  return binaryExpr(other.derived(), internal::scalar_boolean_or_op());
382  }
383 
384  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
386  operator^(const OtherDerived& other) const {
387  return binaryExpr(other.derived(), internal::scalar_boolean_xor_op());
388  }
389 
390  // Comparisons and tests.
391  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
393  operator<(const OtherDerived& other) const {
395  }
396  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
398  operator<=(const OtherDerived& other) const {
400  }
401  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
403  operator>(const OtherDerived& other) const {
405  }
406  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
408  operator>=(const OtherDerived& other) const {
410  }
411 
412  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
414  operator==(const OtherDerived& other) const {
416  }
417 
418  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
420  operator!=(const OtherDerived& other) const {
422  }
423 
424  // comparisons and tests for Scalars
425  EIGEN_DEVICE_FUNC
427  operator<(Scalar threshold) const {
428  return operator<(constant(threshold));
429  }
430  EIGEN_DEVICE_FUNC
432  operator<=(Scalar threshold) const {
433  return operator<=(constant(threshold));
434  }
435  EIGEN_DEVICE_FUNC
437  operator>(Scalar threshold) const {
438  return operator>(constant(threshold));
439  }
440  EIGEN_DEVICE_FUNC
442  operator>=(Scalar threshold) const {
443  return operator>=(constant(threshold));
444  }
445  EIGEN_DEVICE_FUNC
447  operator==(Scalar threshold) const {
448  return operator==(constant(threshold));
449  }
450  EIGEN_DEVICE_FUNC
452  operator!=(Scalar threshold) const {
453  return operator!=(constant(threshold));
454  }
455 
456  // Checks
457  EIGEN_DEVICE_FUNC
459  (isnan)() const {
461  }
462  EIGEN_DEVICE_FUNC
464  (isinf)() const {
466  }
467  EIGEN_DEVICE_FUNC
469  (isfinite)() const {
471  }
472 
473  // Coefficient-wise ternary operators.
474  template<typename ThenDerived, typename ElseDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
476  select(const ThenDerived& thenTensor, const ElseDerived& elseTensor) const {
477  return TensorSelectOp<const Derived, const ThenDerived, const ElseDerived>(derived(), thenTensor.derived(), elseTensor.derived());
478  }
479 
480  // Contractions.
482 
483  template<typename OtherDerived, typename Dimensions> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
485  contract(const OtherDerived& other, const Dimensions& dims) const {
487  }
488 
489  // Convolutions.
490  template<typename KernelDerived, typename Dimensions> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
492  convolve(const KernelDerived& kernel, const Dimensions& dims) const {
494  }
495 
496  // Fourier transforms
497  template <int FFTDataType, int FFTDirection, typename FFT> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
499  fft(const FFT& fft) const {
501  }
502 
503  // Scan.
505  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
506  const TensorScanSumOp
507  cumsum(const Index& axis, bool exclusive = false) const {
508  return TensorScanSumOp(derived(), axis, exclusive);
509  }
510 
512  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
513  const TensorScanProdOp
514  cumprod(const Index& axis, bool exclusive = false) const {
515  return TensorScanProdOp(derived(), axis, exclusive);
516  }
517 
518  template <typename Reducer>
519  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
521  scan(const Index& axis, const Reducer& reducer, bool exclusive = false) const {
522  return TensorScanOp<Reducer, const Derived>(derived(), axis, exclusive, reducer);
523  }
524 
525  // Reductions.
526  template <typename Dims> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
527  const TensorReductionOp<internal::SumReducer<CoeffReturnType>, const Dims, const Derived>
528  sum(const Dims& dims) const {
530  }
531 
533  sum() const {
536  }
537 
538  template <typename Dims> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
539  const TensorReductionOp<internal::MeanReducer<CoeffReturnType>, const Dims, const Derived>
540  mean(const Dims& dims) const {
542  }
543 
545  mean() const {
548  }
549 
550  template <typename Dims> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
551  const TensorReductionOp<internal::ProdReducer<CoeffReturnType>, const Dims, const Derived>
552  prod(const Dims& dims) const {
554  }
555 
557  prod() const {
560  }
561 
562  template <typename Dims> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
563  const TensorReductionOp<internal::MaxReducer<CoeffReturnType>, const Dims, const Derived>
564  maximum(const Dims& dims) const {
566  }
567 
569  maximum() const {
572  }
573 
574  template <typename Dims> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
575  const TensorReductionOp<internal::MinReducer<CoeffReturnType>, const Dims, const Derived>
576  minimum(const Dims& dims) const {
578  }
579 
581  minimum() const {
584  }
585 
586  template <typename Dims> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
588  all(const Dims& dims) const {
589  return cast<bool>().reduce(dims, internal::AndReducer());
590  }
591 
592  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
594  all() const {
596  return cast<bool>().reduce(in_dims, internal::AndReducer());
597  }
598 
599  template <typename Dims> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
601  any(const Dims& dims) const {
602  return cast<bool>().reduce(dims, internal::OrReducer());
603  }
604 
605  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
607  any() const {
609  return cast<bool>().reduce(in_dims, internal::OrReducer());
610  }
611 
612  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
613  const TensorTupleReducerOp<
615  const array<Index, NumDimensions>, const Derived>
616  argmax() const {
618  for (int d = 0; d < NumDimensions; ++d) in_dims[d] = d;
619  return TensorTupleReducerOp<
622  const Derived>(derived(), internal::ArgMaxTupleReducer<Tuple<Index, CoeffReturnType> >(), -1, in_dims);
623  }
624 
625  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
626  const TensorTupleReducerOp<
628  const array<Index, NumDimensions>, const Derived>
629  argmin() const {
631  for (int d = 0; d < NumDimensions; ++d) in_dims[d] = d;
632  return TensorTupleReducerOp<
635  const Derived>(derived(), internal::ArgMinTupleReducer<Tuple<Index, CoeffReturnType> >(), -1, in_dims);
636  }
637 
638  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
639  const TensorTupleReducerOp<
641  const array<Index, 1>, const Derived>
642  argmax(const int return_dim) const {
643  array<Index, 1> in_dims;
644  in_dims[0] = return_dim;
645  return TensorTupleReducerOp<
647  const array<Index, 1>,
648  const Derived>(derived(), internal::ArgMaxTupleReducer<Tuple<Index, CoeffReturnType> >(), return_dim, in_dims);
649  }
650 
651  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
652  const TensorTupleReducerOp<
654  const array<Index, 1>, const Derived>
655  argmin(const int return_dim) const {
656  array<Index, 1> in_dims;
657  in_dims[0] = return_dim;
658  return TensorTupleReducerOp<
660  const array<Index, 1>,
661  const Derived>(derived(), internal::ArgMinTupleReducer<Tuple<Index, CoeffReturnType> >(), return_dim, in_dims);
662  }
663 
664  template <typename Reducer, typename Dims> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
666  reduce(const Dims& dims, const Reducer& reducer) const {
668  }
669 
670  template <typename Broadcast> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
672  broadcast(const Broadcast& broadcast) const {
674  }
675 
676  template <typename Axis, typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
678  concatenate(const OtherDerived& other, Axis axis) const {
680  }
681 
682  template <typename PatchDims> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
684  extract_patches(const PatchDims& patch_dims) const {
686  }
687 
688  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
690  extract_image_patches(const Index patch_rows = 1, const Index patch_cols = 1,
691  const Index row_stride = 1, const Index col_stride = 1,
692  const Index in_row_stride = 1, const Index in_col_stride = 1,
693  const PaddingType padding_type = PADDING_SAME, const Scalar padding_value = Scalar(0)) const {
694  return TensorImagePatchOp<Dynamic, Dynamic, const Derived>(derived(), patch_rows, patch_cols, row_stride, col_stride,
695  in_row_stride, in_col_stride, 1, 1, padding_type, padding_value);
696  }
697 
698  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
700  extract_image_patches(const Index patch_rows, const Index patch_cols,
701  const Index row_stride, const Index col_stride,
702  const Index in_row_stride, const Index in_col_stride,
703  const Index row_inflate_stride, const Index col_inflate_stride,
704  const Index padding_top, const Index padding_bottom,
705  const Index padding_left,const Index padding_right,
706  const Scalar padding_value) const {
707  return TensorImagePatchOp<Dynamic, Dynamic, const Derived>(derived(), patch_rows, patch_cols, row_stride, col_stride,
708  in_row_stride, in_col_stride, row_inflate_stride, col_inflate_stride,
709  padding_top, padding_bottom, padding_left, padding_right, padding_value);
710  }
711 
712  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
714  extract_volume_patches(const Index patch_planes, const Index patch_rows, const Index patch_cols,
715  const Index plane_stride = 1, const Index row_stride = 1, const Index col_stride = 1,
716  const PaddingType padding_type = PADDING_SAME, const Scalar padding_value = Scalar(0)) const {
717  return TensorVolumePatchOp<Dynamic, Dynamic, Dynamic, const Derived>(derived(), patch_planes, patch_rows, patch_cols, plane_stride, row_stride, col_stride, 1, 1, 1, 1, 1, 1, padding_type, padding_value);
718  }
719 
720 
721  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
723  extract_volume_patches(const Index patch_planes, const Index patch_rows, const Index patch_cols,
724  const Index plane_stride, const Index row_stride, const Index col_stride,
725  const Index plane_inflate_stride, const Index row_inflate_stride, const Index col_inflate_stride,
726  const Index padding_top_z, const Index padding_bottom_z,
727  const Index padding_top, const Index padding_bottom,
728  const Index padding_left, const Index padding_right, const Scalar padding_value = Scalar(0)) const {
729  return TensorVolumePatchOp<Dynamic, Dynamic, Dynamic, const Derived>(derived(), patch_planes, patch_rows, patch_cols, plane_stride, row_stride, col_stride, 1, 1, 1, plane_inflate_stride, row_inflate_stride, col_inflate_stride, padding_top_z, padding_bottom_z, padding_top, padding_bottom, padding_left, padding_right, padding_value);
730  }
731 
732  // Morphing operators.
733  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
735  swap_layout() const {
737  }
738  template <typename NewDimensions> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
740  reshape(const NewDimensions& newDimensions) const {
742  }
743  template <typename StartIndices, typename Sizes> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
745  slice(const StartIndices& startIndices, const Sizes& sizes) const {
747  }
748  template <typename StartIndices, typename StopIndices, typename Strides> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
750  stridedSlice(const StartIndices& startIndices, const StopIndices& stopIndices, const Strides& strides) const {
751  return TensorStridingSlicingOp<const StartIndices, const StopIndices, const Strides,
752  const Derived>(derived(), startIndices, stopIndices, strides);
753  }
754  template <Index DimId> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
756  chip(const Index offset) const {
757  return TensorChippingOp<DimId, const Derived>(derived(), offset, DimId);
758  }
759  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
761  chip(const Index offset, const Index dim) const {
762  return TensorChippingOp<Dynamic, const Derived>(derived(), offset, dim);
763  }
764  template <typename ReverseDimensions> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
766  reverse(const ReverseDimensions& rev) const {
768  }
769  template <typename PaddingDimensions> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
771  pad(const PaddingDimensions& padding) const {
773  }
774  template <typename PaddingDimensions> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
776  pad(const PaddingDimensions& padding, const Scalar padding_value) const {
777  return TensorPaddingOp<const PaddingDimensions, const Derived>(derived(), padding, padding_value);
778  }
779  template <typename Shuffle> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
781  shuffle(const Shuffle& shuffle) const {
783  }
784  template <typename Strides> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
786  stride(const Strides& strides) const {
788  }
789  template <typename Strides> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
791  inflate(const Strides& strides) const {
793  }
794 
795  // Returns a tensor containing index/value tuples
796  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
798  index_tuples() const {
800  }
801 
802  // Support for custom unary and binary operations
803  template <typename CustomUnaryFunc>
804  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
807  }
808  template <typename OtherDerived, typename CustomBinaryFunc>
809  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
810  const TensorCustomBinaryOp<const CustomBinaryFunc, const Derived, const OtherDerived> customOp(const OtherDerived& other, const CustomBinaryFunc& op) const {
812  }
813 
814  // Force the evaluation of the expression.
815  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
818  }
819 
820  protected:
821  template <typename Scalar, int NumIndices, int Options, typename IndexType> friend class Tensor;
822  template <typename Scalar, typename Dimensions, int Option, typename IndexTypes> friend class TensorFixedSize;
823  template <typename OtherDerived, int AccessLevel> friend class TensorBase;
824  EIGEN_DEVICE_FUNC
825  EIGEN_STRONG_INLINE const Derived& derived() const { return *static_cast<const Derived*>(this); }
826 };
827 
828 template<typename Derived, int AccessLevel = internal::accessors_level<Derived>::value>
829 class TensorBase : public TensorBase<Derived, ReadOnlyAccessors> {
830  public:
832  typedef typename DerivedTraits::Scalar Scalar;
833  typedef typename DerivedTraits::Index Index;
835  static const int NumDimensions = DerivedTraits::NumDimensions;
836 
837  template <typename Scalar, int NumIndices, int Options, typename IndexType> friend class Tensor;
838  template <typename Scalar, typename Dimensions, int Option, typename IndexTypes> friend class TensorFixedSize;
839  template <typename OtherDerived, int OtherAccessLevel> friend class TensorBase;
840 
841  EIGEN_DEVICE_FUNC
843  return setConstant(Scalar(0));
844  }
845  EIGEN_DEVICE_FUNC
846  EIGEN_STRONG_INLINE Derived& setConstant(const Scalar& val) {
847  return derived() = this->constant(val);
848  }
849  EIGEN_DEVICE_FUNC
851  return derived() = this->random();
852  }
853  template <typename RandomGenerator> EIGEN_DEVICE_FUNC
855  return derived() = this->template random<RandomGenerator>();
856  }
857 
858 #if EIGEN_HAS_VARIADIC_TEMPLATES
859  EIGEN_DEVICE_FUNC
860  EIGEN_STRONG_INLINE Derived& setValues(
861  const typename internal::Initializer<Derived, NumDimensions>::InitList& vals) {
863  internal::initialize_tensor<Derived, NumDimensions>(eval, vals);
864  return derived();
865  }
866 #endif // EIGEN_HAS_VARIADIC_TEMPLATES
867 
868  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
869  Derived& operator+=(const OtherDerived& other) {
870  return derived() = derived() + other.derived();
871  }
872  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
873  Derived& operator-=(const OtherDerived& other) {
874  return derived() = derived() - other.derived();
875  }
876  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
877  Derived& operator*=(const OtherDerived& other) {
878  return derived() = derived() * other.derived();
879  }
880  template<typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
881  Derived& operator/=(const OtherDerived& other) {
882  return derived() = derived() / other.derived();
883  }
884 
885  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
887  swap_layout() const {
889  }
890  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
894  }
895 
896  template <typename Axis, typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
898  concatenate(const OtherDerived& other, const Axis& axis) const {
900  }
901  template <typename Axis, typename OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
903  concatenate(const OtherDerived& other, const Axis& axis) {
905  }
906 
907  template <typename NewDimensions> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
909  reshape(const NewDimensions& newDimensions) const {
911  }
912  template <typename NewDimensions> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
914  reshape(const NewDimensions& newDimensions) {
916  }
917 
918  template <typename StartIndices, typename Sizes> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
920  slice(const StartIndices& startIndices, const Sizes& sizes) const {
922  }
923  template <typename StartIndices, typename Sizes> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
925  slice(const StartIndices& startIndices, const Sizes& sizes) {
927  }
928 
929  template <typename StartIndices, typename StopIndices, typename Strides> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
931  stridedSlice(const StartIndices& startIndices, const StopIndices& stopIndices, const Strides& strides) const {
932  return TensorStridingSlicingOp<const StartIndices, const StopIndices, const Strides,
933  const Derived>(derived(), startIndices, stopIndices, strides);
934  }
935  template <typename StartIndices, typename StopIndices, typename Strides> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
937  stridedSlice(const StartIndices& startIndices, const StopIndices& stopIndices, const Strides& strides) {
938  return TensorStridingSlicingOp<const StartIndices, const StopIndices, const Strides,
939  Derived>(derived(), startIndices, stopIndices, strides);
940  }
941 
942  template <DenseIndex DimId> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
944  chip(const Index offset) const {
945  return TensorChippingOp<DimId, const Derived>(derived(), offset, DimId);
946  }
947  template <Index DimId> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
949  chip(const Index offset) {
950  return TensorChippingOp<DimId, Derived>(derived(), offset, DimId);
951  }
952 
953  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
955  chip(const Index offset, const Index dim) const {
956  return TensorChippingOp<Dynamic, const Derived>(derived(), offset, dim);
957  }
958  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
960  chip(const Index offset, const Index dim) {
961  return TensorChippingOp<Dynamic, Derived>(derived(), offset, dim);
962  }
963 
964  template <typename ReverseDimensions> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
966  reverse(const ReverseDimensions& rev) const {
968  }
969  template <typename ReverseDimensions> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
971  reverse(const ReverseDimensions& rev) {
973  }
974 
975  template <typename Shuffle> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
977  shuffle(const Shuffle& shuffle) const {
979  }
980  template <typename Shuffle> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
982  shuffle(const Shuffle& shuffle) {
984  }
985 
986  template <typename Strides> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
988  stride(const Strides& strides) const {
990  }
991  template <typename Strides> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
993  stride(const Strides& strides) {
995  }
996 
997  // Select the device on which to evaluate the expression.
998  template <typename DeviceType>
1001  }
1002 
1003  protected:
1004  EIGEN_DEVICE_FUNC
1005  EIGEN_STRONG_INLINE Derived& derived() { return *static_cast<Derived*>(this); }
1006  EIGEN_DEVICE_FUNC
1007  EIGEN_STRONG_INLINE const Derived& derived() const { return *static_cast<const Derived*>(this); }
1008 };
1009 #endif // EIGEN_PARSED_BY_DOXYGEN
1010 } // end namespace Eigen
1011 
1012 #endif // EIGEN_CXX11_TENSOR_TENSOR_BASE_H
Eigen::Tensor
The tensor class.
Definition: Tensor.h:63
Eigen::TensorBase< Derived, ReadOnlyAccessors >::any
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReductionOp< internal::OrReducer, const Dims, const TensorConversionOp< bool, const Derived > > any(const Dims &dims) const
Definition: TensorBase.h:601
Eigen::TensorBase< Derived, ReadOnlyAccessors >::abs
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_abs_op< Scalar >, const Derived > abs() const
Definition: TensorBase.h:204
Eigen::TensorBase< Derived, ReadOnlyAccessors >::cwiseMin
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_min_op< Scalar >, const Derived, const TensorCwiseNullaryOp< internal::scalar_constant_op< Scalar >, const Derived > > cwiseMin(Scalar threshold) const
Definition: TensorBase.h:300
Eigen::TensorBase< Derived, ReadOnlyAccessors >::lgamma
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_lgamma_op< Scalar >, const Derived > lgamma() const
Definition: TensorBase.h:128
Eigen::internal::scalar_isnan_op
Definition: UnaryFunctors.h:678
Eigen::TensorBase< Derived, ReadOnlyAccessors >::sigmoid
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_sigmoid_op< Scalar >, const Derived > sigmoid() const
Definition: TensorBase.h:180
Eigen::internal::scalar_round_op
Definition: UnaryFunctors.h:621
Eigen::operator!=
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator!=(const Tuple< U, V > &x, const Tuple< U, V > &y)
Definition: TensorMeta.h:148
Eigen::TensorBase< Derived, ReadOnlyAccessors >::pow
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::bind2nd_op< internal::scalar_pow_op< Scalar, Scalar > >, const Derived > pow(Scalar exponent) const
Definition: TensorBase.h:216
Eigen
Definition: common.h:73
Eigen::PaddingType
PaddingType
Definition: TensorTraits.h:265
Eigen::TensorBase< Derived, ReadOnlyAccessors >::Scalar
DerivedTraits::Scalar Scalar
Definition: TensorBase.h:33
Eigen::TensorBase< Derived, ReadOnlyAccessors >::DimensionPair
Eigen::IndexPair< Index > DimensionPair
Definition: TensorBase.h:481
Eigen::internal::scalar_pow_op
Definition: BinaryFunctors.h:292
Eigen::half_impl::isfinite
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool() isfinite(const half &a)
Definition: Half.h:441
Eigen::TensorBase< Derived, ReadOnlyAccessors >::erf
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_erf_op< Scalar >, const Derived > erf() const
Definition: TensorBase.h:168
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator&&
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_boolean_and_op, const Derived, const OtherDerived > operator&&(const OtherDerived &other) const
Definition: TensorBase.h:374
Eigen::TensorBase< Derived, ReadOnlyAccessors >::log1p
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_log1p_op< Scalar >, const Derived > log1p() const
Definition: TensorBase.h:198
Eigen::internal::scalar_cmp_op
Definition: BinaryFunctors.h:190
Eigen::internal::scalar_igammac_op
Definition: ForwardDeclarations.h:217
Eigen::internal::scalar_sqrt_op
Definition: UnaryFunctors.h:336
Eigen::internal::scalar_inverse_op
Definition: UnaryFunctors.h:574
Eigen::TensorDevice
Pseudo expression providing an operator = that will evaluate its argument on the specified computing ...
Definition: TensorDevice.h:27
Eigen::TensorCustomUnaryOp
Tensor custom class.
Definition: TensorCustomOp.h:52
Eigen::internal::scalar_square_op
Definition: UnaryFunctors.h:590
Eigen::internal::scalar_abs_op
Definition: UnaryFunctors.h:41
Eigen::internal::scalar_quotient_op
Definition: BinaryFunctors.h:351
Eigen::TensorPaddingOp
Definition: TensorForwardDeclarations.h:53
Eigen::TensorBase< Derived, ReadOnlyAccessors >::reshape
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReshapingOp< const NewDimensions, const Derived > reshape(const NewDimensions &newDimensions) const
Definition: TensorBase.h:740
Eigen::TensorBase< Derived, ReadOnlyAccessors >::chip
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorChippingOp< Dynamic, const Derived > chip(const Index offset, const Index dim) const
Definition: TensorBase.h:761
Eigen::array
Definition: EmulateArray.h:21
Eigen::operator+
const EIGEN_STRONG_INLINE CwiseBinaryOp< internal::scalar_sum_op< typename DenseDerived::Scalar, typename SparseDerived::Scalar >, const DenseDerived, const SparseDerived > operator+(const MatrixBase< DenseDerived > &a, const SparseMatrixBase< SparseDerived > &b)
Definition: SparseCwiseBinaryOp.h:698
Eigen::internal::scalar_lgamma_op
Definition: ForwardDeclarations.h:212
Eigen::TensorBase::concatenate
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorConcatenationOp< const Axis, const Derived, const OtherDerived > concatenate(const OtherDerived &other, const Axis &axis) const
Definition: TensorBase.h:898
Eigen::TensorBase::operator+=
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator+=(const OtherDerived &other)
Definition: TensorBase.h:869
Eigen::TensorBase::setConstant
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & setConstant(const Scalar &val)
Definition: TensorBase.h:846
Eigen::internal::SumReducer
Definition: TensorFunctors.h:96
Eigen::TensorCwiseUnaryOp
Definition: TensorExpr.h:111
Eigen::TensorBase< Derived, ReadOnlyAccessors >::all
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReductionOp< internal::AndReducer, const DimensionList< Index, NumDimensions >, const TensorConversionOp< bool, const Derived > > all() const
Definition: TensorBase.h:594
Eigen::TensorBase< Derived, ReadOnlyAccessors >::maximum
const TensorReductionOp< internal::MaxReducer< CoeffReturnType >, const DimensionList< Index, NumDimensions >, const Derived > maximum() const
Definition: TensorBase.h:569
Eigen::TensorReductionOp
Definition: TensorForwardDeclarations.h:36
Eigen::internal::scalar_isfinite_op
Definition: UnaryFunctors.h:714
Eigen::TensorBase::reshape
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReshapingOp< const NewDimensions, const Derived > reshape(const NewDimensions &newDimensions) const
Definition: TensorBase.h:909
Eigen::internal::scalar_cast_op
Definition: UnaryFunctors.h:152
Eigen::TensorBase::device
TensorDevice< Derived, DeviceType > device(const DeviceType &device)
Definition: TensorBase.h:999
Eigen::TensorBase::stride
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorStridingOp< const Strides, Derived > stride(const Strides &strides)
Definition: TensorBase.h:993
Eigen::TensorBase< Derived, ReadOnlyAccessors >::mean
const TensorReductionOp< internal::MeanReducer< CoeffReturnType >, const DimensionList< Index, NumDimensions >, const Derived > mean() const
Definition: TensorBase.h:545
Eigen::half_impl::operator>
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator>(const half &a, const half &b)
Definition: Half.h:313
Eigen::TensorBase< Derived, ReadOnlyAccessors >::cwiseMin
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_min_op< Scalar >, const Derived, const OtherDerived > cwiseMin(const OtherDerived &other) const
Definition: TensorBase.h:368
Eigen::TensorBase< Derived, ReadOnlyAccessors >::argmin
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorTupleReducerOp< internal::ArgMinTupleReducer< Tuple< Index, CoeffReturnType > >, const array< Index, NumDimensions >, const Derived > argmin() const
Definition: TensorBase.h:629
Eigen::TensorBase< Derived, ReadOnlyAccessors >::reverse
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReverseOp< const ReverseDimensions, const Derived > reverse(const ReverseDimensions &rev) const
Definition: TensorBase.h:766
Eigen::TensorBase< Derived, ReadOnlyAccessors >::random
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseNullaryOp< internal::UniformRandomGenerator< Scalar >, const Derived > random() const
Definition: TensorBase.h:54
Eigen::TensorScanOp
Definition: TensorForwardDeclarations.h:60
Eigen::internal::scalar_imag_op
Definition: UnaryFunctors.h:183
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator+
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_sum_op< Scalar >, const Derived, const OtherDerived > operator+(const OtherDerived &other) const
Definition: TensorBase.h:338
Eigen::TensorBase::chip
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorChippingOp< Dynamic, Derived > chip(const Index offset, const Index dim)
Definition: TensorBase.h:960
Eigen::internal::scalar_erf_op
Definition: ForwardDeclarations.h:214
Eigen::half_impl::isinf
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool() isinf(const half &a)
Definition: Half.h:431
Eigen::internal::bind1st_op
Definition: BinaryFunctors.h:433
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator^
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_boolean_xor_op, const Derived, const OtherDerived > operator^(const OtherDerived &other) const
Definition: TensorBase.h:386
Eigen::TensorBase< Derived, ReadOnlyAccessors >::square
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_square_op< Scalar >, const Derived > square() const
Definition: TensorBase.h:104
Eigen::operator-
const EIGEN_STRONG_INLINE CwiseBinaryOp< internal::scalar_difference_op< typename DenseDerived::Scalar, typename SparseDerived::Scalar >, const DenseDerived, const SparseDerived > operator-(const MatrixBase< DenseDerived > &a, const SparseMatrixBase< SparseDerived > &b)
Definition: SparseCwiseBinaryOp.h:712
Eigen::internal::scalar_sigmoid_op
Definition: TensorFunctors.h:63
Scalar
SCALAR Scalar
Definition: common.h:84
Eigen::TensorBase< Derived, ReadOnlyAccessors >::contract
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorContractionOp< const Dimensions, const Derived, const OtherDerived > contract(const OtherDerived &other, const Dimensions &dims) const
Definition: TensorBase.h:485
Eigen::TensorBase< Derived, ReadOnlyAccessors >::mean
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReductionOp< internal::MeanReducer< CoeffReturnType >, const Dims, const Derived > mean(const Dims &dims) const
Definition: TensorBase.h:540
Eigen::TensorImagePatchOp
Definition: TensorForwardDeclarations.h:45
Eigen::TensorBase::CoeffReturnType
Scalar CoeffReturnType
Definition: TensorBase.h:834
Eigen::PADDING_SAME
@ PADDING_SAME
Definition: TensorTraits.h:267
Eigen::TensorBase< Derived, ReadOnlyAccessors >::igammac
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_igammac_op< Scalar >, const Derived, const OtherDerived > igammac(const OtherDerived &other) const
Definition: TensorBase.h:148
Eigen::TensorBase< Derived, ReadOnlyAccessors >::prod
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReductionOp< internal::ProdReducer< CoeffReturnType >, const Dims, const Derived > prod(const Dims &dims) const
Definition: TensorBase.h:552
Eigen::TensorBase::shuffle
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorShufflingOp< const Shuffle, Derived > shuffle(const Shuffle &shuffle)
Definition: TensorBase.h:982
Eigen::internal::OrReducer
Definition: TensorFunctors.h:373
Eigen::TensorBase::operator/=
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator/=(const OtherDerived &other)
Definition: TensorBase.h:881
Eigen::TensorBase< Derived, ReadOnlyAccessors >::rsqrt
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_rsqrt_op< Scalar >, const Derived > rsqrt() const
Definition: TensorBase.h:98
Eigen::IndexPair
Definition: TensorMeta.h:154
Eigen::TensorBase::chip
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorChippingOp< DimId, Derived > chip(const Index offset)
Definition: TensorBase.h:949
Eigen::TensorBase< Derived, ReadOnlyAccessors >::any
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReductionOp< internal::OrReducer, const DimensionList< Index, NumDimensions >, const TensorConversionOp< bool, const Derived > > any() const
Definition: TensorBase.h:607
Eigen::TensorBase< Derived, ReadOnlyAccessors >::Index
DerivedTraits::Index Index
Definition: TensorBase.h:34
Eigen::TensorBase< Derived, ReadOnlyAccessors >::minimum
const TensorReductionOp< internal::MinReducer< CoeffReturnType >, const DimensionList< Index, NumDimensions >, const Derived > minimum() const
Definition: TensorBase.h:581
Eigen::TensorBase< Derived, ReadOnlyAccessors >::random
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseNullaryOp< RandomGenerator, const Derived > random(const RandomGenerator &gen=RandomGenerator()) const
Definition: TensorBase.h:59
Eigen::internal::scalar_sign_op
Definition: UnaryFunctors.h:749
Eigen::internal::scalar_product_op
Definition: BinaryFunctors.h:76
Eigen::TensorBase< Derived, ReadOnlyAccessors >::concatenate
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorConcatenationOp< Axis, const Derived, const OtherDerived > concatenate(const OtherDerived &other, Axis axis) const
Definition: TensorBase.h:678
Eigen::operator*
const EIGEN_DEVICE_FUNC Product< MatrixDerived, PermutationDerived, AliasFreeProduct > operator*(const MatrixBase< MatrixDerived > &matrix, const PermutationBase< PermutationDerived > &permutation)
Definition: PermutationMatrix.h:543
Eigen::TensorForcedEvalOp
Tensor reshaping class.
Definition: TensorForcedEval.h:71
Eigen::TensorBase< Derived, ReadOnlyAccessors >::sign
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_sign_op< Scalar >, const Derived > sign() const
Definition: TensorBase.h:92
Eigen::TensorBase::reverse
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReverseOp< const ReverseDimensions, const Derived > reverse(const ReverseDimensions &rev) const
Definition: TensorBase.h:966
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator-
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_difference_op< Scalar >, const Derived, const OtherDerived > operator-(const OtherDerived &other) const
Definition: TensorBase.h:344
Eigen::Sizes
Definition: TensorDimensions.h:93
Eigen::half_impl::operator>=
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator>=(const half &a, const half &b)
Definition: Half.h:316
Eigen::TensorStridingSlicingOp
Definition: TensorForwardDeclarations.h:56
Eigen::DefaultDevice
Definition: TensorDeviceDefault.h:17
Eigen::TensorBase< Derived, ReadOnlyAccessors >::chip
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorChippingOp< DimId, const Derived > chip(const Index offset) const
Definition: TensorBase.h:756
Eigen::TensorBase< Derived, ReadOnlyAccessors >::eval
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorForcedEvalOp< const Derived > eval() const
Definition: TensorBase.h:816
Eigen::TensorBase< Derived, ReadOnlyAccessors >::TensorScanSumOp
TensorScanOp< internal::SumReducer< CoeffReturnType >, const Derived > TensorScanSumOp
Definition: TensorBase.h:504
Eigen::TensorConcatenationOp
Tensor concatenation class.
Definition: TensorConcatenation.h:58
Eigen::TensorBase< Derived, ReadOnlyAccessors >::extract_volume_patches
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorVolumePatchOp< Dynamic, Dynamic, Dynamic, const Derived > extract_volume_patches(const Index patch_planes, const Index patch_rows, const Index patch_cols, const Index plane_stride=1, const Index row_stride=1, const Index col_stride=1, const PaddingType padding_type=PADDING_SAME, const Scalar padding_value=Scalar(0)) const
Definition: TensorBase.h:714
Eigen::DimensionList
Definition: TensorDimensionList.h:25
Eigen::TensorReverseOp
Definition: TensorForwardDeclarations.h:52
Eigen::TensorBase< Derived, ReadOnlyAccessors >::cube
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_cube_op< Scalar >, const Derived > cube() const
Definition: TensorBase.h:110
Eigen::TensorBase< Derived, ReadOnlyAccessors >::erfc
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_erfc_op< Scalar >, const Derived > erfc() const
Definition: TensorBase.h:174
Eigen::internal::scalar_log_op
Definition: UnaryFunctors.h:271
Eigen::internal::scalar_boolean_xor_op
Definition: BinaryFunctors.h:414
Eigen::internal::scalar_floor_op
Definition: UnaryFunctors.h:640
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator>
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_cmp_op< Scalar, Scalar, internal::cmp_GT >, const Derived, const TensorCwiseNullaryOp< internal::scalar_constant_op< Scalar >, const Derived > > operator>(Scalar threshold) const
Definition: TensorBase.h:437
Eigen::internal::scalar_rsqrt_op
Definition: UnaryFunctors.h:363
Eigen::TensorCustomBinaryOp
Tensor custom class.
Definition: TensorCustomOp.h:202
Eigen::TensorBase::reshape
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorReshapingOp< const NewDimensions, Derived > reshape(const NewDimensions &newDimensions)
Definition: TensorBase.h:914
Eigen::TensorBase< Derived, ReadOnlyAccessors >::index_tuples
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorIndexTupleOp< const Derived > index_tuples() const
Definition: TensorBase.h:798
Eigen::TensorBase< Derived, ReadOnlyAccessors >::nullaryExpr
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseNullaryOp< CustomNullaryOp, const Derived > nullaryExpr(const CustomNullaryOp &func) const
Definition: TensorBase.h:41
Eigen::internal::scalar_exp_op
Definition: UnaryFunctors.h:231
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator==
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_cmp_op< Scalar, Scalar, internal::cmp_EQ >, const Derived, const OtherDerived > operator==(const OtherDerived &other) const
Definition: TensorBase.h:414
Eigen::TensorBase< Derived, ReadOnlyAccessors >::broadcast
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorBroadcastingOp< const Broadcast, const Derived > broadcast(const Broadcast &broadcast) const
Definition: TensorBase.h:672
Eigen::TensorBase< Derived, ReadOnlyAccessors >::pad
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorPaddingOp< const PaddingDimensions, const Derived > pad(const PaddingDimensions &padding) const
Definition: TensorBase.h:771
Eigen::internal::scalar_real_op
Definition: UnaryFunctors.h:167
Eigen::TensorBase< Derived, ReadOnlyAccessors >::extract_patches
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorPatchOp< const PatchDims, const Derived > extract_patches(const PatchDims &patch_dims) const
Definition: TensorBase.h:684
Eigen::TensorReshapingOp
Definition: TensorForwardDeclarations.h:49
Eigen::internal::scalar_constant_op
Definition: NullaryFunctors.h:18
Eigen::TensorBase< Derived, ReadOnlyAccessors >::stride
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorStridingOp< const Strides, const Derived > stride(const Strides &strides) const
Definition: TensorBase.h:786
Eigen::half_impl::operator/
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator/(const half &a, const half &b)
Definition: Half.h:277
Eigen::TensorBase< Derived, ReadOnlyAccessors >::convolve
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorConvolutionOp< const Dimensions, const Derived, const KernelDerived > convolve(const KernelDerived &kernel, const Dimensions &dims) const
Definition: TensorBase.h:492
Eigen::internal::ArgMaxTupleReducer
Definition: TensorFunctors.h:398
Eigen::TensorGeneratorOp
Tensor generator class.
Definition: TensorForwardDeclarations.h:58
Eigen::TensorBase< Derived, ReadOnlyAccessors >::imag
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_imag_op< Scalar >, const Derived > imag() const
Definition: TensorBase.h:228
Eigen::TensorBase::swap_layout
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorLayoutSwapOp< Derived > swap_layout()
Definition: TensorBase.h:892
Eigen::internal::scalar_ceil_op
Definition: UnaryFunctors.h:659
Eigen::TensorConvolutionOp
Definition: TensorConvolution.h:257
Eigen::TensorBase::stridedSlice
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorStridingSlicingOp< const StartIndices, const StopIndices, const Strides, const Derived > stridedSlice(const StartIndices &startIndices, const StopIndices &stopIndices, const Strides &strides) const
Definition: TensorBase.h:931
cwiseMax
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE CwiseBinaryOp< internal::scalar_max_op< Scalar, Scalar >, const Derived, const OtherDerived > cwiseMax(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
Definition: MatrixCwiseBinaryOps.h:104
unaryExpr
const EIGEN_DEVICE_FUNC CwiseUnaryOp< CustomUnaryOp, const Derived > unaryExpr(const CustomUnaryOp &func=CustomUnaryOp()) const
Apply a unary operator coefficient-wise.
Definition: CommonCwiseUnaryOps.h:121
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator*
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_product_op< Scalar >, const Derived, const OtherDerived > operator*(const OtherDerived &other) const
Definition: TensorBase.h:350
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator-
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_opposite_op< Scalar >, const Derived > operator-() const
Definition: TensorBase.h:80
Eigen::TensorBase< Derived, ReadOnlyAccessors >::customOp
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCustomUnaryOp< const CustomUnaryFunc, const Derived > customOp(const CustomUnaryFunc &op) const
Definition: TensorBase.h:805
Eigen::TensorBase< Derived, ReadOnlyAccessors >::digamma
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_digamma_op< Scalar >, const Derived > digamma() const
Definition: TensorBase.h:134
Eigen::TensorBase< Derived, ReadOnlyAccessors >::stridedSlice
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorStridingSlicingOp< const StartIndices, const StopIndices, const Strides, const Derived > stridedSlice(const StartIndices &startIndices, const StopIndices &stopIndices, const Strides &strides) const
Definition: TensorBase.h:750
Eigen::internal::scalar_difference_op
Definition: BinaryFunctors.h:322
Eigen::internal::scalar_log1p_op
Definition: UnaryFunctors.h:302
Eigen::TensorBase< Derived, ReadOnlyAccessors >::cumprod
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorScanProdOp cumprod(const Index &axis, bool exclusive=false) const
Definition: TensorBase.h:514
Eigen::TensorBase::chip
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorChippingOp< DimId, const Derived > chip(const Index offset) const
Definition: TensorBase.h:944
Eigen::internal::scalar_mod_op
Definition: TensorFunctors.h:21
Eigen::TensorBase< Derived, ReadOnlyAccessors >::polygamma
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_polygamma_op< Scalar >, const Derived, const OtherDerived > polygamma(const OtherDerived &other) const
Definition: TensorBase.h:162
Eigen::internal::scalar_isinf_op
Definition: UnaryFunctors.h:696
EIGEN_STRONG_INLINE
#define EIGEN_STRONG_INLINE
Definition: Macros.h:494
Eigen::TensorBase::NumDimensions
static const int NumDimensions
Definition: TensorBase.h:835
Eigen::TensorStridingOp
Definition: TensorForwardDeclarations.h:55
Eigen::TensorBase::operator*=
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator*=(const OtherDerived &other)
Definition: TensorBase.h:877
Eigen::internal::scalar_erfc_op
Definition: ForwardDeclarations.h:215
Eigen::TensorBase< Derived, ReadOnlyAccessors >::maximum
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReductionOp< internal::MaxReducer< CoeffReturnType >, const Dims, const Derived > maximum(const Dims &dims) const
Definition: TensorBase.h:564
Eigen::TensorBase::chip
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorChippingOp< Dynamic, const Derived > chip(const Index offset, const Index dim) const
Definition: TensorBase.h:955
Eigen::TensorCwiseBinaryOp
Definition: TensorExpr.h:187
Eigen::internal::ArgMinTupleReducer
Definition: TensorFunctors.h:423
Eigen::TensorBase< Derived, ReadOnlyAccessors >::customOp
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCustomBinaryOp< const CustomBinaryFunc, const Derived, const OtherDerived > customOp(const OtherDerived &other, const CustomBinaryFunc &op) const
Definition: TensorBase.h:810
Eigen::internal::scalar_min_op
Definition: BinaryFunctors.h:140
Eigen::TensorBase< Derived, ReadOnlyAccessors >::cwiseMax
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_max_op< Scalar >, const Derived, const TensorCwiseNullaryOp< internal::scalar_constant_op< Scalar >, const Derived > > cwiseMax(Scalar threshold) const
Definition: TensorBase.h:294
binaryExpr
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE CwiseBinaryOp< CustomBinaryOp, const Derived, const OtherDerived > binaryExpr(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other, const CustomBinaryOp &func=CustomBinaryOp()) const
Definition: CommonCwiseBinaryOps.h:43
Eigen::TensorBase< Derived, ReadOnlyAccessors >::argmax
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorTupleReducerOp< internal::ArgMaxTupleReducer< Tuple< Index, CoeffReturnType > >, const array< Index, 1 >, const Derived > argmax(const int return_dim) const
Definition: TensorBase.h:642
Eigen::TensorBase::setRandom
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & setRandom()
Definition: TensorBase.h:854
Eigen::TensorSelectOp
Definition: TensorExpr.h:335
Eigen::TensorBase< Derived, ReadOnlyAccessors >::swap_layout
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorLayoutSwapOp< const Derived > swap_layout() const
Definition: TensorBase.h:735
Eigen::TensorCwiseNullaryOp
Definition: TensorExpr.h:52
Eigen::half_impl::operator<=
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator<=(const half &a, const half &b)
Definition: Half.h:310
Eigen::TensorBase< Derived, ReadOnlyAccessors >::exp
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_exp_op< Scalar >, const Derived > exp() const
Definition: TensorBase.h:186
Eigen::TensorBase< Derived, ReadOnlyAccessors >::select
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorSelectOp< const Derived, const ThenDerived, const ElseDerived > select(const ThenDerived &thenTensor, const ElseDerived &elseTensor) const
Definition: TensorBase.h:476
Eigen::Map< Matrix< Scalar, Dynamic, Dynamic, ColMajor >, 0, OuterStride<> >
Eigen::TensorConversionOp
Tensor conversion class. This class makes it possible to vectorize type casting operations when the n...
Definition: TensorConversion.h:145
Eigen::TensorBase
The tensor base class.
Definition: TensorBase.h:829
Eigen::TensorBase< Derived, ReadOnlyAccessors >::igamma
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_igamma_op< Scalar >, const Derived, const OtherDerived > igamma(const OtherDerived &other) const
Definition: TensorBase.h:141
Eigen::TensorBase< Derived, ReadOnlyAccessors >::floor
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_floor_op< Scalar >, const Derived > floor() const
Definition: TensorBase.h:324
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator==
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_cmp_op< Scalar, Scalar, internal::cmp_EQ >, const Derived, const TensorCwiseNullaryOp< internal::scalar_constant_op< Scalar >, const Derived > > operator==(Scalar threshold) const
Definition: TensorBase.h:447
Eigen::ReadOnlyAccessors
@ ReadOnlyAccessors
Definition: Constants.h:366
Eigen::TensorBase< Derived, ReadOnlyAccessors >::derived
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE Derived & derived() const
Definition: TensorBase.h:825
Eigen::TensorTupleReducerOp
Definition: TensorArgMax.h:163
Eigen::TensorBase< Derived, ReadOnlyAccessors >::ceil
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_ceil_op< Scalar >, const Derived > ceil() const
Definition: TensorBase.h:318
Eigen::TensorBase< Derived, ReadOnlyAccessors >::cwiseMax
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_max_op< Scalar >, const Derived, const OtherDerived > cwiseMax(const OtherDerived &other) const
Definition: TensorBase.h:362
Eigen::TensorBase::Index
DerivedTraits::Index Index
Definition: TensorBase.h:833
Eigen::half_impl::operator<
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator<(const half &a, const half &b)
Definition: Half.h:307
Eigen::internal::scalar_boolean_or_op
Definition: BinaryFunctors.h:398
Eigen::TensorBase< Derived, ReadOnlyAccessors >::round
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_round_op< Scalar >, const Derived > round() const
Definition: TensorBase.h:312
Eigen::TensorBase::setRandom
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & setRandom()
Definition: TensorBase.h:850
Eigen::TensorChippingOp
Definition: TensorChipping.h:78
Eigen::TensorBase< Derived, ReadOnlyAccessors >::extract_image_patches
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorImagePatchOp< Dynamic, Dynamic, const Derived > extract_image_patches(const Index patch_rows, const Index patch_cols, const Index row_stride, const Index col_stride, const Index in_row_stride, const Index in_col_stride, const Index row_inflate_stride, const Index col_inflate_stride, const Index padding_top, const Index padding_bottom, const Index padding_left, const Index padding_right, const Scalar padding_value) const
Definition: TensorBase.h:700
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator>=
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_cmp_op< Scalar, Scalar, internal::cmp_GE >, const Derived, const TensorCwiseNullaryOp< internal::scalar_constant_op< Scalar >, const Derived > > operator>=(Scalar threshold) const
Definition: TensorBase.h:442
Eigen::TensorBase::derived
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE Derived & derived() const
Definition: TensorBase.h:1007
Eigen::internal::MinReducer
Definition: TensorFunctors.h:262
Eigen::TensorBase< Derived, ReadOnlyAccessors >::DerivedTraits
internal::traits< Derived > DerivedTraits
Definition: TensorBase.h:32
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator/
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_quotient_op< Scalar >, const Derived, const OtherDerived > operator/(const OtherDerived &other) const
Definition: TensorBase.h:356
Eigen::TensorBase::reverse
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorReverseOp< const ReverseDimensions, Derived > reverse(const ReverseDimensions &rev)
Definition: TensorBase.h:971
Eigen::TensorBase< Derived, ReadOnlyAccessors >::log
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_log_op< Scalar >, const Derived > log() const
Definition: TensorBase.h:192
Eigen::internal::traits< Derived >
Eigen::TensorBase< Derived, ReadOnlyAccessors >::inflate
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorInflationOp< const Strides, const Derived > inflate(const Strides &strides) const
Definition: TensorBase.h:791
Eigen::TensorBase< Derived, ReadOnlyAccessors >::slice
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorSlicingOp< const StartIndices, const Sizes, const Derived > slice(const StartIndices &startIndices, const Sizes &sizes) const
Definition: TensorBase.h:745
EIGEN_STATIC_ASSERT
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
Definition: StaticAssert.h:124
Eigen::TensorBase< Derived, ReadOnlyAccessors >::tanh
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_tanh_op< Scalar >, const Derived > tanh() const
Definition: TensorBase.h:122
Eigen::operator==
EIGEN_CONSTEXPR EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator==(const Tuple< U, V > &x, const Tuple< U, V > &y)
Definition: TensorMeta.h:142
Eigen::internal::scalar_opposite_op
Definition: UnaryFunctors.h:22
Eigen::TensorBase< Derived, ReadOnlyAccessors >::constant
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseNullaryOp< internal::scalar_constant_op< Scalar >, const Derived > constant(const Scalar &value) const
Definition: TensorBase.h:48
Eigen::TensorBase< Derived, ReadOnlyAccessors >::extract_volume_patches
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorVolumePatchOp< Dynamic, Dynamic, Dynamic, const Derived > extract_volume_patches(const Index patch_planes, const Index patch_rows, const Index patch_cols, const Index plane_stride, const Index row_stride, const Index col_stride, const Index plane_inflate_stride, const Index row_inflate_stride, const Index col_inflate_stride, const Index padding_top_z, const Index padding_bottom_z, const Index padding_top, const Index padding_bottom, const Index padding_left, const Index padding_right, const Scalar padding_value=Scalar(0)) const
Definition: TensorBase.h:723
Eigen::TensorLayoutSwapOp
Definition: TensorForwardDeclarations.h:50
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator>
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_cmp_op< Scalar, Scalar, internal::cmp_GT >, const Derived, const OtherDerived > operator>(const OtherDerived &other) const
Definition: TensorBase.h:403
Eigen::TensorBase::concatenate
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorConcatenationOp< const Axis, Derived, OtherDerived > concatenate(const OtherDerived &other, const Axis &axis)
Definition: TensorBase.h:903
Eigen::TensorBase< Derived, ReadOnlyAccessors >::shuffle
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorShufflingOp< const Shuffle, const Derived > shuffle(const Shuffle &shuffle) const
Definition: TensorBase.h:781
Eigen::TensorBase< Derived, ReadOnlyAccessors >::conjugate
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_conjugate_op< Scalar >, const Derived > conjugate() const
Definition: TensorBase.h:210
Eigen::TensorBase< Derived, ReadOnlyAccessors >::sum
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReductionOp< internal::SumReducer< CoeffReturnType >, const Dims, const Derived > sum(const Dims &dims) const
Definition: TensorBase.h:528
Eigen::TensorSlicingOp
Definition: TensorForwardDeclarations.h:51
Eigen::TensorBase< Derived, ReadOnlyAccessors >::CoeffReturnType
internal::remove_const< Scalar >::type CoeffReturnType
Definition: TensorBase.h:35
Eigen::TensorBase< Derived, ReadOnlyAccessors >::pad
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorPaddingOp< const PaddingDimensions, const Derived > pad(const PaddingDimensions &padding, const Scalar padding_value) const
Definition: TensorBase.h:776
Eigen::TensorContractionOp
Definition: TensorContraction.h:75
Eigen::internal::scalar_cube_op
Definition: UnaryFunctors.h:606
Eigen::TensorBase< Derived, ReadOnlyAccessors >::sum
const TensorReductionOp< internal::SumReducer< CoeffReturnType >, const DimensionList< Index, NumDimensions >, const Derived > sum() const
Definition: TensorBase.h:533
Eigen::internal::scalar_boolean_and_op
Definition: BinaryFunctors.h:382
Eigen::TensorFFTOp
Definition: TensorForwardDeclarations.h:43
Eigen::TensorBase< Derived, ReadOnlyAccessors >::sqrt
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_sqrt_op< Scalar >, const Derived > sqrt() const
Definition: TensorBase.h:86
Eigen::TensorBase< Derived, ReadOnlyAccessors >::generate
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorGeneratorOp< Generator, const Derived > generate(const Generator &generator) const
Definition: TensorBase.h:66
Eigen::internal::scalar_polygamma_op
Definition: SpecialFunctionsFunctors.h:168
Eigen::TensorBase< Derived, ReadOnlyAccessors >::minimum
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReductionOp< internal::MinReducer< CoeffReturnType >, const Dims, const Derived > minimum(const Dims &dims) const
Definition: TensorBase.h:576
Eigen::TensorBase::DerivedTraits
internal::traits< Derived > DerivedTraits
Definition: TensorBase.h:831
Eigen::TensorBase< Derived, ReadOnlyAccessors >::argmax
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorTupleReducerOp< internal::ArgMaxTupleReducer< Tuple< Index, CoeffReturnType > >, const array< Index, NumDimensions >, const Derived > argmax() const
Definition: TensorBase.h:616
Eigen::internal::MeanReducer
Definition: TensorFunctors.h:141
Eigen::TensorEvaluator
A cost model used to limit the number of threads used for evaluating tensor expression.
Definition: TensorEvaluator.h:28
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator||
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_boolean_or_op, const Derived, const OtherDerived > operator||(const OtherDerived &other) const
Definition: TensorBase.h:380
Eigen::TensorBase::slice
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorSlicingOp< const StartIndices, const Sizes, Derived > slice(const StartIndices &startIndices, const Sizes &sizes)
Definition: TensorBase.h:925
Eigen::TensorBase::shuffle
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorShufflingOp< const Shuffle, const Derived > shuffle(const Shuffle &shuffle) const
Definition: TensorBase.h:977
Eigen::TensorBase< Derived, ReadOnlyAccessors >::scan
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorScanOp< Reducer, const Derived > scan(const Index &axis, const Reducer &reducer, bool exclusive=false) const
Definition: TensorBase.h:521
Eigen::TensorFixedSize
The fixed sized version of the tensor class.
Definition: TensorFixedSize.h:27
Eigen::internal::is_same
Definition: Meta.h:63
Eigen::internal::scalar_max_op
Definition: BinaryFunctors.h:166
Eigen::TensorBase< Derived, ReadOnlyAccessors >::binaryExpr
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< CustomBinaryOp, const Derived, const OtherDerived > binaryExpr(const OtherDerived &other, const CustomBinaryOp &func) const
Definition: TensorBase.h:331
Eigen::TensorInflationOp
Definition: TensorForwardDeclarations.h:57
Eigen::TensorBroadcastingOp
Definition: TensorBroadcasting.h:68
Eigen::internal::scalar_sum_op
Definition: BinaryFunctors.h:32
Eigen::TensorShufflingOp
Definition: TensorForwardDeclarations.h:54
Eigen::TensorBase< Derived, ReadOnlyAccessors >::extract_image_patches
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorImagePatchOp< Dynamic, Dynamic, const Derived > extract_image_patches(const Index patch_rows=1, const Index patch_cols=1, const Index row_stride=1, const Index col_stride=1, const Index in_row_stride=1, const Index in_col_stride=1, const PaddingType padding_type=PADDING_SAME, const Scalar padding_value=Scalar(0)) const
Definition: TensorBase.h:690
Eigen::TensorBase< Derived, ReadOnlyAccessors >::zeta
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_zeta_op< Scalar >, const Derived, const OtherDerived > zeta(const OtherDerived &other) const
Definition: TensorBase.h:155
cwiseMin
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE CwiseBinaryOp< internal::scalar_min_op< Scalar, Scalar >, const Derived, const OtherDerived > cwiseMin(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
Definition: MatrixCwiseBinaryOps.h:78
Eigen::internal::scalar_tanh_op
Definition: UnaryFunctors.h:499
Eigen::TensorPatchOp
Definition: TensorForwardDeclarations.h:44
Eigen::TensorBase::operator-=
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator-=(const OtherDerived &other)
Definition: TensorBase.h:873
Eigen::TensorBase::stridedSlice
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorStridingSlicingOp< const StartIndices, const StopIndices, const Strides, Derived > stridedSlice(const StartIndices &startIndices, const StopIndices &stopIndices, const Strides &strides)
Definition: TensorBase.h:937
Eigen::TensorBase< Derived, ReadOnlyAccessors >::cumsum
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorScanSumOp cumsum(const Index &axis, bool exclusive=false) const
Definition: TensorBase.h:507
Eigen::TensorBase< Derived, ReadOnlyAccessors >::unaryExpr
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< CustomUnaryOp, const Derived > unaryExpr(const CustomUnaryOp &func) const
Definition: TensorBase.h:73
Eigen::TensorBase::stride
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorStridingOp< const Strides, const Derived > stride(const Strides &strides) const
Definition: TensorBase.h:988
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator!=
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_cmp_op< Scalar, Scalar, internal::cmp_NEQ >, const Derived, const OtherDerived > operator!=(const OtherDerived &other) const
Definition: TensorBase.h:420
Eigen::internal::scalar_zeta_op
Definition: ForwardDeclarations.h:218
Eigen::internal::bind2nd_op
Definition: BinaryFunctors.h:452
Eigen::TensorBase< Derived, ReadOnlyAccessors >::inverse
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_inverse_op< Scalar >, const Derived > inverse() const
Definition: TensorBase.h:116
Eigen::TensorBase< Derived, ReadOnlyAccessors >::TensorScanProdOp
TensorScanOp< internal::ProdReducer< CoeffReturnType >, const Derived > TensorScanProdOp
Definition: TensorBase.h:511
Eigen::TensorBase< Derived, ReadOnlyAccessors >::reduce
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReductionOp< Reducer, const Dims, const Derived > reduce(const Dims &dims, const Reducer &reducer) const
Definition: TensorBase.h:666
Eigen::TensorBase::slice
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorSlicingOp< const StartIndices, const Sizes, const Derived > slice(const StartIndices &startIndices, const Sizes &sizes) const
Definition: TensorBase.h:920
Eigen::TensorBase::setZero
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & setZero()
Definition: TensorBase.h:842
Eigen::TensorBase< Derived, ReadOnlyAccessors >::real
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseUnaryOp< internal::scalar_real_op< Scalar >, const Derived > real() const
Definition: TensorBase.h:222
Eigen::TensorVolumePatchOp
Definition: TensorForwardDeclarations.h:46
Eigen::TensorBase::swap_layout
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorLayoutSwapOp< const Derived > swap_layout() const
Definition: TensorBase.h:887
Eigen::internal::scalar_igamma_op
Definition: ForwardDeclarations.h:216
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator!=
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_cmp_op< Scalar, Scalar, internal::cmp_NEQ >, const Derived, const TensorCwiseNullaryOp< internal::scalar_constant_op< Scalar >, const Derived > > operator!=(Scalar threshold) const
Definition: TensorBase.h:452
Eigen::NumTraits
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:150
Eigen::TensorBase< Derived, ReadOnlyAccessors >::cast
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorConversionOp< NewType, const Derived > cast() const
Definition: TensorBase.h:306
Eigen::internal::AndReducer
Definition: TensorFunctors.h:348
Eigen::TensorBase< Derived, ReadOnlyAccessors >::fft
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorFFTOp< const FFT, const Derived, FFTDataType, FFTDirection > fft(const FFT &fft) const
Definition: TensorBase.h:499
Eigen::half_impl::isnan
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool() isnan(const half &a)
Definition: Half.h:434
Eigen::TensorBase< Derived, ReadOnlyAccessors >::argmin
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorTupleReducerOp< internal::ArgMinTupleReducer< Tuple< Index, CoeffReturnType > >, const array< Index, 1 >, const Derived > argmin(const int return_dim) const
Definition: TensorBase.h:655
Eigen::TensorIndexTupleOp
Definition: TensorArgMax.h:53
Eigen::TensorBase::Scalar
DerivedTraits::Scalar Scalar
Definition: TensorBase.h:832
Eigen::internal::scalar_conjugate_op
Definition: UnaryFunctors.h:109
Eigen::TensorBase< Derived, ReadOnlyAccessors >::prod
const TensorReductionOp< internal::ProdReducer< CoeffReturnType >, const DimensionList< Index, NumDimensions >, const Derived > prod() const
Definition: TensorBase.h:557
Eigen::internal::MaxReducer
Definition: TensorFunctors.h:221
Eigen::internal::ProdReducer
Definition: TensorFunctors.h:303
Eigen::internal::UniformRandomGenerator
Definition: TensorRandom.h:142
Eigen::TensorBase< Derived, ReadOnlyAccessors >::all
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorReductionOp< internal::AndReducer, const Dims, const TensorConversionOp< bool, const Derived > > all(const Dims &dims) const
Definition: TensorBase.h:588
Eigen::Index
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:33
Eigen::TensorBase< Derived, ReadOnlyAccessors >::operator>=
EIGEN_DEVICE_FUNC const EIGEN_STRONG_INLINE TensorCwiseBinaryOp< internal::scalar_cmp_op< Scalar, Scalar, internal::cmp_GE >, const Derived, const OtherDerived > operator>=(const OtherDerived &other) const
Definition: TensorBase.h:408
Eigen::internal::scalar_digamma_op
Definition: ForwardDeclarations.h:213
Eigen::TensorBase::derived
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & derived()
Definition: TensorBase.h:1005


control_box_rst
Author(s): Christoph Rösmann
autogenerated on Wed Mar 2 2022 00:06:35