DGtal  1.0.0
Data Structures | Typedefs | Functions
DGtal::detail Namespace Reference

detail namespace gathers internal classes and functions. More...

Data Structures

struct  ComparatorAdapter
 
struct  ComparatorAdapter< Container, true, false, false >
 unordered set-like adapter. More...
 
struct  ComparatorAdapter< Container, true, false, true >
 unordered map-like adapter. More...
 
struct  ComparatorAdapter< Container, true, true, false >
 Set-like adapter. More...
 
struct  ComparatorAdapter< Container, true, true, true >
 Map-like adapter. More...
 
struct  CurvatureFromDCA
 
struct  CurvatureFromDCA< false >
 
class  CurvatureFromDSSBaseEstimator
 
struct  CurvatureFromDSSLength
 
struct  CurvatureFromDSSLengthAndWidth
 
struct  DistanceFromDCA
 
class  DSSDecorator
 Aim: Abstract DSSDecorator for ArithmeticalDSSComputer. Has 2 virtual methods returning the first and last leaning point: More...
 
class  DSSDecorator4ConcavePart
 Aim: adapter for TDSS used by FP in CONCAVE parts. Has 2 methods: More...
 
class  DSSDecorator4ConvexPart
 Aim: adapter for TDSS used by FP in CONVEX parts. Has 2 methods: More...
 
struct  EqualPredicateFromLessThanComparator
 
struct  EuclideanDivisionHelper
 Aim: Small stucture that provides a static method returning the Euclidean division of two integers. More...
 
struct  EuclideanDivisionHelper< double >
 
struct  EuclideanDivisionHelper< float >
 
struct  EuclideanDivisionHelper< long double >
 
struct  FFTWComplexCast
 Facility to cast to the complex type used by fftw. More...
 
struct  FFTWWrapper
 Wrapper to fftw functions depending on value type. More...
 
struct  FFTWWrapper< double >
 
struct  FFTWWrapper< float >
 
struct  FFTWWrapper< long double >
 
struct  HasNestedTypeCategory
 Aim: Checks whether type T has a nested type called 'Category' or not. NB: from en.wikipedia.org/wiki/Substitution_failure_is_not_an_error NB: to avoid various compiler issues, we use BOOST_STATIC_CONSTANT according to http://www.boost.org/development/int_const_guidelines.html. More...
 
struct  HasNestedTypeType
 Aim: Checks whether type IC has a nested type called 'Type' or not. NB: from en.wikipedia.org/wiki/Substitution_failure_is_not_an_error NB: to avoid various compiler issues, we use BOOST_STATIC_CONSTANT according to http://www.boost.org/development/int_const_guidelines.html. More...
 
struct  IsAssociativeContainerFromCategory
 
struct  IsCirculator
 Aim: Checks whether type IC is a circular or a classical iterator. Static value set to 'true' for a circulator, 'false' otherwise. More...
 
struct  IsCirculator< IC, true >
 
struct  IsCirculatorFromType
 Aim: In order to check whether type IC is a circular or a classical iterator, the nested type called 'Type' is read. More...
 
struct  IsCirculatorFromType< IC, CirculatorType >
 
struct  IsContainerFromCategory
 
struct  IsMultipleAssociativeContainerFromCategory
 
struct  IsOrderedAssociativeContainerFromCategory
 
struct  IsPairAssociativeContainerFromCategory
 
struct  IsSequenceContainerFromCategory
 
struct  IsSimpleAssociativeContainerFromCategory
 
struct  IsUniqueAssociativeContainerFromCategory
 
struct  IsUnorderedAssociativeContainerFromCategory
 
struct  IteratorCirculatorTypeImpl
 Aim: Defines the Iterator or Circulator type as a nested type according to the value of b. More...
 
struct  IteratorCirculatorTypeImpl< true >
 
struct  KeyComparatorForPairKeyData
 
struct  LabelledMapMemFunctor
 
struct  monomial_node
 
struct  NormalizedTangentVectorFromDSS
 
struct  NormalVectorFromDCA
 
class  PointValueCompare
 Aim: Small binary predicate to order candidates points according to their (absolute) distance value. More...
 
class  PosDepScaleDepSCEstimator
 
class  PosDepScaleIndepSCEstimator
 
class  PosIndepScaleDepSCEstimator
 
class  PosIndepScaleIndepSCEstimator
 
struct  power_node
 
struct  SetFunctionsImpl
 Aim: Specialize set operations (union, intersection, difference, symmetric_difference) according to the given type of container. It uses standard algorithms when containers are ordered, otherwise it provides a default implementation. More...
 
struct  SetFunctionsImpl< Container, false, true >
 
struct  SetFunctionsImpl< Container, true, false >
 
struct  SetFunctionsImpl< Container, true, true >
 
struct  TangentAngleFromDSS
 
struct  TangentVectorFromDCA
 
struct  TangentVectorFromDSS
 
struct  toCoordinateImpl
 Aim: Define a simple functor that can cast a signed integer (possibly a DGtal::BigInteger) into another. More...
 
