OKlibrary  0.2.1.6
OKlib::Combinatorics::Hypergraphs::Generators::Hindman_k2< UInt > Class Template Reference

Functor for creating Hindman hypergraphs with k=2. More...

#include <Hindman.hpp>

List of all members.

Public Types

typedef UInt vertex_type
typedef std::vector< vertex_typehyperedge_type
typedef std::vector
< hyperedge_type
set_system_type
typedef set_system_type::size_type size_type

Public Member Functions

 Hindman_k2 (const vertex_type a, const vertex_type n, const bool inj=false)
 Hindman_k2 ()
size_type nver () const
size_type nhyp () const
set_system_type hyperedge_set () const

Public Attributes

const vertex_type a
const vertex_type n
const bool inj

Detailed Description

template<typename UInt = unsigned int>
class OKlib::Combinatorics::Hypergraphs::Generators::Hindman_k2< UInt >

Functor for creating Hindman hypergraphs with k=2.

Specification: hindman_k2_ohg and hindmani_k2_ohg in ComputerAlgebra/Hypergraphs/Lisp/Generators/Hindman.mac, together with their statistics functions.

The hypergraph is represented as a vector of vectors.

Todo:
To be implemented
  • Only missing is the hyperedge_set-member-function (which creates the hypergraph).
  • What about the vertex_set-member-function, yielding the range from a to n ?
Todo:
To be tested
  • Test the statistics-functions.
Todo:
Design of the concept
  • See "The simplest form of hypergraphs" in Hypergraphs/concepts/plans/general.hpp.
  • Currently this class (functor) is a mixture, on the one hand providing elements (like hyperedge_type etc.) as if the objects would be hypergraphs themselves, on the other hand actually just computing a range of ranges (in this way delegating all access-functionality).

Definition at line 63 of file Hindman.hpp.


Member Typedef Documentation

template<typename UInt = unsigned int>
typedef std::vector<vertex_type> OKlib::Combinatorics::Hypergraphs::Generators::Hindman_k2< UInt >::hyperedge_type

Definition at line 66 of file Hindman.hpp.

template<typename UInt = unsigned int>
typedef std::vector<hyperedge_type> OKlib::Combinatorics::Hypergraphs::Generators::Hindman_k2< UInt >::set_system_type

Definition at line 67 of file Hindman.hpp.

template<typename UInt = unsigned int>
typedef set_system_type::size_type OKlib::Combinatorics::Hypergraphs::Generators::Hindman_k2< UInt >::size_type

Definition at line 68 of file Hindman.hpp.

template<typename UInt = unsigned int>
typedef UInt OKlib::Combinatorics::Hypergraphs::Generators::Hindman_k2< UInt >::vertex_type

Definition at line 65 of file Hindman.hpp.


Constructor & Destructor Documentation

template<typename UInt = unsigned int>
OKlib::Combinatorics::Hypergraphs::Generators::Hindman_k2< UInt >::Hindman_k2 ( const vertex_type  a,
const vertex_type  n,
const bool  inj = false 
) [inline]

Definition at line 74 of file Hindman.hpp.

template<typename UInt = unsigned int>
OKlib::Combinatorics::Hypergraphs::Generators::Hindman_k2< UInt >::Hindman_k2 ( ) [inline]

Definition at line 78 of file Hindman.hpp.


Member Function Documentation

template<typename UInt = unsigned int>
set_system_type OKlib::Combinatorics::Hypergraphs::Generators::Hindman_k2< UInt >::hyperedge_set ( ) const [inline]

Definition at line 92 of file Hindman.hpp.


Member Data Documentation

template<typename UInt = unsigned int>
const bool OKlib::Combinatorics::Hypergraphs::Generators::Hindman_k2< UInt >::inj

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