libeblearntools
ebl::pairtree Class Reference

#include <metaparser.h>

List of all members.

Public Member Functions

 pairtree (string &var, string &val)
 pairtree (uint var, uint val)
 Construct a pairtree with its string ids directly.
 pairtree ()
 Empty constructor, should be used for the unique root only.
virtual ~pairtree ()
 Destructor.
void add (const string &var, string &val)
 Add variable/value pair to this tree.
map< uint, uint > add (list< uint > &subvar, map< uint, uint > &ivars)
natural_varmap flatten (const string &key, natural_varmap *flat=NULL, map< uint, uint > *path=NULL)
varmaplist flatten (varmaplist *flat=NULL, map< uint, uint > *path=NULL)
natural_varmap best (const string &key, uint n=0, bool display=false)
varmaplist best (list< string > &keys, uint n=0, bool display=false, int maxiter=-1)
varmaplist best (list< string > &keys, const string &key, bool display=false)
varmaplist best (list< string > &keys, list< string > &keycomb, bool display=false)
uint & get_variable ()
 Returns the variable name associated with this pair.
uint & get_value ()
 Returns the value associated with this pair.
void pretty (string offset="")
 Pretty this tree, with a string offset beforehand.
void pretty_flat (const string key, natural_varmap *flat=NULL)
void pretty_flat (varmaplist *flat=NULL, list< string > *keys=NULL)
uint get_max_uint (const string &var)
 Return the maximum uint value of variable var.
bool exists (const string &var)
 Return true if variable var exists in the tree.
bool delete_pair (const char *var, const char *value)
map< uint, pairtree > & get_subtree ()
 Return sub tree.

Static Public Member Functions

static uint get_var_id (const string &var)
static uint get_var_id (const char *var)
static uint get_val_id (const string &val)
static list< uint > to_varid_list (list< string > &l)
static string flat_to_string (const string key, natural_varmap *flat=NULL)
static string flat_to_string (varmaplist *flat=NULL, list< string > *keys=NULL)

Static Public Attributes

static vector< string > vars_vector
 Vector of all variables strings, ordered by their id.
static vector< string > vals_vector
 Vector of all values strings, ordered by their id.

Detailed Description

A class representing a tree hierarchy of variable/value pairs. A pair tree is defined by a variable/value pair, and a subtree corresponding to 1 subvariable only (could be extended to multiple variables). The subtree is a map of pairtrees for each value of this subvariable.


Constructor & Destructor Documentation

ebl::pairtree::pairtree ( string &  var,
string &  val 
)

Constructor

Parameters:
varA string containing a variable name.
valA string containing a value.

Member Function Documentation

map< uint, uint > ebl::pairtree::add ( list< uint > &  subvar,
map< uint, uint > &  ivars 
)

Add a set of variable/value pairs, organized by the 'subvar' order of variable names.

natural_varmap ebl::pairtree::best ( const string &  key,
uint  n = 0,
bool  display = false 
)

Return the n best values (minimized) of key, or all if n == 0.

Parameters:
displayIf true, pretty best answers.
varmaplist ebl::pairtree::best ( list< string > &  keys,
uint  n = 0,
bool  display = false,
int  maxiter = -1 
)

Return the n best sets of variables that minimize the keys in the order of their list, or all if n == 0.

Parameters:
displayIf true, pretty best answers.
maxiterIf >= 0, remove all occurences of 'i' > maxiter.
varmaplist ebl::pairtree::best ( list< string > &  keys,
const string &  key,
bool  display = false 
)

Return the best sets of variables that minimize the keys in the order of their list. Only 1 best answer per value of key 'key' is returned.

Parameters:
displayIf true, pretty best answers.
varmaplist ebl::pairtree::best ( list< string > &  keys,
list< string > &  keycomb,
bool  display = false 
)

Return the best sets of variables that minimize the keys in the order of their list. Only 1 best answer per combination of values of each key contained in 'keycomb' is returned.

Parameters:
displayIf true, pretty best answers.
bool ebl::pairtree::delete_pair ( const char *  var,
const char *  value 
)

Delete pair var/val and its children. Returns true if found and deleted, false otherwise.

string ebl::pairtree::flat_to_string ( const string  key,
natural_varmap *  flat = NULL 
) [static]

Returns a string representation of this tree flattened using key. If flat is not NULL, pretty this flat, otherwise generate a flat representation of the current tree.

string ebl::pairtree::flat_to_string ( varmaplist *  flat = NULL,
list< string > *  keys = NULL 
) [static]

Returns a string representation of this tree flattened using key. If flat is not NULL, pretty this flat, otherwise generate a flat representation of the current tree.

Parameters:
keysIf not null, display keys first.
varmaplist ebl::pairtree::flatten ( varmaplist *  flat = NULL,
map< uint, uint > *  path = NULL 
)

Return a flat representation of the tree, as a list of all possible branches (each branch is a map of var/val pairs).

natural_varmap ebl::pairtree::flatten ( const string &  key,
natural_varmap *  flat = NULL,
map< uint, uint > *  path = NULL 
)

Return a flat representation of the tree, using the variable name key as key to represent each group of variables. E.g. if we have a tree with nodes "name" and "i", and leaves contain "error", "success" and we choose "error" as our key, this will return a map with all error values paired with all var/val pairs of "name", "i" and "success".

uint ebl::pairtree::get_val_id ( const string &  val) [static]

Returns the string id of variable 'val'. If not present, 'val' is added and assigned a new id.

uint ebl::pairtree::get_var_id ( const char *  var) [static]

Returns the string id of variable 'var'. If not present, 'var' is added and assigned a new id.

uint ebl::pairtree::get_var_id ( const string &  var) [static]

Returns the string id of variable 'var'. If not present, 'var' is added and assigned a new id.

void ebl::pairtree::pretty_flat ( const string  key,
natural_varmap *  flat = NULL 
)

Pretty this tree, flattened using key. If flat is not NULL, pretty this flat, otherwise generate a flat representation of the current tree.

void ebl::pairtree::pretty_flat ( varmaplist *  flat = NULL,
list< string > *  keys = NULL 
)

Pretty this tree, flattened. If flat is not NULL, pretty this flat, otherwise generate a flat representation of the current tree.

Parameters:
keysIf not null, display keys first.
list< uint > ebl::pairtree::to_varid_list ( list< string > &  l) [static]

Returns list of ids corresponding to the list of strings 'l'. All strings are added to static internal members if not assigned yet.


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