Namespaces | Classes | Typedefs | Functions

mln::util Namespace Reference

Namespace of tools using for more complex algorithm. More...

Namespaces

namespace  impl
 

Implementation namespace of util namespace.


namespace  internal

Classes

class  adjacency_matrix
 A class of adjacency matrix. More...
class  array
 A dynamic array class. More...
class  array_bkd_iter
class  array_fwd_iter
struct  bi_elt
class  branch
 Class of generic branch. More...
class  branch_iter
 Basic 2D image class. More...
class  branch_iter_ind
 Basic 2D image class. More...
class  couple
 Definition of a couple. More...
struct  dindex_
 Delta-index structure. More...
struct  eat
 Eat structure. More...
class  edge
 Edge of a graph G. More...
class  fibonacci_heap
 Fibonacci heap. More...
class  graph
 Undirected graph. More...
class  greater_point
 A ``greater than'' functor comparing points w.r.t. More...
class  greater_psite
 A ``greater than'' functor comparing psites w.r.t. More...
class  head
 Top structure of the soft heap. More...
struct  hqueues
struct  ignore
 Ignore structure. More...
struct  ilcell
 Element of an item list. Store the data (key) used in soft_heap. More...
struct  index_
 Index structure. More...
class  lazy_set_
 An "efficient" mathematical set class. More...
struct  lemmings_
 Lemmings tool. More...
class  line_graph
 Undirected line graph of a graph of type G. More...
struct  multi_site
struct  nil
 Nil structure. More...
class  node
 Meta-data of an element in the heap. More...
class  object_id
 Base class of an object id. More...
struct  ord
 Function-object that defines an ordering between objects with type T: lhs R rhs. More...
struct  ord_pair
 Ordered pair structure s.a. More...
struct  pix
 Structure pix. More...
class  set
 An "efficient" mathematical set class. More...
class  set_bkd_iter
class  set_fwd_iter
class  site_pair
 A pair of sites. More...
class  soft_heap
 Soft heap. More...
class  timer
 Timer structure. More...
struct  tracked_ptr
 Smart pointer for shared data with tracking. More...
class  tree
 Class of generic tree. More...
struct  tree_fast
class  tree_node
 Class of generic tree_node for tree. More...
class  vertex
 Vertex of a graph G. More...
struct  yes
 Object that always says "yes". More...

Typedefs

typedef dindex_< void > dindex
typedef object_id< edge_tag,
unsigned > 
edge_id_t
typedef index_< void > index
typedef object_id< vertex_tag,
unsigned > 
vertex_id_t
 Vertex id type.

Functions

template<typename I , typename J >
void display_branch (const Image< J > &ima_, tree_node< I > *tree_node)
 Display an arborescence from tree_node.
template<typename I , typename J >
void display_tree (const Image< J > &ima_, tree< I > &tree)
 Display a tree.
template<typename I >
I::psite lemmings (const Image< I > &ima, const typename I::psite &pt, const typename I::psite::delta &dpt, const typename I::value &val)
 Launch a lemmings on an image.
template<typename I >
greater_point< I > make_greater_point (const Image< I > &ima)
 Helper to build a mln::util::greater_point.
template<typename I >
greater_psite< I > make_greater_psite (const Image< I > &ima)
 Helper to build a mln::util::greater_psite.
template<typename T >
bool max (const T &lhs, const T &rhs)
template<typename T >
bool operator< (const set< T > &lhs, const set< T > &rhs)
template<typename G >
bool operator< (const edge< G > &lhs, const edge< G > &rhs)
template<typename P >
bool operator< (const site_pair< P > &lhs, const site_pair< P > &rhs)
template<typename P >
bool operator< (const multi_site< P > &lhs, const multi_site< P > &rhs)
template<typename Tag , typename V , typename V2 >
bool operator< (const object_id< Tag, V > &lhs, const object_id< Tag, V > &rhs)
template<typename G >
bool operator< (const vertex< G > &lhs, const vertex< G > &rhs)
 Less operator. Test whether lhs.id() < rhs.id().
