Shiokaze Framework
A research-oriented fluid solver for computer graphics
bitmacarray2 Class Reference

Two dimensional staggered bit grid class designed to be defined as instance member in recursive_configurable class. More...

#include <bitmacarray2.h>

Inheritance diagram for bitmacarray2:
recursive_configurable messageable configurable

Classes

struct  type2
 Collection of properties of this grid. More...
 

Public Types

enum  { ACTIVES = true, ALL = false }
 
- Public Types inherited from configurable
using environment_map = std::map< std::string, const void * >
 Type for environment_map.
 

Public Member Functions

 bitmacarray2 (recursive_configurable *parent, const shape2 &shape, std::string core_name="")
 Constructor for bitmacarray2. More...
 
 bitmacarray2 (recursive_configurable *parent, std::string core_name="")
 Constructor for bitmacarray2. More...
 
 bitmacarray2 (std::string core_name="")
 Constructor for bitmacarray2. More...
 
 bitmacarray2 (const shape2 &shape, std::string core_name="")
 Constructor for bitmacarray2. More...
 
 bitmacarray2 (const bitmacarray2 &v)
 Copy constructor for bitmacarray2. More...
 
virtual bool send_message (std::string message, void *ptr) override
 Send a message to the core module. More...
 
virtual bool const_send_message (std::string message, void *ptr) const override
 Send a message to the core module. More...
 
bitmacarray2operator= (const bitmacarray2 &array)
 Deep copy operation for bitmacarray2. More...
 
void copy (const bitmacarray2 &array)
 Deep copy function for bitmacarray2. More...
 
void initialize (const shape2 &shape)
 Allocate grid memory with value. More...
 
size_t count () const
 Function to count the number of active cells. More...
 
std::array< std::vector< vec2i >, DIM2 > actives () const
 Function to return the list of active cells positions. More...
 
void activate (const std::array< std::vector< vec2i >, DIM2 > &active_entries, const std::array< vec2i, DIM2 > &offsets={vec2i(), vec2i()})
 Activate cells at the positons of active_entries. More...
 
void activate_as_bit (const bitmacarray2 &array, const std::array< vec2i, DIM2 > &offsets={vec2i(), vec2i()})
 Activate cells at the same positons where an input array is active with an offset. More...
 
template<class Y >
void activate_as (const Y &array, const std::array< vec2i, DIM2 > &offsets={vec2i(), vec2i()})
 Activate cells at the same positons where an input array is active with an offset. More...
 
void activate_all ()
 Activate all the cells.
 
void copy_active_as (const bitmacarray2 &array, const vec2i &offset=vec2i())
 Copy the states of active and inactive cells as same as input array with an offset. More...
 
shape2 shape () const
 Get the shape of the array. More...
 
shape2 shape (int dim) const
 Get the shape of the staggered grid of a specified dimension. More...
 
void clear ()
 Clear out the grid. More...
 
bool operator!= (const bitmacarray2 &v) const
 Return if the grid is different from an input array. More...
 
bool operator== (const bitmacarray2 &v) const
 Return if the grid is same to an input array. More...
 
const bitarray2operator[] (int dim) const
 Get the read-only reference to the staggered array of a specified dimension. More...
 
bitarray2operator[] (int dim)
 Get the reference to the staggered array of a specified dimension. More...
 
void set_thread_num (int number)
 Set the number of threads for parallel processing on this grid. More...
 
int get_thread_num () const
 Get the current number of threads for parallel processing on this grid. More...
 
void parallel_actives (std::function< void(typename bitarray2::iterator &it)> func)
 Loop over all the active cells in parallel. More...
 
void parallel_all (std::function< void(typename bitarray2::iterator &it)> func)
 Loop over all the cells in parallel. More...
 
void parallel_op (std::function< void(typename bitarray2::iterator &it)> func, bool type=ALL)
 Loop over cells in parallel. More...
 
