@@ -47,8 +47,7 @@ import _Differentiation
4747/// ````
4848public struct Sequential < Layer1: Module , Layer2: Layer > : Module
4949where
50- Layer1. Output == Layer2 . Input ,
51- Layer1. TangentVector. VectorSpaceScalar == Layer2 . TangentVector . VectorSpaceScalar
50+ Layer1. Output == Layer2 . Input
5251{
5352 public var layer1 : Layer1
5453 public var layer2 : Layer2
@@ -77,42 +76,28 @@ extension Sequential: Layer where Layer1: Layer {
7776/// A layer that sequentially composes 3 layers.
7877public typealias Sequential3 < L1: Module , L2: Layer , L3: Layer > = Sequential < L1 , Sequential < L2 , L3 > >
7978where
80- L1 . Output == L2 . Input, L2 . Output == L3 . Input,
81- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
82- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar
79+ L1 . Output == L2 . Input, L2 . Output == L3 . Input
8380
8481/// A layer that sequentially composes 4 layers.
8582public typealias Sequential4 < L1: Module , L2: Layer , L3: Layer , L4: Layer > = Sequential <
8683 L1 , Sequential < L2 , Sequential < L3 , L4 > >
8784>
8885where
89- L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input,
90- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
91- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
92- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar
86+ L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input
9387
9488/// A layer that sequentially composes 5 layers.
9589public typealias Sequential5 < L1: Module , L2: Layer , L3: Layer , L4: Layer , L5: Layer > = Sequential <
9690 L1 , Sequential < L2 , Sequential < L3 , Sequential < L4 , L5 > > >
9791>
9892where
99- L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
100- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
101- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
102- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar,
103- L4 . TangentVector. VectorSpaceScalar == L5 . TangentVector. VectorSpaceScalar
93+ L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input
10494
10595/// A layer that sequentially composes 6 layers.
10696public typealias Sequential6 < L1: Module , L2: Layer , L3: Layer , L4: Layer , L5: Layer , L6: Layer > =
10797 Sequential < L1 , Sequential < L2 , Sequential < L3 , Sequential < L4 , Sequential < L5 , L6 > > > > >
10898where
10999 L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
110- L5 . Output == L6 . Input,
111- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
112- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
113- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar,
114- L4 . TangentVector. VectorSpaceScalar == L5 . TangentVector. VectorSpaceScalar,
115- L5 . TangentVector. VectorSpaceScalar == L6 . TangentVector. VectorSpaceScalar
100+ L5 . Output == L6 . Input
116101
117102/// A layer that sequentially composes 7 layers.
118103public typealias Sequential7 <
@@ -122,13 +107,7 @@ public typealias Sequential7<
122107>
123108where
124109 L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
125- L5 . Output == L6 . Input, L6 . Output == L7 . Input,
126- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
127- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
128- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar,
129- L4 . TangentVector. VectorSpaceScalar == L5 . TangentVector. VectorSpaceScalar,
130- L5 . TangentVector. VectorSpaceScalar == L6 . TangentVector. VectorSpaceScalar,
131- L6 . TangentVector. VectorSpaceScalar == L7 . TangentVector. VectorSpaceScalar
110+ L5 . Output == L6 . Input, L6 . Output == L7 . Input
132111
133112/// A layer that sequentially composes 8 layers.
134113public typealias Sequential8 <
@@ -139,14 +118,7 @@ public typealias Sequential8<
139118>
140119where
141120 L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
142- L5 . Output == L6 . Input, L6 . Output == L7 . Input, L7 . Output == L8 . Input,
143- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
144- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
145- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar,
146- L4 . TangentVector. VectorSpaceScalar == L5 . TangentVector. VectorSpaceScalar,
147- L5 . TangentVector. VectorSpaceScalar == L6 . TangentVector. VectorSpaceScalar,
148- L6 . TangentVector. VectorSpaceScalar == L7 . TangentVector. VectorSpaceScalar,
149- L7 . TangentVector. VectorSpaceScalar == L8 . TangentVector. VectorSpaceScalar
121+ L5 . Output == L6 . Input, L6 . Output == L7 . Input, L7 . Output == L8 . Input
150122
151123/// A layer that sequentially composes 9 layers.
152124public typealias Sequential9 <
@@ -162,15 +134,7 @@ public typealias Sequential9<
162134>
163135where
164136 L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
165- L5 . Output == L6 . Input, L6 . Output == L7 . Input, L7 . Output == L8 . Input, L8 . Output == L9 . Input,
166- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
167- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
168- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar,
169- L4 . TangentVector. VectorSpaceScalar == L5 . TangentVector. VectorSpaceScalar,
170- L5 . TangentVector. VectorSpaceScalar == L6 . TangentVector. VectorSpaceScalar,
171- L6 . TangentVector. VectorSpaceScalar == L7 . TangentVector. VectorSpaceScalar,
172- L7 . TangentVector. VectorSpaceScalar == L8 . TangentVector. VectorSpaceScalar,
173- L8 . TangentVector. VectorSpaceScalar == L9 . TangentVector. VectorSpaceScalar
137+ L5 . Output == L6 . Input, L6 . Output == L7 . Input, L7 . Output == L8 . Input, L8 . Output == L9 . Input
174138
175139/// A layer that sequentially composes 10 layers.
176140public typealias Sequential10 <
@@ -191,16 +155,7 @@ public typealias Sequential10<
191155where
192156 L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
193157 L5 . Output == L6 . Input, L6 . Output == L7 . Input, L7 . Output == L8 . Input, L8 . Output == L9 . Input,
194- L9 . Output == L10 . Input,
195- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
196- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
197- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar,
198- L4 . TangentVector. VectorSpaceScalar == L5 . TangentVector. VectorSpaceScalar,
199- L5 . TangentVector. VectorSpaceScalar == L6 . TangentVector. VectorSpaceScalar,
200- L6 . TangentVector. VectorSpaceScalar == L7 . TangentVector. VectorSpaceScalar,
201- L7 . TangentVector. VectorSpaceScalar == L8 . TangentVector. VectorSpaceScalar,
202- L8 . TangentVector. VectorSpaceScalar == L9 . TangentVector. VectorSpaceScalar,
203- L9 . TangentVector. VectorSpaceScalar == L10 . TangentVector. VectorSpaceScalar
158+ L9 . Output == L10 . Input
204159
205160@resultBuilder
206161public struct LayerBuilder {
@@ -217,9 +172,7 @@ public struct LayerBuilder {
217172 -> Sequential < L1 , Sequential < L2 , L3 > >
218173 where
219174 L1. Output == L2 . Input ,
220- L2. Output == L3 . Input ,
221- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
222- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar
175+ L2. Output == L3 . Input
223176 {
224177 Sequential ( l1, Sequential ( l2, l3) )
225178 }
@@ -234,10 +187,7 @@ public struct LayerBuilder {
234187 where
235188 L1. Output == L2 . Input ,
236189 L2. Output == L3 . Input ,
237- L3. Output == L4 . Input ,
238- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
239- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
240- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar
190+ L3. Output == L4 . Input
241191 {
242192 Sequential ( l1, Sequential ( l2, Sequential ( l3, l4) ) )
243193 }
@@ -254,11 +204,7 @@ public struct LayerBuilder {
254204 L1. Output == L2 . Input ,
255205 L2. Output == L3 . Input ,
256206 L3. Output == L4 . Input ,
257- L4. Output == L5 . Input ,
258- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
259- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
260- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar ,
261- L4. TangentVector. VectorSpaceScalar == L5 . TangentVector . VectorSpaceScalar
207+ L4. Output == L5 . Input
262208 {
263209 Sequential ( l1, Sequential ( l2, Sequential ( l3, Sequential ( l4, l5) ) ) )
264210 }
@@ -277,12 +223,7 @@ public struct LayerBuilder {
277223 L2. Output == L3 . Input ,
278224 L3. Output == L4 . Input ,
279225 L4. Output == L5 . Input ,
280- L5. Output == L6 . Input ,
281- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
282- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
283- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar ,
284- L4. TangentVector. VectorSpaceScalar == L5 . TangentVector . VectorSpaceScalar ,
285- L5. TangentVector. VectorSpaceScalar == L6 . TangentVector . VectorSpaceScalar
226+ L5. Output == L6 . Input
286227 {
287228 Sequential ( l1, Sequential ( l2, Sequential ( l3, Sequential ( l4, Sequential ( l5, l6) ) ) ) )
288229 }
@@ -305,13 +246,7 @@ public struct LayerBuilder {
305246 L3. Output == L4 . Input ,
306247 L4. Output == L5 . Input ,
307248 L5. Output == L6 . Input ,
308- L6. Output == L7 . Input ,
309- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
310- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
311- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar ,
312- L4. TangentVector. VectorSpaceScalar == L5 . TangentVector . VectorSpaceScalar ,
313- L5. TangentVector. VectorSpaceScalar == L6 . TangentVector . VectorSpaceScalar ,
314- L6. TangentVector. VectorSpaceScalar == L7 . TangentVector . VectorSpaceScalar
249+ L6. Output == L7 . Input
315250 {
316251 Sequential (
317252 l1, Sequential ( l2, Sequential ( l3, Sequential ( l4, Sequential ( l5, Sequential ( l6, l7) ) ) ) ) )
@@ -340,14 +275,7 @@ public struct LayerBuilder {
340275 L4. Output == L5 . Input ,
341276 L5. Output == L6 . Input ,
342277 L6. Output == L7 . Input ,
343- L7. Output == L8 . Input ,
344- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
345- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
346- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar ,
347- L4. TangentVector. VectorSpaceScalar == L5 . TangentVector . VectorSpaceScalar ,
348- L5. TangentVector. VectorSpaceScalar == L6 . TangentVector . VectorSpaceScalar ,
349- L6. TangentVector. VectorSpaceScalar == L7 . TangentVector . VectorSpaceScalar ,
350- L7. TangentVector. VectorSpaceScalar == L8 . TangentVector . VectorSpaceScalar
278+ L7. Output == L8 . Input
351279 {
352280 Sequential (
353281 l1,
@@ -383,15 +311,7 @@ public struct LayerBuilder {
383311 L5. Output == L6 . Input ,
384312 L6. Output == L7 . Input ,
385313 L7. Output == L8 . Input ,
386- L8. Output == L9 . Input ,
387- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
388- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
389- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar ,
390- L4. TangentVector. VectorSpaceScalar == L5 . TangentVector . VectorSpaceScalar ,
391- L5. TangentVector. VectorSpaceScalar == L6 . TangentVector . VectorSpaceScalar ,
392- L6. TangentVector. VectorSpaceScalar == L7 . TangentVector . VectorSpaceScalar ,
393- L7. TangentVector. VectorSpaceScalar == L8 . TangentVector . VectorSpaceScalar ,
394- L8. TangentVector. VectorSpaceScalar == L9 . TangentVector . VectorSpaceScalar
314+ L8. Output == L9 . Input
395315 {
396316 Sequential (
397317 l1,
@@ -437,16 +357,7 @@ public struct LayerBuilder {
437357 L6. Output == L7 . Input ,
438358 L7. Output == L8 . Input ,
439359 L8. Output == L9 . Input ,
440- L9. Output == L10 . Input ,
441- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
442- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
443- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar ,
444- L4. TangentVector. VectorSpaceScalar == L5 . TangentVector . VectorSpaceScalar ,
445- L5. TangentVector. VectorSpaceScalar == L6 . TangentVector . VectorSpaceScalar ,
446- L6. TangentVector. VectorSpaceScalar == L7 . TangentVector . VectorSpaceScalar ,
447- L7. TangentVector. VectorSpaceScalar == L8 . TangentVector . VectorSpaceScalar ,
448- L8. TangentVector. VectorSpaceScalar == L9 . TangentVector . VectorSpaceScalar ,
449- L9. TangentVector. VectorSpaceScalar == L10 . TangentVector . VectorSpaceScalar
360+ L9. Output == L10 . Input
450361 {
451362 Sequential (
452363 l1,
0 commit comments