template<typename Tag , typename V >
bool operator< (const object_id< Tag, V > &lhs, const object_id< Tag, V > &rhs)
template<typename T , typename U >
bool operator< (const couple< T, U > &lhs, const couple< T, U > &rhs)
template<typename T >
bool operator< (const ord_pair< T > &lhs, const ord_pair< T > &rhs)
template<typename G >
std::ostream & operator<< (std::ostream &ostr, const edge< G > &p)
template<typename G >
std::ostream & operator<< (std::ostream &ostr, const line_graph< G > &g)
template<typename T >
std::ostream & operator<< (std::ostream &ostr, const mln::util::set< T > &s)
template<typename P >
std::ostream & operator<< (std::ostream &ostr, const site_pair< P > &p)
template<typename T >
std::ostream & operator<< (std::ostream &ostr, const tracked_ptr< T > &tp)
template<typename T , typename U >
std::ostream & operator<< (std::ostream &ostr, const couple< T, U > &op)
template<typename G >
std::ostream & operator<< (std::ostream &ostr, const vertex< G > &v)
 Push the vertex v in the output stream ostr.
template<typename T >
std::ostream & operator<< (std::ostream &ostr, const array< T > &a)
 Operator<<.
template<typename P , typename T >
std::ostream & operator<< (std::ostream &ostr, const fibonacci_heap< P, T > &heap)
std::ostream & operator<< (std::ostream &ostr, const graph &g)
template<typename V >
std::ostream & operator<< (std::ostream &ostr, const adjacency_matrix< V > &adj)
template<typename T >
std::ostream & operator<< (std::ostream &ostr, const ord_pair< T > &op)
template<typename T >
bool operator<= (const set< T > &lhs, const set< T > &rhs)
template<typename T >
bool operator<= (const ord_pair< T > &lhs, const ord_pair< T > &rhs)
template<typename P >
bool operator<= (const site_pair< P > &lhs, const site_pair< P > &rhs)
template<typename T , typename U >
bool operator<= (const couple< T, U > &lhs, const couple< T, U > &rhs)
template<typename Tag , typename V >
bool operator== (const object_id< Tag, V > &lhs, const object_id< Tag, V > &rhs)
template<typename T >
bool operator== (const ord_pair< T > &lhs, const ord_pair< T > &rhs)
template<typename P >
bool operator== (const site_pair< P > &lhs, const site_pair< P > &rhs)
template<typename Tag , typename V , typename V2 >
bool operator== (const object_id< Tag, V > &lhs, const Value< V2 > &rhs)
template<typename T >
bool operator== (const set< T > &lhs, const set< T > &rhs)
template<typename G >
bool operator== (const edge< G > &lhs, const edge< G > &rhs)
template<typename P >
bool operator== (const multi_site< P > &lhs, const multi_site< P > &rhs)
template<typename G >
bool operator== (const vertex< G > &v1, const vertex< G > &v2)
 Equality operator.
template<typename T >
bool operator== (const array< T > &lhs, const array< T > &rhs)
 Operator==.
template<typename T , typename U >
bool operator== (const couple< T, U > &lhs, const couple< T, U > &rhs)
template<typename T1 , typename T2 >
bool ord_lexi_strict (const T1 &lhs_1, const T2 &lhs_2, const T1 &rhs_1, const T2 &rhs_2)
template<typename T >
bool ord_strict (const T &lhs, const T &rhs)
 Routine to test if lhs is strictly "less-than" rhs.
template<typename T >
bool ord_weak (const T &lhs, const T &rhs)
 Routine to test if lhs is "less-than or equal-to" rhs.
template<typename T , typename I >
void tree_fast_to_image (tree_fast< T > &tree, Image< I > &output_)
template<typename T >
tree_fast< T > tree_to_fast (tree< T > &input)
 Facade.
template<typename T , typename I >
void tree_to_image (tree< T > &tree, Image< I > &output_)
 Convert a tree into an image.

Detailed Description

Namespace of tools using for more complex algorithm.

Forward declaration.


Typedef Documentation

