7 #ifndef MSHADOW_EXTENSION_REDUCETO1D_H_ 8 #define MSHADOW_EXTENSION_REDUCETO1D_H_ 9 #include "../extension.h" 22 template<
typename SrcExp,
typename DType,
typename Reducer,
int m_dimkeep>
24 public Exp<ReduceTo1DExp<SrcExp, DType, Reducer, m_dimkeep>,
25 DType, type::kComplex> {
31 ReduceTo1DExp(
const SrcExp& src, DType scale) : src_(src), scale_(scale) {}
41 template<
int dimkeep,
typename SrcExp,
typename DType,
int etype>
56 template<
int dimkeep,
typename Reducer,
typename SrcExp,
typename DType,
int etype>
70 template<
typename SrcExp,
typename DType,
int etype>
74 ::Error_Expression_Does_Not_Meet_Dimension_Req();
75 return sumall_except_dim<1>(exp);
77 template<
typename SV,
typename Device,
typename DType,
78 typename SrcExp,
typename Reducer,
int m_dimkeep>
86 Reducer, m_dimkeep> &exp) {
89 MapReduceKeepHighDim<SV, Reducer, dimkeep>(dst, exp.src_, exp.scale_);
92 template<
typename SV,
typename Device,
typename DType,
93 typename SrcExp,
typename Reducer>
99 MapReduceKeepLowest<SV, Reducer>(dst, exp.
src_, exp.
scale_);
104 #endif // MSHADOW_EXTENSION_REDUCETO1D_H_ static void Eval(Tensor< Device, 1, DType > *dst, const ReduceTo1DExp< SrcExp, DType, Reducer, m_dimkeep > &exp)
Definition: reduceto1d.h:84
const SrcExp & src_
source operand
Definition: reduceto1d.h:27
ReduceTo1DExp(const SrcExp &src, DType scale)
construct a repmat expression from src and nrow
Definition: reduceto1d.h:31
used to help static type check
Definition: expr_engine-inl.h:312
ReduceTo1DExp< SrcExp, DType, Reducer, ExpInfo< SrcExp >::kDim-dimkeep > reduce_except_dim(const Exp< SrcExp, DType, etype > &exp)
reduce over all dimensions, except dimkeep
Definition: reduceto1d.h:59
DType scale_
source operand, scale of the
Definition: reduceto1d.h:29
reduction to 1 dimension tensor input: Tensor<Device,k>: ishape output: Tensor<Device,1> shape[0] = ishape[dimkeep];
Definition: reduceto1d.h:23
static type inference template, used to get the dimension of each expression, if ExpInfo<E>::kDim == ...
Definition: expr_engine-inl.h:244
static void Eval(Tensor< Device, 1, DType > *dst, const ReduceTo1DExp< SrcExp, DType, Reducer, 1 > &exp)
Definition: reduceto1d.h:97
some engine that evaluate complex expression
Definition: expr_engine-inl.h:437
sum reducer
Definition: base.h:816
defines how expression exp can be evaluated and stored into dst
Definition: expression.h:61
const SubType & self(void) const
Definition: expression.h:64
namespace for mshadow
Definition: base.h:282
general tensor
Definition: tensor.h:402
ReduceTo1DExp< SrcExp, DType, red::sum, 1 > sum_rows(const Exp< SrcExp, DType, etype > &exp)
a expression that sum over rows of a matrix
Definition: reduceto1d.h:72
ReduceTo1DExp< SrcExp, DType, red::sum, ExpInfo< SrcExp >::kDim-dimkeep > sumall_except_dim(const Exp< SrcExp, DType, etype > &exp)
a sum over all dimensions, except dimkeep
Definition: reduceto1d.h:44