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

Detailed Description

Mask object to use with int_v objects.

Of the same type as float_m and uint_m.

#include <Vc/int_v>

Public Member Functions

 int_m ()
 default constructor
 int_m (Vc::Zero)
 Constructs a mask with the entries initialized to zero.
 int_m (Vc::One)
 Constructs a mask with the entries initialized to one.
 int_m (bool b)
 Constructs a mask with the entries initialized to.
 int_m (const int_m &)
 Standard copy constructor.
template<typename OtherMask >
 int_m (const OtherMask &)
 Constructs a mask object from a mask of different size/type.
bool operator== (const int_m &) const
 Returns whether the two masks are equal in all entries.
bool operator!= (const int_m &) const
 Returns whether the two masks differ in at least one entry.
int_m operator&& (const int_m &) const
 Return the per-entry resulting mask of a logical (in this case same as bitwise) AND operation.
int_m operator& (const int_m &) const
 Return the per-entry resulting mask of a logical (in this case same as bitwise) AND operation.
int_m operator|| (const int_m &) const
 Return the per-entry resulting mask of a logical (in this case same as bitwise) OR operation.
int_m operator| (const int_m &) const
 Return the per-entry resulting mask of a logical (in this case same as bitwise) OR operation.
int_m operator^ (const int_m &) const
 Return the per-entry resulting mask of a logical (in this case same as bitwise) XOR operation.
int_m operator! () const
 Return the per-entry resulting mask of a logical (in this case same as bitwise) NOT operation.
int_m operator&= (const int_m &)
 Modify the mask per-entry using a logical (in this case same as bitwise) AND operation.
int_m operator|= (const int_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

int_m ( )

default constructor

Leaves the mask uninitialized.

int_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).