struct  toCoordinateImpl< DGtal::BigInteger, DGtal::BigInteger >
 
struct  toCoordinateImpl< DGtal::BigInteger, TOutput >
 
struct  top_node
 
struct  ValueConverter
 Generic definition of a class for converting type X toward type Y. More...
 
struct  ValueConverter< std::string, double >
 Specialized definitions of a class for converting type X toward type Y. More...
 
struct  ValueConverter< std::string, float >
 Specialized definitions of a class for converting type X toward type Y. More...
 
struct  ValueConverter< std::string, int >
 Specialized definitions of a class for converting type X toward type Y. More...
 
struct  ValueConverter< X, std::string >
 Specialized definitions of a class for converting type X toward type Y. More...
 

Typedefs

typedef boost::variant< boost::recursive_wrapper< top_node >, monomial_nodeexpr_node
 

Functions

template<typename IC >
bool isNotEmpty (const IC &itb, const IC &ite, IteratorType)
 
template<typename IC >
bool isNotEmpty (const IC &c1, const IC &c2, CirculatorType)
 
template<typename IC >
void advanceIterator (IC &ic, typename IteratorCirculatorTraits< IC >::Difference n, ForwardCategory)
 
template<typename IC >
void advanceIterator (IC &ic, typename IteratorCirculatorTraits< IC >::Difference n, RandomAccessCategory)
 
template<typename I >
IteratorCirculatorTraits< I >::Difference rangeSize (const I &itb, const I &ite, IteratorType, ForwardCategory)
 
template<typename C >
IteratorCirculatorTraits< C >::Difference rangeSize (const C &cb, const C &ce, CirculatorType, ForwardCategory)
 
template<typename I >
IteratorCirculatorTraits< I >::Difference rangeSize (const I &itb, const I &ite, IteratorType, RandomAccessCategory)
 
template<typename C >
IteratorCirculatorTraits< C >::Difference rangeSize (const C &cb, const C &ce, CirculatorType, RandomAccessCategory)
 
template<typename I >
rangeMiddle (const I &itb, const I &ite, IteratorType, ForwardCategory)
 
template<typename C >
rangeMiddle (const C &cb, const C &ce, CirculatorType, ForwardCategory)
 
template<typename I >
rangeMiddle (const I &itb, const I &ite, IteratorType, BidirectionalCategory)
 
template<typename C >
rangeMiddle (const C &cb, const C &ce, CirculatorType, BidirectionalCategory)
 
template<typename I >
rangeMiddle (const I &itb, const I &ite, IteratorType, RandomAccessCategory)
 
template<typename C >
rangeMiddle (const C &cb, const C &ce, CirculatorType, RandomAccessCategory)
 
template<typename TData >
std::pair< unsigned int, unsigned int > argminLabelledMapMemoryUsageForGeometricDistribution (unsigned int L, double prob_no_data, double prob_one_data)
 

Detailed Description

detail namespace gathers internal classes and functions.

Typedef Documentation

◆ expr_node

typedef boost::variant< boost::recursive_wrapper<top_node>, monomial_node > DGtal::detail::expr_node

Part of the polynomial tree structure. Either a top_node or a monomial.

Definition at line 79 of file MPolynomialReader.h.

Function Documentation

◆ advanceIterator() [1/2]

template<typename IC >
void DGtal::detail::advanceIterator ( IC &  ic,
typename IteratorCirculatorTraits< IC >::Difference  n,
ForwardCategory   
)
inline

Moves ic at position @ it + n

Parameters
icany (circular)iterator
nany positive distance
Template Parameters
ICany iterator or circulator

◆ advanceIterator() [2/2]

template<typename IC >
void DGtal::detail::advanceIterator ( IC &  ic,
typename IteratorCirculatorTraits< IC >::Difference  n,
RandomAccessCategory   
)
inline

Moves ic at position @ it + n

Parameters
icany (circular)iterator
nany positive distance
Template Parameters
ICany iterator or circulator

◆ argminLabelledMapMemoryUsageForGeometricDistribution()

template<typename TData >
std::pair< unsigned int, unsigned int > DGtal::detail::argminLabelledMapMemoryUsageForGeometricDistribution ( unsigned int  L,
double  prob_no_data,
double  prob_one_data 
)

Tries to find the best values N and M which will minimized the memory usage of a LabelledMap, for the distribution specified by the parameters.

Template Parameters
TDatathe type of data that will be stored.
Parameters
Lthe total number of labels.
prob_no_dataProbability that there is no data at this location.
prob_one_dataIf there is a possibility to have a data, this probability is used to define a geometric distribution that defines the number of data (ie valid labels) at this place. The smaller, the higher is the expectation. 0.5 means E(X) = 1.
Returns
the pair (N,M) that minimizes the memory usage of a LabelledMap for the given distribution.

◆ isNotEmpty() [1/2]

template<typename IC >
bool DGtal::detail::isNotEmpty ( const IC &  itb,
const IC &  ite,
IteratorType   
)
inline

◆ isNotEmpty() [2/2]

