1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
use super::*;
pub type BladeN<T,N> = Blade<T,N,Dynamic>;
pub type Blade0<T> = Blade<T,U0,Dynamic>;
pub type Blade1<T> = Blade<T,U1,Dynamic>;
pub type Blade2<T> = Blade<T,U2,Dynamic>;
pub type Blade3<T> = Blade<T,U3,Dynamic>;
pub type Blade4<T> = Blade<T,U4,Dynamic>;
pub type Blade5<T> = Blade<T,U5,Dynamic>;
pub type Blade6<T> = Blade<T,U6,Dynamic>;
pub type BladeD<T> = Blade<T,Dynamic,Dynamic>;
pub type Even0<T> = Even<T,U0>;
pub type Even1<T> = Even<T,U1>;
pub type Even2<T> = Even<T,U2>;
pub type Even3<T> = Even<T,U3>;
pub type Even4<T> = Even<T,U4>;
pub type Even5<T> = Even<T,U5>;
pub type Even6<T> = Even<T,U6>;
pub type EvenD<T> = Even<T,Dynamic>;
pub type Odd0<T> = Odd<T,U0>;
pub type Odd1<T> = Odd<T,U1>;
pub type Odd2<T> = Odd<T,U2>;
pub type Odd3<T> = Odd<T,U3>;
pub type Odd4<T> = Odd<T,U4>;
pub type Odd5<T> = Odd<T,U5>;
pub type Odd6<T> = Odd<T,U6>;
pub type OddD<T> = Odd<T,Dynamic>;
pub type Multivector0<T> = Multivector<T,U0>;
pub type Multivector1<T> = Multivector<T,U1>;
pub type Multivector2<T> = Multivector<T,U2>;
pub type Multivector3<T> = Multivector<T,U3>;
pub type Multivector4<T> = Multivector<T,U4>;
pub type Multivector5<T> = Multivector<T,U5>;
pub type Multivector6<T> = Multivector<T,U6>;
pub type MultivectorD<T> = Multivector<T,Dynamic>;
pub type Scalar<T,N> = Blade<T,N,U0>;
pub type Scalar0<T> = Scalar<T,U0>;
pub type Scalar1<T> = Scalar<T,U1>;
pub type Scalar2<T> = Scalar<T,U2>;
pub type Scalar3<T> = Scalar<T,U3>;
pub type Scalar4<T> = Scalar<T,U4>;
pub type Scalar5<T> = Scalar<T,U5>;
pub type Scalar6<T> = Scalar<T,U6>;
pub type ScalarD<T> = Scalar<T,Dynamic>;
pub type VecN<T,N> = Blade<T,N,U1>;
pub type Vec1<T> = VecN<T,U1>;
pub type Vec2<T> = VecN<T,U2>;
pub type Vec3<T> = VecN<T,U3>;
pub type Vec4<T> = VecN<T,U4>;
pub type Vec5<T> = VecN<T,U5>;
pub type Vec6<T> = VecN<T,U6>;
pub type VecD<T> = VecN<T,Dynamic>;
pub type BiVecN<T,N> = Blade<T,N,U2>;
pub type BiVec2<T> = BiVecN<T,U2>;
pub type BiVec3<T> = BiVecN<T,U3>;
pub type BiVec4<T> = BiVecN<T,U4>;
pub type BiVec5<T> = BiVecN<T,U5>;
pub type BiVec6<T> = BiVecN<T,U6>;
pub type BiVecD<T> = BiVecN<T,Dynamic>;
pub type TriVecN<T,N> = Blade<T,N,U3>;
pub type TriVec3<T> = TriVecN<T,U3>;
pub type TriVec4<T> = TriVecN<T,U4>;
pub type TriVec5<T> = TriVecN<T,U5>;
pub type TriVec6<T> = TriVecN<T,U6>;
pub type TriVecD<T> = TriVecN<T,Dynamic>;
pub type QuadVecN<T,N> = Blade<T,N,U4>;
pub type QuadVec4<T> = QuadVecN<T,U4>;
pub type QuadVec5<T> = QuadVecN<T,U5>;
pub type QuadVec6<T> = QuadVecN<T,U6>;
pub type QuadVecD<T> = QuadVecN<T,Dynamic>;
pub type PentVecN<T,N> = Blade<T,N,U5>;
pub type PentVec5<T> = PentVecN<T,U5>;
pub type PentVec6<T> = PentVecN<T,U6>;
pub type PentVecD<T> = PentVecN<T,Dynamic>;
pub type HexVecN<T,N> = Blade<T,N,U6>;
pub type HexVec6<T> = HexVecN<T,U6>;
pub type HexVecD<T> = HexVecN<T,Dynamic>;
pub type DualBlade<T,N,G> = Blade<T,N,DimDiff<N,G>>;
pub type PsuedoScalar<T,N> = Blade<T,N,N>;
pub type PsuedoVecN<T,N> = Blade<T,N,DimDiff<N,U1>>;