AI Engine API User Guide (AIE) 2023.2
Loading...
Searching...
No Matches
Operator Overloading

The AIE API provides overloading for most of the available operators. More...

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);
}
Type for vector element masks.
Definition mask.hpp:61
Type for vector registers.
Definition vector.hpp:107
Definition operators.hpp:60
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)
 Not equal to comparison operator.
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator& (const T1 &a, const T2 &b)
 Bitwise AND operation.
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator+ (const T1 &a, const T2 &b)
 Addition operator.
 
template<typename T1 , typename T2 >
constexpr T1 & aie::operators::operator+= (T1 &lhs, const T2 &rhs)
 Addition assignment operator.
 
template<typename T >
constexpr auto aie::operators::operator- (const T &a)
 Negation operator.
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator- (const T1 &a, const T2 &b)
 Subtraction operator.
 
template<typename T1 , typename T2 >
constexpr T1 & aie::operators::operator-= (T1 &lhs, const T2 &rhs)
 Subtraction assignment operator.
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator< (const T1 &a, const T2 &b)
 Less than comparison operator.
 
template<typename T >
constexpr auto aie::operators::operator<< (const T &a, unsigned shift)
 Bitwise left shift operator.
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator<= (const T1 &a, const T2 &b)
 Less than or equal comparison operator.
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator== (const T1 &a, const T2 &b)
 Equal to comparison operator.
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator> (const T1 &a, const T2 &b)
 Greater than comparison operator.
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator>= (const T1 &a, const T2 &b)
 Greater than or equal comparison operator.
 
template<typename T >
constexpr auto aie::operators::operator>> (const T &a, unsigned shift)
 Bitwise right shift operator.
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator^ (const T1 &a, const T2 &b)
 Bitwise XOR operation.
 
template<typename T1 , typename T2 >
constexpr auto aie::operators::operator| (const T1 &a, const T2 &b)
 Bitwise OR operation.
 
template<typename T >
constexpr auto aie::operators::operator~ (const T &a)
 Bitwise NOT operation.
 

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.