void parallel_actives (std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)> func)
 Loop over all the active cells in parallel. More...
 
void parallel_all (std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)> func)
 Loop over all the cells in parallel. More...
 
void parallel_op (std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)> func, bool type=ALL)
 Loop over cells in parallel. More...
 
void parallel_actives (std::function< void(int dim, int i, int j, typename bitarray2::iterator &it, int thread_index)> func)
 Loop over all the active cells in parallel. More...
 
void parallel_all (std::function< void(int dim, int i, int j, typename bitarray2::iterator &it, int thread_index)> func)
 Loop over all the cells in parallel. More...
 
void parallel_op (std::function< void(int dim, int i, int j, typename bitarray2::iterator &it, int thread_index)> func, bool type=ALL)
 Loop over cells in parallel. More...
 
void const_parallel_all (std::function< void(const typename bitarray2::const_iterator &it)> func) const
 Loop over all the cells in parallel by read-only fashion. More...
 
void const_parallel_op (std::function< void(const typename bitarray2::const_iterator &it)> func, bool type=ALL) const
 Loop over cells in parallel by read-only fashion. More...
 
void const_parallel_actives (std::function< void(int dim, int i, int j)> func) const
 Loop over all the active cells in parallel by read-only fashion. More...
 
void const_parallel_all (std::function< void(int dim, int i, int j, const typename bitarray2::const_iterator &it)> func) const
 Loop over all the cells in parallel by read-only fashion. More...
 
void const_parallel_op (std::function< void(int dim, int i, int j, const typename bitarray2::const_iterator &it)> func, bool type=ALL) const
 Loop over cells in parallel by read-only fashion. More...
 
void const_parallel_actives (std::function< void(int dim, int i, int j, int thread_index)> func) const
 Loop over all the active cells in parallel by read-only fashion. More...
 
void const_parallel_all (std::function< void(int dim, int i, int j, const typename bitarray2::const_iterator &it, int thread_index)> func) const
 Loop over all the cells in parallel by read-only fashion. More...
 
void const_parallel_op (std::function< void(int dim, int i, int j, const typename bitarray2::const_iterator &it, int thread_index)> func, bool type=ALL) const
 Loop over cells in parallel by read-only fashion. More...
 
void serial_actives (std::function< void(typename bitarray2::iterator &it)> func)
 Loop over all the active cells in serial order. More...
 
void serial_all (std::function< void(typename bitarray2::iterator &it)> func)
 Loop over all the cells in serial order. More...
 
void serial_op (std::function< void(typename bitarray2::iterator &it)> func, bool type=ALL)
 Loop over cells in serial order. More...
 
void serial_actives (std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)> func)
 Loop over all the active cells in serial order. More...
 
void serial_all (std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)> func)
 Loop over all the cells in serial order. More...
 
void serial_op (std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)> func, bool type=ALL)
 Loop over cells in serial order. More...
 
void const_serial_all (std::function< void(const typename bitarray2::const_iterator &it)> func) const
 Loop over all the cells in serial order by read-only fashion. More...
 
void const_serial_op (std::function< void(const typename bitarray2::const_iterator &it)> func, bool type=ALL) const
 Loop over the cells in serial order by read-only fashion. More...
 
void const_serial_actives (std::function< void(int dim, int i, int j)> func) const
 Loop over all the active cells in serial order by read-only fashion. More...
 
void const_serial_all (std::function< void(int dim, int i, int j, const typename bitarray2::const_iterator &it)> func) const
 Loop over all the cells in serial order by read-only fashion. More...
 
void const_serial_op (std::function< void(int dim, int i, int j, const typename bitarray2::const_iterator &it)> func, bool type=ALL) const
 Loop over cells in serial order by read-only fashion. More...
 
void interruptible_serial_actives (std::function< bool(typename bitarray2::iterator &it)> func)
 Loop over all the active cells in serial order. More...
 
