BlackCat_Tensors
A GPU-supported autograd and linear algebra library, designed for neural network construction
Classes | Typedefs | Functions
bc::tensors::exprs::detail Namespace Reference

Classes

struct  bin_expr_factory
 
struct  bin_expr_factory< Add, Lv, Un_Op< Negation, Rv > >
 y + (-x) -> y - x More...
 
struct  bin_expr_factory< Add, Un_Op< Negation, Lv >, Un_Op< Negation, Rv > >
 (-y) + (-x) -> (-y) - x //specialized to handle ambiguous overload More...
 
struct  bin_expr_factory< Add_Assign, Lv, Un_Op< Negation, Rv > >
 y += (-x) -> y -= x More...
 
struct  bin_expr_factory< bc::oper::Scalar_Mul, Lv, Rv, std::enable_if_t< expression_traits< Lv >::is_blas_expression::value !=expression_traits< Rv >::is_blas_expression::value > >
 scalar * blas_op(a, b) -> blas_op(a * scalar, b) || blas_op(a, b * scalar) More...
 
struct  bin_expr_factory< Sub, Lv, Un_Op< Negation, Rv > >
 y - (-x) -> y + x More...
 
struct  bin_expr_factory< Sub, Un_Op< Negation, Lv >, Rv >
 (-y) + x -> x - y More...
 
struct  bin_expr_factory< Sub, Un_Op< Negation, Lv >, Un_Op< Negation, Rv > >
 (-y) - (-x) -> x - y //specialized to handle ambiguous overload More...
 
struct  bin_expr_factory< Sub_Assign, Lv, Un_Op< Negation, Rv > >
 y -= (-x) -> y += x More...
 
struct  remove_scalar_mul
 
struct  remove_scalar_mul< Bin_Op< oper::Scalar_Mul, lv, rv > >
 
struct  remove_transpose
 
struct  remove_transpose< Bin_Op< oper::Scalar_Mul, Lv, Un_Op< oper::transpose< SystemTag >, Array > > >
 
struct  remove_transpose< Bin_Op< oper::Scalar_Mul, Un_Op< oper::transpose< SystemTag >, Array >, Rv > >
 
struct  remove_transpose< Un_Op< oper::transpose< SystemTag >, Array > >
 

Typedefs

template<class T >
using query_system_tag = typename T::system_tag
 
template<class T >
using query_value_type = typename T::value_type
 
template<class T >
using query_allocation_type = typename T::allocation_type
 
template<class T >
using query_copy_assignable = typename T::copy_assignable
 
template<class T >
using query_copy_constructible = typename T::copy_constructible
 
template<class T >
using query_move_assignable = typename T::move_assignable
 
template<class T >
using query_move_constructible = typename T::move_constructible
 
template<class T >
using query_requires_greedy_evaluation = typename T::requires_greedy_evaluation
 
template<class T >
using query_stack_allocated = typename T::stack_allocated
 
template<class T >
using query_optimizer_temporary = typename T::optimizer_temporary
 
template<class T >
using query_expression_template_expression_type = typename T::expression_template_expression_type
 
template<class T >
using query_expression_template_array_type = typename T::expression_template_array_type
 
template<class T >
using query_is_view = typename T::is_view
 
template<class T >
using query_is_const_view = typename T::is_const_view
 
template<class T >
using query_is_temporary_value = typename T::is_temporary_value
 
template<class T >
using query_is_noncontinuous_in_memory = typename T::is_noncontinuous_in_memory
 
template<class T >
using query_is_view_type = typename T::is_view_type
 

Functions

template<class Op , class Lv , class Rv , class... Args>
BCHOT auto mk_bin_op (Lv left, Rv right, Args &&... args)
 

Typedef Documentation

◆ query_allocation_type

template<class T >
using bc::tensors::exprs::detail::query_allocation_type = typedef typename T:: allocation_type

◆ query_copy_assignable

template<class T >
using bc::tensors::exprs::detail::query_copy_assignable = typedef typename T:: copy_assignable

◆ query_copy_constructible

template<class T >
using bc::tensors::exprs::detail::query_copy_constructible = typedef typename T:: copy_constructible

◆ query_expression_template_array_type

template<class T >
using bc::tensors::exprs::detail::query_expression_template_array_type = typedef typename T:: expression_template_array_type

◆ query_expression_template_expression_type

template<class T >
using bc::tensors::exprs::detail::query_expression_template_expression_type = typedef typename T:: expression_template_expression_type

◆ query_is_const_view

template<class T >
using bc::tensors::exprs::detail::query_is_const_view = typedef typename T:: is_const_view

◆ query_is_noncontinuous_in_memory

template<class T >
using bc::tensors::exprs::detail::query_is_noncontinuous_in_memory = typedef typename T:: is_noncontinuous_in_memory

◆ query_is_temporary_value

template<class T >
using bc::tensors::exprs::detail::query_is_temporary_value = typedef typename T:: is_temporary_value

◆ query_is_view

template<class T >
using bc::tensors::exprs::detail::query_is_view = typedef typename T:: is_view

◆ query_is_view_type

template<class T >
using bc::tensors::exprs::detail::query_is_view_type = typedef typename T::is_view_type

◆ query_move_assignable

template<class T >
using bc::tensors::exprs::detail::query_move_assignable = typedef typename T:: move_assignable

◆ query_move_constructible

template<class T >
using bc::tensors::exprs::detail::query_move_constructible = typedef typename T:: move_constructible

◆ query_optimizer_temporary

template<class T >
using bc::tensors::exprs::detail::query_optimizer_temporary = typedef typename T:: optimizer_temporary

◆ query_requires_greedy_evaluation

template<class T >
using bc::tensors::exprs::detail::query_requires_greedy_evaluation = typedef typename T:: requires_greedy_evaluation

◆ query_stack_allocated

template<class T >
using bc::tensors::exprs::detail::query_stack_allocated = typedef typename T:: stack_allocated

◆ query_system_tag

template<class T >
using bc::tensors::exprs::detail::query_system_tag = typedef typename T:: system_tag

◆ query_value_type

template<class T >
using bc::tensors::exprs::detail::query_value_type = typedef typename T:: value_type

Function Documentation

◆ mk_bin_op()

template<class Op , class Lv , class Rv , class... Args>
BCHOT auto bc::tensors::exprs::detail::mk_bin_op ( Lv  left,
Rv  right,
Args &&...  args 
)