rasdaman client API 10.6.3
The Array Analytics Engine: Datacubes at Your Fingertips
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
r_Stat_Tiling Class Reference

#include <stattiling.hh>

Inheritance diagram for r_Stat_Tiling:
r_Dimension_Tiling r_Size_Tiling r_Tiling

Public Member Functions

 r_Stat_Tiling (const char *encoded)
 read everything from an encoded string e.g.
 
 r_Stat_Tiling (r_Dimension dim, const std::vector< r_Access > &stat_info, r_Bytes ts=r_Tiling::defaultTileSize, r_Area border_threshold=DEF_BORDER_THR, r_Double interesting_threshold=DEF_INTERESTING_THR)
 Class constructor.
 
virtual ~r_Stat_Tiling ()=default
 This is the "Statistic Tiling" class constructor.
 
virtual const std::vector< r_Minterval > & get_interesting_areas () const
 Gets the statistical information.
 
r_Area get_border_threshold () const
 Gets the threshold at which to intervals are considered the same.
 
r_Double get_interesting_threshold () const
 This method gets the number of points (pixels/cells) at which two intervals are considered to be the same, in the access patterns.
 
void print_status (std::ostream &os) const override
 This method gets the threshold at which an area is considered to be interesting.
 
std::vector< r_Mintervalcompute_tiles (const r_Minterval &obj_domain, r_Bytes cell_size) const override
 Decompose an object in tiles.
 
r_Tilingclone () const override
 This method provides the core funcionality of this class.
 
r_Tiling_Scheme get_tiling_scheme () const override
 This method is similar to a copy constructor, this is, is returns a copy of the current object.
 
- Public Member Functions inherited from r_Dimension_Tiling
 r_Dimension_Tiling (r_Dimension dim, r_Bytes ts=r_Tiling::defaultTileSize)
 Constructor for this object (Takes dim (no of dimension) and tile size as parameter)
 
virtual ~r_Dimension_Tiling ()=default
 
bool is_compatible (const r_Minterval &obj_domain, r_Bytes cellTypeSize) const override
 returns true if the cellTypeSize is smaller or equal to the tile size and the dimension fits the obj_domain
 
r_Dimension get_dimension () const
 
- Public Member Functions inherited from r_Size_Tiling
 r_Size_Tiling (const char *encoded)
 Constructor that reads everything from a string e.g."100".
 
 r_Size_Tiling (r_Bytes ts=r_Tiling::defaultTileSize)
 
virtual ~r_Size_Tiling ()=default
 
bool is_compatible (const r_Minterval &obj_domain, r_Bytes cellTypeSize) const override
 returns true if the cellTypeSize is smaller or equal to the tile size and obj_domain has more than 0 dimensions
 
r_Bytes get_tile_size () const
 
- Public Member Functions inherited from r_Tiling
virtual ~r_Tiling ()=default
 

Static Public Attributes

static const r_Area DEF_BORDER_THR
 Default threshold for two borders being considered the same.
 
static const r_Double DEF_INTERESTING_THR
 Default threshold for considering an area interesting when tiling.
 
static const char * description
 
- Static Public Attributes inherited from r_Size_Tiling
static const char * description
 
- Static Public Attributes inherited from r_Tiling
static const char * ASTERIX
 return the type of tiling scheme
 
static const char * TCOLON
 
static const char * TCOMMA
 
static const char * LSQRBRA
 
static const char * RSQRBRA
 
static const int DefaultBase
 
static const r_Bytes defaultTileSize
 

Protected Member Functions

void filter (std::vector< r_Access > &patterns) const
 Filters and access pattern table (list) throws exception if dimensions of access patterns are not the same.
 
r_Access merge (const std::vector< r_Access > &patterns) const
 Merges a list of access patterns.
 
- Protected Member Functions inherited from r_Tiling
void check_nonempty_tiling (const char *encoded) const
 
void check_premature_stream_end (const char *currPos, const char *endPos) const
 
r_Minterval parse_minterval (const char *encoded) const
 
unsigned int parse_unsigned (const char *encoded) const
 
unsigned long parse_unsigned_long (const char *encoded) const
 
long parse_long (const char *encoded) const
 
double parse_double (const char *encoded) const
 
std::unique_ptr< char[]> copy_buffer (const char *buf, size_t len) const
 
const char * advance_to_next_char (const char *p, const char *search) const
 

Protected Attributes

r_Double interesting_thr
 The "interesting area" threshold.
 
r_Area border_thr
 The "same border" threshold.
 
std::vector< r_Mintervaliareas
 Current interest areas.
 
