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

Detailed Description

Mask object to use with float_v objects.

Of the same type as int_m and uint_m.

#include <Vc/float_v>

Public Member Functions

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

float_m ( )

default constructor

Leaves the mask uninitialized.

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