| 
    Brick Library 0.1
    
   Performance-portable stencil datalayout & codegen 
   | 
 
Set using bitfield. More...
#include <bitset.h>
Public Member Functions | |
| BitSet () | |
| Default to empty set.   | |
| BitSet (uint64_t s) | |
| Initialize a set based on an unsigned bitfield.   | |
| BitSet (std::initializer_list< int > l) | |
| Initialize a set based on a list of numbers.   | |
| BitSet & | flip (long pos) | 
| Flipping an element.   | |
| long | size () const | 
| The number of elements currently stored in the set.   | |
| bool | get (long pos) const | 
| Return whether a number is in the set.   | |
| BitSet | operator& (BitSet a) const | 
| Intersection with another set.   | |
| BitSet | operator| (BitSet a) const | 
| Union with another set.   | |
| BitSet | operator^ (BitSet a) const | 
| \(A \cup B - A \cap B\)   | |
| operator bool () const | |
| Test emptiness, true if not empty.   | |
| bool | operator<= (BitSet a) const | 
| True if \(A \subseteq B\).   | |
| bool | operator>= (BitSet a) const | 
| True if \(A \supseteq B\).   | |
| BitSet | operator! () const | 
| Negate all elements in the set, not a set operation.   | |
Static Public Member Functions | |
| static uint64_t | to_set (long pos) | 
| Turn number into corresponding element of set.   | |
Public Attributes | |
| uint64_t | set | 
| The bitfield of this set.   | |
Static Public Attributes | |
| static const long | zero = 31 | 
| negative zero start at 31 (1<<31).   | |
Related Functions | |
(Note that these are not member functions.)  | |
| std::ostream & | operator<< (std::ostream &os, const BitSet &bs) | 
| Print a bit set.   | |
| std::istream & | operator>> (std::istream &is, BitSet &bs) | 
| Read a bit set.   | |
Set using bitfield.
Numbers are translated into elements and then stored in the bitfield. Can only held numbers in \([-32,31]\).
      
  | 
  inline | 
Default to empty set.
      
  | 
  inline | 
Initialize a set based on an unsigned bitfield.
      
  | 
  inline | 
      
  | 
  inline | 
Flipping an element.
| pos | the number | 
Add the element if not exist, or remove it if it does.
      
  | 
  inline | 
Return whether a number is in the set.
      
  | 
  inline | 
Test emptiness, true if not empty.
      
  | 
  inline | 
      
  | 
  inline | 
True if \(A \subseteq B\).
      
  | 
  inline | 
True if \(A \supseteq B\).
      
  | 
  inline | 
The number of elements currently stored in the set.
      
  | 
  inlinestatic | 
Turn number into corresponding element of set.
| pos | Input number | 
      
  | 
  related | 
Print a bit set.
Example:
      
  | 
  related | 
Read a bit set.
Input is the same format as output. Numbers are separated by appended sign.
| uint64_t BitSet::set | 
The bitfield of this set.
      
  | 
  static | 
negative zero start at 31 (1<<31).