std::vector< r_Accessstat_info
 Statistical data.
 
- Protected Attributes inherited from r_Dimension_Tiling
r_Dimension dimension {}
 dimension the mdd must have
 
- Protected Attributes inherited from r_Size_Tiling
r_Bytes tile_size {}
 Tile size.
 

Constructor & Destructor Documentation

◆ r_Stat_Tiling() [1/2]

r_Stat_Tiling::r_Stat_Tiling ( const char *  encoded)
explicit

read everything from an encoded string e.g.

"2;[0:9,0:9],3;[100:109,0:9],2;2;0.3;100"

◆ r_Stat_Tiling() [2/2]

r_Stat_Tiling::r_Stat_Tiling ( r_Dimension  dim,
const std::vector< r_Access > &  stat_info,
r_Bytes  ts = r_Tiling::defaultTileSize,
r_Area  border_threshold = DEF_BORDER_THR,
r_Double  interesting_threshold = DEF_INTERESTING_THR 
)

Class constructor.

◆ ~r_Stat_Tiling()

virtual r_Stat_Tiling::~r_Stat_Tiling ( )
virtualdefault

This is the "Statistic Tiling" class constructor.

It takes as parameters the threshold for, when performing filtering, considering two borders the same, and also, the threshold at which an area is considered interesting and should be taken in account when performing tiling. Finally, the tilesize is considered as a parameter. stat_info inputs the statistic information into the class and calculates the new interest areas that will be used to perform tiling on the object. An exception is thrown when the statistical data does not fit the dimension.

Member Function Documentation

◆ clone()

r_Tiling * r_Stat_Tiling::clone ( ) const
overridevirtual

This method provides the core funcionality of this class.

All derived classes must implement it. As input parameters it takes the big object to be decomposed and returns a set of tiles that compose the big object. This method throws an exeception when the dimension specified, extend or the cell_size are incompatible with the current tiling. You can check compatibility by invoking is_compatible. Clones this object

Implements r_Dimension_Tiling.

◆ compute_tiles()

std::vector< r_Minterval > r_Stat_Tiling::compute_tiles ( const r_Minterval obj_domain,
r_Bytes  cell_size 
) const
overridevirtual

Decompose an object in tiles.

Implements r_Dimension_Tiling.

◆ filter()

void r_Stat_Tiling::filter ( std::vector< r_Access > &  patterns) const
protected

Filters and access pattern table (list) throws exception if dimensions of access patterns are not the same.

◆ get_border_threshold()

r_Area r_Stat_Tiling::get_border_threshold ( ) const

Gets the threshold at which to intervals are considered the same.

◆ get_interesting_areas()

virtual const std::vector< r_Minterval > & r_Stat_Tiling::get_interesting_areas ( ) const
virtual

Gets the statistical information.

◆ get_interesting_threshold()

r_Double r_Stat_Tiling::get_interesting_threshold ( ) const

This method gets the number of points (pixels/cells) at which two intervals are considered to be the same, in the access patterns.

Gets the threshold at which an area is considered to be interesting

◆ get_tiling_scheme()

r_Tiling_Scheme r_Stat_Tiling::get_tiling_scheme ( ) const
overridevirtual

This method is similar to a copy constructor, this is, is returns a copy of the current object.

Derived classes must explicitly implement this method.

Reimplemented from r_Size_Tiling.

◆ merge()

r_Access r_Stat_Tiling::merge ( const std::vector< r_Access > &  patterns) const
protected

Merges a list of access patterns.

◆ print_status()

void r_Stat_Tiling::print_status ( std::ostream &  os) const
overridevirtual

This method gets the threshold at which an area is considered to be interesting.

All the areas that are accessed above the specified threshold, will be considered interest areas when performing tiling.

Reimplemented from r_Dimension_Tiling.

Member Data Documentation

◆ border_thr

r_Area r_Stat_Tiling::border_thr
protected

The "same border" threshold.

◆ DEF_BORDER_THR

const r_Area r_Stat_Tiling::DEF_BORDER_THR
static

Default threshold for two borders being considered the same.

◆ DEF_INTERESTING_THR

const r_Double r_Stat_Tiling::DEF_INTERESTING_THR
static

Default threshold for considering an area interesting when tiling.

◆ description

const char* r_Stat_Tiling::description
static

◆ iareas

std::vector<r_Minterval> r_Stat_Tiling::iareas
protected

Current interest areas.

◆ interesting_thr

r_Double r_Stat_Tiling::interesting_thr
protected

The "interesting area" threshold.

◆ stat_info

std::vector<r_Access> r_Stat_Tiling::stat_info
protected

Statistical data.


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