void interruptible_serial_all (std::function< bool(typename bitarray2::iterator &it)> func)
 Loop over all the cells in serial order. More...
 
void interruptible_serial_op (std::function< bool(typename bitarray2::iterator &it)> func, bool type=ALL)
 Loop over cells in serial order. More...
 
void interruptible_serial_actives (std::function< bool(int dim, int i, int j, typename bitarray2::iterator &it)> func)
 Loop over all the active cells in serial order. More...
 
void interruptible_serial_all (std::function< bool(int dim, int i, int j, typename bitarray2::iterator &it)> func)
 Loop over all the cells in serial order. More...
 
void interruptible_serial_op (std::function< bool(int dim, int i, int j, typename bitarray2::iterator &it)> func, bool type=ALL)
 Loop over cells in serial order. More...
 
void interruptible_const_serial_all (std::function< bool(const typename bitarray2::const_iterator &it)> func) const
 Loop over all the cells in serial order by read-only fashion. More...
 
void interruptible_const_serial_op (std::function< bool(const typename bitarray2::const_iterator &it)> func, bool type=ALL) const
 Loop over cells in serial order by read-only fashion. More...
 
void interruptible_const_serial_actives (std::function< bool(int dim, int i, int j)> func) const
 Loop over all the active cells in serial order by read-only fashion. More...
 
void interruptible_const_serial_all (std::function< bool(int dim, int i, int j, const typename bitarray2::const_iterator &it)> func) const
 Loop over all the cells in serial order by read-only fashion. More...
 
void interruptible_const_serial_op (std::function< bool(int dim, int i, int j, const typename bitarray2::const_iterator &it)> func, bool type=ALL) const
 Loop over cells in serial order by read-only fashion. More...
 
void dilate (std::function< void(int dim, int i, int j, typename bitarray2::iterator &it, int thread_index)> func, int count=1)
 Dilate cells. More...
 
void dilate (std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)> func, int count=1)
 Dilate cells. More...
 
void dilate (int count=1)
 Dilate cells. More...
 
void erode (std::function< bool(int dim, int i, int j, int thread_index)> func, int count=1)
 Erode cells. More...
 
void erode (std::function< bool(int dim, int i, int j)> func, int count=1)
 Erode cells. More...
 
void erode (int count=1)
 Erode cells. More...
 
void set_core_name (std::string core_name)
 Set the core name of module of this grid. More...
 
std::string get_core_name () const
 Get the core name of module of this grid. More...
 
type2 type () const
 Get the type of this grid. More...
 
void set_type (const type2 &type)
 Set the type of this grid. More...
 
- Public Member Functions inherited from recursive_configurable
 recursive_configurable ()=default
 Default constructor.
 
virtual void recursive_load (configuration &config)
 Load the program itself and relay the same to its children. Used to load files and libraries into memory. More...
 
virtual void recursive_configure (configuration &config)
 Configure the program itself and relay the same to its children. Used to load and set parameters. More...
 
virtual void recursive_initialize (const configurable::environment_map &environment=configurable::environment_map())
 Initialize the program itself and relay the same to its children. Used to get things ready for actual use. More...
 
virtual bool is_ready () const
 Get if the instance is initialized. More...
 
virtual void add_child (configurable *child)
 Add a child instance. More...
 
virtual void add_child (recursive_configurable *child)
 Add a child instance. More...
 
virtual void remove_child (configurable *child)
 Remove a child instance. More...
 
virtual void remove_child (recursive_configurable *child)
 Remove a child instance. More...
 
virtual void setup_now (configuration &config=get_global_configuration()) override
 Run recursive_load - recursive_configure - recursive_initialize processes.
 
virtual bool not_recursive () override
 Check if this instance is not derived from recursive_configurable. More...
 
void set_environment (std::string name, const void *value)
 Set the pointer to an environmental value associated with an input name. More...
 
- Public Member Functions inherited from configurable
virtual void load (configuration &config)
 Load the program. Used to load files and libraries into memory. More...
 
