AI Engine API User Guide (AIE) 2023.2
Loading...
Searching...
No Matches
mul.hpp File Reference
#include <cstdlib>
#include <cmath>
#include <climits>
#include "vector.hpp"
#include "filter.hpp"
#include "shuffle.hpp"

Namespaces

namespace  aie
 Base namespace for AIE operations and types.
 
namespace  aie::detail
 

Macros

#define __AIE_API_DETAIL_MUL__HPP__
 

Typedefs

template<MulMacroOp MulOp, unsigned AccumBits, typename T1 , typename T2 >
using aie::detail::mul = mul_bits< MulOp, AccumBits, type_bits_v< T1 >, T1, type_bits_v< T2 >, T2 >
 
template<MulMacroOp MulOp, unsigned AccumBits, typename T1 , typename T2 >
using aie::detail::mul_maxmin = mul_maxmin_bits< MulOp, AccumBits, type_bits_v< T1 >, T1, type_bits_v< T2 >, T2 >
 
template<unsigned AccumBits, typename T , unsigned Elems>
using aie::detail::mul_reduce = mul_reduce_bits< AccumBits, type_bits_v< T >, T, Elems >
 
template<unsigned OutElems, unsigned Points, int CoeffStep, int DataStepX, int DataStepY, unsigned AccumBits, typename CoeffType , typename DataType >
using aie::detail::sliding_mul = sliding_mul_bits< OutElems, Points, CoeffStep, DataStepX, DataStepY, AccumBits, type_bits_v< CoeffType >, type_bits_v< DataType >, CoeffType, DataType >
 
template<unsigned Outputs, unsigned Channels, unsigned Points, int CoeffStep, int DataStepX, int DataStepY, unsigned AccumBits, typename CoeffType , typename DataType >
using aie::detail::sliding_mul_ch = sliding_mul_ch_bits< Outputs, Channels, Points, CoeffStep, DataStepX, DataStepY, AccumBits, type_bits_v< CoeffType >, type_bits_v< DataType >, CoeffType, DataType >
 
template<unsigned OutElems, unsigned Points, int CoeffStep, int DataStepX, int DataStepY, unsigned AccumBits, typename CoeffType , typename DataType >
using aie::detail::sliding_mul_sym = sliding_mul_sym_bits< OutElems, Points, CoeffStep, DataStepX, DataStepY, AccumBits, type_bits_v< CoeffType >, type_bits_v< DataType >, CoeffType, DataType >
 
template<unsigned OutElems, unsigned Points, int CoeffStep, int DataStep, unsigned AccumBits, typename CoeffType , typename DataType >
using aie::detail::sliding_mul_sym_uct = sliding_mul_sym_uct_bits< OutElems, Points, CoeffStep, DataStep, AccumBits, type_bits_v< CoeffType >, type_bits_v< DataType >, CoeffType, DataType >
 

Enumerations

enum class  aie::detail::MulMacroOp {
  aie::detail::Unavailable = -1 , aie::detail::Mul = 0 , aie::detail::NegMul , aie::detail::Add_Mul ,
  aie::detail::Add_NegMul , aie::detail::Sub_Mul = Add_NegMul
}
 

Functions

template<MulMacroOp Op>
constexpr MulMacroOp aie::detail::add_to_op ()
 
template<typename T >
constexpr Operation aie::detail::evaluate_mul_operation ()
 
template<typename T >
constexpr bool aie::detail::get_mul_sign (T v)
 
template<MulMacroOp Op>
constexpr bool aie::detail::has_abs ()
 
template<MulMacroOp Op>
constexpr bool aie::detail::has_conj1 ()
 
template<MulMacroOp Op>
constexpr bool aie::detail::has_conj2 ()
 
template<Operation Op1, Operation Op2>
constexpr MulMacroOp aie::detail::to_mul_antisym_macro_op ()
 
template<Operation AccOp, Operation Op1, Operation Op2>
constexpr MulMacroOp aie::detail::to_mul_antisym_macro_op ()
 
template<Operation Op1, Operation Op2>
constexpr MulMacroOp aie::detail::to_mul_macro_op ()
 
template<Operation AccOp, Operation Op1, Operation Op2>
constexpr MulMacroOp aie::detail::to_mul_macro_op ()
 
template<Operation Op1, Operation Op2>
constexpr MulMacroOp aie::detail::to_mul_sym_macro_op ()
 
template<Operation AccOp, Operation Op1, Operation Op2>
constexpr MulMacroOp aie::detail::to_mul_sym_macro_op ()
 
template<Operation Op1, Operation Op2>
constexpr MulMacroOp aie::detail::to_negmul_antisym_macro_op ()
 
template<Operation Op1, Operation Op2>
constexpr MulMacroOp aie::detail::to_negmul_macro_op ()
 
template<Operation Op1, Operation Op2>
constexpr MulMacroOp aie::detail::to_negmul_sym_macro_op ()
 

Macro Definition Documentation

◆ __AIE_API_DETAIL_MUL__HPP__

#define __AIE_API_DETAIL_MUL__HPP__