AI Engine API User Guide (AIE) 2022.2
Operator Overloading

Overview

The AIE API provides overloading for most of the available operators. In order to use them, you need to include a special header file and use the aie::operators namespace.

using namespace aie::operators;
{
return c < (a + b);
}
Definition: operators.hpp:60
Definition: aie_declaration.hpp:74
Definition: aie_declaration.hpp:68
Operator overloading for AIE API types, currently expects "using namespace aie::operators" in the use...

Functions

template<typename T1 , typename T2 >
constexpr auto aie::operators::operator!= (const T1 &a, const T2 &b)
  More...
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator& (const T1 &a, const T2 &b)
  More...
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator+ (const T1 &a, const T2 &b)
  More...
 
template<typename T1 , typename T2 >
constexpr T1 & aie::operators::operator+= (T1 &lhs, const T2 &rhs)
  More...
 
template<typename T >
constexpr auto aie::operators::operator- (const T &a)
  More...
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator- (const T1 &a, const T2 &b)
  More...
 
template<typename T1 , typename T2 >
constexpr T1 & aie::operators::operator-= (T1 &lhs, const T2 &rhs)
  More...
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator< (const T1 &a, const T2 &b)
  More...
 
template<typename T >
constexpr auto aie::operators::operator<< (const T &a, unsigned shift)
  More...
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator<= (const T1 &a, const T2 &b)
  More...
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator== (const T1 &a, const T2 &b)
  More...
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator> (const T1 &a, const T2 &b)
  More...
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator>= (const T1 &a, const T2 &b)
  More...
 
template<typename T >
constexpr auto aie::operators::operator>> (const T &a, unsigned shift)
  More...
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator^ (const T1 &a, const T2 &b)
  More...
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator| (const T1 &a, const T2 &b)
  More...
 
template<typename T >
constexpr auto aie::operators::operator~ (const T &a)
  More...
 

Function Documentation

◆ operator!=()

template<typename T1 , typename T2 >
constexpr auto aie::operators::operator!= ( const T1 &  a,
const T2 &  b 
)
constexpr

Not equal to comparison operator. It is equivalent to aie::neq.

◆ operator&()

template<typename T1 , typename T2 >
constexpr auto aie::operators::operator& ( const T1 &  a,
const T2 &  b 
)
constexpr

Bitwise AND operation. It is equivalent to aie::bit_and.

◆ operator+()

template<typename T1 , typename T2 >
constexpr auto aie::operators::operator+ ( const T1 &  a,
const T2 &  b 
)
constexpr

Addition operator. It is equivalent to aie::add.

◆ operator+=()

template<typename T1 , typename T2 >
constexpr T1& aie::operators::operator+= ( T1 &  lhs,
const T2 &  rhs 
)
constexpr

Addition assignment operator.

◆ operator-() [1/2]

template<typename T >
constexpr auto aie::operators::operator- ( const T &  a)
constexpr

Negation operator. It is equivalent to aie::neg.

◆ operator-() [2/2]

template<typename T1 , typename T2 >
constexpr auto aie::operators::operator- ( const T1 &  a,
const T2 &  b 
)
constexpr

Subtraction operator. It is equivalent to aie::sub.

◆ operator-=()

template<typename T1 , typename T2 >
constexpr T1& aie::operators::operator-= ( T1 &  lhs,
const T2 &  rhs 
)
constexpr

Subtraction assignment operator.

◆ operator<()

template<typename T1 , typename T2 >
constexpr auto aie::operators::operator< ( const T1 &  a,
const T2 &  b 
)
constexpr

Less than comparison operator. It is equivalent to aie::lt.

◆ operator<<()

template<typename T >
constexpr auto aie::operators::operator<< ( const T &  a,
unsigned  shift 
)
constexpr

Bitwise left shift operator. It is equivalent to aie::upshift.

◆ operator<=()

template<typename T1 , typename T2 >
constexpr auto aie::operators::operator<= ( const T1 &  a,
const T2 &  b 
)
constexpr

Less than or equal comparison operator. It is equivalent to aie::le.

◆ operator==()

template<typename T1 , typename T2 >
constexpr auto aie::operators::operator== ( const T1 &  a,
const T2 &  b 
)
constexpr

Equal to comparison operator. It is equivalent to aie::eq.

◆ operator>()

template<typename T1 , typename T2 >
constexpr auto aie::operators::operator> ( const T1 &  a,
const T2 &  b 
)
constexpr

Greater than comparison operator. It is equivalent to aie::gt.

◆ operator>=()

template<typename T1 , typename T2 >
constexpr auto aie::operators::operator>= ( const T1 &  a,
const T2 &  b 
)
constexpr

Greater than or equal comparison operator. It is equivalent to aie::ge.

◆ operator>>()

template<typename T >
constexpr auto aie::operators::operator>> ( const T &  a,
unsigned  shift 
)
constexpr

Bitwise right shift operator. It is equivalent to aie::downshift.

◆ operator^()

template<typename T1 , typename T2 >
constexpr auto aie::operators::operator^ ( const T1 &  a,
const T2 &  b 
)
constexpr

Bitwise XOR operation. It is equivalent to aie::bit_xor.

◆ operator|()

template<typename T1 , typename T2 >
constexpr auto aie::operators::operator| ( const T1 &  a,
const T2 &  b 
)
constexpr

Bitwise OR operation. It is equivalent to aie::bit_or.

◆ operator~()

template<typename T >
constexpr auto aie::operators::operator~ ( const T &  a)
constexpr

Bitwise NOT operation. It is equivalent to aie::bit_not.