virtual void configure (configuration &config)
 Configure the program. Used to load and set parameters. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from configurable
static configurationset_global_configuration (const configuration &config)
 Assign the global settings of the program. More...
 
static configurationget_global_configuration ()
 Get the global settings of the program. More...
 
template<class T >
static const T & get_env (const environment_map &environment, std::string key)
 Extract an specified type of pointer from the input environment. More...
 
- Protected Member Functions inherited from configurable
bool check_set (const environment_map &environment, std::vector< std::string > names)
 Check if the values for a variable keys exist. More...
 

Detailed Description

Two dimensional staggered bit grid class designed to be defined as instance member in recursive_configurable class.

Constructor & Destructor Documentation

◆ bitmacarray2() [1/5]

bitmacarray2::bitmacarray2 ( recursive_configurable parent,
const shape2 shape,
std::string  core_name = "" 
)
inline

Constructor for bitmacarray2.

Parameters
[in]parentPointer to a parent recursive_configurable instance. Can be nullptr.
[in]shapeShape of the grid
[in]core_nameCore module name. Default value is "lineararray_core2". Can be also "tiledarray_core2".

◆ bitmacarray2() [2/5]

bitmacarray2::bitmacarray2 ( recursive_configurable parent,
std::string  core_name = "" 
)
inline

Constructor for bitmacarray2.

Parameters
[in]parentPointer to a parent recursive_configurable instance. Can be nullptr.
[in]core_nameCore module name. Default value is "lineararray_core2". Can be also "tiledarray_core2".

◆ bitmacarray2() [3/5]

bitmacarray2::bitmacarray2 ( std::string  core_name = "")
inline

Constructor for bitmacarray2.

Parameters
[in]core_nameCore module name. Default value is "lineararray_core2". Can be also "tiledarray_core2".

◆ bitmacarray2() [4/5]

bitmacarray2::bitmacarray2 ( const shape2 shape,
std::string  core_name = "" 
)
inline

Constructor for bitmacarray2.

Parameters
[in]shapeShape of the grid
[in]core_nameCore module name. Default value is "lineararray_core2". Can be also "tiledarray_core2".

◆ bitmacarray2() [5/5]

bitmacarray2::bitmacarray2 ( const bitmacarray2 v)
inline

Copy constructor for bitmacarray2.

Parameters
[in]arrayReference to an instance of array to copy from.

Member Function Documentation

◆ activate()

void bitmacarray2::activate ( const std::array< std::vector< vec2i >, DIM2 > &  active_entries,
const std::array< vec2i, DIM2 > &  offsets = {vec2i(),vec2i()} 
)
inline

Activate cells at the positons of active_entries.

Parameters
[in]active_entriesThe list of target positions to activate.
[in]offsetOffset applied to the active_entries.

◆ activate_as()

template<class Y >
void bitmacarray2::activate_as ( const Y &  array,
const std::array< vec2i, DIM2 > &  offsets = {vec2i(),vec2i()} 
)
inline

Activate cells at the same positons where an input array is active with an offset.

Parameters
[in]arrayTarget array.
[in]offsetOffset applied to the target array.

◆ activate_as_bit()

void bitmacarray2::activate_as_bit ( const bitmacarray2 array,
const std::array< vec2i, DIM2 > &  offsets = {vec2i(),vec2i()} 
)
inline

Activate cells at the same positons where an input array is active with an offset.

Parameters
[in]arrayTarget array.
[in]offsetOffset applied to the target array.

◆ actives()

std::array<std::vector<vec2i>,DIM2> bitmacarray2::actives ( ) const
inline

Function to return the list of active cells positions.

Returns
The list of active cells positions.

◆ clear()

void bitmacarray2::clear ( )
inline

Clear out the grid.

Note that size, the memory allocation, background values and the information regarding level set or fillable left intact.

◆ const_parallel_actives() [1/2]

