-
Notifications
You must be signed in to change notification settings - Fork 0
/
TensorNewStructure.drawio
346 lines (346 loc) · 36.9 KB
/
TensorNewStructure.drawio
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
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
<mxfile host="app.diagrams.net" modified="2021-09-03T10:07:27.550Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" etag="mvGm0p8yyRcQH8m5FtrF" version="15.0.3" type="github">
<diagram id="jFCruCachpCYsHS-U5V1" name="Page-1">
<mxGraphModel dx="2916" dy="769" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="m4nFDnHHZw83G2RVIBQR-28" value="pt::Tensor" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="517.5" y="420" width="310" height="112" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-29" value="+ tensor_impl: shared_ptr<TensorInterface>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-28" vertex="1">
<mxGeometry y="26" width="310" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-43" value="+ autograd_meta_: shared_ptr<AbstractAutogradMeta>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-28" vertex="1">
<mxGeometry y="52" width="310" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-30" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-28" vertex="1">
<mxGeometry y="78" width="310" height="8" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-44" value="+ mutable_data<T>(): T*" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-28" vertex="1">
<mxGeometry y="86" width="310" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-60" value="AutogradMeta" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="495" y="700" width="355" height="190" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-61" value="+ grad_: pt::Tensor" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-60" vertex="1">
<mxGeometry y="26" width="355" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-64" value="+ grad_node_: shared_ptr<GradNodeBase>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-60" vertex="1">
<mxGeometry y="52" width="355" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-66" value="+ plain_hooks_: map<int64_t, shared_ptr<TensorHook>>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-60" vertex="1">
<mxGeometry y="78" width="355" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-67" value="+ void_hooks_: std::vector<shared_ptr<function<void()>>>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-60" vertex="1">
<mxGeometry y="104" width="355" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-68" value="+ ..." style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-60" vertex="1">
<mxGeometry y="130" width="355" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-62" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-60" vertex="1">
<mxGeometry y="156" width="355" height="8" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-63" value="+ Getter/Setters ..." style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-60" vertex="1">
<mxGeometry y="164" width="355" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-69" value="GradNodeBase" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="880" y="420" width="350" height="138" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-70" value="+ next_edges: vector<shared_ptr<Edge>>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-69" vertex="1">
<mxGeometry y="26" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-73" value="+ inplace_map_: std::map<std::string, std::string>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-69" vertex="1">
<mxGeometry y="52" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-71" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-69" vertex="1">
<mxGeometry y="78" width="350" height="8" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-72" value="+ SetNextEdges(vector<Tensor>): void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-69" vertex="1">
<mxGeometry y="86" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-80" value="+ ..." style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-69" vertex="1">
<mxGeometry y="112" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-74" value="xxxGradNode" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="940" y="739" width="230" height="112" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-75" value="+ input0_: TensorWrapper" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-74" vertex="1">
<mxGeometry y="26" width="230" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-76" value="+ input1_: TensorWrapper" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-74" vertex="1">
<mxGeometry y="52" width="230" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-77" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-74" vertex="1">
<mxGeometry y="78" width="230" height="8" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-78" value="+ apply(vector<Tensor>): vector<Tensor>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-74" vertex="1">
<mxGeometry y="86" width="230" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-81" value="TensorWrapper" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="895" y="230" width="310" height="86" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-90" value="+ tensor_data_: Tensor" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-81" vertex="1">
<mxGeometry y="26" width="310" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-87" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-81" vertex="1">
<mxGeometry y="52" width="310" height="8" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-88" value="+ unpack(std::shared_ptr<Node> saved_for): Tensor" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-81" vertex="1">
<mxGeometry y="60" width="310" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-103" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.006;entryY=1.013;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="m4nFDnHHZw83G2RVIBQR-66" target="m4nFDnHHZw83G2RVIBQR-75" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="900" y="880" as="sourcePoint" />
<mxPoint x="1060" y="880" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-105" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.494;entryY=0.962;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="m4nFDnHHZw83G2RVIBQR-74" target="m4nFDnHHZw83G2RVIBQR-80" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1020" y="690" as="sourcePoint" />
<mxPoint x="1180" y="690" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-108" value="Allocation" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="-212" y="860" width="140" height="78" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-109" value="+ ptr: void*" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-108" vertex="1">
<mxGeometry y="26" width="140" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-110" value="+ size_: size_t" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-108" vertex="1">
<mxGeometry y="52" width="140" height="26" as="geometry" />
</mxCell>
<mxCell id="KxoggxOPyqrJACoeFfeN-1" value="Edge" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="1290" y="418" width="350" height="112" as="geometry" />
</mxCell>
<mxCell id="KxoggxOPyqrJACoeFfeN-2" value="+ grad_node_: shared_ptr<GradNodeBase>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="KxoggxOPyqrJACoeFfeN-1" vertex="1">
<mxGeometry y="26" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="KxoggxOPyqrJACoeFfeN-10" value="+ input_rank_: size_t " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="KxoggxOPyqrJACoeFfeN-1" vertex="1">
<mxGeometry y="52" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="KxoggxOPyqrJACoeFfeN-4" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="KxoggxOPyqrJACoeFfeN-1" vertex="1">
<mxGeometry y="78" width="350" height="8" as="geometry" />
</mxCell>
<mxCell id="KxoggxOPyqrJACoeFfeN-7" value="+ Setter/Getters" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="KxoggxOPyqrJACoeFfeN-1" vertex="1">
<mxGeometry y="86" width="350" height="26" as="geometry" />
</mxCell>
<mxCell id="KxoggxOPyqrJACoeFfeN-9" value="" style="endArrow=diamondThin;endFill=1;endSize=24;html=1;" parent="1" target="KxoggxOPyqrJACoeFfeN-2" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1230" y="460" as="sourcePoint" />
<mxPoint x="1390" y="460" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-2" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="-460" y="316" width="756" height="448" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-2" value="Variable" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="NRdUCi7MBRLIj4q4fhip-2" vertex="1">
<mxGeometry x="206" width="230" height="52" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-3" value="+ holder_: std::shared_ptr<PlaceHolder>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-2" vertex="1">
<mxGeometry y="26" width="230" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-6" value="PlaceHolder" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="NRdUCi7MBRLIj4q4fhip-2" vertex="1">
<mxGeometry x="251" y="100" width="140" height="78" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-7" value="+ ptr: void*" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-6" vertex="1">
<mxGeometry y="26" width="140" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-8" value="+ type_: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-6" vertex="1">
<mxGeometry y="52" width="140" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-10" value="PlaceHolder
<SelectedRows>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="NRdUCi7MBRLIj4q4fhip-2" vertex="1">
<mxGeometry x="541" y="220" width="140" height="52" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-11" value="+ obj: SelectedRows" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-10" vertex="1">
<mxGeometry y="26" width="140" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-13" value="PlaceHolder
<Tensor>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="NRdUCi7MBRLIj4q4fhip-2" vertex="1">
<mxGeometry x="251" y="220" width="140" height="52" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-14" value="+ obj: Tensor" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-13" vertex="1">
<mxGeometry y="26" width="140" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-16" value="PlaceHolder
<LoDTensor>" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="NRdUCi7MBRLIj4q4fhip-2" vertex="1">
<mxGeometry x="1" y="220" width="140" height="52" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-17" value="+ obj: LoDTensor" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-16" vertex="1">
<mxGeometry y="26" width="140" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-19" value="LoDTensor" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="NRdUCi7MBRLIj4q4fhip-2" vertex="1">
<mxGeometry y="330" width="140" height="52" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-20" value="+ lod_: LoD" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-19" vertex="1">
<mxGeometry y="26" width="140" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-45" value="SelectedRows" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="NRdUCi7MBRLIj4q4fhip-2" vertex="1">
<mxGeometry x="466" y="310" width="290" height="130" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-46" value="+ value_: unique_ptr<Tensor>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-45" vertex="1">
<mxGeometry y="26" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-47" value="+ rows_: Vector<int64_t>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-45" vertex="1">
<mxGeometry y="52" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-48" value="+ id_to_index_: unordered_map<int64_t, int64_t>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-45" vertex="1">
<mxGeometry y="78" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-49" value="+ height_: int64_t" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-45" vertex="1">
<mxGeometry y="104" width="290" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-50" value="framework::Tensor" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="NRdUCi7MBRLIj4q4fhip-2" vertex="1">
<mxGeometry x="204.75" y="310" width="232.5" height="138" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-54" value="+ tensor_impl_: unique_ptr<TensorImpl>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-50" vertex="1">
<mxGeometry y="26" width="232.5" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-56" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-50" vertex="1">
<mxGeometry y="52" width="232.5" height="8" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-57" value="+ data<T>(): T*" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-50" vertex="1">
<mxGeometry y="60" width="232.5" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-59" value="+ mutable_data<T>(): T*" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-50" vertex="1">
<mxGeometry y="86" width="232.5" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-58" value="+ Getter/Setters for impl members" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="m4nFDnHHZw83G2RVIBQR-50" vertex="1">
<mxGeometry y="112" width="232.5" height="26" as="geometry" />
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-91" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0.499;exitY=1.006;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="NRdUCi7MBRLIj4q4fhip-2" source="m4nFDnHHZw83G2RVIBQR-3" target="m4nFDnHHZw83G2RVIBQR-6" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="331" y="70" as="sourcePoint" />
<mxPoint x="491" y="70" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-92" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="NRdUCi7MBRLIj4q4fhip-2" source="m4nFDnHHZw83G2RVIBQR-16" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="51" y="80" as="sourcePoint" />
<mxPoint x="291" y="180" as="targetPoint" />
<Array as="points">
<mxPoint x="71" y="200" />
<mxPoint x="291" y="200" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-94" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="NRdUCi7MBRLIj4q4fhip-2" source="m4nFDnHHZw83G2RVIBQR-13" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="391" y="200" as="sourcePoint" />
<mxPoint x="321" y="180" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-95" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="NRdUCi7MBRLIj4q4fhip-2" source="m4nFDnHHZw83G2RVIBQR-10" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="521" y="160" as="sourcePoint" />
<mxPoint x="351" y="180" as="targetPoint" />
<Array as="points">
<mxPoint x="611" y="200" />
<mxPoint x="351" y="200" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-96" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.492;exitY=1.038;exitDx=0;exitDy=0;exitPerimeter=0;" parent="NRdUCi7MBRLIj4q4fhip-2" source="m4nFDnHHZw83G2RVIBQR-17" target="m4nFDnHHZw83G2RVIBQR-19" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="-99" y="290" as="sourcePoint" />
<mxPoint x="61" y="290" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-97" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.492;exitY=1.038;exitDx=0;exitDy=0;exitPerimeter=0;" parent="NRdUCi7MBRLIj4q4fhip-2" source="m4nFDnHHZw83G2RVIBQR-14" target="m4nFDnHHZw83G2RVIBQR-50" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="211" y="283" as="sourcePoint" />
<mxPoint x="80" y="340" as="targetPoint" />
<Array as="points">
<mxPoint x="320" y="283" />
<mxPoint x="321" y="283" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-98" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;" parent="NRdUCi7MBRLIj4q4fhip-2" target="m4nFDnHHZw83G2RVIBQR-45" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="611" y="274" as="sourcePoint" />
<mxPoint x="801" y="110" as="targetPoint" />
<Array as="points">
<mxPoint x="611" y="280" />
<mxPoint x="611" y="280" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-99" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.003;entryY=-0.013;entryDx=0;entryDy=0;entryPerimeter=0;" parent="NRdUCi7MBRLIj4q4fhip-2" source="m4nFDnHHZw83G2RVIBQR-20" target="m4nFDnHHZw83G2RVIBQR-57" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="131" y="420" as="sourcePoint" />
<mxPoint x="291" y="420" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="m4nFDnHHZw83G2RVIBQR-100" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0.002;exitY=0.833;exitDx=0;exitDy=0;exitPerimeter=0;" parent="NRdUCi7MBRLIj4q4fhip-2" source="m4nFDnHHZw83G2RVIBQR-48" target="m4nFDnHHZw83G2RVIBQR-59" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="431" y="270" as="sourcePoint" />
<mxPoint x="591" y="270" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-4" value="AbstractAutogradMeta" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" vertex="1" parent="1">
<mxGeometry x="495" y="590" width="355" height="60" as="geometry" />
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-10" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="NRdUCi7MBRLIj4q4fhip-4">
<mxGeometry y="26" width="355" height="8" as="geometry" />
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-11" value="+ Getter/Setters ..." style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="NRdUCi7MBRLIj4q4fhip-4">
<mxGeometry y="34" width="355" height="26" as="geometry" />
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-18" value="NewTensorSystem" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;rounded=0;sketch=1;" vertex="1" parent="1">
<mxGeometry x="300" y="840" width="140" height="50" as="geometry" />
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-19" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.487;entryY=0.962;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="m4nFDnHHZw83G2RVIBQR-108" target="m4nFDnHHZw83G2RVIBQR-58">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="-140" y="820" as="sourcePoint" />
<mxPoint x="-10" y="820" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-20" style="edgeStyle=orthogonalEdgeStyle;curved=0;rounded=1;sketch=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=90;entryDy=14;entryPerimeter=0;" edge="1" parent="1" source="m4nFDnHHZw83G2RVIBQR-29" target="NRdUCi7MBRLIj4q4fhip-18">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-21" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=32;entryPerimeter=0;" edge="1" parent="1" source="m4nFDnHHZw83G2RVIBQR-58" target="NRdUCi7MBRLIj4q4fhip-18">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="60" y="850" as="sourcePoint" />
<mxPoint x="220" y="850" as="targetPoint" />
<Array as="points">
<mxPoint x="-23" y="872" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-22" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="m4nFDnHHZw83G2RVIBQR-43" target="NRdUCi7MBRLIj4q4fhip-4">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="640" y="550" as="sourcePoint" />
<mxPoint x="800" y="550" as="targetPoint" />
<Array as="points">
<mxPoint x="490" y="485" />
<mxPoint x="490" y="544" />
<mxPoint x="673" y="544" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-24" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;exitX=0.493;exitY=1.077;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NRdUCi7MBRLIj4q4fhip-11" target="m4nFDnHHZw83G2RVIBQR-60">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="640" y="670" as="sourcePoint" />
<mxPoint x="800" y="670" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-25" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="m4nFDnHHZw83G2RVIBQR-90" target="m4nFDnHHZw83G2RVIBQR-28">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="700" y="380" as="sourcePoint" />
<mxPoint x="860" y="380" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-30" style="edgeStyle=orthogonalEdgeStyle;curved=0;rounded=1;sketch=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="NRdUCi7MBRLIj4q4fhip-26" target="m4nFDnHHZw83G2RVIBQR-60">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-26" value="EagerUtils" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;rounded=0;sketch=1;" vertex="1" parent="1">
<mxGeometry x="920" y="605" width="70" height="50" as="geometry" />
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-27" style="edgeStyle=orthogonalEdgeStyle;curved=0;rounded=1;sketch=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=14;entryPerimeter=0;" edge="1" parent="1" source="m4nFDnHHZw83G2RVIBQR-43" target="NRdUCi7MBRLIj4q4fhip-26">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="NRdUCi7MBRLIj4q4fhip-28" style="edgeStyle=orthogonalEdgeStyle;curved=0;rounded=1;sketch=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=32;entryPerimeter=0;" edge="1" parent="1" source="NRdUCi7MBRLIj4q4fhip-11" target="NRdUCi7MBRLIj4q4fhip-26">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>