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

Detailed Description

Mask object to use with sfloat_v objects.

#include <Vc/sfloat_v>

Public Member Functions

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

sfloat_m ( )

default constructor

Leaves the mask uninitialized.

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