void bitmacarray2::const_parallel_actives ( std::function< void(int dim, int i, int j)>  func) const
inline

Loop over all the active cells in parallel by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ const_parallel_actives() [2/2]

void bitmacarray2::const_parallel_actives ( std::function< void(int dim, int i, int j, int thread_index)>  func) const
inline

Loop over all the active cells in parallel by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ const_parallel_all() [1/3]

void bitmacarray2::const_parallel_all ( std::function< void(const typename bitarray2::const_iterator &it)>  func) const
inline

Loop over all the cells in parallel by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ const_parallel_all() [2/3]

void bitmacarray2::const_parallel_all ( std::function< void(int dim, int i, int j, const typename bitarray2::const_iterator &it)>  func) const
inline

Loop over all the cells in parallel by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ const_parallel_all() [3/3]

void bitmacarray2::const_parallel_all ( std::function< void(int dim, int i, int j, const typename bitarray2::const_iterator &it, int thread_index)>  func) const
inline

Loop over all the cells in parallel by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ const_parallel_op() [1/3]

void bitmacarray2::const_parallel_op ( std::function< void(const typename bitarray2::const_iterator &it)>  func,
bool  type = ALL 
) const
inline

Loop over cells in parallel by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.
[in]typeType of target cells. ACTIVE or ALL.

◆ const_parallel_op() [2/3]

void bitmacarray2::const_parallel_op ( std::function< void(int dim, int i, int j, const typename bitarray2::const_iterator &it)>  func,
bool  type = ALL 
) const
inline

Loop over cells in parallel by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.
[in]typeType of target cells. ACTIVE or ALL.

◆ const_parallel_op() [3/3]

void bitmacarray2::const_parallel_op ( std::function< void(int dim, int i, int j, const typename bitarray2::const_iterator &it, int thread_index)>  func,
bool  type = ALL 
) const
inline

Loop over cells in parallel by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.
[in]typeType of target cells. ACTIVE or ALL.

◆ const_send_message()

virtual bool bitmacarray2::const_send_message ( std::string  message,
void *  ptr 
) const
inlineoverridevirtual

Send a message to the core module.

Parameters
[in]messageMessage
[in]ptrPointer to some value.
Returns
true if handled false otherwise.

Reimplemented from messageable.

◆ const_serial_actives()

void bitmacarray2::const_serial_actives ( std::function< void(int dim, int i, int j)>  func) const
inline

Loop over all the active cells in serial order by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ const_serial_all() [1/2]

void bitmacarray2::const_serial_all ( std::function< void(const typename bitarray2::const_iterator &it)>  func) const
inline

Loop over all the cells in serial order by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ const_serial_all() [2/2]

void bitmacarray2::const_serial_all ( std::function< void(int dim, int i, int j, const typename bitarray2::const_iterator &it)>  func) const
inline

Loop over all the cells in serial order by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ const_serial_op() [1/2]

void bitmacarray2::const_serial_op ( std::function< void(const typename bitarray2::const_iterator &it)>  func,
bool  type = ALL 
) const
inline

Loop over the cells in serial order by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.
[in]typeType of target cells. ACTIVE or ALL.

◆ const_serial_op() [2/2]

void bitmacarray2::const_serial_op ( std::function< void(int dim, int i, int j, const typename bitarray2::const_iterator &it)>  func,
bool  type = ALL 
) const
inline

Loop over cells in serial order by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed.
[in]typeType of target cells. ACTIVE or ALL.

◆ copy()

void bitmacarray2::copy ( const bitmacarray2 array)
inline

Deep copy function for bitmacarray2.

Parameters
[in]arrayReference to an instance of array to copy from.

◆ copy_active_as()

void bitmacarray2::copy_active_as ( const bitmacarray2 array,
const vec2i offset = vec2i() 
)
inline

Copy the states of active and inactive cells as same as input array with an offset.

Parameters
[in]arrayTarget input array from which the states to be copied.
[in]offsetOffset

