versor  3.0
C++11 library for Geometric algebra
vsr_sta.h
1 /*
2 
3  space time algebra
4 
5  R1,3
6 
7  SEE Hestenes Space Time Algebra
8 */
10 
11 namespace vsr{
12 
13  namespace sta {
14 
15  using algebra = algebra< metric<1,3>, double >;
16 
17  /*STANDARD FRAME of Orthonormal vectors decribes an Event ( time + location )
18  An event, "proper vector" can be a proper momentum ( energy-momentum vector ) of a particle
19  or a proper velocity
20  */
21 
22  //"Proper Vector"
23  using event = algebra::vec;
24 
25  //Dirac Matrices are the Y . . .
26  using y0 = algebra::e<1>; //timelike observer (squares to 1)
27  //forward light cone
28  //Spacelike
29  using y1 = algebra::e<2>;
30  using y2 = algebra::e<3>;
31  using y3 = algebra::e<4>;
32 
33  //Right-handed unit pseudoscalar
34  using I = algebra::blades<4>:
35 
36  //individual position space vectors are made from spacetime bivectors yk^y0
37  // (considered "relative vectors..." -- relative to y0 . . .
38  //These generate G3 as G(P3)
39  using O1 = typename OProd< Y1, Y0, Metric, false >::Type; //yk^y0...
40  using O2 = typename OProd< Y2, Y0, Metric, false >::Type;
41  using O3 = typename OProd< Y3, Y0, Metric, false >::Type;
42 
43  //Position space of observer y0
44  using P3 = typename OProd< Event, Y0, Metric, false >::Type;
45 
46  // SPLIT
47 
48  //a y0 spacetime split (time + position) is made from an observer's time axis Event * Y0
49  using Split = typename Prod< Event, Y0, Metric, false>::Type;
50  //lorentz-invariant means: independent of a chosen spacetime split
51 
52  };
53 
54 
55  typedef MGAMV< STA::Metric, STA::Vec > Vec;
56 
57  typedef MGAMV< STA::Metric, STA::Sca > Sca;
58  typedef MGAMV< STA::Metric, STA::Y0 > Y0;
59  typedef MGAMV< STA::Metric, STA::Y1 > Y1;
60  typedef MGAMV< STA::Metric, STA::Y2 > Y2;
61  typedef MGAMV< STA::Metric, STA::Y3 > Y3;
62 
63 
64  typedef MGAMV< STA::Metric, STA::O1 > O1;
65  typedef MGAMV< STA::Metric, STA::O2 > O2;
66  typedef MGAMV< STA::Metric, STA::O3 > O3;
67 
68  typedef MGAMV< STA::Metric, STA::I > I;
69 
70  typedef MGAMV< STA::Metric, STA::P3 > P3;
71 
72  typedef MGAMV< STA::Metric, STA::Event > Event;
73 
74  typedef MGAMV< STA::Metric, STA::Split > Split;
75 
76 }
77 
78 }
79 
80 
mv_t< vector_basis > vec
– 1-blade vector type (stores data)
Definition: vsr_algebra.h:237
the versor library namespace
Definition: vsr_algebra.h:29
generic multivector class, templated on a geometric algebra and a field