The GroupIndex Template Library
Main Page | Class Hierarchy | Class List | File List | Class Members

groupindex::Interval< Group, numeric, Dim > Class Template Reference

Ein Objekt vom Typ Interval stellt ein d-dimensionales Intervall dar, wobei d die im Template-Parameter Dim angegebene Dimension ist. More...

#include <IntervalIntersectionGList.h>

Inheritance diagram for groupindex::Interval< Group, numeric, Dim >:

Inheritance graph
[legend]
Collaboration diagram for groupindex::Interval< Group, numeric, Dim >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Interval< Group, numeric,
Dim > & 
operator= (const Interval< Group, numeric, Dim > &intv)
 Copy-Konstruktor.

bool operator< (Interval< Group, numeric, Dim > &i2) const
 Vergleichgsoperator, dessen Ordnung auf Intervallen nur durch die Dateinummer lt.i gegeben ist.

bool operator== (Interval< Group, numeric, Dim > &i2) const
bool operator> (const Interval< Group, numeric, Dim > &ic2) const
 Vergleichgsoperator, dessen Ordnung auf Intervallen nur durch die Dateinummer lt.i gegeben ist.

 Interval ()
 Standardkonstruktor.

 ~Interval ()
 Standarddestruktor.

 Interval (ListTupel< Group > mylt)
 Standardkonstruktor, der ein Intervall aus einem ListTupel erzeugt.

 Interval (Group myg)
 Standardkonstruktor, der ein Intervall aus einem Gruppenelement erzeugt.

 Interval (Group myg, int newmatched)
 Interval (FILE *stream)
 Konstruktor, der ein Intervall aus eine Datei liest.

 Interval (std::ifstream &ifs)
 Konstruktor, der ein Intervall aus eine Datei liest.

 Interval (std::fstream &ifs)
unsigned long indexSize ()
 Gibt die Anzahl von Bytes zurück, die das Intervall in einer Datei belegt.

void writeToFile (FILE *stream)
 Schreibt das Gruppenelement, welches das Intervall repräsentiert, in eine Datei.

bool expand (Group &x)
 Erweitert das Intervall um das Gruppenelement x.

numeric operator[] (int i)
 Von Group "durchgeschleifter" Indexoperator.

 operator ListTupel ()

Public Attributes

numeric cmin [Dim]
 Untere Grenze des Intervalls.

numeric cmax [Dim]
 Obere Grenze des Intervalls.

int matched
 Zähler, wie oft das Intervall in der intersect() - Routine gefunden wurde.


Static Public Attributes

const unsigned int longsize

Friends

std::ofstream & operator<< (std::ofstream &ofs, Interval< Group, numeric, Dim > i)

Detailed Description

template<class Group, class numeric, int Dim>
class groupindex::Interval< Group, numeric, Dim >

Ein Objekt vom Typ Interval stellt ein d-dimensionales Intervall dar, wobei d die im Template-Parameter Dim angegebene Dimension ist.

Intervalle sind die zentrale Datenstruktur bei der unscharfen Schnittmengenbildung; Gruppenelemente werden hierbei als Punkte in einem mehrdimensionalen reellen Vektorraum betrachtet.

Zu einem Intervall wir ein das Intervall repräsentierender Punkt im innerenen des Intervalls gespeichert, welcher ein Gruppenelement darstellt. Auf dieses Gruppenelement kann durch Interval::ListTupel::g zugegriffen werden.

Gegenüber der Klasse GInvertedList stellt die IntervalIntersectionGList weitere Bedingungen an die Gruppenklasse: Der Indexoperator Group::operator[](int) muss überladen werden und für Paramter zwischen 0 und Dim-1 Werte vom Typ numeric zurückliefern (wobei ein (const) numeric zurückgegeben werden darf, es muss keine Referenz, also kein numeric& zurückgegeben werden).


Constructor & Destructor Documentation

template<class Group, class numeric, int Dim>
groupindex::Interval< Group, numeric, Dim >::Interval< Group, numeric, Dim > ListTupel< Group >  mylt  ) 
 

Standardkonstruktor, der ein Intervall aus einem ListTupel erzeugt.

Jedes Intervall benötigt ein ListTupel, durch dessen Gruppenelement das Intervall repräsentiert wird.

Der durch dieses Gruppenelement gegebene Punkt liegt stets innerhalb des Intervalls.

template<class Group, class numeric, int Dim>
groupindex::Interval< Group, numeric, Dim >::Interval Group  myg  ) 
 

Standardkonstruktor, der ein Intervall aus einem Gruppenelement erzeugt.

Jedes Intervall benötigt ein ListTupel, durch dessen Gruppenelement das Intervall repräsentiert wird.

Der durch das Gruppenelement gegebene Punkt liegt stets innerhalb des Intervalls.

template<class Group, class numeric, int Dim>
groupindex::Interval< Group, numeric, Dim >::Interval FILE *  stream  ) 
 

Konstruktor, der ein Intervall aus eine Datei liest.

Parameters:
stream stdio - Datei, aus welcher das ListTupel gelesen werden soll. Diese Datei muss geöffnet sein, so daß Group::readFromFile(stream) die nötigen Daten aus der Datei lesen kann.

template<class Group, class numeric, int Dim>
groupindex::Interval< Group, numeric, Dim >::Interval std::ifstream &  ifs  ) 
 

Konstruktor, der ein Intervall aus eine Datei liest.

Parameters:
ifs std::ifstream - Datei, aus welcher das ListTupel gelesen werden soll. Diese Datei muss geöffnet sein, so dass mit Group::operator<<() die nötigen Daten aus der Datei gelesen werden können.


Member Function Documentation

template<class Group, class numeric, int Dim>
bool groupindex::Interval< Group, numeric, Dim >::expand Group &  x  ) 
 

Erweitert das Intervall um das Gruppenelement x.

Parameters:
x Gruppenelement, um welches das Intervall erweitert werden soll.
Es wird das kleinste Intervall berechnet, welche sowohl das bestehende Intervall als auch das Gruppenelement x enthält.

template<class Group, class numeric, int Dim>
unsigned long groupindex::Interval< Group, numeric, Dim >::indexSize  )  [inline]
 

Gibt die Anzahl von Bytes zurück, die das Intervall in einer Datei belegt.

Diese Anzahl von Bytes ist genau die Anzahl Bytes, die das Gruppenelement lt.g in der Datei belegt.

Return values:
indexSize() Anzahl Bytes, die das Intervall in einer Datei benötigt.


The documentation for this class was generated from the following file:
The GroupIndex-Template-Library
Universität Bonn, Institut für Informatik III, 2001