@@ -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
@@ -78,42 +77,28 @@ extension Sequential: Layer where Layer1: Layer {
78
77
/// A layer that sequentially composes 3 layers.
79
78
public typealias Sequential3 < L1: Module , L2: Layer , L3: Layer > = Sequential < L1 , Sequential < L2 , L3 > >
80
79
where
81
- L1 . Output == L2 . Input, L2 . Output == L3 . Input,
82
- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
83
- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar
80
+ L1 . Output == L2 . Input, L2 . Output == L3 . Input
84
81
85
82
/// A layer that sequentially composes 4 layers.
86
83
public typealias Sequential4 < L1: Module , L2: Layer , L3: Layer , L4: Layer > = Sequential <
87
84
L1 , Sequential < L2 , Sequential < L3 , L4 > >
88
85
>
89
86
where
90
- L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input,
91
- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
92
- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
93
- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar
87
+ L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input
94
88
95
89
/// A layer that sequentially composes 5 layers.
96
90
public typealias Sequential5 < L1: Module , L2: Layer , L3: Layer , L4: Layer , L5: Layer > = Sequential <
97
91
L1 , Sequential < L2 , Sequential < L3 , Sequential < L4 , L5 > > >
98
92
>
99
93
where
100
- L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
101
- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
102
- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
103
- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar,
104
- L4 . TangentVector. VectorSpaceScalar == L5 . TangentVector. VectorSpaceScalar
94
+ L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input
105
95
106
96
/// A layer that sequentially composes 6 layers.
107
97
public typealias Sequential6 < L1: Module , L2: Layer , L3: Layer , L4: Layer , L5: Layer , L6: Layer > =
108
98
Sequential < L1 , Sequential < L2 , Sequential < L3 , Sequential < L4 , Sequential < L5 , L6 > > > > >
109
99
where
110
100
L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
111
- L5 . Output == L6 . Input,
112
- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
113
- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
114
- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar,
115
- L4 . TangentVector. VectorSpaceScalar == L5 . TangentVector. VectorSpaceScalar,
116
- L5 . TangentVector. VectorSpaceScalar == L6 . TangentVector. VectorSpaceScalar
101
+ L5 . Output == L6 . Input
117
102
118
103
/// A layer that sequentially composes 7 layers.
119
104
public typealias Sequential7 <
@@ -123,13 +108,7 @@ public typealias Sequential7<
123
108
>
124
109
where
125
110
L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
126
- L5 . Output == L6 . Input, L6 . Output == L7 . Input,
127
- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
128
- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
129
- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar,
130
- L4 . TangentVector. VectorSpaceScalar == L5 . TangentVector. VectorSpaceScalar,
131
- L5 . TangentVector. VectorSpaceScalar == L6 . TangentVector. VectorSpaceScalar,
132
- L6 . TangentVector. VectorSpaceScalar == L7 . TangentVector. VectorSpaceScalar
111
+ L5 . Output == L6 . Input, L6 . Output == L7 . Input
133
112
134
113
/// A layer that sequentially composes 8 layers.
135
114
public typealias Sequential8 <
@@ -140,14 +119,7 @@ public typealias Sequential8<
140
119
>
141
120
where
142
121
L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
143
- L5 . Output == L6 . Input, L6 . Output == L7 . Input, L7 . Output == L8 . Input,
144
- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
145
- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
146
- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar,
147
- L4 . TangentVector. VectorSpaceScalar == L5 . TangentVector. VectorSpaceScalar,
148
- L5 . TangentVector. VectorSpaceScalar == L6 . TangentVector. VectorSpaceScalar,
149
- L6 . TangentVector. VectorSpaceScalar == L7 . TangentVector. VectorSpaceScalar,
150
- L7 . TangentVector. VectorSpaceScalar == L8 . TangentVector. VectorSpaceScalar
122
+ L5 . Output == L6 . Input, L6 . Output == L7 . Input, L7 . Output == L8 . Input
151
123
152
124
/// A layer that sequentially composes 9 layers.
153
125
public typealias Sequential9 <
@@ -163,15 +135,7 @@ public typealias Sequential9<
163
135
>
164
136
where
165
137
L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
166
- L5 . Output == L6 . Input, L6 . Output == L7 . Input, L7 . Output == L8 . Input, L8 . Output == L9 . Input,
167
- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
168
- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
169
- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar,
170
- L4 . TangentVector. VectorSpaceScalar == L5 . TangentVector. VectorSpaceScalar,
171
- L5 . TangentVector. VectorSpaceScalar == L6 . TangentVector. VectorSpaceScalar,
172
- L6 . TangentVector. VectorSpaceScalar == L7 . TangentVector. VectorSpaceScalar,
173
- L7 . TangentVector. VectorSpaceScalar == L8 . TangentVector. VectorSpaceScalar,
174
- L8 . TangentVector. VectorSpaceScalar == L9 . TangentVector. VectorSpaceScalar
138
+ L5 . Output == L6 . Input, L6 . Output == L7 . Input, L7 . Output == L8 . Input, L8 . Output == L9 . Input
175
139
176
140
/// A layer that sequentially composes 10 layers.
177
141
public typealias Sequential10 <
@@ -192,16 +156,7 @@ public typealias Sequential10<
192
156
where
193
157
L1 . Output == L2 . Input, L2 . Output == L3 . Input, L3 . Output == L4 . Input, L4 . Output == L5 . Input,
194
158
L5 . Output == L6 . Input, L6 . Output == L7 . Input, L7 . Output == L8 . Input, L8 . Output == L9 . Input,
195
- L9 . Output == L10 . Input,
196
- L1 . TangentVector. VectorSpaceScalar == L2 . TangentVector. VectorSpaceScalar,
197
- L2 . TangentVector. VectorSpaceScalar == L3 . TangentVector. VectorSpaceScalar,
198
- L3 . TangentVector. VectorSpaceScalar == L4 . TangentVector. VectorSpaceScalar,
199
- L4 . TangentVector. VectorSpaceScalar == L5 . TangentVector. VectorSpaceScalar,
200
- L5 . TangentVector. VectorSpaceScalar == L6 . TangentVector. VectorSpaceScalar,
201
- L6 . TangentVector. VectorSpaceScalar == L7 . TangentVector. VectorSpaceScalar,
202
- L7 . TangentVector. VectorSpaceScalar == L8 . TangentVector. VectorSpaceScalar,
203
- L8 . TangentVector. VectorSpaceScalar == L9 . TangentVector. VectorSpaceScalar,
204
- L9 . TangentVector. VectorSpaceScalar == L10 . TangentVector. VectorSpaceScalar
159
+ L9 . Output == L10 . Input
205
160
206
161
@resultBuilder
207
162
public struct LayerBuilder {
@@ -218,9 +173,7 @@ public struct LayerBuilder {
218
173
-> Sequential < L1 , Sequential < L2 , L3 > >
219
174
where
220
175
L1. Output == L2 . Input ,
221
- L2. Output == L3 . Input ,
222
- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
223
- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar
176
+ L2. Output == L3 . Input
224
177
{
225
178
Sequential ( l1, Sequential ( l2, l3) )
226
179
}
@@ -235,10 +188,7 @@ public struct LayerBuilder {
235
188
where
236
189
L1. Output == L2 . Input ,
237
190
L2. Output == L3 . Input ,
238
- L3. Output == L4 . Input ,
239
- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
240
- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
241
- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar
191
+ L3. Output == L4 . Input
242
192
{
243
193
Sequential ( l1, Sequential ( l2, Sequential ( l3, l4) ) )
244
194
}
@@ -255,11 +205,7 @@ public struct LayerBuilder {
255
205
L1. Output == L2 . Input ,
256
206
L2. Output == L3 . Input ,
257
207
L3. Output == L4 . Input ,
258
- L4. Output == L5 . Input ,
259
- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
260
- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
261
- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar ,
262
- L4. TangentVector. VectorSpaceScalar == L5 . TangentVector . VectorSpaceScalar
208
+ L4. Output == L5 . Input
263
209
{
264
210
Sequential ( l1, Sequential ( l2, Sequential ( l3, Sequential ( l4, l5) ) ) )
265
211
}
@@ -278,12 +224,7 @@ public struct LayerBuilder {
278
224
L2. Output == L3 . Input ,
279
225
L3. Output == L4 . Input ,
280
226
L4. Output == L5 . Input ,
281
- L5. Output == L6 . Input ,
282
- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
283
- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
284
- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar ,
285
- L4. TangentVector. VectorSpaceScalar == L5 . TangentVector . VectorSpaceScalar ,
286
- L5. TangentVector. VectorSpaceScalar == L6 . TangentVector . VectorSpaceScalar
227
+ L5. Output == L6 . Input
287
228
{
288
229
Sequential ( l1, Sequential ( l2, Sequential ( l3, Sequential ( l4, Sequential ( l5, l6) ) ) ) )
289
230
}
@@ -306,13 +247,7 @@ public struct LayerBuilder {
306
247
L3. Output == L4 . Input ,
307
248
L4. Output == L5 . Input ,
308
249
L5. Output == L6 . Input ,
309
- L6. Output == L7 . Input ,
310
- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
311
- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
312
- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar ,
313
- L4. TangentVector. VectorSpaceScalar == L5 . TangentVector . VectorSpaceScalar ,
314
- L5. TangentVector. VectorSpaceScalar == L6 . TangentVector . VectorSpaceScalar ,
315
- L6. TangentVector. VectorSpaceScalar == L7 . TangentVector . VectorSpaceScalar
250
+ L6. Output == L7 . Input
316
251
{
317
252
Sequential (
318
253
l1, Sequential ( l2, Sequential ( l3, Sequential ( l4, Sequential ( l5, Sequential ( l6, l7) ) ) ) ) )
@@ -341,14 +276,7 @@ public struct LayerBuilder {
341
276
L4. Output == L5 . Input ,
342
277
L5. Output == L6 . Input ,
343
278
L6. Output == L7 . Input ,
344
- L7. Output == L8 . Input ,
345
- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
346
- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
347
- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar ,
348
- L4. TangentVector. VectorSpaceScalar == L5 . TangentVector . VectorSpaceScalar ,
349
- L5. TangentVector. VectorSpaceScalar == L6 . TangentVector . VectorSpaceScalar ,
350
- L6. TangentVector. VectorSpaceScalar == L7 . TangentVector . VectorSpaceScalar ,
351
- L7. TangentVector. VectorSpaceScalar == L8 . TangentVector . VectorSpaceScalar
279
+ L7. Output == L8 . Input
352
280
{
353
281
Sequential (
354
282
l1,
@@ -384,15 +312,7 @@ public struct LayerBuilder {
384
312
L5. Output == L6 . Input ,
385
313
L6. Output == L7 . Input ,
386
314
L7. Output == L8 . Input ,
387
- L8. Output == L9 . Input ,
388
- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
389
- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
390
- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar ,
391
- L4. TangentVector. VectorSpaceScalar == L5 . TangentVector . VectorSpaceScalar ,
392
- L5. TangentVector. VectorSpaceScalar == L6 . TangentVector . VectorSpaceScalar ,
393
- L6. TangentVector. VectorSpaceScalar == L7 . TangentVector . VectorSpaceScalar ,
394
- L7. TangentVector. VectorSpaceScalar == L8 . TangentVector . VectorSpaceScalar ,
395
- L8. TangentVector. VectorSpaceScalar == L9 . TangentVector . VectorSpaceScalar
315
+ L8. Output == L9 . Input
396
316
{
397
317
Sequential (
398
318
l1,
@@ -438,16 +358,7 @@ public struct LayerBuilder {
438
358
L6. Output == L7 . Input ,
439
359
L7. Output == L8 . Input ,
440
360
L8. Output == L9 . Input ,
441
- L9. Output == L10 . Input ,
442
- L1. TangentVector. VectorSpaceScalar == L2 . TangentVector . VectorSpaceScalar ,
443
- L2. TangentVector. VectorSpaceScalar == L3 . TangentVector . VectorSpaceScalar ,
444
- L3. TangentVector. VectorSpaceScalar == L4 . TangentVector . VectorSpaceScalar ,
445
- L4. TangentVector. VectorSpaceScalar == L5 . TangentVector . VectorSpaceScalar ,
446
- L5. TangentVector. VectorSpaceScalar == L6 . TangentVector . VectorSpaceScalar ,
447
- L6. TangentVector. VectorSpaceScalar == L7 . TangentVector . VectorSpaceScalar ,
448
- L7. TangentVector. VectorSpaceScalar == L8 . TangentVector . VectorSpaceScalar ,
449
- L8. TangentVector. VectorSpaceScalar == L9 . TangentVector . VectorSpaceScalar ,
450
- L9. TangentVector. VectorSpaceScalar == L10 . TangentVector . VectorSpaceScalar
361
+ L9. Output == L10 . Input
451
362
{
452
363
Sequential (
453
364
l1,
0 commit comments