mln::p_vertices< G, F > Class Template Reference
[Graph based]

Site set based mapping graph vertices to sites. More...

#include <p_vertices.hh>

Inheritance diagram for mln::p_vertices< G, F >:

Inheritance graph

List of all members.

Public Types

typedef Site_Set< void > category
typedef E exact_t
typedef F fun_t
 Function associated type.
typedef util::vertex< G > graph_element
 Type of graph element this site set focuses on.
typedef G graph_t
 Graph associated type.
typedef subject< P >::ret site
 Site associated type.
typedef util::vertex< G > vertex
 Type of graph vertex.
typedef p_graph_piter< self_,
mln_vertex_bkd_iter(G) > 
bkd_piter
 Backward Site_Iterator associated type.
typedef super_::site element
 Associated types.
typedef p_graph_piter< self_,
mln_vertex_fwd_iter(G) > 
fwd_piter
 Forward Site_Iterator associated type.
typedef fwd_piter piter
 Site_Iterator associated type.
typedef p_vertices_psite< G, F > psite
 Point_Site associated type.

Public Member Functions

template<typename G2>
bool has (const util::vertex< G2 > &v) const
 Does this site set has v?
bool has (const psite &p) const
 Does this site set has p?
void invalidate ()
 Invalidate this site set.
bool is_empty () const
 Test if the site set is empty.
bool is_valid () const
 Test this site set validity.
std::size_t memory_size () const
 Does this site set has vertex_id? FIXME: causes ambiguities while calling has(mln::neighb_fwd_niter<>); bool has(unsigned vertex_id) const;.
unsigned nsites () const
 Return The number of points (sites) of the set, i.e., the number of vertices.
unsigned nvertices () const
 Return The number of vertices in the graph.
template<typename F2>
 p_vertices (const p_vertices< G, F2 > &other)
 Copy constructor.
template<typename F2>
 p_vertices (const Graph< G > &gr, const Function< F2 > &f)
 Construct a graph psite set from a graph of points.
 p_vertices (const Graph< G > &gr, const Function< F > &f)
 Construct a graph psite set from a graph of points.
 p_vertices (const Graph< G > &gr)
 Construct a graph psite set from a graph of points.
 p_vertices ()
 Constructor without argument.
const F & function () const
 Return the association function.
const G & graph () const
 Accessors.
F::result operator() (unsigned id_v) const
F::result operator() (const util::vertex< G > &p) const
F::result operator() (const psite &p) const
 Return the value associated to an element of this site set.

Package Attributes

 __pad0__:site_set_base_< typename F ::result
self_ super_

Private Types

typedef p_vertices< G, F > self_

Private Attributes

f_
g_

Related Functions

(Note that these are not member functions.)

