QuantityAggregates.h File Reference

defines aggregates and collections of quantities More...

#include "Quantities/Quantity/Quantity.h"
#include "Quantities/Quantity/Variable.h"
#include "loki/HierarchyGenerators.h"
#include <vector>
#include <boost/serialization/vector.hpp>
#include <boost/serialization/base_object.hpp>

Include dependency graph for QuantityAggregates.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  quantity

Classes

class  quantity::QuantityVector< T, ST >
class  quantity::VariableVectorIterator< IT, QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >
 variable vector iterator class More...
class  quantity::VariableVectorNormalIterator< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >
class  quantity::VariableVectorReverseIterator< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >
class  quantity::VariableVectorConstIterator< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >
class  quantity::VariableVectorConstReverseIterator< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >
class  quantity::VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >
class  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >
 a tuple of VariableVectors More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::CheckVariableVectorList< VariableVector< QuantityVector< CQT, CST >, DerivedQuantity< CQT, CDQSU, CDQT > >, CLTail >
 check the elements of a variable vector typelist More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::CheckVariableVectorList< VariableVector< QuantityVector< CQT, CST >, DerivedQuantity< CQT, CDQSU, CDQT > >, Loki::NullType >
 check the elements of a variable vector typelist More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::GetVar< Loki::Typelist< Head, Tail > >
 get variables More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::GetVar< Loki::Typelist< Head, Loki::NullType > >
 get variables More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::PushBack< N, L, L1 >
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::PushBack< 0, L, L1 >
 store values at end of all vectors from a QuantityTuple More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::Insert< N, L, L1 >
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::Insert< 0, L, L1 >
 insert values from a quantity tuple. More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::GetVal< N, L >
 get values from a variable tuple without range checking. More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::GetVal< 0, L >
 get values from a variable tuple without range checking. More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::GetValAt< N, L >
 get values from a variable tuple with range checking. More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::GetValAt< 0, L >
 get values from a variable tuple with range checking. More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::Assign< N, L, SL >
 assign all variable vectors More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::Assign< 0, L, SL >
 assign all variable vectors More...
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::Compare< N, L1, L2 >
struct  quantity::VariableVectorTuple< Loki::Typelist< VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >, LTail > >::Compare< 0, L1, L2 >

Defines

#define VARIABLEVECTORNORMALITERATOR_COMPARISON_OPERATORS(mode, opName, opType)
#define VARIABLEVECTOR_COMPARISON_OPERATORS(mode, opName, opType)
 comparison operators
#define VARIABLEVECTORTUPLE_COMPARE_REC(opType, recName)
#define VARIABLEVECTORTUPLE_COMPARE_RECEND(recName)
#define VARIABLEVECTORTUPLE_COMPARISON_OPERATORS(opName, recName)

Functions

template<typename QT, typename ST, typename DQSU, typename DQT>
VariableVectorNormalIterator
< QuantityVector< QT, ST >
, DerivedQuantity< QT, DQSU,
DQT > > 
quantity::operator+ (const typename VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >::difference_type n, VariableVectorNormalIterator< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > > it)
 go forward
template<typename QT, typename ST, typename DQSU, typename DQT>
VariableVectorReverseIterator
< QuantityVector< QT, ST >
, DerivedQuantity< QT, DQSU,
DQT > > 
quantity::operator+ (const typename VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >::difference_type n, VariableVectorReverseIterator< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > > it)
 go forward
template<typename QT, typename ST, typename DQSU, typename DQT>
VariableVectorConstIterator
< QuantityVector< QT, ST >
, DerivedQuantity< QT, DQSU,
DQT > > 
quantity::operator+ (const typename VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >::difference_type n, VariableVectorConstIterator< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > > it)
 go forward
template<typename QT, typename ST, typename DQSU, typename DQT>
VariableVectorConstReverseIterator
< QuantityVector< QT, ST >
, DerivedQuantity< QT, DQSU,
DQT > > 
quantity::operator+ (const typename VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > >::difference_type n, VariableVectorConstReverseIterator< QuantityVector< QT, ST >, DerivedQuantity< QT, DQSU, DQT > > it)
 go forward
