#include <Constant.h>
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 |
the dimension | |
typedef Loki::Typelist< DDH, DDT > | DDL |
the dedimensionalizer parameter type list type | |
typedef Loki::TL::TypeAt< DDL, 0 >::Result | DDP |
the parameters to the dedimensionalizing functor as a type | |
typedef Loki::Functor< R, DDL > | DD |
the dedimensionalizer type | |
typedef Quantity< DIM, BT, UL, DU, ST > | ABQ |
the abstract base quantity type | |
typedef Constant< ABQ, SU, DD > | C |
the constant type | |
typedef ABQ | PQ |
the parent quantity; | |
typedef BSUtilities::IF< BSUtilities::SameType< DD, typename DefaultDedimensionalizer< PQ, SU >::F >::sameType, DedimReturn< PQ, SU >, C >::RET | DDR |
the return variable type of dedimensionalizer | |
typedef unit::CheckUnit< unit::Unit< BT >, SU >::Check | Unit |
check SU and if ok, make the storage unit SU known as Unit | |
Public Member Functions | |
Constant (void) | |
default constructor | |
Constant (const DDR &dedimensionalizer) | |
constructor with only dedimensionalizer function | |
Constant (const ST value) | |
constructor with only a value | |
Constant (const ST value, const SU &) | |
constructor from same unit | |
template<class NU> | Constant (const ST value, const NU &) |
constructor from different unit | |
Constant (const ST value, const std::string &symbol) | |
constructor from different unit given by std::string | |
Constant (const ST new_value, const char *symbol) | |
constructor from different unit given by string constant | |
template<template< class, class, class > class Q1, class DD1> | Constant (const Q1< PQ, SU, DD1 > &quantity) |
copy constructor | |
template<template< class, class, class > class Q1, class SU1, class DD1> | Constant (const Q1< PQ, SU1, DD1 > &quantity) |
copy constructor from quantity with different unit (conversion) | |
template<template< class, class, class > class Q1, class BT1, class DIM1, class DU1, class SU1, class DD1> | Constant (const Q1< Quantity< DIM1, BT1, Loki::Typelist< unit::NonPrefixable< BT1, unit::GenericUnit >, Loki::NullType >, DU1, ST >, SU1, DD1 > &quantity) |
copy constructor from quantity with different unit (conversion) | |
Constant (const Dynamic< ST > &dynamic) | |
copy construction from Dynamic | |
ST | value (void) const |
return the value in the storage unit; | |
ST | standard_value (void) const |
return the value in the standard unit; | |
template<class NU> ST | value (const unit::NonPrefixable< BT, NU > &) const |
return the value in a NonPrefixable unit NonPrefixable<BT, NU, ST>; | |
template<class NU, class P> ST | value (const unit::Prefixed< unit::Prefixable< BT, NU >, P > &) const |
return the value in a Prefixed unit; | |
template<class CUL, class EL> ST | value (const unit::Composed< unit::ComposeBase< BT, CUL >, EL > &) const |
return the value in a Composed unit; | |
ST | value (const std::string &symbol) |
return the value in a unit with symbol string symbolstring; | |
template<class NU> Constant< PQ, NU > | operator() (const NU &) const |
return the value in a Constant object with unit NU; | |
const std::string | unitsymbol (void) const |
return the storage unit symbol; | |
const std::string | unitname (void) const |
return the storage unit name; | |
Variable< PQ, SU > | operator+ (void) const |
unary+ operator | |
Variable< PQ, SU > | operator- (void) const |
unary- operator | |
template<class Q> Variable< PQ, SU > | operator+ (const Q &new_variable) const |
binary operator+ | |
template<class Q> Variable< PQ, SU > | operator- (const Q &new_variable) const |
binary operator- | |
Variable< PQ, SU > | operator * (const ST factor) const |
operator* for multiplication with ST | |
Variable< PQ, SU > | operator/ (const ST factor) const |
operator/ for division by ST | |
bool | operator== (const Constant &rhs_variable) const |
equality | |
template<template< class, class > class Q1, class SU1> bool | operator== (const Q1< PQ, SU1 > &rhs_variable) const |
equality | |
template<template< class, class > class Q1, class DIM1, class BT1, class UL1, class DU1, class SU1> bool | operator== (const Q1< Quantity< DIM1, BT1, UL1, DU1, ST >, SU1 > &rhs_variable) const |
equality | |
bool | operator!= (const Constant &rhs_variable) const |
inequality | |
template<template< class, class > class Q1, class SU1> bool | operator!= (const Q1< PQ, SU1 > &rhs_variable) const |
inequality | |
template<template< class, class > class Q1, class DIM1, class BT1, class UL1, class DU1, class SU1> bool | operator!= (const Q1< Quantity< DIM1, BT1, UL1, DU1, ST >, SU1 > &rhs_variable) const |
inequality | |
bool | operator> (const Constant &rhs_variable) const |
comparison: greater than | |
template<template< class, class > class Q1, class SU1> bool | operator> (const Q1< PQ, SU1 > &rhs_variable) const |
comparison: greater than | |
template<template< class, class > class Q1, class DIM1, class BT1, class UL1, class DU1, class SU1> bool | operator> (const Q1< Quantity< DIM1, BT1, UL1, DU1, ST >, SU1 > &rhs_variable) const |
comparison: greater than | |
bool | operator< (const Constant &rhs_variable) const |
comparison: less than | |
template<template< class, class > class Q1, class SU1> bool | operator< (const Q1< PQ, SU1 > &rhs_variable) const |
comparison: less than | |
template<template< class, class > class Q1, class DIM1, class BT1, class UL1, class DU1, class SU1> bool | operator< (const Q1< Quantity< DIM1, BT1, UL1, DU1, ST >, SU1 > &rhs_variable) const |
comparison: less than | |
bool | operator>= (const Constant &rhs_variable) const |
comparison: greater equal | |
template<template< class, class > class Q1, class SU1> bool | operator>= (const Q1< PQ, SU1 > &rhs_variable) const |
comparison: greater equal | |
template<template< class, class > class Q1, class DIM1, class BT1, class UL1, class DU1, class SU1> bool | operator>= (const Q1< Quantity< DIM1, BT1, UL1, DU1, ST >, SU1 > &rhs_variable) const |
comparison: greater equal | |
bool | operator<= (const Constant &rhs_variable) const |
comparison: less equal | |
template<template< class, class > class Q1, class SU1> bool | operator<= (const Q1< PQ, SU1 > &rhs_variable) const |
comparison: less equal | |
template<template< class, class > class Q1, class DIM1, class BT1, class UL1, class DU1, class SU1> bool | operator<= (const Q1< Quantity< DIM1, BT1, UL1, DU1, ST >, SU1 > &rhs_variable) const |
comparison: less equal | |
template<class Q> GenerateVariable< Constant, Q >::Add | operator * (const Q &factor) |
multiplication of constant with a quantity | |
template<class Q> GenerateVariable< Constant, Q >::Sub | operator/ (const Q &factor) |
division of a constant by a quantity | |
template<long N, long D> GenerateVariable< Constant, BSUtilities::Rational< N, D > >::Mult | pow (const BSUtilities::Rational< N, D > &) const |
the pow function with rational exponent | |
template<class T> Dynamic< ST > | pow (const T &exp) const |
the pow function with dynamic exponent | |
GenerateVariable< Constant, BSUtilities::Rational< 1, 2 > >::Mult | sqrt (void) |
the alternative sqrt function | |
std::ostream & | print_value (std::ostream &os) const |
print the value and the unit of the constant | |
void | operator>> (std::string &str) const |
store the value and unit of the variable in a std::string | |
std::ostream & | operator>> (std::ostream &os) const |
print the variable | |
void | save (BSUtilities::xmlw::XmlStream &os) const |
save contents of the constant quantity object as xml | |
void | load (const TiXmlHandle node) const |
load contents of the constant quantity object from xml code | |
Static Public Member Functions | |
std::string | Unitsymbol (void) |
return the storage unit symbol; | |
std::string | Unitname (void) |
return the storage unit name; | |
Public Attributes | |
GenerateVariable< Constant, BSUtilities::Rational< I, long(1)> >::Mul | pow )(const typename Loki::Int2Type< I >) const |
the pow function with static integer exponent | |
Static Public Attributes | |
const std::string | MODE |
the xml Constant tag | |
Private Member Functions | |
template<template< class, class > class Q1, class DIM1, class BT1, class UL1, class DU1, class ST1, class SU1> Constant & | operator= (const Q1< Quantity< DIM1, BT1, UL1, DU1, ST1 >, SU1 > &) |
assignment to Constant from any Quantity | |
template<class TQ> Constant & | operator= (const TQ &) |
assignment from other type | |
Static Private Member Functions | |
DDR | defaultDedimensionalizer (DDP) |
the default dedimensionalizing function | |
Private Attributes | |
DD | _dedimensionalizer |
the (de)dimensionalizing functor object | |
ST | constant_value |
the value of the Constant in the unit SU; | |
Static Private Attributes | |
const DD | _defaultDD |
the default dedimensionalizing functor | |
Friends | |
GenerateVariable< Constant, Loki::NullType >::Inv | operator/ (const ST numerator, const Constant &factor) |
division of a number by a constant | |
GenerateVariable< Constant, BSUtilities::Rational< 1, 2 > >::Mult | sqrt (const Constant &constant) |
the sqrt function |
the parent quantity is required to be a Quantity, while there is no requirement on SU; the constant is derived from the parent quantity.
Definition at line 61 of file Constant.h.
|
the abstract base quantity type the Quantity which is used as the abstract base class for this quantity; Definition at line 112 of file Constant.h. Referenced by Constant(). |
|
the constant type make the constant known as C Definition at line 117 of file Constant.h. |
|
the dedimensionalizer type
Definition at line 106 of file Constant.h. Referenced by Constant(). |
|
the dedimensionalizer parameter type list type
Definition at line 93 of file Constant.h. |
|
the parameters to the dedimensionalizing functor as a type a (possibly inhomogenous) collection of values to be given to the dedimensionalizing functor upon a call to redimensionalize the DedimensionalizedVariable; this is extracted from the DDL typelist, which should have a single element, which is again a Loki::Tuple, containing the individual parameters Definition at line 103 of file Constant.h. Referenced by defaultDedimensionalizer(). |
|
the return variable type of dedimensionalizer
Definition at line 130 of file Constant.h. Referenced by Constant(), and defaultDedimensionalizer(). |
|
the dimension make the dimension known as DIM Definition at line 90 of file Constant.h. |
|
the parent quantity; this is the quantity which is used to generate this quantity in template form as a parameter to the quantity mode; this is the same as the abstract base quantity; it is used by other classes, and MUST be public Definition at line 125 of file Constant.h. Referenced by Constant(). |
|
check SU and if ok, make the storage unit SU known as Unit parameter SU is checked to be subclassed from Unit<BT>; this ensures that SU (a) is a unit, (b) is a descendant of Unit<BT>, and (c) can be instantiated; since CheckUnit returns the test unit, this is typedef'ed for further use. Definition at line 171 of file Constant.h. Referenced by Constant(). |
|
copy construction from Dynamic this copy constructor has to do run-time checking of the dimensional information in Dynamic; division by the Gcd brings all components of the seven dimension Rationals in Constant to the canonical values. Definition at line 315 of file Constant.h. References quantity::Dynamic< ST >::_ra_d, quantity::Dynamic< ST >::_ra_n, quantity::Dynamic< ST >::_re_d, quantity::Dynamic< ST >::_re_n, quantity::Dynamic< ST >::_rl_d, quantity::Dynamic< ST >::_rl_n, quantity::Dynamic< ST >::_rlu_d, quantity::Dynamic< ST >::_rlu_n, quantity::Dynamic< ST >::_rm_d, quantity::Dynamic< ST >::_rm_n, quantity::Dynamic< ST >::_rt_d, quantity::Dynamic< ST >::_rt_n, quantity::Dynamic< ST >::_rte_d, quantity::Dynamic< ST >::_rte_n, and quantity::Dynamic< ST >::value(). |
|
copy constructor from quantity with different unit (conversion) specialized version for a quantity derived from Quantity with a unit list typical for a generated quantity using a GenericUnit; this special case is the only exception when a quantity of different base unit type can be converted into the target Constant, provided the dimensions of the two objects are equal. This is tested with CheckSecondDimension. Definition at line 294 of file Constant.h. |
|
copy constructor from quantity with different unit (conversion) specialized version for same parent quantity PQ; used if PQ of the target Constant to be constructed and that of the source quantity are identical; then we can be sure that the value of the source quantity can be recalculated into the unit of the target Constant; the result of this calculation is used in an initializer. The name and the symbol of the quantity are copied in the body of the function. The form of Q1<> must satisfy the template parameter sequence for a Constant or other classes similarly derived fom Quantity; this prohibits the conversion from general objects (string etc.). Definition at line 277 of file Constant.h. References ABQ. |
|
copy constructor initialize the parent quantity PQ; then copy the value, the name and symbol string of new_constant; Definition at line 257 of file Constant.h. References ABQ. |
|
constructor from different unit given by string constant takes a std:string defining the symbol of the unit as the second argument; the symbol is checked at run time for dynamic access; the value is first standardized on the base of the unit determined, and recalculated into the storage unit SU; first initializes base class; findBySymbol may throw a UnitMismatch exception. Definition at line 241 of file Constant.h. References ABQ. |
|
constructor from different unit given by std::string takes a std:string defining the symbol of the unit as the second argument; the symbol is checked at run time for dynamic access; the value is first standardized on the base of the unit determined, and recalculated into the storage unit SU; first initializes base class; findBySymbol may throw a UnitMismatch exception. Definition at line 223 of file Constant.h. References ABQ. |
|
constructor from different unit takes an instance of a unit of template parameter type NU as the second argument and recalculates the value into the storage unit SU; check that NU is listed in AllUnits; only the type NU is used; first initializes base class; Note: use only if NU is a concrete, not an abstract type. Definition at line 209 of file Constant.h. References ABQ. |
|
constructor from same unit takes an instance of the storage unit as the second argument and uses value directly. Definition at line 198 of file Constant.h. References ABQ. |
|
constructor with only a value Set the value to new_value and assume this to be in storage unit SU; assume default dedimensionalizer. Definition at line 191 of file Constant.h. References ABQ. |
|
constructor with only dedimensionalizer function set the value to 0 (or equivalent) and store the dedimensionalizer Definition at line 183 of file Constant.h. |
|
default constructor Set the value to 0 and assume this to be in storage unit SU; assume default dedimensionalizer. Definition at line 177 of file Constant.h. References ABQ. |
|
the default dedimensionalizing function returns reference to a static const object; used if no dedimensionalizer is given by the user; does not use any of the parameters in DDP, the returned object contains unity. Definition at line 138 of file Constant.h. |
|
load contents of the constant quantity object from xml code use this is when attempting to input the contents of the variable quantity object through the Quantity ObjectFactory Definition at line 883 of file Constant.h. |
|
multiplication of constant with a quantity the type of the result is generated through GenerateVariable by adding the dimensions of the two quantities; only GenerateVariable with two quantities as arguments does have an Add typedef, thus, Q does not need to be specified. Definition at line 746 of file Constant.h. |
|
operator* for multiplication with ST generates new object; can be chained as in a * b * c; Definition at line 503 of file Constant.h. |
|
inequality compares to a right hand side operand being a general quantity; compares the values in the standard unit; to check dimension, the standardization call is generated through a compile time check; this should handle generated transient quantities as rhs argument. Definition at line 581 of file Constant.h. |
|
inequality compares two objects of types from the same parent quantity PQ, but possibly different storage units SU and SU1; compares the values in the standard unit; we can be sure that values can be recalculated between SU and SU1; Definition at line 568 of file Constant.h. |
|
inequality compared objects of identical types; use value to retrieve the constant value of the right hand side Constant and directly compare to constant_value. Definition at line 558 of file Constant.h. |
|
return the value in a Constant object with unit NU; Generates an object of the desired type and stores constant_value (which is in unit SU); recalculation occurs within the constructor of the new object. This is a conversion into another object with the new unit NU. Definition at line 438 of file Constant.h. |
|
binary operator+ can be chained as in a + b + c; forwards to addition to Variable Definition at line 485 of file Constant.h. |
|
unary+ operator returns a Variable object with the same dimension and other characteristics and same value. Definition at line 466 of file Constant.h. |
|
binary operator- can be chained as in a - b - c; forwards to addition to Variable Definition at line 495 of file Constant.h. |
|
unary- operator returns a Variable object with the same dimension and other characteristics and same value with changed sign. Definition at line 475 of file Constant.h. |
|
division of a constant by a quantity the type of the result is generated through GenerateVariable by subtracting the dimensions of the two quantities; only GenerateVariable with two quantities as arguments does have an Sub typedef, thus, Q does not need to be specified. Definition at line 760 of file Constant.h. |
|
operator/ for division by ST generates new object; can be chained as in a * b / c; Definition at line 511 of file Constant.h. |
|
comparison: less than compares to a right hand side operand being a general quantity; compares the values in the standard unit; to check dimension, the standardization call is generated through a compile time check; this should handle generated transient quantities as rhs argument. Definition at line 655 of file Constant.h. |
|
comparison: less than compares two objects of types from the same parent quantity PQ, but possibly different storage units SU and SU1; compares the values in the standard unit; we can be sure that values can be recalculated between SU and SU1; Definition at line 642 of file Constant.h. |
|
comparison: less than compared objects of identical types; use value to retrieve the constant value of the right hand side Constant and directly compare to constant_value. Definition at line 632 of file Constant.h. |
|
comparison: less equal compares to a right hand side operand being a general quantity; compares the values in the standard unit; to check dimension, the standardization call is generated through a compile time check; this should handle generated transient quantities as rhs argument. Definition at line 729 of file Constant.h. |
|
comparison: less equal compares two objects of types from the same parent quantity PQ, but possibly different storage units SU and SU1; compares the values in the standard unit; we can be sure that values can be recalculated between SU and SU1; Definition at line 716 of file Constant.h. |
|
comparison: less equal compared objects of identical types; use value to retrieve the constant value of the right hand side Constant and directly compare to constant_value. Definition at line 706 of file Constant.h. |
|
assignment from other type only declaration, never defined and private in order to prevent assignment to a Constant |
|
assignment to Constant from any Quantity only declaration, never defined and private in order to prevent assignment to a Constant |
|
equality compares to a right hand side operand being a general quantity; compares the values in the standard unit; to check dimension, the standardization call is generated through a compile time check; this should handle generated transient quantities as rhs argument. Definition at line 544 of file Constant.h. |
|
equality compares two objects of types from the same parent quantity PQ, but possibly different storage units SU and SU1; compares the values in the standard unit; we can be sure that values can be recalculated between SU and SU1; Definition at line 531 of file Constant.h. |
|
equality compared objects of identical types; use value to retrieve the constant value of the right hand side Constant and directly compare to constant_value. Definition at line 521 of file Constant.h. |
|
comparison: greater than compares to a right hand side operand being a general quantity; compares the values in the standard unit; to check dimension, the standardization call is generated through a compile time check; this should handle generated transient quantities as rhs argument. Definition at line 618 of file Constant.h. |
|
comparison: greater than compares two objects of types from the same parent quantity PQ, but possibly different storage units SU and SU1; compares the values in the standard unit; we can be sure that values can be recalculated between SU and SU1; Definition at line 605 of file Constant.h. |
|
comparison: greater than compared objects of identical types; use value to retrieve the constant value of the right hand side Constant and directly compare to constant_value. Definition at line 595 of file Constant.h. |
|
comparison: greater equal compares to a right hand side operand being a general quantity; compares the values in the standard unit; to check dimension, the standardization call is generated through a compile time check; this should handle generated transient quantities as rhs argument. Definition at line 692 of file Constant.h. |
|
comparison: greater equal compares two objects of types from the same parent quantity PQ, but possibly different storage units SU and SU1; compares the values in the standard unit; we can be sure that values can be recalculated between SU and SU1; Definition at line 679 of file Constant.h. |
|
comparison: greater equal compared objects of identical types; use value to retrieve the constant value of the right hand side Constant and directly compare to constant_value. Definition at line 669 of file Constant.h. |
|
print the variable used if the variable is placed to the left of operator>>; calls print_value () indirectly through Quantity<>::print, thus including name and symbol of quantity if requested. Definition at line 863 of file Constant.h. |
|
store the value and unit of the variable in a std::string converts to a string by template Conversion Definition at line 855 of file Constant.h. |
|
the pow function with dynamic exponent returns a transient Dynamic variable with the dimensions of the first argument multiplied by exp; used as object.pow (r); forwards action to pow function with quantity and dynamic exponent (friend functions in Dynamic for specific T's). Definition at line 816 of file Constant.h. References quantity::exp(). |
|
the pow function with rational exponent returns a transient variable with the dimensions of the first argument multiplied by Rational<N, D>; used as object.pow (r); standardized value to be used, since the transient variable assumes a standardization factor of unity. used as object.pow (r); Definition at line 790 of file Constant.h. |
|
print the value and the unit of the constant places these items on the ostream os and returns the reference to the os object, thus allowing chaining of operator<< calls. Definition at line 849 of file Constant.h. |
|
save contents of the constant quantity object as xml this should be used when attempting to output the contents of the constant quantity object in xml form, which can later be read without knowledge of the object's type Definition at line 871 of file Constant.h. |
|
the alternative sqrt function use as v.sqrt (), with v being an instantiation of a Constant Definition at line 838 of file Constant.h. |
|
return the value in the standard unit; The stored constant_value is standardized using the Standardize () function for unit SU Definition at line 368 of file Constant.h. |
|
return the storage unit name; the name is interrogated from SU; static access. Definition at line 460 of file Constant.h. |
|
return the storage unit name; the name is interrogated from SU; dynamic access. Definition at line 455 of file Constant.h. |
|
return the storage unit symbol; the symbol is interrogated from SU; static access. Definition at line 450 of file Constant.h. |
|
return the storage unit symbol; the symbol is interrogated from SU; dynamic access. Definition at line 444 of file Constant.h. |
|
return the value in a unit with symbol string symbolstring; The string is checked at run time, this allows dynamic access. The stored value is first standardized using the Standardize () function for unit SU, and then dynamically recalculated into the unit found with findBySymbol. The allocated object pointed to by unitp is deleted. If symbol is not found by findBySymbol, a UnitMismatch exception is thrown. Definition at line 418 of file Constant.h. |
|
return the value in a Composed unit; The stored value is first standardized using the Standardize () function for unit SU, and then recalculated into the Composed, which is checked against AllUnits; only the type of the Composed is used. Definition at line 404 of file Constant.h. |
|
return the value in a Prefixed unit; The stored value is first standardized using the Standardize () function for unit SU, and then recalculated into the Prefixed, which is checked against AllUnits; only the type of the Prefixed is used. Definition at line 391 of file Constant.h. |
|
return the value in a NonPrefixable unit NonPrefixable<BT, NU, ST>; The stored value is first standardized using the Standardize () function for unit SU, and then recalculated into the NonPrefixable, which is checked against AllUnits; only the type of the NonPrefixable is used. Definition at line 378 of file Constant.h. |
|
return the value in the storage unit; The stored constant_value is returned without recalculation. Definition at line 362 of file Constant.h. |
|
division of a number by a constant the type of the result is generated through GenerateVariable by negating the dimension of the variable; Definition at line 772 of file Constant.h. |
|
the sqrt function use as sqrt (v), with v being an instantiation of a Constant Definition at line 826 of file Constant.h. |
|
the (de)dimensionalizing functor object the _dedimensionalizer object is a functor which returns an object to be used to perform the dedimensionalization of an object of type C (by division) or the redimensionalization of the internally stored value into an object of type C. Thus, _dedimensionalizer stores the recipe how to (de)dimensionalize the value stored in the DedimensionalizedVariable object. Definition at line 153 of file Constant.h. |
|
the default dedimensionalizing functor initialized outside of class to defaultDedimensionalizer Definition at line 143 of file Constant.h. |
|
the value of the Constant in the unit SU; This data member is private, and can only be accessed through the member functions value (); being set during construction of an object. Definition at line 161 of file Constant.h. |
|
the xml Constant tag define outside of class Definition at line 910 of file Constant.h. |
|
the pow function with static integer exponent returns a transient variable with the dimensions of the first argument multiplied by I; used as object.pow (r); standardized value to be used, since the transient variable assumes a standardization factor of unity. used as object.pow (r); Definition at line 805 of file Constant.h. |