template<typename IC >
bool DGtal::detail::isNotEmpty ( const IC &  c1,
const IC &  c2,
CirculatorType   
)
inline

Checks if a circular range is not empty, ie. checks if the circulators are valid.

Parameters
c1begin iterator of the range
c2end iterator of the range
Template Parameters
ICiterator or circulator

◆ rangeMiddle() [1/6]

template<typename I >
I DGtal::detail::rangeMiddle ( const I &  itb,
const I &  ite,
IteratorType  ,
ForwardCategory   
)
inline

Computes the middle of a given range [ itb , ite ).

Parameters
itbbegin iterator of the range
iteend iterator of the range
Returns
the middle iterator of the range [ itb , ite ) NB: in O(ite-itb)
Template Parameters
Iany iterator

◆ rangeMiddle() [2/6]

template<typename C >
C DGtal::detail::rangeMiddle ( const C &  cb,
const C &  ce,
CirculatorType  ,
ForwardCategory   
)
inline

Computes the middle of a given range [ cb, ce ). Note that if cb = ce then [ cb, ce ) is assumed to be a whole range.

Parameters
cbbegin iterator of the range
ceend iterator of the range
Returns
the middle circulator of the range [ cb , ce ) NB: linear in the range size
Template Parameters
Cany circulator

◆ rangeMiddle() [3/6]

template<typename I >
I DGtal::detail::rangeMiddle ( const I &  itb,
const I &  ite,
IteratorType  ,
BidirectionalCategory   
)
inline

Computes the middle of a given range [ itb , ite )

Parameters
itbbegin iterator of the range
iteend iterator of the range
Returns
the middle iterator of the range [ itb , ite ) NB: in O(ite-itb)
Template Parameters
Iany iterator

◆ rangeMiddle() [4/6]

template<typename C >
C DGtal::detail::rangeMiddle ( const C &  cb,
const C &  ce,
CirculatorType  ,
BidirectionalCategory   
)
inline

Computes the middle of a given range [ cb, ce ). Note that if cb = ce then [ cb, ce ) is assumed to be a whole range.

Parameters
cbbegin iterator of the range
ceend iterator of the range
Returns
the middle circulator of the range [ cb , ce ) NB: linear in the range size
Template Parameters
Cany circulator

◆ rangeMiddle() [5/6]

template<typename I >
I DGtal::detail::rangeMiddle ( const I &  itb,
const I &  ite,
IteratorType  ,
RandomAccessCategory   
)
inline

Computes the middle of a given range [ itb , ite )

Parameters
itbbegin iterator of the range
iteend iterator of the range
Returns
the middle iterator of the range [ itb , ite ) NB: in O(1)
Template Parameters
Iany iterator

◆ rangeMiddle() [6/6]

template<typename C >
C DGtal::detail::rangeMiddle ( const C &  cb,
const C &  ce,
CirculatorType  ,
RandomAccessCategory   
)
inline

Computes the middle of a given range [ cb, ce ). Note that if cb = ce then [ cb, ce ) is assumed to be a whole range.

Parameters
cbbegin iterator of the range
ceend iterator of the range
Returns
the middle circulator of the range [ cb , ce ) NB: in O(1)
Template Parameters
Cany circulator

◆ rangeSize() [1/4]

template<typename I >
IteratorCirculatorTraits<I>::Difference DGtal::detail::rangeSize ( const I &  itb,
const I &  ite,
IteratorType  ,
ForwardCategory   
)
inline

Computes the size of a given range [ itb , ite )

Parameters
itbbegin iterator of the range
iteend iterator of the range
Returns
the size NB: in O(ite-itb)
Template Parameters
Iany iterator

◆ rangeSize() [2/4]

template<typename C >
IteratorCirculatorTraits<C>::Difference DGtal::detail::rangeSize ( const C &  cb,
const C &  ce,
CirculatorType  ,
ForwardCategory   
)
inline

Computes the size of a given range [ cb, ce ). Note that if cb = ce then [ cb, ce ) is assumed to be a whole range.

Parameters
cbbegin iterator of the range
ceend iterator of the range
Returns
the size NB: linear in the range size
Template Parameters
Cany circulator

◆ rangeSize() [3/4]

template<typename I >
IteratorCirculatorTraits<I>::Difference DGtal::detail::rangeSize ( const I &  itb,
const I &  ite,
IteratorType  ,
RandomAccessCategory   
)
inline

Computes the size of a given range [ itb , ite )

Parameters
itbbegin iterator of the range
iteend iterator of the range
Returns
the size NB: in O(1)
Template Parameters
Iany iterator

◆ rangeSize() [4/4]

template<typename C >
IteratorCirculatorTraits<C>::Difference DGtal::detail::rangeSize ( const C &  cb,
const C &  ce,
CirculatorType  ,
RandomAccessCategory   
)
inline

Computes the size of a given range [ cb, ce ). Note that if cb = ce then [ cb, ce ) is assumed to be a whole range.

Parameters
cbbegin iterator of the range
ceend iterator of the range
Returns
the size NB: in O(1)
Template Parameters
Cany circulator