◆ count()

size_t bitmacarray2::count ( ) const
inline

Function to count the number of active cells.

Returns
Active cell count.

◆ dilate() [1/3]

void bitmacarray2::dilate ( int  count = 1)
inline

Dilate cells.

Parameters
[in]countNumber of dilation count.

◆ dilate() [2/3]

void bitmacarray2::dilate ( std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)>  func,
int  count = 1 
)
inline

Dilate cells.

Parameters
[in]funcFunction that specifies what value to assign on dilated cells.
[in]countNumber of dilation count.

◆ dilate() [3/3]

void bitmacarray2::dilate ( std::function< void(int dim, int i, int j, typename bitarray2::iterator &it, int thread_index)>  func,
int  count = 1 
)
inline

Dilate cells.

Parameters
[in]funcFunction that specifies what value to assign on dilated cells.
[in]countNumber of dilation count.

◆ erode() [1/3]

void bitmacarray2::erode ( int  count = 1)
inline

Erode cells.

Parameters
[in]countNumber of erode count.

◆ erode() [2/3]

void bitmacarray2::erode ( std::function< bool(int dim, int i, int j)>  func,
int  count = 1 
)
inline

Erode cells.

Parameters
[in]funcFunction that specifies whether to inactivate the cell.
[in]countNumber of erode count.

◆ erode() [3/3]

void bitmacarray2::erode ( std::function< bool(int dim, int i, int j, int thread_index)>  func,
int  count = 1 
)
inline

Erode cells.

Parameters
[in]funcFunction that specifies whether to inactivate the cell.
[in]countNumber of erode count.

◆ get_core_name()

std::string bitmacarray2::get_core_name ( ) const
inline

Get the core name of module of this grid.

Returns
Name of the core name.

◆ get_thread_num()

int bitmacarray2::get_thread_num ( ) const
inline

Get the current number of threads for parallel processing on this grid.

Returns
number Number of threads.

◆ initialize()

void bitmacarray2::initialize ( const shape2 shape)
inline

Allocate grid memory with value.

Parameters
[in]shapeShape of the grid.
[in]valueInitial value

◆ interruptible_const_serial_actives()

void bitmacarray2::interruptible_const_serial_actives ( std::function< bool(int dim, int i, int j)>  func) const
inline

Loop over all the active cells in serial order by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed. Stop the loop if return true.

◆ interruptible_const_serial_all() [1/2]

void bitmacarray2::interruptible_const_serial_all ( std::function< bool(const typename bitarray2::const_iterator &it)>  func) const
inline

Loop over all the cells in serial order by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed. Stop the loop if return true.

◆ interruptible_const_serial_all() [2/2]

void bitmacarray2::interruptible_const_serial_all ( std::function< bool(int dim, int i, int j, const typename bitarray2::const_iterator &it)>  func) const
inline

Loop over all the cells in serial order by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed. Stop the loop if return true.

◆ interruptible_const_serial_op() [1/2]

void bitmacarray2::interruptible_const_serial_op ( std::function< bool(const typename bitarray2::const_iterator &it)>  func,
bool  type = ALL 
) const
inline

Loop over cells in serial order by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed. Stop the loop if return true.
[in]typeType of target cells. ACTIVE or ALL. Stop the loop if return true.

◆ interruptible_const_serial_op() [2/2]

void bitmacarray2::interruptible_const_serial_op ( std::function< bool(int dim, int i, int j, const typename bitarray2::const_iterator &it)>  func,
bool  type = ALL 
) const
inline

Loop over cells in serial order by read-only fashion.

Parameters
[in]funcFunction that defines how each grid cell is processed. Stop the loop if return true.
[in]typeType of target cells. ACTIVE or ALL. Stop the loop if return true.

◆ interruptible_serial_actives() [1/2]

void bitmacarray2::interruptible_serial_actives ( std::function< bool(int dim, int i, int j, typename bitarray2::iterator &it)>  func)
inline