template<typename QT, typename ST, typename SU, typename DQT>
void quantity::swap (VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, SU, DQT > > &vector1, VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, SU, DQT > > &vector2)
template<typename QT, typename ST, typename SU, typename DQT, typename SQT, typename SST, typename SSU, typename SDQT>
void quantity::swap (VariableVector< QuantityVector< QT, ST >, DerivedQuantity< QT, SU, DQT > > &vector1, VariableVector< QuantityVector< SQT, SST >, DerivedQuantity< SQT, SSU, SDQT > > &vector2)
 swap quantity vectors


Detailed Description

defines aggregates and collections of quantities

Definition in file QuantityAggregates.h.


Define Documentation

#define VARIABLEVECTOR_COMPARISON_OPERATORS ( mode,
opName,
opType   ) 

Value:

bool opName (const std::vector<ST> &) const; \
  bool opName (const mode &rhs) const \
    {return (*(dynamic_cast<const std::vector<ST> *>(this))) \
           opType (*(dynamic_cast<const std::vector<ST> *>(&rhs)));} \
  template<typename RQT, typename RST, typename RSU, typename RDQT> \
    bool opName (const mode<QuantityVector<RQT,RST>, \
      DerivedQuantity<RQT, RSU, RDQT> > &rhs) const \
    {VariableVector<QuantityVector<QT, ST>, \
                      DerivedQuantity<QT, SU, DQT> > vector (rhs); \
      return (*(dynamic_cast<const std::vector<ST> *>(this))) \
           opType (*(dynamic_cast<const std::vector<ST> *>(&vector))); \
    }
comparison operators

versions for: same type same base type convertible type comparison with std::vector<ST> is not defined, making such a comparison illegal

Definition at line 1185 of file QuantityAggregates.h.

#define VARIABLEVECTORNORMALITERATOR_COMPARISON_OPERATORS ( mode,
opName,
opType   ) 

Value:

bool opName (const VariableVectorNormalIterator &rhs) const \
    {return \
       (*dynamic_cast<const typename std::vector<ST>::iterator *>(this)) \
         opType \
        (*dynamic_cast<const typename std::vector<ST>::iterator *>(&rhs));}
comparison

compares two iterators for equality

Definition at line 384 of file QuantityAggregates.h.

#define VARIABLEVECTORTUPLE_COMPARE_REC ( opType,
recName   ) 

Value:

static bool recName (const VariableVectorTuple<typename BSUtilities::IF< \
  (int(Loki::TL::Length<L1>::value) == int(Loki::TL::Length<L2>::value)), \
    L1, UnequalElementNumber>::RET> &tuple1, \
                                 const VariableVectorTuple<L2> &tuple2) \
   {return (Compare<N-1, L1, L2>::equal (tuple1, tuple2) && \
     Loki::Field<N-1>((dynamic_cast<const Loki::Tuple<L1> &>(tuple1))) \
       opType (Loki::Field<N-1>((dynamic_cast<const \
                                       Loki::Tuple<L2> &>(tuple2))))); \
     }
compare the variable vectors in two tuples

Definition at line 2076 of file QuantityAggregates.h.

#define VARIABLEVECTORTUPLE_COMPARE_RECEND ( recName   ) 

Value:

static bool recName (const VariableVectorTuple<L1> &, \
           const VariableVectorTuple<L2> &) {return true;}

Definition at line 2098 of file QuantityAggregates.h.

#define VARIABLEVECTORTUPLE_COMPARISON_OPERATORS ( opName,
recName   ) 

Value:

template<typename SL> \
  bool opName (const VariableVectorTuple<SL> &rhs) const \
  {return Compare<Loki::TL::Length<L>::value, L, SL>::recName \
                                                        (*this, rhs);}

Definition at line 2113 of file QuantityAggregates.h.


Generated on Wed Apr 11 18:06:57 2012 for Quantities by  doxygen 1.5.6