The Fib multimedia system
Fib is a system for storing multimedia data (like images or films).
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
fib::algorithms::nDn::cHyperplaneBody< tFactors > Class Template Reference

#include <cHyperplaneBody.h>

Inheritance diagram for fib::algorithms::nDn::cHyperplaneBody< tFactors >:
Collaboration diagram for fib::algorithms::nDn::cHyperplaneBody< tFactors >:

List of all members.

Public Member Functions

 cHyperplaneBody (unsigned int uiInDimensions)
virtual ~cHyperplaneBody ()
virtual bool addInequiation (const cInequation< tFactors > &inequiation)=0
unsigned long addInequiations (const vector< cInequation< tFactors > > &vecInequiations)
unsigned int getDimensions () const
virtual unsigned long getNumberOfBorderPoints () const =0
virtual vector< vector
< tFactors > > 
getBorderPoints () const =0
virtual bool isPart (const vector< tFactors > &vecPoint) const =0
vector< tFactors > getPointInBody (const unsigned int uiMinBitsToStoreMantissa=1) const
virtual void print (ostream &outputStream) const =0
virtual cHyperplaneBody
< tFactors > * 
clone () const =0

Protected Attributes

const unsigned int uiDimensions

Detailed Description

template<class tFactors>
class fib::algorithms::nDn::cHyperplaneBody< tFactors >

Definition at line 75 of file cHyperplaneBody.h.


Constructor & Destructor Documentation

template<class tFactors >
fib::algorithms::nDn::cHyperplaneBody< tFactors >::cHyperplaneBody ( unsigned int  uiInDimensions)

standard constructor

Parameters:
uiInDimensionsthe dimensions of the space for the hyperbody; all added inequiations should have this much factors
See also:
uiDimensions
template<class tFactors >
virtual fib::algorithms::nDn::cHyperplaneBody< tFactors >::~cHyperplaneBody ( )
virtual

standard destructor


Member Function Documentation

template<class tFactors >
virtual bool fib::algorithms::nDn::cHyperplaneBody< tFactors >::addInequiation ( const cInequation< tFactors > &  inequiation)
pure virtual

With this method the hyperplane body can be restricted by the given inequiation, if the inequiation dosn't remove the body. If ther are points in this hyperplane body exists wich fulfill the inequiation, an hyperplane for the inequiation is created and added to this hyperplane body.

See also:
addInequiations()
cInequation
cInequation::cHyperplane( const cInequation & inequation )
Returns:
if true this body was restricted by the given inequiation, else the inequiation would remove this body

Implemented in fib::algorithms::nDn::cHyperplaneBodySimple< tFactors >, and fib::algorithms::nDn::cHyperplaneBodyFull< tFactors >.

template<class tFactors >
unsigned long fib::algorithms::nDn::cHyperplaneBody< tFactors >::addInequiations ( const vector< cInequation< tFactors > > &  vecInequiations)

The inequiations of the given list of inequiations are added with

See also:
addInequiation() till this method returns false or all inequiations are added.
addInequiation()
cInequation
Returns:
the number of inequiations added to this body, befor a inequiation (vecInequiation[ return - 1 ]) would remove this body
template<class tFactors >
virtual cHyperplaneBody< tFactors >* fib::algorithms::nDn::cHyperplaneBody< tFactors >::clone ( ) const
pure virtual

This method duplicates this whole hyperplane body.

Returns:
the cloned/ duplicates hyperplane body

Implemented in fib::algorithms::nDn::cHyperplaneBodySimple< tFactors >, and fib::algorithms::nDn::cHyperplaneBodyFull< tFactors >.

template<class tFactors >
virtual vector< vector< tFactors > > fib::algorithms::nDn::cHyperplaneBody< tFactors >::getBorderPoints ( ) const
pure virtual
Returns:
a vector with the border points of the body

Implemented in fib::algorithms::nDn::cHyperplaneBodySimple< tFactors >, and fib::algorithms::nDn::cHyperplaneBodyFull< tFactors >.

template<class tFactors >
unsigned int fib::algorithms::nDn::cHyperplaneBody< tFactors >::getDimensions ( ) const
Returns:
the number of the dimensions for the hyperplane body
template<class tFactors >
virtual unsigned long fib::algorithms::nDn::cHyperplaneBody< tFactors >::getNumberOfBorderPoints ( ) const
pure virtual
Returns:
the number of border points of the body

Implemented in fib::algorithms::nDn::cHyperplaneBodySimple< tFactors >, and fib::algorithms::nDn::cHyperplaneBodyFull< tFactors >.

template<class tFactors >
vector< tFactors > fib::algorithms::nDn::cHyperplaneBody< tFactors >::getPointInBody ( const unsigned int  uiMinBitsToStoreMantissa = 1) const

This method evalues a point in the body. This point will have:

  • as much as possible of its last elements set to 0
Parameters:
uiMinBitsToStoreMantissathe minimal number of bits to store the mantissa of a vector element, when the element is in the form: mantissa * 2^exponent ; the method will try to reduce the bits, to store a element of the returned vector, to this value; if uiMinBitsToStoreMantissa is 0 the center points will be returned directly and no bits will be reduced
Returns:
a point in the body
template<class tFactors >
virtual bool fib::algorithms::nDn::cHyperplaneBody< tFactors >::isPart ( const vector< tFactors > &  vecPoint) const
pure virtual

This method checks if the given point is part of the hyperbody. If the point is on one of the borders of the hyperbody or inside it, it is part of the hyperbody.

Parameters:
vecPointthe point to check
Returns:
true if the point vecPoint is part of the hyperbody, else false

Implemented in fib::algorithms::nDn::cHyperplaneBodySimple< tFactors >, and fib::algorithms::nDn::cHyperplaneBodyFull< tFactors >.

template<class tFactors >
virtual void fib::algorithms::nDn::cHyperplaneBody< tFactors >::print ( ostream &  outputStream) const
pure virtual

This method print the hyperplane in a readebel form to the given output stream outputSream.

Parameters:
outputSreamthe stream wher to print this inequation to

Implemented in fib::algorithms::nDn::cHyperplaneBodySimple< tFactors >, and fib::algorithms::nDn::cHyperplaneBodyFull< tFactors >.


Member Data Documentation

template<class tFactors >
const unsigned int fib::algorithms::nDn::cHyperplaneBody< tFactors >::uiDimensions
protected

the dimensions of the space for the hyperbody; all added inequiations should have this much factors

Beware of the curse of dimensions! The complexity of the body will grow exponential with the number of dimensions. For example, just the number of border points of a newly created body will be 2^uiDimensions .

Definition at line 86 of file cHyperplaneBody.h.


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