Loop over all the active cells in serial order.

Parameters
[in]funcFunction that defines how each grid cell is processed. Stop the loop if return true.

◆ interruptible_serial_actives() [2/2]

void bitmacarray2::interruptible_serial_actives ( std::function< bool(typename bitarray2::iterator &it)>  func)
inline

Loop over all the active cells in serial order.

Parameters
[in]funcFunction that defines how each grid cell is processed. Stop the loop if return true.

◆ interruptible_serial_all() [1/2]

void bitmacarray2::interruptible_serial_all ( std::function< bool(int dim, int i, int j, typename bitarray2::iterator &it)>  func)
inline

Loop over all the cells in serial order.

Parameters
[in]funcFunction that defines how each grid cell is processed. Stop the loop if return true.

◆ interruptible_serial_all() [2/2]

void bitmacarray2::interruptible_serial_all ( std::function< bool(typename bitarray2::iterator &it)>  func)
inline

Loop over all the cells in serial order.

Parameters
[in]funcFunction that defines how each grid cell is processed. Stop the loop if return true.

◆ interruptible_serial_op() [1/2]

void bitmacarray2::interruptible_serial_op ( std::function< bool(int dim, int i, int j, typename bitarray2::iterator &it)>  func,
bool  type = ALL 
)
inline

Loop over cells in serial order.

Parameters
[in]funcFunction that defines how each grid cell is processed.
[in]typeType of target cells. ACTIVE or ALL. Stop the loop if return true.

◆ interruptible_serial_op() [2/2]

void bitmacarray2::interruptible_serial_op ( std::function< bool(typename bitarray2::iterator &it)>  func,
bool  type = ALL 
)
inline

Loop over cells in serial order.

Parameters
[in]funcFunction that defines how each grid cell is processed. Stop the loop if return true.
[in]typeType of target cells. ACTIVE or ALL.

◆ operator!=()

bool bitmacarray2::operator!= ( const bitmacarray2 v) const
inline

Return if the grid is different from an input array.

Parameters
[in]arrayTarget array to compare.
Returns
true if the array is different from the input array and false otherwise.

◆ operator=()

bitmacarray2& bitmacarray2::operator= ( const bitmacarray2 array)
inline

Deep copy operation for bitmacarray2.

Parameters
[in]arrayReference to an instance of macarray to copy from.

◆ operator==()

bool bitmacarray2::operator== ( const bitmacarray2 v) const
inline

Return if the grid is same to an input array.

Parameters
[in]arrayTarget array to compare.
Returns
true if the array is the same to the input and false otherwise.

◆ operator[]() [1/2]

bitarray2& bitmacarray2::operator[] ( int  dim)
inline

Get the reference to the staggered array of a specified dimension.

Parameters
[in]dimDimensiton of the grid.

◆ operator[]() [2/2]

const bitarray2& bitmacarray2::operator[] ( int  dim) const
inline

Get the read-only reference to the staggered array of a specified dimension.

Parameters
[in]dimDimensiton of the grid.

◆ parallel_actives() [1/3]

void bitmacarray2::parallel_actives ( std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)>  func)
inline

Loop over all the active cells in parallel.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ parallel_actives() [2/3]

void bitmacarray2::parallel_actives ( std::function< void(int dim, int i, int j, typename bitarray2::iterator &it, int thread_index)>  func)
inline

Loop over all the active cells in parallel.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ parallel_actives() [3/3]

void bitmacarray2::parallel_actives ( std::function< void(typename bitarray2::iterator &it)>  func)
inline

Loop over all the active cells in parallel.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ parallel_all() [1/3]

void bitmacarray2::parallel_all ( std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)>  func)
inline

Loop over all the cells in parallel.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ parallel_all() [2/3]

void bitmacarray2::parallel_all ( std::function< void(int dim, int i, int j, typename bitarray2::iterator &it, int thread_index)>  func)
inline

