amroc/hds/VectorGridDataOps.h File Reference

Operations between two GridData-objects with different template parameters. More...

Go to the source code of this file.

Defines

#define Scalar_Vector_GridData_Functions(NameFrom, ope)
#define Vector_Scalar_GridData_Functions(NameTo, ope)
#define Scalar_Vector_GridData_Functions(NameFrom, ope)
#define Vector_Scalar_GridData_Functions(NameTo, ope)
#define Scalar_Vector_GridData_Functions(NameFrom, ope)
#define Vector_Scalar_GridData_Functions(NameTo, ope)

Functions

template<class DataType , class VectorType >
void equals_from (GridData< DataType, 1 > &target, const BBox &to, GridData< VectorType, 1 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void equals_from (GridData< DataType, 1 > &target, GridData< VectorType, 1 > const &source, const int comp)
template<class DataType , class VectorType >
void plus_from (GridData< DataType, 1 > &target, const BBox &to, GridData< VectorType, 1 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void plus_from (GridData< DataType, 1 > &target, GridData< VectorType, 1 > const &source, const int comp)
template<class DataType , class VectorType >
void minus_from (GridData< DataType, 1 > &target, const BBox &to, GridData< VectorType, 1 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void minus_from (GridData< DataType, 1 > &target, GridData< VectorType, 1 > const &source, const int comp)
template<class DataType , class VectorType >
void multiply_from (GridData< DataType, 1 > &target, const BBox &to, GridData< VectorType, 1 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void multiply_from (GridData< DataType, 1 > &target, GridData< VectorType, 1 > const &source, const int comp)
template<class DataType , class VectorType >
void divide_from (GridData< DataType, 1 > &target, const BBox &to, GridData< VectorType, 1 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void divide_from (GridData< DataType, 1 > &target, GridData< VectorType, 1 > const &source, const int comp)
template<class VectorType , class DataType >
void equals_to (GridData< VectorType, 1 > &target, const BBox &to, GridData< DataType, 1 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void equals_to (GridData< VectorType, 1 > &target, GridData< DataType, 1 > const &source, const int comp)
template<class VectorType , class DataType >
void plus_to (GridData< VectorType, 1 > &target, const BBox &to, GridData< DataType, 1 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void plus_to (GridData< VectorType, 1 > &target, GridData< DataType, 1 > const &source, const int comp)
template<class VectorType , class DataType >
void minus_to (GridData< VectorType, 1 > &target, const BBox &to, GridData< DataType, 1 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void minus_to (GridData< VectorType, 1 > &target, GridData< DataType, 1 > const &source, const int comp)
template<class VectorType , class DataType >
void multiply_to (GridData< VectorType, 1 > &target, const BBox &to, GridData< DataType, 1 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void multiply_to (GridData< VectorType, 1 > &target, GridData< DataType, 1 > const &source, const int comp)
template<class VectorType , class DataType >
void divide_to (GridData< VectorType, 1 > &target, const BBox &to, GridData< DataType, 1 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void divide_to (GridData< VectorType, 1 > &target, GridData< DataType, 1 > const &source, const int comp)
template<class DataType , class VectorType >
void equals_from (GridData< DataType, 2 > &target, const BBox &to, GridData< VectorType, 2 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void equals_from (GridData< DataType, 2 > &target, GridData< VectorType, 2 > const &source, const int comp)
template<class DataType , class VectorType >
void plus_from (GridData< DataType, 2 > &target, const BBox &to, GridData< VectorType, 2 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void plus_from (GridData< DataType, 2 > &target, GridData< VectorType, 2 > const &source, const int comp)
template<class DataType , class VectorType >
void minus_from (GridData< DataType, 2 > &target, const BBox &to, GridData< VectorType, 2 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void minus_from (GridData< DataType, 2 > &target, GridData< VectorType, 2 > const &source, const int comp)
template<class DataType , class VectorType >
void multiply_from (GridData< DataType, 2 > &target, const BBox &to, GridData< VectorType, 2 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void multiply_from (GridData< DataType, 2 > &target, GridData< VectorType, 2 > const &source, const int comp)
template<class DataType , class VectorType >
void divide_from (GridData< DataType, 2 > &target, const BBox &to, GridData< VectorType, 2 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void divide_from (GridData< DataType, 2 > &target, GridData< VectorType, 2 > const &source, const int comp)
template<class VectorType , class DataType >
void equals_to (GridData< VectorType, 2 > &target, const BBox &to, GridData< DataType, 2 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void equals_to (GridData< VectorType, 2 > &target, GridData< DataType, 2 > const &source, const int comp)
template<class VectorType , class DataType >
void plus_to (GridData< VectorType, 2 > &target, const BBox &to, GridData< DataType, 2 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void plus_to (GridData< VectorType, 2 > &target, GridData< DataType, 2 > const &source, const int comp)
template<class VectorType , class DataType >
void minus_to (GridData< VectorType, 2 > &target, const BBox &to, GridData< DataType, 2 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void minus_to (GridData< VectorType, 2 > &target, GridData< DataType, 2 > const &source, const int comp)
template<class VectorType , class DataType >
void multiply_to (GridData< VectorType, 2 > &target, const BBox &to, GridData< DataType, 2 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void multiply_to (GridData< VectorType, 2 > &target, GridData< DataType, 2 > const &source, const int comp)
template<class VectorType , class DataType >
void divide_to (GridData< VectorType, 2 > &target, const BBox &to, GridData< DataType, 2 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void divide_to (GridData< VectorType, 2 > &target, GridData< DataType, 2 > const &source, const int comp)
template<class DataType , class VectorType >
void equals_from (GridData< DataType, 3 > &target, const BBox &to, GridData< VectorType, 3 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void equals_from (GridData< DataType, 3 > &target, GridData< VectorType, 3 > const &source, const int comp)
template<class DataType , class VectorType >
void plus_from (GridData< DataType, 3 > &target, const BBox &to, GridData< VectorType, 3 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void plus_from (GridData< DataType, 3 > &target, GridData< VectorType, 3 > const &source, const int comp)
template<class DataType , class VectorType >
void minus_from (GridData< DataType, 3 > &target, const BBox &to, GridData< VectorType, 3 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void minus_from (GridData< DataType, 3 > &target, GridData< VectorType, 3 > const &source, const int comp)
template<class DataType , class VectorType >
void multiply_from (GridData< DataType, 3 > &target, const BBox &to, GridData< VectorType, 3 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void multiply_from (GridData< DataType, 3 > &target, GridData< VectorType, 3 > const &source, const int comp)
template<class DataType , class VectorType >
void divide_from (GridData< DataType, 3 > &target, const BBox &to, GridData< VectorType, 3 > const &source, const BBox &from, const int comp)
template<class DataType , class VectorType >
void divide_from (GridData< DataType, 3 > &target, GridData< VectorType, 3 > const &source, const int comp)
template<class VectorType , class DataType >
void equals_to (GridData< VectorType, 3 > &target, const BBox &to, GridData< DataType, 3 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void equals_to (GridData< VectorType, 3 > &target, GridData< DataType, 3 > const &source, const int comp)
template<class VectorType , class DataType >
void plus_to (GridData< VectorType, 3 > &target, const BBox &to, GridData< DataType, 3 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void plus_to (GridData< VectorType, 3 > &target, GridData< DataType, 3 > const &source, const int comp)
template<class VectorType , class DataType >
void minus_to (GridData< VectorType, 3 > &target, const BBox &to, GridData< DataType, 3 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void minus_to (GridData< VectorType, 3 > &target, GridData< DataType, 3 > const &source, const int comp)
template<class VectorType , class DataType >
void multiply_to (GridData< VectorType, 3 > &target, const BBox &to, GridData< DataType, 3 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void multiply_to (GridData< VectorType, 3 > &target, GridData< DataType, 3 > const &source, const int comp)
template<class VectorType , class DataType >
void divide_to (GridData< VectorType, 3 > &target, const BBox &to, GridData< DataType, 3 > const &source, const BBox &from, const int comp)
template<class VectorType , class DataType >
void divide_to (GridData< VectorType, 3 > &target, GridData< DataType, 3 > const &source, const int comp)

Detailed Description

Operations between two GridData-objects with different template parameters.

Author:
Ralf Deiterding
Version:
1.0
Date:
Jul-2004

Define Documentation

#define Scalar_Vector_GridData_Functions ( NameFrom,
ope   ) 
#define Scalar_Vector_GridData_Functions ( NameFrom,
ope   ) 
#define Scalar_Vector_GridData_Functions ( NameFrom,
ope   ) 
Value:
template <class DataType, class VectorType>                                    \
void NameFrom (GridData<DataType,1> &target, const BBox &to,                   \
               GridData<VectorType,1> const &source, const BBox &from,         \
               const int comp) {                                               \
                                                                               \
  const Coords toshift = from.lower() - to.lower();                            \
  BBox newfrom = source.bbox() * from * shiftabs(target.bbox() * to, toshift); \
  if (!newfrom.empty()) {                                                      \
    BBox newto = shiftabs(newfrom, -toshift);                                  \
                                                                               \
    const int dk = newfrom.lower(0)-newto.lower(0);                            \
                                                                               \
    BeginFastIndex1(src, source.bbox(), source.data(), const VectorType);      \
    BeginFastIndex1(tgt, target.bbox(), target.data(), DataType);              \
                                                                               \
    for_1 (k, newto, newto.stepsize())                                         \
      FastIndex1(tgt, k) ope FastIndex1(src, k+dk)(comp);                      \
    end_for                                                                    \
                                                                               \
    EndFastIndex1(src);                                                        \
    EndFastIndex1(tgt);                                                        \
  }                                                                            \
}                                                                              \
                                                                               \
template <class DataType, class VectorType>                                    \
void NameFrom (GridData<DataType,1> &target,                                   \
               GridData<VectorType,1> const &source,                           \
               const int comp) {                                               \
  NameFrom (target, target.bbox(), source, source.bbox(), comp);               \
}
#define Vector_Scalar_GridData_Functions ( NameTo,
ope   ) 
#define Vector_Scalar_GridData_Functions ( NameTo,
ope   ) 
#define Vector_Scalar_GridData_Functions ( NameTo,
ope   ) 
Value:
template <class VectorType, class DataType>                                    \
void NameTo (GridData<VectorType,1> &target, const BBox &to,                   \
             GridData<DataType,1> const &source, const BBox &from,             \
             const int comp) {                                                 \
                                                                               \
  const Coords toshift = from.lower() - to.lower();                            \
  BBox newfrom = source.bbox() * from * shiftabs(target.bbox() * to, toshift); \
  if (!newfrom.empty()) {                                                      \
    BBox newto = shiftabs(newfrom, -toshift);                                  \
                                                                               \
    const int dk = newfrom.lower(0)-newto.lower(0);                            \
                                                                               \
    BeginFastIndex1(src, source.bbox(), source.data(), const DataType);        \
    BeginFastIndex1(tgt, target.bbox(), target.data(), VectorType);            \
                                                                               \
    for_1 (k, newto, newto.stepsize())                                         \
      FastIndex1(tgt, k)(comp) ope FastIndex1(src, k+dk);                      \
    end_for                                                                    \
                                                                               \
    EndFastIndex1(src);                                                        \
    EndFastIndex1(tgt);                                                        \
  }                                                                            \
}                                                                              \
                                                                               \
template <class VectorType, class DataType>                                    \
void NameTo (GridData<VectorType,1> &target,                                   \
             GridData<DataType,1> const &source,                               \
             const int comp) {                                                 \
  NameTo (target, target.bbox(), source, source.bbox(), comp);                 \
}

Function Documentation

template<class DataType , class VectorType >
void divide_from ( GridData< DataType, 3 > &  target,
GridData< VectorType, 3 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void divide_from ( GridData< DataType, 3 > &  target,
const BBox to,
GridData< VectorType, 3 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void divide_from ( GridData< DataType, 2 > &  target,
GridData< VectorType, 2 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void divide_from ( GridData< DataType, 2 > &  target,
const BBox to,
GridData< VectorType, 2 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void divide_from ( GridData< DataType, 1 > &  target,
GridData< VectorType, 1 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void divide_from ( GridData< DataType, 1 > &  target,
const BBox to,
GridData< VectorType, 1 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void divide_to ( GridData< VectorType, 3 > &  target,
GridData< DataType, 3 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void divide_to ( GridData< VectorType, 3 > &  target,
const BBox to,
GridData< DataType, 3 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void divide_to ( GridData< VectorType, 2 > &  target,
GridData< DataType, 2 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void divide_to ( GridData< VectorType, 2 > &  target,
const BBox to,
GridData< DataType, 2 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void divide_to ( GridData< VectorType, 1 > &  target,
GridData< DataType, 1 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void divide_to ( GridData< VectorType, 1 > &  target,
const BBox to,
GridData< DataType, 1 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void equals_from ( GridData< DataType, 3 > &  target,
GridData< VectorType, 3 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void equals_from ( GridData< DataType, 3 > &  target,
const BBox to,
GridData< VectorType, 3 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void equals_from ( GridData< DataType, 2 > &  target,
GridData< VectorType, 2 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void equals_from ( GridData< DataType, 2 > &  target,
const BBox to,
GridData< VectorType, 2 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void equals_from ( GridData< DataType, 1 > &  target,
GridData< VectorType, 1 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void equals_from ( GridData< DataType, 1 > &  target,
const BBox to,
GridData< VectorType, 1 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void equals_to ( GridData< VectorType, 3 > &  target,
GridData< DataType, 3 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void equals_to ( GridData< VectorType, 3 > &  target,
const BBox to,
GridData< DataType, 3 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void equals_to ( GridData< VectorType, 2 > &  target,
GridData< DataType, 2 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void equals_to ( GridData< VectorType, 2 > &  target,
const BBox to,
GridData< DataType, 2 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void equals_to ( GridData< VectorType, 1 > &  target,
GridData< DataType, 1 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void equals_to ( GridData< VectorType, 1 > &  target,
const BBox to,
GridData< DataType, 1 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void minus_from ( GridData< DataType, 3 > &  target,
GridData< VectorType, 3 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void minus_from ( GridData< DataType, 3 > &  target,
const BBox to,
GridData< VectorType, 3 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void minus_from ( GridData< DataType, 2 > &  target,
GridData< VectorType, 2 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void minus_from ( GridData< DataType, 2 > &  target,
const BBox to,
GridData< VectorType, 2 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void minus_from ( GridData< DataType, 1 > &  target,
GridData< VectorType, 1 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void minus_from ( GridData< DataType, 1 > &  target,
const BBox to,
GridData< VectorType, 1 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void minus_to ( GridData< VectorType, 3 > &  target,
GridData< DataType, 3 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void minus_to ( GridData< VectorType, 3 > &  target,
const BBox to,
GridData< DataType, 3 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void minus_to ( GridData< VectorType, 2 > &  target,
GridData< DataType, 2 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void minus_to ( GridData< VectorType, 2 > &  target,
const BBox to,
GridData< DataType, 2 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void minus_to ( GridData< VectorType, 1 > &  target,
GridData< DataType, 1 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void minus_to ( GridData< VectorType, 1 > &  target,
const BBox to,
GridData< DataType, 1 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void multiply_from ( GridData< DataType, 3 > &  target,
GridData< VectorType, 3 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void multiply_from ( GridData< DataType, 3 > &  target,
const BBox to,
GridData< VectorType, 3 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void multiply_from ( GridData< DataType, 2 > &  target,
GridData< VectorType, 2 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void multiply_from ( GridData< DataType, 2 > &  target,
const BBox to,
GridData< VectorType, 2 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void multiply_from ( GridData< DataType, 1 > &  target,
GridData< VectorType, 1 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void multiply_from ( GridData< DataType, 1 > &  target,
const BBox to,
GridData< VectorType, 1 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void multiply_to ( GridData< VectorType, 3 > &  target,
GridData< DataType, 3 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void multiply_to ( GridData< VectorType, 3 > &  target,
const BBox to,
GridData< DataType, 3 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void multiply_to ( GridData< VectorType, 2 > &  target,
GridData< DataType, 2 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void multiply_to ( GridData< VectorType, 2 > &  target,
const BBox to,
GridData< DataType, 2 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void multiply_to ( GridData< VectorType, 1 > &  target,
GridData< DataType, 1 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void multiply_to ( GridData< VectorType, 1 > &  target,
const BBox to,
GridData< DataType, 1 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void plus_from ( GridData< DataType, 3 > &  target,
GridData< VectorType, 3 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void plus_from ( GridData< DataType, 3 > &  target,
const BBox to,
GridData< VectorType, 3 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void plus_from ( GridData< DataType, 2 > &  target,
GridData< VectorType, 2 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void plus_from ( GridData< DataType, 2 > &  target,
const BBox to,
GridData< VectorType, 2 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void plus_from ( GridData< DataType, 1 > &  target,
GridData< VectorType, 1 > const &  source,
const int  comp 
) [inline]
template<class DataType , class VectorType >
void plus_from ( GridData< DataType, 1 > &  target,
const BBox to,
GridData< VectorType, 1 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void plus_to ( GridData< VectorType, 3 > &  target,
GridData< DataType, 3 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void plus_to ( GridData< VectorType, 3 > &  target,
const BBox to,
GridData< DataType, 3 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void plus_to ( GridData< VectorType, 2 > &  target,
GridData< DataType, 2 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void plus_to ( GridData< VectorType, 2 > &  target,
const BBox to,
GridData< DataType, 2 > const &  source,
const BBox from,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void plus_to ( GridData< VectorType, 1 > &  target,
GridData< DataType, 1 > const &  source,
const int  comp 
) [inline]
template<class VectorType , class DataType >
void plus_to ( GridData< VectorType, 1 > &  target,
const BBox to,
GridData< DataType, 1 > const &  source,
const BBox from,
const int  comp 
) [inline]
Generated on Thu Jun 30 02:19:00 2016 for AMROC's Hierachical Data Structures by  doxygen 1.6.3