Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST > Class Template Reference

Quantity base class specialization. More...

#include <Quantity.h>

Inheritance diagram for quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >:

quantity::Quantities List of all members.

Public Types

typedef dimension::Dimension<
BSUtilities::Rational< RL_N,
RL_D >, BSUtilities::Rational<
RM_N, RM_D >, BSUtilities::Rational<
RT_N, RT_D >, BSUtilities::Rational<
RE_N, RE_D >, BSUtilities::Rational<
RTE_N, RTE_D >, BSUtilities::Rational<
RA_N, RA_D >, BSUtilities::Rational<
RLU_N, RLU_D > > 
Dim
 make the Dimension available

typedef AllUnits< UT, Loki::Typelist<
Head, Tail > > 
AllUnits
 make all units in UL known

typedef DefaultUnit< UT, DU > DefaultUnit
 make the default unit known

typedef Loki::SingletonHolder<
Loki::Factory< Quantity,
std::string > > 
Factory
 generate a Quantity with Dim, DU, and ST:


Public Member Functions

 Quantity (void)
 default constructor

virtual ~Quantity (void)
 destructor

std::string name (void) const
 return the name as a std::string

std::string symbol (void) const
 return the symbol as a std::string

void name (const std::string &name)
 set the name from a std::string

void symbol (const std::string &symbol)
 set the symbol as a std::string

virtual ST standard_value (void) const=0
 return the value in the standard unit

virtual ST value (void) const=0
 return the value in the storage unit

const bool isDimensionless (void) const
 return whether the quantity is dimensionless

std::ostream & print (std::ostream &os) const
 print a quantity

virtual std::ostream & print_value (std::ostream &os) const=0
 print value and unit of the quantity

virtual void operator>> (std::string &str) const=0
 output of a quantity into a string

 operator std::string () const
 conversion into std::string

virtual std::ostream & operator>> (std::ostream &os) const=0
 print variable to the left of operator in output stream

virtual void save (BSUtilities::xmlw::XmlStream &) const=0
 save quantity contents

virtual void load (const TiXmlHandle) const=0
 load quantity contents


Static Public Member Functions

const std::string Name (void)
 return the default name as a std::string

const std::string Symbol (void)
 return the default symbol as a std::string

const bool IsDimensionless (void)
 return the dimensionality of the quantity


Protected Member Functions

unit::Unit< UT > * findBySymbol (const std::string &unitsymbol)
 find a unit from a string;


Static Protected Member Functions

template<class U> ST standard (const ST value, const U &)
 standardize a value, which is given in unit U

template<class U> ST reverse (const ST value, const U &unit)
 reverse standardize a value into unit U


Protected Attributes

std::string namestring
 a string defining the name of the quantity

std::string symbolstring
 a string defining the symbol of the quantity


Static Private Attributes

const bool Dimensionless = Dim::IsDimensionless
 the dimensionality of the Quantity


Friends

std::ostream & operator<< (std::ostream &os, const Quantity &quantity)
 output of a quantity in an output stream

void operator<< (std::string &str, const Quantity &quantity)
 output of a quantity into a string (placed before the operator)


Detailed Description

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
class quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >

Quantity base class specialization.

parametrized by the group type UT, a Loki Typelist !! Check text !!! of units with all elements being subclasses from Unit<UT>; Unit DU is used as the default unit and must also be subclassed from Unit<UT>; the dimension is automatically chosen to be a type Dimension<UT>; in this way, it is ensured that all units and the dimension are consistent with the overall group type UT; Quantity has pure virtual member functions.

Definition at line 1100 of file Quantity.h.


Member Typedef Documentation

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
typedef AllUnits<UT, Loki::Typelist<Head, Tail> > quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::AllUnits
 

make all units in UL known

uses the AllUnits template, which checks that all elements in the Typelist are subclassed from Unit<UT>.

Definition at line 1187 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
typedef DefaultUnit<UT, DU> quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::DefaultUnit
 

make the default unit known

uses the DefaultUnit template, which checks that DU is subclassed from Unit<UT>.

Definition at line 1193 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
typedef dimension::Dimension<BSUtilities::Rational<RL_N, RL_D>, BSUtilities::Rational<RM_N, RM_D>, BSUtilities::Rational<RT_N, RT_D>, BSUtilities::Rational<RE_N, RE_D>, BSUtilities::Rational<RTE_N, RTE_D>, BSUtilities::Rational<RA_N, RA_D>, BSUtilities::Rational<RLU_N, RLU_D> > quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::Dim
 

make the Dimension available

Definition at line 1121 of file Quantity.h.

Referenced by Name(), Quantity(), and Symbol().

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
typedef Loki::SingletonHolder<Loki::Factory<Quantity, std::string> > quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::Factory
 

generate a Quantity with Dim, DU, and ST:

ObjectFactory for a Quantity; there needs to be only one such Factory within the program, thus it is implemented as a Loki::Singleton

Definition at line 1331 of file Quantity.h.


Constructor & Destructor Documentation

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
virtual quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::~Quantity void   )  [inline, virtual]
 

destructor

Since this is a polymorphic class, the destructor should be virtual; it is empty.

Definition at line 1181 of file Quantity.h.


Member Function Documentation

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
unit::Unit<UT>* quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::findBySymbol const std::string &  unitsymbol  )  [inline, protected]
 

find a unit from a string;

use UnitPointerBySymbol; allow protected access by derived classes.

Definition at line 1140 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
const bool quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::isDimensionless void   )  const [inline, virtual]
 

return whether the quantity is dimensionless

dynamic access

Implements quantity::Quantities.

