Apache SINGA
A distributed deep learning platform .
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Macros
Classes | Namespaces | Functions | Variables
tensor_expr.h File Reference

definitions of abstract expressions and expressions template More...

#include "tensor_base.h"

Go to the source code of this file.

Classes

struct  mshadow::expr::ExpEngine< Saver, Container >
 expression engine that actually interprets these expressions this is a function template that needed to be implemented for specific expressions More...
 
class  mshadow::expr::ContainerExp< Container >
 base class of all variables, that can be assigned to values More...
 
struct  mshadow::expr::Exp< SubType, exp_type >
 base class for expression More...
 
struct  mshadow::expr::ScalarExp
 scalar expression More...
 
struct  mshadow::expr::TransposeExp< EType >
 represent a transpose expression of a container More...
 
class  mshadow::expr::ContainerExp< Container >
 base class of all variables, that can be assigned to values More...
 
struct  mshadow::expr::DotExp< TA, TB, ltrans, rtrans >
 matrix multiplication expression dot( lhs[.T], rhs[.T] ) More...
 
struct  mshadow::expr::BinaryMapExp< OP, TA, TB, etype >
 binary map expression lhs [op] rhs More...
 
struct  mshadow::expr::UnaryMapExp< OP, TA, etype >
 unary map expression op(src) More...
 

Namespaces

 mshadow
 namespace for mshadow
 
 mshadow::expr
 namespace for abstract expressions and expressions template, have no dependecy on tensor.h, These data structure takes no charge in computations, they are only used to define operations and represent expression in a symbolic way
 
 mshadow::expr::type
 type of expressions
 

Functions

template<typename TA , typename TB >
DotExp< TA, TB, false, false > mshadow::expr::dot (const ContainerExp< TA > &lhs, const ContainerExp< TB > &rhs)
 dot operator def
 
template<typename TA , typename TB >
DotExp< TA, TB, true, false > mshadow::expr::dot (const TransposeExp< TA > &lhs, const ContainerExp< TB > &rhs)
 dot operator def
 
template<typename TA , typename TB >
DotExp< TA, TB, false, true > mshadow::expr::dot (const ContainerExp< TA > &lhs, const TransposeExp< TB > &rhs)
 dot operator def
 
template<typename TA , typename TB >
DotExp< TA, TB, true, true > mshadow::expr::dot (const TransposeExp< TA > &lhs, const TransposeExp< TB > &rhs)
 dot operator def
 
template<typename TA , typename TB , bool ltrans, bool rtrans>
DotExp< TA, TB, ltrans, rtrans > mshadow::expr::operator* (const DotExp< TA, TB, ltrans, rtrans > &lhs, real_t rhs)
 dot operator def
 
template<typename TA , typename TB , bool ltrans, bool rtrans>
DotExp< TA, TB, ltrans, rtrans > mshadow::expr::operator* (real_t lhs, const DotExp< TA, TB, ltrans, rtrans > &rhs)
 scale of dot operation
 
template<typename OP , typename TA , typename TB , int ta, int tb>
BinaryMapExp< OP, TA, TB,(ta|tb|type::kMapper) > mshadow::expr::MakeExp (const Exp< TA, ta > &lhs, const Exp< TB, tb > &rhs)
 make expression
 
template<typename OP , typename TA , typename TB , int ta, int tb>
BinaryMapExp< OP, TA, TB,(ta|tb|type::kMapper) > mshadow::expr::F (const Exp< TA, ta > &lhs, const Exp< TB, tb > &rhs)
 short hand for MakeExp, usage F<op>(lhs, rhs). create a binary operation expression More...
 
template<typename OP , typename TA , int ta>
BinaryMapExp< OP, TA,
ScalarExp,(ta|type::kMapper) > 
mshadow::expr::F (const Exp< TA, ta > &lhs, const ScalarExp &rhs)
 operator overload for const
 
template<typename OP , typename TB , int tb>
BinaryMapExp< OP, ScalarExp,
TB,(tb|type::kMapper) > 
mshadow::expr::F (const ScalarExp &lhs, const Exp< TB, tb > &rhs)
 operator overload for const
 
