casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
casa::RFFloatLattice Class Reference

RFFloatLatice: a cubic lattice. More...

#include <RFFloatLattice.h>

Public Member Functions

 RFFloatLattice ()
 default constructor creates empty cube More...
 
 RFFloatLattice (casacore::uInt nx, casacore::uInt ny, casacore::uInt nz, casacore::uInt ncorr, casacore::uInt nAgent, casacore::Int maxmem=-1)
 creates NX x NY x NZ cube More...
 
 RFFloatLattice (casacore::uInt nx, casacore::uInt ny, casacore::uInt nz, casacore::uInt ncorr, casacore::uInt nAgent, const casacore::Float &init_val, casacore::Int maxmem=-1)
 creates NX x NY x NZ cube and fills with initial value More...
 
 ~RFFloatLattice ()
 destructor More...
 
void init (casacore::uInt nx, casacore::uInt ny, casacore::uInt nz, casacore::uInt ncorr, casacore::uInt nAgent, casacore::Int maxmem=-1, casacore::Int tile_mb=2)
 creates NX x NY x NZ cube tile_mb is the tile size, in MB (when using paging) More...
 
void init (casacore::uInt nx, casacore::uInt ny, casacore::uInt nz, casacore::uInt ncorr, casacore::uInt nAgent, const casacore::Float &init_val, casacore::Int maxmem=-1, casacore::Int tile_mb=2)
 creates NX x NY x NZ cube and fills with initial value tile_mb is the tile size, in MB (when using paging) More...
 
void cleanup ()
 destroys cube More...
 
casacore::Matrix
< casacore::Float > * 
reset (casacore::Bool will_read=true, casacore::Bool will_write=true)
 resets the lattice iterator to beginning. More...
 
casacore::Matrix
< casacore::Float > * 
advance (casacore::Int iz)
 advances internal iterator to specified slot along the Z axis, returns cursor More...
 
casacore::Int position ()
 returns position of internal iterator More...
 
const casacore::IPositionshape ()
 returns shape More...
 
casacore::Matrix
< casacore::Float > * 
cursor ()
 returns internal cursor More...
 
casacore::Floatoperator() (casacore::uInt i, casacore::uInt j)
 returns element at i,j of cursor More...
 
RFFloatLatticeIteratoriterator ()
 provides access to lattice itself std::vector<std::vector<bool> > & lattice() { return lat; } More...
 
RFFloatLatticeIterator newIter ()
 creates a new iterator for this lattice More...
 

Static Public Member Functions

static casacore::uInt estimateMemoryUse (casacore::uInt nx, casacore::uInt ny, casacore::uInt nz)
 returns size of cube More...
 

Protected Attributes

casacore::IPosition lat_shape
 
std::vector< std::vector< bool > > lat
 
RFFloatLatticeIterator iter
 
unsigned n_chan
 
unsigned n_ifr
 
unsigned n_time
 
unsigned n_bit
 
unsigned n_corr
 

Detailed Description

RFFloatLatice: a cubic lattice.

Intended use:

Internal

Prerequisite

Synopsis

RFFloatLattice is a [NX,NY,NZ] vector of Matrices which is iterated over the Z axis. While a vector of Matrices may not be localized in memory, it has the advantage that the total amount of memory allocated can exceed the available RAM, which is probably not possible if allocated as a single giant block. Each element of the matrices is a few bits, therefore (in order to save memory), the full matrix is represented as a bitsequence, which is converted to casacore::Matrix<casacore::Float> on the fly.

The buffer is no longer implemented using a casacore::TempLattice because the template parameter to casacore::TempLattice is restricted to certain types, and cannot be dynamic_bitset<>. Besides, casacore::TempLattice is currently(?) not* well implemented: it creates casacore::TempLattice disk files although most of the RAM is free.

If more memory than avilable RAM is requested, swapping will occur. The underlying OS probably knows better when to swap!

Motivation

Many flagging agents make use of cubic lattices (typically, to maintain [NCHAN,NIFR,NTIME] cubes of something) in an identical way. This class provides a clean and convenient interface to the basic functions.

Template Type Argument Requirements (T)

To Do

Definition at line 160 of file RFFloatLattice.h.

Constructor & Destructor Documentation

casa::RFFloatLattice::RFFloatLattice ( )

default constructor creates empty cube

casa::RFFloatLattice::RFFloatLattice ( casacore::uInt  nx,
casacore::uInt  ny,
casacore::uInt  nz,
casacore::uInt  ncorr,
casacore::uInt  nAgent,
casacore::Int  maxmem = -1 
)

