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
293  EIGEN_STRONG_INLINE const TensorCwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const TensorCwiseNullaryOp<internal::scalar_constant_op<Scalar>, const Derived> >
294  cwiseMax(Scalar threshold) const {
295  return cwiseMax(constant(threshold));
296  }
297 
298  EIGEN_DEVICE_FUNC
299  EIGEN_STRONG_INLINE const TensorCwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const TensorCwiseNullaryOp<internal::scalar_constant_op<Scalar>, const Derived> >
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
426  EIGEN_STRONG_INLINE const TensorCwiseBinaryOp<internal::scalar_cmp_op<Scalar, Scalar, internal::cmp_LT>, const Derived, const TensorCwiseNullaryOp<internal::scalar_constant_op<Scalar>, const Derived> >
427  operator<(Scalar threshold) const {
428  return operator<(constant(threshold));
429  }
430  EIGEN_DEVICE_FUNC
431  EIGEN_STRONG_INLINE const TensorCwiseBinaryOp<internal::scalar_cmp_op<Scalar, Scalar, internal::cmp_LE>, const Derived, const TensorCwiseNullaryOp<internal::scalar_constant_op<Scalar>, const Derived> >
432  operator<=(Scalar threshold) const {
433  return operator<=(constant(threshold));
434  }
435  EIGEN_DEVICE_FUNC
436  EIGEN_STRONG_INLINE const TensorCwiseBinaryOp<internal::scalar_cmp_op<Scalar, Scalar, internal::cmp_GT>, const Derived, const TensorCwiseNullaryOp<internal::scalar_constant_op<Scalar>, const Derived> >
437  operator>(Scalar threshold) const {
438  return operator>(constant(threshold));
439  }
440  EIGEN_DEVICE_FUNC
441  EIGEN_STRONG_INLINE const TensorCwiseBinaryOp<internal::scalar_cmp_op<Scalar, Scalar, internal::cmp_GE>, const Derived, const TensorCwiseNullaryOp<internal::scalar_constant_op<Scalar>, const Derived> >
442  operator>=(Scalar threshold) const {
443  return operator>=(constant(threshold));
444  }
445  EIGEN_DEVICE_FUNC
446  EIGEN_STRONG_INLINE const TensorCwiseBinaryOp<internal::scalar_cmp_op<Scalar, Scalar, internal::cmp_EQ>, const Derived, const TensorCwiseNullaryOp<internal::scalar_constant_op<Scalar>, const Derived> >
447  operator==(Scalar threshold) const {
448  return operator==(constant(threshold));
449  }
450  EIGEN_DEVICE_FUNC
451  EIGEN_STRONG_INLINE const TensorCwiseBinaryOp<internal::scalar_cmp_op<Scalar, Scalar, internal::cmp_NEQ>, const Derived, const TensorCwiseNullaryOp<internal::scalar_constant_op<Scalar>, const Derived> >
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 {
529  return TensorReductionOp<internal::SumReducer<CoeffReturnType>, const Dims, const Derived>(derived(), dims, internal::SumReducer<CoeffReturnType>());
530  }
531 
532  const TensorReductionOp<internal::SumReducer<CoeffReturnType>, const DimensionList<Index, NumDimensions>, const Derived>
533  sum() const {
534  DimensionList<Index, NumDimensions> in_dims;
535  return TensorReductionOp<internal::SumReducer<CoeffReturnType>, const DimensionList<Index, NumDimensions>, const Derived>(derived(), in_dims, internal::SumReducer<CoeffReturnType>());
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 {
541  return TensorReductionOp<internal::MeanReducer<CoeffReturnType>, const Dims, const Derived>(derived(), dims, internal::MeanReducer<CoeffReturnType>());
542  }
543 
544  const TensorReductionOp<internal::MeanReducer<CoeffReturnType>, const DimensionList<Index, NumDimensions>, const Derived>
545  mean() const {
546  DimensionList<Index, NumDimensions> in_dims;
547  return TensorReductionOp<internal::MeanReducer<CoeffReturnType>, const DimensionList<Index, NumDimensions>, const Derived>(derived(), in_dims, internal::MeanReducer<CoeffReturnType>());
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 {
553  return TensorReductionOp<internal::ProdReducer<CoeffReturnType>, const Dims, const Derived>(derived(), dims, internal::ProdReducer<CoeffReturnType>());
554  }
555 
556  const TensorReductionOp<internal::ProdReducer<CoeffReturnType>, const DimensionList<Index, NumDimensions>, const Derived>
557  prod() const {
558  DimensionList<Index, NumDimensions> in_dims;
559  return TensorReductionOp<internal::ProdReducer<CoeffReturnType>, const DimensionList<Index, NumDimensions>, const Derived>(derived(), in_dims, internal::ProdReducer<CoeffReturnType>());
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 {
565  return TensorReductionOp<internal::MaxReducer<CoeffReturnType>, const Dims, const Derived>(derived(), dims, internal::MaxReducer<CoeffReturnType>());
566  }
567 
568  const TensorReductionOp<internal::MaxReducer<CoeffReturnType>, const DimensionList<Index, NumDimensions>, const Derived>
569  maximum() const {
570  DimensionList<Index, NumDimensions> in_dims;
571  return TensorReductionOp<internal::MaxReducer<CoeffReturnType>, const DimensionList<Index, NumDimensions>, const Derived>(derived(), in_dims, internal::MaxReducer<CoeffReturnType>());
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 {
577  return TensorReductionOp<internal::MinReducer<CoeffReturnType>, const Dims, const Derived>(derived(), dims, internal::MinReducer<CoeffReturnType>());
578  }
579 
580  const TensorReductionOp<internal::MinReducer<CoeffReturnType>, const DimensionList<Index, NumDimensions>, const Derived>
581  minimum() const {
582  DimensionList<Index, NumDimensions> in_dims;
583  return TensorReductionOp<internal::MinReducer<CoeffReturnType>, const DimensionList<Index, NumDimensions>, const Derived>(derived(), in_dims, internal::MinReducer<CoeffReturnType>());
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 {
595  DimensionList<Index, NumDimensions> in_dims;
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 {
608  DimensionList<Index, NumDimensions> in_dims;
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 {
617  array<Index, NumDimensions> in_dims;
618  for (int d = 0; d < NumDimensions; ++d) in_dims[d] = d;
619  return TensorTupleReducerOp<
620  internal::ArgMaxTupleReducer<Tuple<Index, CoeffReturnType> >,
621  const array<Index, NumDimensions>,
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 {
630  array<Index, NumDimensions> in_dims;
631  for (int d = 0; d < NumDimensions; ++d) in_dims[d] = d;
632  return TensorTupleReducerOp<
633  internal::ArgMinTupleReducer<Tuple<Index, CoeffReturnType> >,
634  const array<Index, NumDimensions>,
635  const Derived>(derived(), internal::ArgMinTupleReducer<Tuple<Index, CoeffReturnType> >(), -1, in_dims);
636  }
637 
638  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
639  const TensorTupleReducerOp<
640  internal::ArgMaxTupleReducer<Tuple<Index, CoeffReturnType> >,
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<
646  internal::ArgMaxTupleReducer<Tuple<Index, CoeffReturnType> >,
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<
653  internal::ArgMinTupleReducer<Tuple<Index, CoeffReturnType> >,
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<
659  internal::ArgMinTupleReducer<Tuple<Index, CoeffReturnType> >,
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 {
758  }
759  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
761  chip(const Index offset, const Index dim) const {
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 
829 class TensorBase : public TensorBase<Derived, ReadOnlyAccessors> {
830  public:
832  typedef typename DerivedTraits::Scalar Scalar;
833  typedef typename DerivedTraits::Index Index;
834  typedef Scalar CoeffReturnType;
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 {
946  }
947  template <Index DimId> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
949  chip(const Index offset) {
951  }
952 
953  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
955  chip(const Index offset, const Index dim) const {
957  }
958  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
960  chip(const Index offset, const Index 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_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator-=(const OtherDerived &other)
Definition: TensorBase.h:873
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorSlicingOp< const StartIndices, const Sizes, const Derived > slice(const StartIndices &startIndices, const Sizes &sizes) const
Definition: TensorBase.h:920
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_min_op< Scalar >, const Derived, const OtherDerived > cwiseMin(const OtherDerived &other) const
Definition: TensorBase.h:368
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator*=(const OtherDerived &other)
Definition: TensorBase.h:877
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorBroadcastingOp< const Broadcast, const Derived > broadcast(const Broadcast &broadcast) const
Definition: TensorBase.h:672
SCALAR Scalar
Definition: bench_gemm.cpp:33
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_round_op< Scalar >, const Derived > round() const
Definition: TensorBase.h:312
Tensor custom class.
#define EIGEN_STRONG_INLINE
Definition: Macros.h:494
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorChippingOp< DimId, Derived > chip(const Index offset)
Definition: TensorBase.h:949
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorConcatenationOp< const Axis, Derived, OtherDerived > concatenate(const OtherDerived &other, const Axis &axis)
Definition: TensorBase.h:903
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const 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_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseBinaryOp< CustomBinaryOp, const Derived, const OtherDerived > binaryExpr(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other, const CustomBinaryOp &func=CustomBinaryOp()) const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_quotient_op< Scalar >, const Derived, const OtherDerived > operator/(const OtherDerived &other) const
Definition: TensorBase.h:356
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_igamma_op< Scalar >, const Derived, const OtherDerived > igamma(const OtherDerived &other) const
Definition: TensorBase.h:141
Tensor custom class.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_floor_op< Scalar >, const Derived > floor() const
Definition: TensorBase.h:324
Tensor generator class.
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_DEVICE_FUNC EIGEN_STRONG_INLINE const Derived & derived() const
Definition: TensorBase.h:1007
bool operator<(const benchmark_t &b1, const benchmark_t &b2)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCustomBinaryOp< const CustomBinaryFunc, const Derived, const OtherDerived > customOp(const OtherDerived &other, const CustomBinaryFunc &op) const
Definition: TensorBase.h:810
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorStridingSlicingOp< const StartIndices, const StopIndices, const Strides, const Derived > stridedSlice(const StartIndices &startIndices, const StopIndices &stopIndices, const Strides &strides) const
Definition: TensorBase.h:931
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCustomUnaryOp< const CustomUnaryFunc, const Derived > customOp(const CustomUnaryFunc &op) const
Definition: TensorBase.h:805
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator/=(const OtherDerived &other)
Definition: TensorBase.h:881
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorShufflingOp< const Shuffle, const Derived > shuffle(const Shuffle &shuffle) const
Definition: TensorBase.h:977
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseBinaryOp< internal::scalar_quotient_op< Scalar, typename OtherDerived::Scalar >, const Derived, const OtherDerived > operator/(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< CustomUnaryOp, const Derived > unaryExpr(const CustomUnaryOp &func) const
Definition: TensorBase.h:73
std::vector< Array2i > sizes
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReductionOp< internal::SumReducer< CoeffReturnType >, const Dims, const Derived > sum(const Dims &dims) const
Definition: TensorBase.h:528
const TensorReductionOp< internal::MaxReducer< CoeffReturnType >, const DimensionList< Index, NumDimensions >, const Derived > maximum() const
Definition: TensorBase.h:569
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_sign_op< Scalar >, const Derived > sign() const
Definition: TensorBase.h:92
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseNullaryOp< internal::scalar_constant_op< Scalar >, const Derived > constant(const Scalar &value) const
Definition: TensorBase.h:48
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_polygamma_op< Scalar >, const Derived, const OtherDerived > polygamma(const OtherDerived &other) const
Definition: TensorBase.h:162
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseNullaryOp< RandomGenerator, const Derived > random(const RandomGenerator &gen=RandomGenerator()) const
Definition: TensorBase.h:59
Tensor reshaping class.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const 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_DEVICE_FUNC EIGEN_STRONG_INLINE const 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_DEVICE_FUNC EIGEN_STRONG_INLINE const 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_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_exp_op< Scalar >, const Derived > exp() const
Definition: TensorBase.h:186
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & setRandom()
Definition: TensorBase.h:850
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 y set format x g set format y g set format x2 g set format y2 g set format z g set angles radians set nogrid set key title set key left top Right noreverse box linetype linewidth samplen spacing width set nolabel set noarrow set nologscale set logscale x set set pointsize set encoding default set nopolar set noparametric set set set set surface set nocontour set clabel set mapping cartesian set nohidden3d set cntrparam order set cntrparam linear set cntrparam levels auto set cntrparam points set size set set xzeroaxis lt lw set x2zeroaxis lt lw set yzeroaxis lt lw set y2zeroaxis lt lw set tics in set ticslevel set tics set mxtics default set mytics default set mx2tics default set my2tics default set xtics border mirror norotate autofreq set ytics border mirror norotate autofreq set ztics border nomirror norotate autofreq set nox2tics set noy2tics set timestamp bottom norotate offset
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & setRandom()
Definition: TensorBase.h:854
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorChippingOp< DimId, const Derived > chip(const Index offset) const
Definition: TensorBase.h:756
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorScanProdOp cumprod(const Index &axis, bool exclusive=false) const
Definition: TensorBase.h:514
Namespace containing all symbols from the Eigen library.
Definition: jet.h:637
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_inverse_op< Scalar >, const Derived > inverse() const
Definition: TensorBase.h:116
Scalar CoeffReturnType
Definition: TensorBase.h:834
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_square_op< Scalar >, const Derived > square() const
Definition: TensorBase.h:104
A cost model used to limit the number of threads used for evaluating tensor expression.
TensorDevice< Derived, DeviceType > device(const DeviceType &device)
Definition: TensorBase.h:999
Pseudo expression providing an operator = that will evaluate its argument on the specified computing ...
Definition: TensorDevice.h:27
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator>(const half &a, const half &b)
Definition: Half.h:313
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
Definition: NumTraits.h:150
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReductionOp< Reducer, const Dims, const Derived > reduce(const Dims &dims, const Reducer &reducer) const
Definition: TensorBase.h:666
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorForcedEvalOp< const Derived > eval() const
Definition: TensorBase.h:816
EIGEN_STRONG_INLINE const CwiseBinaryOp< internal::scalar_sum_op< typename DenseDerived::Scalar, typename SparseDerived::Scalar >, const DenseDerived, const SparseDerived > operator+(const MatrixBase< DenseDerived > &a, const SparseMatrixBase< SparseDerived > &b)
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
Definition: StaticAssert.h:124
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_sigmoid_op< Scalar >, const Derived > sigmoid() const
Definition: TensorBase.h:180
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorScanOp< Reducer, const Derived > scan(const Index &axis, const Reducer &reducer, bool exclusive=false) const
Definition: TensorBase.h:521
#define isfinite(X)
Definition: main.h:74
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorPaddingOp< const PaddingDimensions, const Derived > pad(const PaddingDimensions &padding, const Scalar padding_value) const
Definition: TensorBase.h:776
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorLayoutSwapOp< const Derived > swap_layout() const
Definition: TensorBase.h:735
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_cmp_op< Scalar, Scalar, internal::cmp_EQ >, const Derived, const OtherDerived > operator==(const OtherDerived &other) const
Definition: TensorBase.h:414
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_tanh_op< Scalar >, const Derived > tanh() const
Definition: TensorBase.h:122
#define isinf(X)
Definition: main.h:73
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator>=(const half &a, const half &b)
Definition: Half.h:316
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseBinaryOp< internal::scalar_min_op< Scalar, Scalar >, const Derived, const OtherDerived > cwiseMin(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const 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_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & derived()
Definition: TensorBase.h:1005
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReductionOp< internal::MeanReducer< CoeffReturnType >, const Dims, const Derived > mean(const Dims &dims) const
Definition: TensorBase.h:540
internal::traits< Derived > DerivedTraits
Definition: TensorBase.h:32
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const 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_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReductionOp< internal::OrReducer, const DimensionList< Index, NumDimensions >, const TensorConversionOp< bool, const Derived > > any() const
Definition: TensorBase.h:607
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorChippingOp< DimId, const Derived > chip(const Index offset) const
Definition: TensorBase.h:944
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_real_op< Scalar >, const Derived > real() const
Definition: TensorBase.h:222
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorReshapingOp< const NewDimensions, Derived > reshape(const NewDimensions &newDimensions)
Definition: TensorBase.h:914
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorChippingOp< Dynamic, Derived > chip(const Index offset, const Index dim)
Definition: TensorBase.h:960
const TensorReductionOp< internal::MinReducer< CoeffReturnType >, const DimensionList< Index, NumDimensions >, const Derived > minimum() const
Definition: TensorBase.h:581
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_boolean_xor_op, const Derived, const OtherDerived > operator^(const OtherDerived &other) const
Definition: TensorBase.h:386
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_sqrt_op< Scalar >, const Derived > sqrt() const
Definition: TensorBase.h:86
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_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorShufflingOp< const Shuffle, const Derived > shuffle(const Shuffle &shuffle) const
Definition: TensorBase.h:781
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReductionOp< internal::MaxReducer< CoeffReturnType >, const Dims, const Derived > maximum(const Dims &dims) const
Definition: TensorBase.h:564
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorTupleReducerOp< internal::ArgMaxTupleReducer< Tuple< Index, CoeffReturnType > >, const array< Index, 1 >, const Derived > argmax(const int return_dim) const
Definition: TensorBase.h:642
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_erf_op< Scalar >, const Derived > erf() const
Definition: TensorBase.h:168
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_product_op< Scalar >, const Derived, const OtherDerived > operator*(const OtherDerived &other) const
Definition: TensorBase.h:350
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_cmp_op< Scalar, Scalar, internal::cmp_GE >, const Derived, const OtherDerived > operator>=(const OtherDerived &other) const
Definition: TensorBase.h:408
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_abs_op< Scalar >, const Derived > abs() const
Definition: TensorBase.h:204
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::bind2nd_op< internal::scalar_pow_op< Scalar, Scalar > >, const Derived > pow(Scalar exponent) const
Definition: TensorBase.h:216
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & setConstant(const Scalar &val)
Definition: TensorBase.h:846
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReductionOp< internal::ProdReducer< CoeffReturnType >, const Dims, const Derived > prod(const Dims &dims) const
Definition: TensorBase.h:552
DerivedTraits::Scalar Scalar
Definition: TensorBase.h:832
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const 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_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_zeta_op< Scalar >, const Derived, const OtherDerived > zeta(const OtherDerived &other) const
Definition: TensorBase.h:155
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorLayoutSwapOp< const Derived > swap_layout() const
Definition: TensorBase.h:887
EIGEN_DEVICE_FUNC const CwiseUnaryOp< CustomUnaryOp, const Derived > unaryExpr(const CustomUnaryOp &func=CustomUnaryOp()) const
Apply a unary operator coefficient-wise.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReverseOp< const ReverseDimensions, const Derived > reverse(const ReverseDimensions &rev) const
Definition: TensorBase.h:966
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorGeneratorOp< Generator, const Derived > generate(const Generator &generator) const
Definition: TensorBase.h:66
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorSlicingOp< const StartIndices, const Sizes, Derived > slice(const StartIndices &startIndices, const Sizes &sizes)
Definition: TensorBase.h:925
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReshapingOp< const NewDimensions, const Derived > reshape(const NewDimensions &newDimensions) const
Definition: TensorBase.h:909
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:33
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_digamma_op< Scalar >, const Derived > digamma() const
Definition: TensorBase.h:134
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReductionOp< internal::AndReducer, const DimensionList< Index, NumDimensions >, const TensorConversionOp< bool, const Derived > > all() const
Definition: TensorBase.h:594
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const 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
Tensor conversion class. This class makes it possible to vectorize type casting operations when the n...
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorConversionOp< NewType, const Derived > cast() const
Definition: TensorBase.h:306
EIGEN_STRONG_INLINE const CwiseBinaryOp< internal::scalar_difference_op< typename DenseDerived::Scalar, typename SparseDerived::Scalar >, const DenseDerived, const SparseDerived > operator-(const MatrixBase< DenseDerived > &a, const SparseMatrixBase< SparseDerived > &b)
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator<=(const half &a, const half &b)
Definition: Half.h:310
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_max_op< Scalar >, const Derived, const OtherDerived > cwiseMax(const OtherDerived &other) const
Definition: TensorBase.h:362
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorLayoutSwapOp< Derived > swap_layout()
Definition: TensorBase.h:892
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorScanSumOp cumsum(const Index &axis, bool exclusive=false) const
Definition: TensorBase.h:507
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorShufflingOp< const Shuffle, Derived > shuffle(const Shuffle &shuffle)
Definition: TensorBase.h:982
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< CustomBinaryOp, const Derived, const OtherDerived > binaryExpr(const OtherDerived &other, const CustomBinaryOp &func) const
Definition: TensorBase.h:331
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReshapingOp< const NewDimensions, const Derived > reshape(const NewDimensions &newDimensions) const
Definition: TensorBase.h:740
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorConvolutionOp< const Dimensions, const Derived, const KernelDerived > convolve(const KernelDerived &kernel, const Dimensions &dims) const
Definition: TensorBase.h:492
Signature operator%(const DiscreteKey &key, const string &parent)
Definition: Signature.cpp:213
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReductionOp< internal::MinReducer< CoeffReturnType >, const Dims, const Derived > minimum(const Dims &dims) const
Definition: TensorBase.h:576
EIGEN_DEVICE_FUNC const Product< MatrixDerived, PermutationDerived, AliasFreeProduct > operator*(const MatrixBase< MatrixDerived > &matrix, const PermutationBase< PermutationDerived > &permutation)
const TensorReductionOp< internal::SumReducer< CoeffReturnType >, const DimensionList< Index, NumDimensions >, const Derived > sum() const
Definition: TensorBase.h:533
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & operator+=(const OtherDerived &other)
Definition: TensorBase.h:869
The fixed sized version of the tensor class.
const mpreal dim(const mpreal &a, const mpreal &b, mp_rnd_t r=mpreal::get_default_rnd())
Definition: mpreal.h:2201
TensorScanOp< internal::ProdReducer< CoeffReturnType >, const Derived > TensorScanProdOp
Definition: TensorBase.h:511
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_log_op< Scalar >, const Derived > log() const
Definition: TensorBase.h:192
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_igammac_op< Scalar >, const Derived, const OtherDerived > igammac(const OtherDerived &other) const
Definition: TensorBase.h:148
The tensor base class.
Definition: TensorBase.h:829
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_boolean_or_op, const Derived, const OtherDerived > operator||(const OtherDerived &other) const
Definition: TensorBase.h:380
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorStridingOp< const Strides, const Derived > stride(const Strides &strides) const
Definition: TensorBase.h:988
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseNullaryOp< CustomNullaryOp, const Derived > nullaryExpr(const CustomNullaryOp &func) const
Definition: TensorBase.h:41
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorChippingOp< Dynamic, const Derived > chip(const Index offset, const Index dim) const
Definition: TensorBase.h:761
int func(const int &a)
Definition: testDSF.cpp:225
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_imag_op< Scalar >, const Derived > imag() const
Definition: TensorBase.h:228
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorSlicingOp< const StartIndices, const Sizes, const Derived > slice(const StartIndices &startIndices, const Sizes &sizes) const
Definition: TensorBase.h:745
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const 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
internal::remove_const< Scalar >::type CoeffReturnType
Definition: TensorBase.h:35
const TensorReductionOp< internal::ProdReducer< CoeffReturnType >, const DimensionList< Index, NumDimensions >, const Derived > prod() const
Definition: TensorBase.h:557
TensorScanOp< internal::SumReducer< CoeffReturnType >, const Derived > TensorScanSumOp
Definition: TensorBase.h:504
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReductionOp< internal::OrReducer, const Dims, const TensorConversionOp< bool, const Derived > > any(const Dims &dims) const
Definition: TensorBase.h:601
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_conjugate_op< Scalar >, const Derived > conjugate() const
Definition: TensorBase.h:210
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_cmp_op< Scalar, Scalar, internal::cmp_GT >, const Derived, const OtherDerived > operator>(const OtherDerived &other) const
Definition: TensorBase.h:403
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_difference_op< Scalar >, const Derived, const OtherDerived > operator-(const OtherDerived &other) const
Definition: TensorBase.h:344
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_rsqrt_op< Scalar >, const Derived > rsqrt() const
Definition: TensorBase.h:98
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_cube_op< Scalar >, const Derived > cube() const
Definition: TensorBase.h:110
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_cmp_op< Scalar, Scalar, internal::cmp_NEQ >, const Derived, const OtherDerived > operator!=(const OtherDerived &other) const
Definition: TensorBase.h:420
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorInflationOp< const Strides, const Derived > inflate(const Strides &strides) const
Definition: TensorBase.h:791
const mpreal random(unsigned int seed=0)
Definition: mpreal.h:2614
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Derived & derived() const
Definition: TensorBase.h:825
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorTupleReducerOp< internal::ArgMinTupleReducer< Tuple< Index, CoeffReturnType > >, const array< Index, 1 >, const Derived > argmin(const int return_dim) const
Definition: TensorBase.h:655
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorPaddingOp< const PaddingDimensions, const Derived > pad(const PaddingDimensions &padding) const
Definition: TensorBase.h:771
DerivedTraits::Index Index
Definition: TensorBase.h:833
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorFFTOp< const FFT, const Derived, FFTDataType, FFTDirection > fft(const FFT &fft) const
Definition: TensorBase.h:499
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorIndexTupleOp< const Derived > index_tuples() const
Definition: TensorBase.h:798
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorTupleReducerOp< internal::ArgMaxTupleReducer< Tuple< Index, CoeffReturnType > >, const array< Index, NumDimensions >, const Derived > argmax() const
Definition: TensorBase.h:616
const TensorReductionOp< internal::MeanReducer< CoeffReturnType >, const DimensionList< Index, NumDimensions >, const Derived > mean() const
Definition: TensorBase.h:545
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorContractionOp< const Dimensions, const Derived, const OtherDerived > contract(const OtherDerived &other, const Dimensions &dims) const
Definition: TensorBase.h:485
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_ceil_op< Scalar >, const Derived > ceil() const
Definition: TensorBase.h:318
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_sum_op< Scalar >, const Derived, const OtherDerived > operator+(const OtherDerived &other) const
Definition: TensorBase.h:338
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseBinaryOp< internal::scalar_boolean_and_op, const Derived, const OtherDerived > operator&&(const OtherDerived &other) const
Definition: TensorBase.h:374
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_log1p_op< Scalar >, const Derived > log1p() const
Definition: TensorBase.h:198
internal::nested_eval< T, 1 >::type eval(const T &xpr)
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_lgamma_op< Scalar >, const Derived > lgamma() const
Definition: TensorBase.h:128
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorSelectOp< const Derived, const ThenDerived, const ElseDerived > select(const ThenDerived &thenTensor, const ElseDerived &elseTensor) const
Definition: TensorBase.h:476
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const 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_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorConcatenationOp< const Axis, const Derived, const OtherDerived > concatenate(const OtherDerived &other, const Axis &axis) const
Definition: TensorBase.h:898
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorStridingOp< const Strides, Derived > stride(const Strides &strides)
Definition: TensorBase.h:993
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_opposite_op< Scalar >, const Derived > operator-() const
Definition: TensorBase.h:80
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_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseNullaryOp< internal::UniformRandomGenerator< Scalar >, const Derived > random() const
Definition: TensorBase.h:54
Tensor concatenation class.
internal::traits< Derived > DerivedTraits
Definition: TensorBase.h:831
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const 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
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorReverseOp< const ReverseDimensions, Derived > reverse(const ReverseDimensions &rev)
Definition: TensorBase.h:971
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorConcatenationOp< Axis, const Derived, const OtherDerived > concatenate(const OtherDerived &other, Axis axis) const
Definition: TensorBase.h:678
static const int NumDimensions
Definition: TensorBase.h:835
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorCwiseUnaryOp< internal::scalar_erfc_op< Scalar >, const Derived > erfc() const
Definition: TensorBase.h:174
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorStridingOp< const Strides, const Derived > stride(const Strides &strides) const
Definition: TensorBase.h:786
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived & setZero()
Definition: TensorBase.h:842
The tensor class.
Definition: Tensor.h:63
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReverseOp< const ReverseDimensions, const Derived > reverse(const ReverseDimensions &rev) const
Definition: TensorBase.h:766
#define isnan(X)
Definition: main.h:72
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseBinaryOp< internal::scalar_max_op< Scalar, Scalar >, const Derived, const OtherDerived > cwiseMax(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
broadcast_trivial broadcast(const std::array< buffer_info, N > &buffers, ssize_t &ndim, std::vector< ssize_t > &shape)
Definition: numpy.h:1398
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorReductionOp< internal::AndReducer, const Dims, const TensorConversionOp< bool, const Derived > > all(const Dims &dims) const
Definition: TensorBase.h:588
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorChippingOp< Dynamic, const Derived > chip(const Index offset, const Index dim) const
Definition: TensorBase.h:955
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorPatchOp< const PatchDims, const Derived > extract_patches(const PatchDims &patch_dims) const
Definition: TensorBase.h:684
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const TensorTupleReducerOp< internal::ArgMinTupleReducer< Tuple< Index, CoeffReturnType > >, const array< Index, NumDimensions >, const Derived > argmin() const
Definition: TensorBase.h:629


gtsam
Author(s):
autogenerated on Sat May 8 2021 02:45:12