@@ -47,8 +47,7 @@ import _Differentiation
47
47
/// ````
48
48
public struct Sequential < Layer1: Module , Layer2: Layer > : Module
49
49
where
50
- Layer1. Output == Layer2 . Input ,
51
- Layer1. TangentVector. VectorSpaceScalar == Layer2 . TangentVector . VectorSpaceScalar
50
+ Layer1. Output == Layer2 . Input
52
51
{
53
52
public var layer1 : Layer1
54
53
public var layer2 : Layer2
@@ -77,42 +76,28 @@ extension Sequential: Layer where Layer1: Layer {
77
76
/// A layer that sequentially composes 3 layers.
78
77
public typealias Sequential3 < L1: Module , L2: Layer , L3: Layer > = Sequential < L1 , Sequential < L2 , L3 > >
79
78
where
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
83
80
84
81
/// A layer that sequentially composes 4 layers.
85
82
public typealias Sequential4 < L1: Module , L2: Layer , L3: Layer , L4: Layer > = Sequential <
86
83
L1 , Sequential < L2 , Sequential < L3 , L4 > >
87
84
>
88
85
where
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
93
87
94
88
/// A layer that sequentially composes 5 layers.
95
89
public typealias Sequential5 < L1: Module , L2: Layer , L3: Layer , L4: Layer , L5: Layer > = Sequential <
96
90
L1 , Sequential < L2 , Sequential < L3 , Sequential < L4 , L5 > > >
97
91
>
98
92
where
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
104
94
105
95
/// A layer that sequentially composes 6 layers.
106
96
public typealias Sequential6 < L1: Module , L2: Layer , L3: Layer , L4: Layer , L5: Layer , L6: Layer > =
107
97
Sequential < L1 , Sequential < L2 , Sequential < L3 , Sequential < L4 , Sequential < L5 , L6 > > > > >
108
98
where
109
99
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
116
101
117
102
/// A layer that sequentially composes 7 layers.
118
103
public typealias Sequential7 <
@@ -122,13 +107,7 @@ public typealias Sequential7<
122
107
>
123
108
where
124
109
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
132
111
133
112
/// A layer that sequentially composes 8 layers.
134
113
public typealias Sequential8 <
@@ -139,14 +118,7 @@ public typealias Sequential8<
139
118
>
140
119
where
141
120
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
150
122
151
123
/// A layer that sequentially composes 9 layers.
152
124
public typealias Sequential9 <
@@ -162,15 +134,7 @@ public typealias Sequential9<
162
134
>
163
135
where
164
136
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
174
138
175
139
/// A layer that sequentially composes 10 layers.
176
140
public typealias Sequential10 <
@@ -191,16 +155,7 @@ public typealias Sequential10<
191
155
where
192
156
L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
193
157
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
204
159
205
160
@resultBuilder
206
161
public struct LayerBuilder {
@@ -217,9 +172,7 @@ public struct LayerBuilder {
217
172
-> Sequential < L1 , Sequential < L2 , L3 > >
218
173
where
219
174
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
223
176
{
224
177
Sequential ( l1, Sequential ( l2, l3) )
225
178
}
@@ -234,10 +187,7 @@ public struct LayerBuilder {
234
187
where
235
188
L1. Output == L2 . Input ,
236
189
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
241
191
{
242
192
Sequential ( l1, Sequential ( l2, Sequential ( l3, l4) ) )
243
193
}
@@ -254,11 +204,7 @@ public struct LayerBuilder {
254
204
L1. Output == L2 . Input ,
255
205
L2. Output == L3 . Input ,
256
206
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
262
208
{
263
209
Sequential ( l1, Sequential ( l2, Sequential ( l3, Sequential ( l4, l5) ) ) )
264
210
}
@@ -277,12 +223,7 @@ public struct LayerBuilder {
277
223
L2. Output == L3 . Input ,
278
224
L3. Output == L4 . Input ,
279
225
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
286
227
{
287
228
Sequential ( l1, Sequential ( l2, Sequential ( l3, Sequential ( l4, Sequential ( l5, l6) ) ) ) )
288
229
}
@@ -305,13 +246,7 @@ public struct LayerBuilder {
305
246
L3. Output == L4 . Input ,
306
247
L4. Output == L5 . Input ,
307
248
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
315
250
{
316
251
Sequential (
317
252
l1, Sequential ( l2, Sequential ( l3, Sequential ( l4, Sequential ( l5, Sequential ( l6, l7) ) ) ) ) )
@@ -340,14 +275,7 @@ public struct LayerBuilder {
340
275
L4. Output == L5 . Input ,
341
276
L5. Output == L6 . Input ,
342
277
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
351
279
{
352
280
Sequential (
353
281
l1,
@@ -383,15 +311,7 @@ public struct LayerBuilder {
383
311
L5. Output == L6 . Input ,
384
312
L6. Output == L7 . Input ,
385
313
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
395
315
{
396
316
Sequential (
397
317
l1,
@@ -437,16 +357,7 @@ public struct LayerBuilder {
437
357
L6. Output == L7 . Input ,
438
358
L7. Output == L8 . Input ,
439
359
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
450
361
{
451
362
Sequential (
452
363
l1,
0 commit comments