creates NX x NY x NZ cube

casa::RFFloatLattice::RFFloatLattice ( casacore::uInt  nx,
casacore::uInt  ny,
casacore::uInt  nz,
casacore::uInt  ncorr,
casacore::uInt  nAgent,
const casacore::Float init_val,
casacore::Int  maxmem = -1 
)

creates NX x NY x NZ cube and fills with initial value

casa::RFFloatLattice::~RFFloatLattice ( )

destructor

Member Function Documentation

casacore::Matrix<casacore::Float>* casa::RFFloatLattice::advance ( casacore::Int  iz)
inline

advances internal iterator to specified slot along the Z axis, returns cursor

Definition at line 195 of file RFFloatLattice.h.

References casa::RFFloatLatticeIterator::advance(), and iter.

void casa::RFFloatLattice::cleanup ( )

destroys cube

casacore::Matrix<casacore::Float>* casa::RFFloatLattice::cursor ( )
inline

returns internal cursor

Definition at line 204 of file RFFloatLattice.h.

References casa::RFFloatLatticeIterator::cursor(), and iter.

static casacore::uInt casa::RFFloatLattice::estimateMemoryUse ( casacore::uInt  nx,
casacore::uInt  ny,
casacore::uInt  nz 
)
inlinestatic

returns size of cube

Definition at line 187 of file RFFloatLattice.h.

void casa::RFFloatLattice::init ( casacore::uInt  nx,
casacore::uInt  ny,
casacore::uInt  nz,
casacore::uInt  ncorr,
casacore::uInt  nAgent,
casacore::Int  maxmem = -1,
casacore::Int  tile_mb = 2 
)

creates NX x NY x NZ cube tile_mb is the tile size, in MB (when using paging)

void casa::RFFloatLattice::init ( casacore::uInt  nx,
casacore::uInt  ny,
casacore::uInt  nz,
casacore::uInt  ncorr,
casacore::uInt  nAgent,
const casacore::Float init_val,
casacore::Int  maxmem = -1,
casacore::Int  tile_mb = 2 
)

creates NX x NY x NZ cube and fills with initial value tile_mb is the tile size, in MB (when using paging)

RFFloatLatticeIterator& casa::RFFloatLattice::iterator ( )
inline

provides access to lattice itself std::vector<std::vector<bool> > & lattice() { return lat; }

provides access to iterator

Definition at line 213 of file RFFloatLattice.h.

References iter.

RFFloatLatticeIterator casa::RFFloatLattice::newIter ( )

creates a new iterator for this lattice

casacore::Float& casa::RFFloatLattice::operator() ( casacore::uInt  i,
casacore::uInt  j 
)
inline

returns element at i,j of cursor

Definition at line 207 of file RFFloatLattice.h.

References casa::RFFloatLatticeIterator::cursor(), and iter.

casacore::Int casa::RFFloatLattice::position ( )
inline

returns position of internal iterator

Definition at line 198 of file RFFloatLattice.h.

References iter, and casa::RFFloatLatticeIterator::position().

casacore::Matrix<casacore::Float>* casa::RFFloatLattice::reset ( casacore::Bool  will_read = true,
casacore::Bool  will_write = true 
)

resets the lattice iterator to beginning.

const casacore::IPosition& casa::RFFloatLattice::shape ( )
inline

returns shape

Definition at line 201 of file RFFloatLattice.h.

References lat_shape.

Member Data Documentation

RFFloatLatticeIterator casa::RFFloatLattice::iter
protected

Definition at line 165 of file RFFloatLattice.h.

Referenced by advance(), cursor(), iterator(), operator()(), and position().

std::vector<std::vector<bool> > casa::RFFloatLattice::lat
protected

Definition at line 164 of file RFFloatLattice.h.

casacore::IPosition casa::RFFloatLattice::lat_shape
protected

Definition at line 163 of file RFFloatLattice.h.

Referenced by shape().

unsigned casa::RFFloatLattice::n_bit
protected

Definition at line 166 of file RFFloatLattice.h.

unsigned casa::RFFloatLattice::n_chan
protected

Definition at line 166 of file RFFloatLattice.h.

unsigned casa::RFFloatLattice::n_corr
protected

Definition at line 166 of file RFFloatLattice.h.

unsigned casa::RFFloatLattice::n_ifr
protected

Definition at line 166 of file RFFloatLattice.h.

unsigned casa::RFFloatLattice::n_time
protected

Definition at line 166 of file RFFloatLattice.h.


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