11 #ifndef MSHADOW_EXPR_SCALAR_INL_H_ 12 #define MSHADOW_EXPR_SCALAR_INL_H_ 14 #undef MSHADOW_EXPR_SCALAR_INL_H_ 20 template<
typename TA,
typename TB,
bool ltrans,
bool rtrans>
21 inline DotExp<TA, TB, ltrans, rtrans, MSHADOW_SCALAR_>
24 return DotExp<TA, TB, ltrans, rtrans,
28 template<
typename TA,
typename TB,
bool ltrans,
bool rtrans>
32 return DotExp<TA, TB, ltrans, rtrans,
37 template<
typename E,
typename DType,
typename R,
int d>
43 template<
typename E,
typename DType,
typename R,
int d>
50 template<
typename OP,
typename TA,
int ta>
54 return MakeExp<OP>(lhs, rhs);
57 template<
typename OP,
typename TB,
int tb>
61 return MakeExp<OP>(lhs, rhs);
67 F(
const ScalarExp<MSHADOW_SCALAR_> &lhs,
const ScalarExp<MSHADOW_SCALAR_> &rhs) {
68 return MakeExp<OP>(lhs, rhs);
72 template<
typename TA,
int ta>
76 const ScalarExp<MSHADOW_SCALAR_> &rhs) {
77 return MakeExp<op::plus>(lhs, rhs);
80 template<
typename TA,
int ta>
84 const ScalarExp<MSHADOW_SCALAR_> &rhs) {
85 return MakeExp<op::minus>(lhs, rhs);
88 template<
typename TA,
int ta>
92 const ScalarExp<MSHADOW_SCALAR_> &rhs) {
93 return MakeExp<op::mul>(lhs, rhs);
96 template<
typename TA,
int ta>
100 const ScalarExp<MSHADOW_SCALAR_> &rhs) {
101 return MakeExp<op::div>(lhs, rhs);
105 template<
typename TB,
int tb>
108 operator+(
const ScalarExp<MSHADOW_SCALAR_> &lhs,
110 return MakeExp<op::plus>(lhs, rhs);
113 template<
typename TB,
int tb>
116 operator-(
const ScalarExp<MSHADOW_SCALAR_> &lhs,
118 return MakeExp<op::minus>(lhs, rhs);
121 template<
typename TB,
int tb>
124 operator*(
const ScalarExp<MSHADOW_SCALAR_> &lhs,
126 return MakeExp<op::mul>(lhs, rhs);
129 template<
typename TB,
int tb>
133 return MakeExp<op::div>(lhs, rhs);
137 inline BinaryMapExp<op::plus, ScalarExp<MSHADOW_SCALAR_>, ScalarExp<MSHADOW_SCALAR_>,
139 operator+(
const ScalarExp<MSHADOW_SCALAR_> &lhs,
140 const ScalarExp<MSHADOW_SCALAR_> &rhs) {
141 return MakeExp<op::plus>(lhs, rhs);
144 inline BinaryMapExp<op::minus, ScalarExp<MSHADOW_SCALAR_>, ScalarExp<MSHADOW_SCALAR_>,
146 operator-(
const ScalarExp<MSHADOW_SCALAR_> &lhs,
147 const ScalarExp<MSHADOW_SCALAR_> &rhs) {
148 return MakeExp<op::minus>(lhs, rhs);
151 inline BinaryMapExp<op::mul, ScalarExp<MSHADOW_SCALAR_>, ScalarExp<MSHADOW_SCALAR_>,
153 operator*(
const ScalarExp<MSHADOW_SCALAR_> &lhs,
154 const ScalarExp<MSHADOW_SCALAR_> &rhs) {
155 return MakeExp<op::mul>(lhs, rhs);
158 inline BinaryMapExp<op::div, ScalarExp<MSHADOW_SCALAR_>, ScalarExp<MSHADOW_SCALAR_>,
160 operator/(
const ScalarExp<MSHADOW_SCALAR_> &lhs,
const ScalarExp<MSHADOW_SCALAR_> &rhs) {
161 return MakeExp<op::div>(lhs, rhs);
165 #endif // MSHADOW_EXPR_SCALAR_INL_H_ const int kMapper
expression contains element-wise tensor operations, map a expression to same shape ...
Definition: expression.h:32
const SrcExp & src_
source operand
Definition: reduceto1d.h:27
binary map expression lhs [op] rhs
Definition: expression.h:316
DType scale_
source operand, scale of the
Definition: reduceto1d.h:29
#define MSHADOW_SCALAR_
Definition: tensor.h:1078
const TB & rhs_
right operand
Definition: expression.h:211
reduction to 1 dimension tensor input: Tensor<Device,k>: ishape output: Tensor<Device,1> shape[0] = ishape[dimkeep];
Definition: reduceto1d.h:23
BinaryMapExp< OP, TA, ScalarExp< MSHADOW_SCALAR_ >, MSHADOW_SCALAR_,(ta|type::kMapper)> F(const Exp< TA, MSHADOW_SCALAR_, ta > &lhs, const ScalarExp< MSHADOW_SCALAR_ > &rhs)
operator overload for const
Definition: expr_scalar-inl.h:53
DType scale_
scale over result
Definition: expression.h:213
matrix multiplication expression dot(lhs[.T], rhs[.T])
Definition: expression.h:206
scalar expression
Definition: expression.h:77
defines how expression exp can be evaluated and stored into dst
Definition: expression.h:61
const TA & lhs_
left operand
Definition: expression.h:209
namespace for mshadow
Definition: base.h:282
DotExp< TA, TB, ltrans, rtrans, MSHADOW_SCALAR_ > operator*(const DotExp< TA, TB, ltrans, rtrans, MSHADOW_SCALAR_ > &lhs, MSHADOW_SCALAR_ rhs)
dot operator def
Definition: expr_scalar-inl.h:22