Public Types | Public Member Functions

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

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

#include <p_vertices.hh>

Inherits site_set_base_< F::result, p_vertices< G, F > >.

List of all members.

Public Types

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 util::vertex< G > vertex
 Type of graph vertex.

typedef super_::site element
 Associated types.
typedef p_vertices_psite< G, F > psite
 Point_Site associated type.
typedef p_graph_piter< self_,
mln_vertex_fwd_iter(G) > 
fwd_piter
 Forward Site_Iterator associated type.
typedef p_graph_piter< self_,
mln_vertex_bkd_iter(G) > 
bkd_piter
 Backward Site_Iterator associated type.
typedef fwd_piter piter
 Site_Iterator associated type.

Public Member Functions

bool has (const psite &p) const
 Does this site set has p?
template<typename G2 >
bool has (const util::vertex< G2 > &v) const
 Does this site set has v?
void invalidate ()
 Invalidate this site set.
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.
 p_vertices (const Graph< G > &gr)
 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.
template<typename F2 >
 p_vertices (const p_vertices< G, F2 > &other)
 Copy constructor.
 p_vertices ()
 Constructor without argument.
template<typename F2 >
 p_vertices (const Graph< G > &gr, const Function< F2 > &f)
 Construct a graph psite set from a graph of points.

F::result operator() (const psite &p) const
 Return the value associated to an element of this site set.

const G & graph () const
 Accessors.
const F & function () const
 Return the association function.

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 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 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 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::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::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::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 >
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().

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

Does this site set has v?

Definition at line 314 of file p_vertices.hh.

References mln::util::vertex< G >::graph(), mln::util::vertex< G >::is_valid(), and mln::p_vertices< G, F >::is_valid().

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 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() ( 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.