Vc  0.7.5-dev
SIMD Vector Classes for C++
uint_m Class Reference

Detailed Description

Mask object to use with uint_v objects.

Of the same type as int_m and float_m.

#include <Vc/uint_v>

Public Member Functions

 uint_m ()
 default constructor
 uint_m (Vc::Zero)
 Constructs a mask with the entries initialized to zero.
 uint_m (Vc::One)
 Constructs a mask with the entries initialized to one.
 uint_m (bool b)
 Constructs a mask with the entries initialized to.
 uint_m (const uint_m &)
 Standard copy constructor.
template<typename OtherMask >
 uint_m (const OtherMask &)
 Constructs a mask object from a mask of different size/type.
bool operator== (const uint_m &) const
 Returns whether the two masks are equal in all entries.
bool operator!= (const uint_m &) const
 Returns whether the two masks differ in at least one entry.
uint_m operator&& (const uint_m &) const
 Return the per-entry resulting mask of a logical (in this case same as bitwise) AND operation.
uint_m operator& (const uint_m &) const
 Return the per-entry resulting mask of a logical (in this case same as bitwise) AND operation.
uint_m operator|| (const uint_m &) const
 Return the per-entry resulting mask of a logical (in this case same as bitwise) OR operation.
uint_m operator| (const uint_m &) const
 Return the per-entry resulting mask of a logical (in this case same as bitwise) OR operation.
uint_m operator^ (const uint_m &) const
 Return the per-entry resulting mask of a logical (in this case same as bitwise) XOR operation.
uint_m operator! () const
 Return the per-entry resulting mask of a logical (in this case same as bitwise) NOT operation.
uint_m operator&= (const uint_m &)
 Modify the mask per-entry using a logical (in this case same as bitwise) AND operation.
uint_m operator|= (const uint_m &)
 Modify the mask per-entry using a logical (in this case same as bitwise) OR operation.
bool isFull () const
 Return whether all entries of the mask are one.
bool isEmpty () const
 Return whether all entries of the mask are zero.
bool isMix () const
 Return whether the mask is neither full nor empty.
 operator bool () const
 Cast to bool operator.
bool operator[] (int i) const
 Read-only access to mask entries.
int count () const
 Return how many entries of the mask are set to one.
int firstOne () const
 Returns the index of the first one in the mask.
int toInt () const
 Convert mask to an integer.

Constructor & Destructor Documentation

uint_m ( )

default constructor

Leaves the mask uninitialized.

uint_m ( bool  b)
explicit

Constructs a mask with the entries initialized to.

  • one if b is true
  • zero if b is false
Parameters
bDetermines the initial state of the mask.

Member Function Documentation

operator bool ( ) const

Cast to bool operator.

Returns the same as isFull().

Warning
Be careful with the cast to bool. Often it is better to write explicitly whether you want isFull or !isEmpty or something else. If you define VC_NO_AUTOMATIC_BOOL_FROM_MASK this operator will be disabled, requiring you to explicitly reduce masks to bools.
bool operator[] ( int  i) const

Read-only access to mask entries.

Parameters
iDetermines the boolean to be accessed.
Returns
the i th entry of the mask as a bool.
int toInt ( ) const

Convert mask to an integer.

Returns
An int where each bit corresponds to the boolean value in the mask.

E.g. a mask like [true, false, false, true] would result in a 9 (in binary: 1001).