typedef dindex_<void> mln::util::dindex

Definition at line 111 of file dindex.hh.

typedef object_id<edge_tag, unsigned> mln::util::edge_id_t

Definition at line 49 of file graph_ids.hh.

typedef index_<void> mln::util::index

Definition at line 108 of file index.hh.

typedef object_id<vertex_tag, unsigned> mln::util::vertex_id_t

Vertex id type.

Definition at line 43 of file graph_ids.hh.


Function Documentation

template<typename I , typename J >
void mln::util::display_branch ( const Image< J > &  ima_,
tree_node< I > *  tree_node 
) [inline]

Display an arborescence from tree_node.

Parameters:
[in] ima_ The domain of output image.
[in] tree_node The root tree_node to display.

Definition at line 210 of file tree_to_image.hh.

References mln::util::impl::display_branch_rec(), mln::trace::entering(), mln::exact(), mln::trace::exiting(), and mln::data::fill().

template<typename I , typename J >
void mln::util::display_tree ( const Image< J > &  ima_,
tree< I > &  tree 
) [inline]

Display a tree.

Parameters:
[in] ima_ The domain of output image.
[in] tree The tree to display.

Definition at line 192 of file tree_to_image.hh.

References mln::util::impl::display_tree_rec(), mln::trace::entering(), mln::exact(), mln::trace::exiting(), and mln::util::tree< T >::root().

template<typename I >
I::psite mln::util::lemmings ( const Image< I > &  ima,
const typename I::psite &  pt,
const typename I::psite::delta &  dpt,
const typename I::value &  val 
)

Launch a lemmings on an image.

A lemmings is the point pt that you put on an image ima . This point will move through the image using the delta-point dpt while consider his value on the given image.

Returns:
The first point that is not in the domain domain or which value on the given image is different to the value val.
Precondition:
The domain domain must be contained in the domain of ima.

Definition at line 104 of file lemmings.hh.

template<typename I >
greater_point< I > mln::util::make_greater_point ( const Image< I > &  ima  ) 

Helper to build a mln::util::greater_point.

Definition at line 82 of file greater_point.hh.

template<typename I >
greater_psite< I > mln::util::make_greater_psite ( const Image< I > &  ima  ) 

Helper to build a mln::util::greater_psite.

Definition at line 82 of file greater_psite.hh.

template<typename T >
bool mln::util::max ( const T &  lhs,
const T &  rhs 
) [inline]

Definition at line 53 of file util/max.hh.

References ord_strict().

template<typename T >
bool mln::util::operator< ( const set< T > &  lhs,
const set< T > &  rhs 
)

Definition at line 752 of file util/set.hh.

References mln::rhs.

template<typename G >
bool mln::util::operator< ( const edge< G > &  lhs,
const edge< G > &  rhs 
) [inline]

Definition at line 378 of file edge.hh.

References mln::rhs.

template<typename P >
bool mln::util::operator< ( const site_pair< P > &  lhs,
const site_pair< P > &  rhs 
) [inline]

Definition at line 178 of file site_pair.hh.

References mln::rhs.

template<typename P >
bool mln::util::operator< ( const multi_site< P > &  lhs,
const multi_site< P > &  rhs 
)

Definition at line 158 of file multi_site.hh.

template<typename Tag , typename V , typename V2 >
bool mln::util::operator< ( const object_id< Tag, V > &  lhs,
const object_id< Tag, V > &  rhs 
) [inline]

Definition at line 224 of file object_id.hh.

References mln::rhs.

template<typename G >
bool mln::util::operator< ( const vertex< G > &  lhs,
const vertex< G > &  rhs 
) [inline]

Less operator. Test whether lhs.id() < rhs.id().

Definition at line 390 of file vertex.hh.

References mln::rhs.

template<typename Tag , typename V >
bool mln::util::operator< ( const object_id< Tag, V > &  lhs,
const object_id< Tag, V > &  rhs 
) [inline]

Definition at line 224 of file object_id.hh.

References mln::rhs.

