Protium
Math and Design Features
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros Pages
Dimensions.h
Go to the documentation of this file.
1 #ifndef Protium_Dimensions_h
2 #define Protium_Dimensions_h
3 
4 #include "Protium/Design/Types.h"
5 
6 namespace Protium{
7  namespace Design{
8 
10  template<class Seq1, class Seq2>
11  struct DimensionAdd{
20  };
21 
23  template<class Seq1, class Seq2>
25  typedef typename Sequence<int, IntType< Seq1::Tail::Head::value - Seq2::Tail::Head::value >,
26  IntType< Seq1::Tail::Tail::Head::value - Seq2::Tail::Tail::Head::value >,
27  IntType< Seq1::Tail::Tail::Tail::Head::value - Seq2::Tail::Tail::Tail::Head::value >,
28  IntType< Seq1::Tail::Tail::Tail::Tail::Head::value - Seq2::Tail::Tail::Tail::Tail::Head::value >,
29  IntType< Seq1::Tail::Tail::Tail::Tail::Tail::Head::value - Seq2::Tail::Tail::Tail::Tail::Tail::Head::value >,
30  IntType< Seq1::Tail::Tail::Tail::Tail::Tail::Tail::Head::value - Seq2::Tail::Tail::Tail::Tail::Tail::Tail::Head::value >,
31  IntType< Seq1::Tail::Tail::Tail::Tail::Tail::Tail::Tail::Head::value - Seq2::Tail::Tail::Tail::Tail::Tail::Tail::Tail::Head::value >
33  };
34 
46 
47  //derived dimensions
48 
56  typedef DimensionSubtract<
59  typedef DimensionSubtract<
61  typedef DimensionSubtract<scalar,
64 
65  }
66 }
67 
68 #endif //Protium_Dimensions_h
Sequence< int, IntType< Seq1::Tail::Head::value+Seq2::Tail::Head::value >, IntType< Seq1::Tail::Tail::Head::value+Seq2::Tail::Tail::Head::value >, IntType< Seq1::Tail::Tail::Tail::Head::value+Seq2::Tail::Tail::Tail::Head::value >, IntType< Seq1::Tail::Tail::Tail::Tail::Head::value+Seq2::Tail::Tail::Tail::Tail::Head::value >, IntType< Seq1::Tail::Tail::Tail::Tail::Tail::Head::value+Seq2::Tail::Tail::Tail::Tail::Tail::Head::value >, IntType< Seq1::Tail::Tail::Tail::Tail::Tail::Tail::Head::value+Seq2::Tail::Tail::Tail::Tail::Tail::Tail::Head::value >, IntType< Seq1::Tail::Tail::Tail::Tail::Tail::Tail::Tail::Head::value+Seq2::Tail::Tail::Tail::Tail::Tail::Tail::Tail::Head::value > >::Type Type
Definition: Dimensions.h:19
DimensionSubtract< velocity, time >::Type acceleration
Definition: Dimensions.h:51
DimensionAdd< force, length >::Type energy
Definition: Dimensions.h:54
DimensionSubtract< DimensionSubtract< scalar, energy >::Type, energy >::Type fermiDimension
Definition: Dimensions.h:57
DimensionSubtract< scalar, DimensionAdd< magneticFluxDensity, DimensionAdd< velocity, velocity >::Type >::Type >::Type electricFluxDensity
Definition: Dimensions.h:63
DimensionSubtract< scalar, time >::Type rate
Definition: Dimensions.h:49
DimensionSubtract< DimensionSubtract< force, current >::Type, current >::Type magneticFluxDensity
Definition: Dimensions.h:60
Helper template to add dimensions on quantitites.
Definition: Dimensions.h:11
Sequence< int, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 1 >, IntType< 0 >, IntType< 0 >, IntType< 0 > >::Type charge
Definition: Dimensions.h:39
Helper template to subtract dimensions on quantities.
Definition: Dimensions.h:24
Sequence< int, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 1 > >::Type angle
Definition: Dimensions.h:45
DimensionAdd< acceleration, mass >::Type force
Definition: Dimensions.h:52
Sequence< int, IntType< 0 >, IntType< 0 >, IntType< 1 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 > >::Type time
Definition: Dimensions.h:42
Maps type to integer.
Definition: Types.h:24
Sequence< int, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 1 >, IntType< 0 > >::Type intensity
Definition: Dimensions.h:44
DimensionSubtract< length, time >::Type velocity
Definition: Dimensions.h:50
DimensionSubtract< charge, time >::Type current
Definition: Dimensions.h:58
DimensionAdd< mass, velocity >::Type momentum
Definition: Dimensions.h:53
Sequence of types.
Definition: Types.h:109
General list of types. Points to Head and Tail.
Definition: Types.h:53
Sequence< int, IntType< Seq1::Tail::Head::value-Seq2::Tail::Head::value >, IntType< Seq1::Tail::Tail::Head::value-Seq2::Tail::Tail::Head::value >, IntType< Seq1::Tail::Tail::Tail::Head::value-Seq2::Tail::Tail::Tail::Head::value >, IntType< Seq1::Tail::Tail::Tail::Tail::Head::value-Seq2::Tail::Tail::Tail::Tail::Head::value >, IntType< Seq1::Tail::Tail::Tail::Tail::Tail::Head::value-Seq2::Tail::Tail::Tail::Tail::Tail::Head::value >, IntType< Seq1::Tail::Tail::Tail::Tail::Tail::Tail::Head::value-Seq2::Tail::Tail::Tail::Tail::Tail::Tail::Head::value >, IntType< Seq1::Tail::Tail::Tail::Tail::Tail::Tail::Tail::Head::value-Seq2::Tail::Tail::Tail::Tail::Tail::Tail::Tail::Head::value > >::Type Type
Definition: Dimensions.h:32
Sequence< int, IntType< 0 >, IntType< 1 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 > >::Type length
Definition: Dimensions.h:41
Sequence< int, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 1 >, IntType< 0 >, IntType< 0 > >::Type temperature
Definition: Dimensions.h:43
Sequence< int, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 > >::Type scalar
Definition: Dimensions.h:38
DimensionAdd< energy, time >::Type action
Definition: Dimensions.h:55
Sequence< int, IntType< 1 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 >, IntType< 0 > >::Type mass
Definition: Dimensions.h:40