Definition at line 1237 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
const bool quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::IsDimensionless void   )  [inline, static]
 

return the dimensionality of the quantity

static access

Definition at line 1232 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
virtual void quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::load const  TiXmlHandle  )  const [pure virtual]
 

load quantity contents

xml version; load relevant information in the quantity object from xml code; pure virtual, must be overridden by all classes derived from Quantity.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
void quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::name const std::string &  name  )  [inline]
 

set the name from a std::string

Definition at line 1215 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
const std::string quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::Name void   )  [inline, static]
 

return the default name as a std::string

Definition at line 1203 of file Quantity.h.

References Dim.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
std::string quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::name void   )  const [inline]
 

return the name as a std::string

Definition at line 1196 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::operator std::string  )  const [inline]
 

conversion into std::string

generates a new string and outputs the this object into this string, which is then returned; uses operator>> for output.

Definition at line 1302 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
virtual std::ostream& quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::operator>> std::ostream &  os  )  const [pure virtual]
 

print variable to the left of operator in output stream

this pure virtual function must be overridden by classes derived from Quantity.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
virtual void quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::operator>> std::string &  str  )  const [pure virtual]
 

output of a quantity into a string

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
std::ostream& quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::print std::ostream &  os  )  const [inline]
 

print a quantity

outputs the object it is called on through the output stream os; needs not be called from used code, rather, a call to operator<< is more often used; the output depends on the status stored in the PrintStatus singleton: the name and the symbol of the quantity are only printed if the corresponding status flags in PrintStatus are set to true; if the corresponding flag is set to false, the default empty string is used; if either the name of the symbol is to be printed, an equal sign is added to the output stream, otherwise, the equal string is also left empty; the name, symbol and equal sign are placed on the ostream in this order, before the pure virtual member function print_value is called, which does the same for the value and unit of the quantity.

Definition at line 1265 of file Quantity.h.

References PS.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
virtual std::ostream& quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::print_value std::ostream &  os  )  const [pure virtual]
 

print value and unit of the quantity

this pure virtual function must be overridden by classes derived from Quantity.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::Quantity void   )  [inline]
 

default constructor

sets namestring and symbolstring from the static values in the helper classes Name and Symbol

Definition at line 1171 of file Quantity.h.

References Dim.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
template<class U>
ST quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::reverse const ST  value,
const U &  unit
[inline, static, protected]
 

reverse standardize a value into unit U

overloaded for objects of the unit type U; recalculates value given in the (possibly fictional) standard unit into U; U is compile time checked to be in the list of all units.

Definition at line 1162 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
virtual void quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::save BSUtilities::xmlw::XmlStream &   )  const [pure virtual]
 

save quantity contents

xml version; saves relevant information in the quantity object in xml code; pure virtual, must be overridden by all classes derived from Quantity.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
template<class U>
ST quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::standard const ST  value,
const U & 
[inline, static, protected]
 

standardize a value, which is given in unit U

overloaded for objects of the unit type U; recalculates value given in U into the (possibly fictional) standard unit; U is compile time checked to be in the list of all units.

Definition at line 1151 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
virtual ST quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::standard_value void   )  const [pure virtual]
 

return the value in the standard unit

pure virtual, must be overridden in all decendants of Quantity

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
void quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::symbol const std::string &  symbol  )  [inline]
 

set the symbol as a std::string

Definition at line 1217 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
const std::string quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::Symbol void   )  [inline, static]
 

return the default symbol as a std::string

Definition at line 1210 of file Quantity.h.

References Dim.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
std::string quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::symbol void   )  const [inline]
 

return the symbol as a std::string

Definition at line 1198 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
virtual ST quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::value void   )  const [pure virtual]
 

return the value in the storage unit

pure virtual, must be overridden in all decendants of Quantity


Friends And Related Function Documentation

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
void operator<< std::string &  str,
const Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST > &  quantity
[friend]
 

output of a quantity into a string (placed before the operator)

Definition at line 1293 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
std::ostream& operator<< std::ostream &  os,
const Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST > &  quantity
[friend]
 

output of a quantity in an output stream

this friend function chains directly to the print () member function; it is needed, to allow syntax like os << quantity i.e., the quantity is the second argument of operator<<.

Definition at line 1247 of file Quantity.h.


Member Data Documentation

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
const bool quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::Dimensionless = Dim::IsDimensionless [static, private]
 

the dimensionality of the Quantity

Definition at line 1125 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
std::string quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::namestring [protected]
 

a string defining the name of the quantity

set during construction from Name

Definition at line 1131 of file Quantity.h.

template<long RL_N, long RL_D, long RM_N, long RM_D, long RT_N, long RT_D, long RE_N, long RE_D, long RTE_N, long RTE_D, long RA_N, long RA_D, long RLU_N, long RLU_D, class UT, class Head, class Tail, class DU, class ST>
std::string quantity::Quantity< dimension::Dimension< BSUtilities::Rational< RL_N, RL_D >, BSUtilities::Rational< RM_N, RM_D >, BSUtilities::Rational< RT_N, RT_D >, BSUtilities::Rational< RE_N, RE_D >, BSUtilities::Rational< RTE_N, RTE_D >, BSUtilities::Rational< RA_N, RA_D >, BSUtilities::Rational< RLU_N, RLU_D > >, UT, Loki::Typelist< Head, Tail >, DU, ST >::symbolstring [protected]
 

a string defining the symbol of the quantity

set during construction from Symbol

Definition at line 1135 of file Quantity.h.


The documentation for this class was generated from the following file:
Generated on Mon Feb 12 18:44:00 2007 for Quantity by doxygen 1.3.6