template<typename T , typename U >
bool mln::util::operator< ( const couple< T, U > &  lhs,
const couple< T, U > &  rhs 
) [inline]

Definition at line 201 of file util/couple.hh.

References ord_strict(), and mln::rhs.

template<typename T >
bool mln::util::operator< ( const ord_pair< T > &  lhs,
const ord_pair< T > &  rhs 
) [inline]

Definition at line 239 of file ord_pair.hh.

References ord_strict(), and mln::rhs.

template<typename G >
std::ostream & mln::util::operator<< ( std::ostream &  ostr,
const edge< G > &  p 
) [inline]

Definition at line 360 of file edge.hh.

template<typename G >
std::ostream & mln::util::operator<< ( std::ostream &  ostr,
const line_graph< G > &  g 
) [inline]

Definition at line 494 of file line_graph.hh.

template<typename T >
std::ostream& mln::util::operator<< ( std::ostream &  ostr,
const mln::util::set< T > &  s 
)

Definition at line 724 of file util/set.hh.

References mln::util::set< T >::nelements().

template<typename P >
std::ostream & mln::util::operator<< ( std::ostream &  ostr,
const site_pair< P > &  p 
) [inline]

Definition at line 194 of file site_pair.hh.

template<typename T >
std::ostream& mln::util::operator<< ( std::ostream &  ostr,
const tracked_ptr< T > &  tp 
) [inline]

Definition at line 260 of file tracked_ptr.hh.

template<typename T , typename U >
std::ostream & mln::util::operator<< ( std::ostream &  ostr,
const couple< T, U > &  op 
) [inline]

Definition at line 225 of file util/couple.hh.

template<typename G >
std::ostream & mln::util::operator<< ( std::ostream &  ostr,
const vertex< G > &  v 
) [inline]

Push the vertex v in the output stream ostr.

Definition at line 372 of file vertex.hh.

template<typename T >
std::ostream & mln::util::operator<< ( std::ostream &  ostr,
const array< T > &  a 
)

Operator<<.

Definition at line 796 of file util/array.hh.

References mln::util::array< T >::nelements().

template<typename P , typename T >
std::ostream & mln::util::operator<< ( std::ostream &  ostr,
const fibonacci_heap< P, T > &  heap 
)
std::ostream & mln::util::operator<< ( std::ostream &  ostr,
const graph &  g 
) [inline]

Definition at line 527 of file mln/util/graph.hh.

template<typename V >
std::ostream & mln::util::operator<< ( std::ostream &  ostr,
const adjacency_matrix< V > &  adj 
)

Definition at line 323 of file adjacency_matrix.hh.

template<typename T >
std::ostream & mln::util::operator<< ( std::ostream &  ostr,
const ord_pair< T > &  op 
) [inline]

Definition at line 263 of file ord_pair.hh.

template<typename T >
bool mln::util::operator<= ( const set< T > &  lhs,
const set< T > &  rhs 
)

Definition at line 758 of file util/set.hh.

References mln::rhs.

template<typename T >
bool mln::util::operator<= ( const ord_pair< T > &  lhs,
const ord_pair< T > &  rhs 
) [inline]

Definition at line 249 of file ord_pair.hh.

References ord_strict(), ord_weak(), and mln::rhs.

template<typename P >
bool mln::util::operator<= ( const site_pair< P > &  lhs,
const site_pair< P > &  rhs 
) [inline]

Definition at line 186 of file site_pair.hh.

References mln::rhs.

template<typename T , typename U >
bool mln::util::operator<= ( const couple< T, U > &  lhs,
const couple< T, U > &  rhs 
) [inline]

Definition at line 211 of file util/couple.hh.

References ord_strict(), ord_weak(), and mln::rhs.

template<typename Tag , typename V >
bool mln::util::operator== ( const object_id< Tag, V > &  lhs,
const object_id< Tag, V > &  rhs 
) [inline]

Definition at line 216 of file object_id.hh.

References mln::util::object_id< Tag, V >::value().

