AI Engine API User Guide (AIE-API) 2024.1
Loading...
Searching...
No Matches
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);
}
Type for vector element masks.
Definition mask.hpp:61
Type for vector registers.
Definition vector.hpp:109
Definition operators.hpp:58
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.