template<typename TA , typename TB , int ta, int tb>
BinaryMapExp< op::plus, TA, TB,(ta|tb|type::kMapper) > mshadow::expr::operator+ (const Exp< TA, ta > &lhs, const Exp< TB, tb > &rhs)
 operator overload
 
template<typename TA , typename TB , int ta, int tb>
BinaryMapExp< op::minus, TA,
TB,(ta|tb|type::kMapper) > 
mshadow::expr::operator- (const Exp< TA, ta > &lhs, const Exp< TB, tb > &rhs)
 operator overload
 
template<typename TA , typename TB , int ta, int tb>
BinaryMapExp< op::mul, TA, TB,(ta|tb|type::kMapper) > mshadow::expr::operator* (const Exp< TA, ta > &lhs, const Exp< TB, tb > &rhs)
 operator overload
 
template<typename TA , typename TB , int ta, int tb>
BinaryMapExp< op::div, TA, TB,(ta|tb|type::kMapper) > mshadow::expr::operator/ (const Exp< TA, ta > &lhs, const Exp< TB, tb > &rhs)
 operator overload
 
template<typename TA , int ta>
BinaryMapExp< op::plus, TA,
ScalarExp,(ta|type::kMapper) > 
mshadow::expr::operator+ (const Exp< TA, ta > &lhs, const ScalarExp &rhs)
 operator overload
 
template<typename TA , int ta>
BinaryMapExp< op::minus, TA,
ScalarExp,(ta|type::kMapper) > 
mshadow::expr::operator- (const Exp< TA, ta > &lhs, const ScalarExp &rhs)
 operator overload
 
template<typename TA , int ta>
BinaryMapExp< op::mul, TA,
ScalarExp,(ta|type::kMapper) > 
mshadow::expr::operator* (const Exp< TA, ta > &lhs, const ScalarExp &rhs)
 operator overload
 
template<typename TA , int ta>
BinaryMapExp< op::div, TA,
ScalarExp,(ta|type::kMapper) > 
mshadow::expr::operator/ (const Exp< TA, ta > &lhs, const ScalarExp &rhs)
 operator overload
 
template<typename TB , int tb>
BinaryMapExp< op::plus,
ScalarExp, TB,(tb|type::kMapper) > 
mshadow::expr::operator+ (const ScalarExp &lhs, const Exp< TB, tb > &rhs)
 operator overload
 
template<typename TB , int tb>
BinaryMapExp< op::minus,
ScalarExp, TB,(tb|type::kMapper) > 
mshadow::expr::operator- (const ScalarExp &lhs, const Exp< TB, tb > &rhs)
 operator overload
 
template<typename TB , int tb>
BinaryMapExp< op::mul,
ScalarExp, TB,(tb|type::kMapper) > 
mshadow::expr::operator* (const ScalarExp &lhs, const Exp< TB, tb > &rhs)
 operator overload
 
template<typename TB , int tb>
BinaryMapExp< op::div,
ScalarExp, TB,(tb|type::kMapper) > 
mshadow::expr::operator/ (const ScalarExp &lhs, const Exp< TB, tb > &rhs)
 operator overload
 
template<typename OP , typename TA , int ta>
UnaryMapExp< OP, TA,(ta|type::kMapper) > mshadow::expr::MakeExp (const Exp< TA, ta > &src)
 make expression
 
template<typename OP , typename TA , int ta>
UnaryMapExp< OP, TA,(ta|type::kMapper) > mshadow::expr::F (const Exp< TA, ta > &src)
 short hand for MakeExp, usage F<op>(src), create a unary operation expression More...
 

Variables

const int mshadow::expr::type::kContainer = 0
 this expression directly correspnds to a data class
 
const int mshadow::expr::type::kMapper = 1
 this only contains element-wise vector operations
 
const int mshadow::expr::type::kComplex = 3
 othercase: e.g dot product
 

Detailed Description

definitions of abstract expressions and expressions template

Author
Tianqi Chen, Bing Xu