template<typename Sl, typename Sr>
p_set< typename Sl::site > diff (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Set theoretic difference of lhs and rhs.
template<typename Sl, typename Sr>
p_set< typename Sl::site > inter (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Intersection between a couple of point sets.
template<typename Sl, typename Sr>
bool operator< (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Strict inclusion test between site sets lhs and rhs.
template<typename S>
std::ostream & operator<< (std::ostream &ostr, const Site_Set< S > &set)
 Print a site set set into the output stream ostr.
template<typename Sl, typename Sr>
bool operator<= (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Inclusion test between site sets lhs and rhs.
template<typename Sl, typename Sr>
bool operator== (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Equality test between site sets lhs and rhs.
template<typename Sl, typename Sr>
p_set< typename Sl::site > sym_diff (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Set theoretic symmetrical difference of lhs and rhs.
template<typename Sl, typename Sr>
p_set< typename Sl::site > uni (const Site_Set< Sl > &lhs, const Site_Set< Sr > &rhs)
 Union of a couple of point sets.
template<typename S>
p_set< typename S::site > unique (const Site_Set< S > &s)
 Give the unique set of s.


Detailed Description

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
class mln::p_vertices< G, F >

Site set based mapping graph vertices to sites.

Definition at line 71 of file p_vertices.hh.


Member Typedef Documentation

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef p_graph_piter< self_, mln_vertex_bkd_iter(G) > mln::p_vertices< G, F >::bkd_piter

Backward Site_Iterator associated type.

Definition at line 132 of file p_vertices.hh.

template<typename E>
typedef Site_Set<void> mln::Site_Set< E >::category [inherited]

Reimplemented from mln::Object< E >.

Definition at line 67 of file mln/core/concept/site_set.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef super_ ::site mln::p_vertices< G, F >::element

Associated types.

Element associated type.

Definition at line 123 of file p_vertices.hh.

template<typename E>
typedef E mln::Object< E >::exact_t [inherited]

Definition at line 172 of file object.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef F mln::p_vertices< G, F >::fun_t

Function associated type.

Definition at line 84 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef p_graph_piter< self_, mln_vertex_fwd_iter(G) > mln::p_vertices< G, F >::fwd_piter

Forward Site_Iterator associated type.

Definition at line 129 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef util::vertex<G> mln::p_vertices< G, F >::graph_element

Type of graph element this site set focuses on.

Definition at line 91 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef G mln::p_vertices< G, F >::graph_t

Graph associated type.

Definition at line 81 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef fwd_piter mln::p_vertices< G, F >::piter

Site_Iterator associated type.

Definition at line 135 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef p_vertices_psite<G,F> mln::p_vertices< G, F >::psite

Point_Site associated type.

Definition at line 126 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef p_vertices<G,F> mln::p_vertices< G, F >::self_ [private]

Definition at line 75 of file p_vertices.hh.

template<typename P, typename E>
typedef subject<P>::ret mln::internal::site_set_base_< P, E >::site [inherited]

Site associated type.

Reimplemented in mln::p_centered< W >.

Definition at line 55 of file site_set_base.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
typedef util::vertex<G> mln::p_vertices< G, F >::vertex

Type of graph vertex.

Definition at line 87 of file p_vertices.hh.


Constructor & Destructor Documentation

template<typename G, typename F>
mln::p_vertices< G, F >::p_vertices (  )  [inline]

Constructor without argument.

Definition at line 220 of file p_vertices.hh.

template<typename G, typename F>
mln::p_vertices< G, F >::p_vertices ( const Graph< G > &  gr  )  [inline]

Construct a graph psite set from a graph of points.

Parameters:
gr The graph upon which the graph psite set is built. The identity function is used.

Definition at line 226 of file p_vertices.hh.

References mln::exact(), and mln::p_vertices< G, F >::is_valid().

template<typename G, typename F>
mln::p_vertices< G, F >::p_vertices ( const Graph< G > &  gr,
const Function< F > &  f 
) [inline]

Construct a graph psite set from a graph of points.

Parameters:
gr The graph upon which the graph psite set is built.
f the function which maps a vertex to a site.

Definition at line 238 of file p_vertices.hh.

References mln::exact(), and mln::p_vertices< G, F >::is_valid().

template<typename G, typename F>
template<typename F2>
mln::p_vertices< G, F >::p_vertices ( const Graph< G > &  gr,
const Function< F2 > &  f 
) [inline]

Construct a graph psite set from a graph of points.

Parameters:
gr The graph upon which the graph psite set is built.
f the function which maps a vertex to a site. It must be convertible to the function type F.

Definition at line 248 of file p_vertices.hh.

References mln::exact(), mln::convert::from_to(), and mln::p_vertices< G, F >::is_valid().

template<typename G, typename F>
template<typename F2>
mln::p_vertices< G, F >::p_vertices ( const p_vertices< G, F2 > &  other  )  [inline]


Member Function Documentation

template<typename G, typename F>
const F & mln::p_vertices< G, F >::function (  )  const [inline]

Return the association function.

Definition at line 385 of file p_vertices.hh.

Referenced by mln::p_vertices< G, F >::p_vertices().

template<typename G, typename F>
const G & mln::p_vertices< G, F >::graph (  )  const [inline]

Accessors.

Return the graph associated to this site set (const version)

Definition at line 376 of file p_vertices.hh.

References mln::p_vertices< G, F >::is_valid().

Referenced by mln::debug::draw_graph(), mln::operator==(), and mln::p_vertices< G, F >::p_vertices().

template<typename G, typename F>
template<typename G2>
bool mln::p_vertices< G, F >::has ( const util::vertex< G2 > &  v  )  const [inline]

template<typename G, typename F>
bool mln::p_vertices< G, F >::has ( const psite p  )  const [inline]

Does this site set has p?

Definition at line 304 of file p_vertices.hh.

References mln::p_vertices< G, F >::is_valid(), and mln::p_vertices_psite< G, F >::v().

template<typename G, typename F>
void mln::p_vertices< G, F >::invalidate (  )  [inline]

Invalidate this site set.

Definition at line 296 of file p_vertices.hh.

template<typename P, typename E>
bool mln::internal::site_set_base_< P, E >::is_empty (  )  const [inline, inherited]

template<typename G, typename F>
bool mln::p_vertices< G, F >::is_valid (  )  const [inline]

Test this site set validity.

Definition at line 288 of file p_vertices.hh.

Referenced by mln::p_vertices< G, F >::graph(), mln::p_vertices< G, F >::has(), and mln::p_vertices< G, F >::p_vertices().

template<typename G, typename F>
std::size_t mln::p_vertices< G, F >::memory_size (  )  const [inline]

Does this site set has vertex_id? FIXME: causes ambiguities while calling has(mln::neighb_fwd_niter<>); bool has(unsigned vertex_id) const;.

Definition at line 339 of file p_vertices.hh.

template<typename G, typename F>
unsigned mln::p_vertices< G, F >::nsites (  )  const [inline]

Return The number of points (sites) of the set, i.e., the number of vertices.

Required by the mln::Point_Set concept.

Definition at line 272 of file p_vertices.hh.

References mln::p_vertices< G, F >::nvertices().

template<typename G, typename F>
unsigned mln::p_vertices< G, F >::nvertices (  )  const [inline]

Return The number of vertices in the graph.

Definition at line 280 of file p_vertices.hh.

Referenced by mln::p_vertices< G, F >::nsites().

template<typename G, typename F>
F::result mln::p_vertices< G, F >::operator() ( unsigned  id_v  )  const [inline]

Definition at line 367 of file p_vertices.hh.

References mln::p_vertices< G, F >::f_.

template<typename G, typename F>
F::result mln::p_vertices< G, F >::operator() ( const util::vertex< G > &  p  )  const [inline]

Definition at line 358 of file p_vertices.hh.

template<typename G, typename F>
F::result mln::p_vertices< G, F >::operator() ( const psite p  )  const [inline]

Return the value associated to an element of this site set.

Definition at line 349 of file p_vertices.hh.


Friends And Related Function Documentation

template<typename Sl, typename Sr>
p_set< typename Sl::site > diff ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Set theoretic difference of lhs and rhs.

Definition at line 66 of file set/diff.hh.

template<typename Sl, typename Sr>
p_set< typename Sl::site > inter ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Intersection between a couple of point sets.

Definition at line 62 of file set/inter.hh.

template<typename Sl, typename Sr>
bool operator< ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Strict inclusion test between site sets lhs and rhs.

Parameters:
[in] lhs A site set (strictly included?).
[in] rhs Another site set (includer?).

Definition at line 479 of file operators.hh.

template<typename S>
std::ostream & operator<< ( std::ostream &  ostr,
const Site_Set< S > &  set 
) [related, inherited]

Print a site set set into the output stream ostr.

Parameters:
[in,out] ostr An output stream.
[in] set A site set.
Returns:
The modified output stream ostr.

Definition at line 505 of file operators.hh.

template<typename Sl, typename Sr>
bool operator<= ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Inclusion test between site sets lhs and rhs.

Parameters:
[in] lhs A site set (included?).
[in] rhs Another site set (includer?).

Definition at line 491 of file operators.hh.

template<typename Sl, typename Sr>
bool operator== ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Equality test between site sets lhs and rhs.

Parameters:
[in] lhs A site set.
[in] rhs Another site set.

Definition at line 467 of file operators.hh.

template<typename Sl, typename Sr>
p_set< typename Sl::site > sym_diff ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Set theoretic symmetrical difference of lhs and rhs.

Definition at line 65 of file sym_diff.hh.

template<typename Sl, typename Sr>
p_set< typename Sl::site > uni ( const Site_Set< Sl > &  lhs,
const Site_Set< Sr > &  rhs 
) [related, inherited]

Union of a couple of point sets.

Definition at line 61 of file uni.hh.

template<typename S>
p_set< typename S::site > unique ( const Site_Set< S > &  s  )  [related, inherited]

Give the unique set of s.

Definition at line 61 of file unique.hh.


Member Data Documentation

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
mln::p_vertices< G, F >::__pad0__ [package]

Definition at line 76 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
F mln::p_vertices< G, F >::f_ [private]

Definition at line 186 of file p_vertices.hh.

Referenced by mln::p_vertices< G, F >::operator()().

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
G mln::p_vertices< G, F >::g_ [private]

Definition at line 185 of file p_vertices.hh.

template<typename G, typename F = util::internal::id2element<G,util::vertex<G> >>
self_ mln::p_vertices< G, F >::super_ [package]

Definition at line 76 of file p_vertices.hh.


Generated on Sun Apr 25 01:56:49 2010 for Milena (Olena) by  doxygen 1.5.6