template<typename T >
bool mln::util::operator== ( const ord_pair< T > &  lhs,
const ord_pair< T > &  rhs 
) [inline]
template<typename P >
bool mln::util::operator== ( const site_pair< P > &  lhs,
const site_pair< P > &  rhs 
) [inline]

Definition at line 170 of file site_pair.hh.

References mln::util::site_pair< P >::pair().

template<typename Tag , typename V , typename V2 >
bool mln::util::operator== ( const object_id< Tag, V > &  lhs,
const Value< V2 > &  rhs 
) [inline]

Definition at line 208 of file object_id.hh.

References mln::exact(), and mln::util::object_id< Tag, V >::value().

template<typename T >
bool mln::util::operator== ( const set< T > &  lhs,
const set< T > &  rhs 
)

Definition at line 740 of file util/set.hh.

References mln::util::set< T >::nelements().

template<typename G >
bool mln::util::operator== ( const edge< G > &  lhs,
const edge< G > &  rhs 
) [inline]

Definition at line 368 of file edge.hh.

References mln::util::edge< G >::graph(), and mln::util::edge< G >::id().

template<typename P >
bool mln::util::operator== ( const multi_site< P > &  lhs,
const multi_site< P > &  rhs 
)

Definition at line 151 of file multi_site.hh.

References mln::util::multi_site< P >::sites.

template<typename G >
bool mln::util::operator== ( const vertex< G > &  v1,
const vertex< G > &  v2 
) [inline]

Equality operator.

Test whether two vertices have the same id.

Definition at line 380 of file vertex.hh.

References mln::util::vertex< G >::graph(), and mln::util::vertex< G >::id().

template<typename T >
bool mln::util::operator== ( const array< T > &  lhs,
const array< T > &  rhs 
)

Operator==.

Definition at line 815 of file util/array.hh.

References mln::util::array< T >::std_vector().

template<typename T , typename U >
bool mln::util::operator== ( const couple< T, U > &  lhs,
const couple< T, U > &  rhs 
) [inline]
template<typename T1 , typename T2 >
bool mln::util::ord_lexi_strict ( const T1 &  lhs_1,
const T2 &  lhs_2,
const T1 &  rhs_1,
const T2 &  rhs_2 
) [inline]
template<typename T >
bool mln::util::ord_strict ( const T &  lhs,
const T &  rhs 
) [inline]
template<typename T >
bool mln::util::ord_weak ( const T &  lhs,
const T &  rhs 
) [inline]

Routine to test if lhs is "less-than or equal-to" rhs.

Definition at line 101 of file util/ord.hh.

Referenced by mln::util::ord_pair< T >::change_both(), mln::util::ord_pair< T >::change_first(), mln::util::ord_pair< T >::change_second(), mln::box< P >::is_valid(), and operator<=().

template<typename T , typename I >
void mln::util::tree_fast_to_image ( tree_fast< T > &  tree,
Image< I > &  output_ 
) [inline]

Convert a tree_fast into an image.

Parameters:
[in] tree The tree to convert.
[out] output_ The image containing tree informations.

Definition at line 99 of file tree_fast_to_image.hh.

References mln::trace::entering(), mln::trace::exiting(), and mln::util::impl::tree_fast_to_image().

template<typename T >
tree_fast< T > mln::util::tree_to_fast ( tree< T > &  input  )  [inline]

Facade.

Convert a tree into an tree_fast.

Parameters:
[in] input The tree to convert.
Returns:
The tree_fast containing tree informations.

Definition at line 90 of file tree_to_fast.hh.

References mln::trace::entering(), mln::trace::exiting(), mln::util::tree< T >::root(), and mln::util::impl::tree_to_fast_().

template<typename T , typename I >
void mln::util::tree_to_image ( tree< T > &  tree,
Image< I > &  output_ 
) [inline]

Convert a tree into an image.

Parameters:
[in] tree The tree to convert.
[out] output_ The image containing tree information.

Definition at line 178 of file tree_to_image.hh.

References mln::trace::entering(), mln::exact(), mln::trace::exiting(), mln::util::tree< T >::root(), and mln::util::impl::tree_to_image_rec().