Loop over all the cells in parallel.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ parallel_all() [3/3]

void bitmacarray2::parallel_all ( std::function< void(typename bitarray2::iterator &it)>  func)
inline

Loop over all the cells in parallel.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ parallel_op() [1/3]

void bitmacarray2::parallel_op ( std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)>  func,
bool  type = ALL 
)
inline

Loop over cells in parallel.

Parameters
[in]funcFunction that defines how each grid cell is processed.
[in]typeType of target cells. ACTIVE or ALL.

◆ parallel_op() [2/3]

void bitmacarray2::parallel_op ( std::function< void(int dim, int i, int j, typename bitarray2::iterator &it, int thread_index)>  func,
bool  type = ALL 
)
inline

Loop over cells in parallel.

Parameters
[in]funcFunction that defines how each grid cell is processed.
[in]typeType of target cells. ACTIVE or ALL.

◆ parallel_op() [3/3]

void bitmacarray2::parallel_op ( std::function< void(typename bitarray2::iterator &it)>  func,
bool  type = ALL 
)
inline

Loop over cells in parallel.

Parameters
[in]funcFunction that defines how each grid cell is processed.
[in]typeType of target cells. ACTIVE or ALL.

◆ send_message()

virtual bool bitmacarray2::send_message ( std::string  message,
void *  ptr 
)
inlineoverridevirtual

Send a message to the core module.

Parameters
[in]messageMessage
[in]ptrPointer to some value.
Returns
true if handled false otherwise.

Reimplemented from messageable.

◆ serial_actives() [1/2]

void bitmacarray2::serial_actives ( std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)>  func)
inline

Loop over all the active cells in serial order.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ serial_actives() [2/2]

void bitmacarray2::serial_actives ( std::function< void(typename bitarray2::iterator &it)>  func)
inline

Loop over all the active cells in serial order.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ serial_all() [1/2]

void bitmacarray2::serial_all ( std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)>  func)
inline

Loop over all the cells in serial order.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ serial_all() [2/2]

void bitmacarray2::serial_all ( std::function< void(typename bitarray2::iterator &it)>  func)
inline

Loop over all the cells in serial order.

Parameters
[in]funcFunction that defines how each grid cell is processed.

◆ serial_op() [1/2]

void bitmacarray2::serial_op ( std::function< void(int dim, int i, int j, typename bitarray2::iterator &it)>  func,
bool  type = ALL 
)
inline

Loop over cells in serial order.

Parameters
[in]funcFunction that defines how each grid cell is processed.
[in]typeType of target cells. ACTIVE or ALL.

◆ serial_op() [2/2]

void bitmacarray2::serial_op ( std::function< void(typename bitarray2::iterator &it)>  func,
bool  type = ALL 
)
inline

Loop over cells in serial order.

Parameters
[in]funcFunction that defines how each grid cell is processed.
[in]typeType of target cells. ACTIVE or ALL.

◆ set_core_name()

void bitmacarray2::set_core_name ( std::string  core_name)
inline

Set the core name of module of this grid.

Parameters
[in]Nameof the core name.

◆ set_thread_num()

void bitmacarray2::set_thread_num ( int  number)
inline

Set the number of threads for parallel processing on this grid.

Parameters
[in]numberNumber of threads.

◆ set_type()

void bitmacarray2::set_type ( const type2 type)
inline

Set the type of this grid.

Parameters
[in]typeAn instance of type to set.

◆ shape() [1/2]

shape2 bitmacarray2::shape ( ) const
inline

Get the shape of the array.

Returns
Shape of the array.

◆ shape() [2/2]

shape2 bitmacarray2::shape ( int  dim) const
inline

Get the shape of the staggered grid of a specified dimension.

Returns
Shape of the grid of an input dimension.

◆ type()

type2 bitmacarray2::type ( ) const
inline

Get the type of this grid.

Returns
Type of this grid.

The documentation for this class was generated from the following file: