yinspire 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/README +24 -0
  2. data/bench/pq/Makefile +5 -0
  3. data/bench/pq/bench.cc +321 -0
  4. data/bench/pq/bench.rb +125 -0
  5. data/bench/pq/bench_binaryheap.h +46 -0
  6. data/bench/pq/bench_calendarqueue.h +58 -0
  7. data/bench/pq/bench_pairingheap.h +61 -0
  8. data/bench/pq/bench_stlpq.h +46 -0
  9. data/bench/pq/benchmark.h +225 -0
  10. data/bench/pq/distribution.h +93 -0
  11. data/bench/pq/make.rb +24 -0
  12. data/bin/yinspire +186 -0
  13. data/examples/nets/gereon2005.c.json +93723 -0
  14. data/examples/nets/gereon2005.yin +232650 -0
  15. data/examples/nets/skorpion.graphml +396 -0
  16. data/examples/nets/spiketrains_angle_180.txt +8 -0
  17. data/lib/Algorithms/Array.h +52 -0
  18. data/lib/Algorithms/BinaryHeap.h +265 -0
  19. data/lib/Algorithms/CalendarQueue.h +257 -0
  20. data/lib/Algorithms/IndexedBinaryHeap.h +90 -0
  21. data/lib/Algorithms/PairingHeap.h +169 -0
  22. data/lib/Allocators/ChunkedFreelistAllocator.h +96 -0
  23. data/lib/Allocators/MemoryAllocator.h +45 -0
  24. data/lib/Allocators/RubyMemoryAllocator.h +37 -0
  25. data/lib/Yinspire.rb +69 -0
  26. data/lib/Yinspire/All.rb +10 -0
  27. data/lib/Yinspire/Core/NeuralEntity.rb +133 -0
  28. data/lib/Yinspire/Core/Neuron.rb +162 -0
  29. data/lib/Yinspire/Core/Scheduling/NeuralEntity.rb +123 -0
  30. data/lib/Yinspire/Core/Scheduling/Simulator.rb +94 -0
  31. data/lib/Yinspire/Core/Simulator.rb +36 -0
  32. data/lib/Yinspire/Core/StimuliMixin.rb +103 -0
  33. data/lib/Yinspire/Core/Stimulus.rb +25 -0
  34. data/lib/Yinspire/Core/Synapse.rb +64 -0
  35. data/lib/Yinspire/Dumpers/Dumper.rb +19 -0
  36. data/lib/Yinspire/Dumpers/Dumper_Dot.rb +28 -0
  37. data/lib/Yinspire/Loaders/GraphML.rb +84 -0
  38. data/lib/Yinspire/Loaders/Loader.rb +31 -0
  39. data/lib/Yinspire/Loaders/Loader_GraphML.rb +97 -0
  40. data/lib/Yinspire/Loaders/Loader_JSON.rb +181 -0
  41. data/lib/Yinspire/Loaders/Loader_Spike.rb +42 -0
  42. data/lib/Yinspire/Loaders/Loader_Yin.rb +62 -0
  43. data/lib/Yinspire/Loaders/YinScanner.rb +247 -0
  44. data/lib/Yinspire/Models/Neuron_Base.rb +38 -0
  45. data/lib/Yinspire/Models/Neuron_Input.rb +12 -0
  46. data/lib/Yinspire/Models/Neuron_InputOutput.rb +39 -0
  47. data/lib/Yinspire/Models/Neuron_Output.rb +15 -0
  48. data/lib/Yinspire/Models/Neuron_SRM01.rb +50 -0
  49. data/lib/Yinspire/Models/Neuron_SRM02.rb +64 -0
  50. data/lib/Yinspire/Models/Synapse_Hebb.rb +67 -0
  51. data/pure_cpp/Makefile +22 -0
  52. data/pure_cpp/README +2 -0
  53. data/pure_cpp/src/algo/binary_heap.h +277 -0
  54. data/pure_cpp/src/algo/indexed_binary_heap.h +90 -0
  55. data/pure_cpp/src/json/json.cc +542 -0
  56. data/pure_cpp/src/json/json.h +182 -0
  57. data/pure_cpp/src/json/json_parser.cc +685 -0
  58. data/pure_cpp/src/json/json_parser.h +15 -0
  59. data/pure_cpp/src/json/json_parser.rl +213 -0
  60. data/pure_cpp/src/main.cc +49 -0
  61. data/pure_cpp/src/memory_allocator.h +45 -0
  62. data/pure_cpp/src/neural_entity.cc +208 -0
  63. data/pure_cpp/src/neural_entity.h +243 -0
  64. data/pure_cpp/src/neuron.cc +136 -0
  65. data/pure_cpp/src/neuron.h +70 -0
  66. data/pure_cpp/src/neuron_srm_01.cc +77 -0
  67. data/pure_cpp/src/neuron_srm_01.h +36 -0
  68. data/pure_cpp/src/simulator.cc +151 -0
  69. data/pure_cpp/src/simulator.h +116 -0
  70. data/pure_cpp/src/synapse.cc +117 -0
  71. data/pure_cpp/src/synapse.h +60 -0
  72. data/pure_cpp/src/types.h +18 -0
  73. data/run.rb +68 -0
  74. data/tools/conv_jsonc_to_yin.rb +165 -0
  75. data/tools/converter.rb +93 -0
  76. data/tools/json_writer.rb +122 -0
  77. data/yinspire.gemspec +20 -0
  78. metadata +156 -0
@@ -0,0 +1,396 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
3
+
4
+ <!-- GraphML-Attibutes
5
+ for graph, node, edge or all
6
+ -->
7
+
8
+ <key id="graph_default_neuron_type" for="graph"/>
9
+ <key id="graph_default_synapse_type" for="graph"/>
10
+ <key id="neuron_type" for="node"/>
11
+ <key id="synapse_type" for="edge"/>
12
+
13
+ <key id="neuron_tauM" for="node"/>
14
+ <key id="neuron_refWeight" for="node"/>
15
+ <key id="neuron_tauRef" for="node"/>
16
+ <key id="neuron_arpTime" for="node"/>
17
+ <key id="neuron_constThreshold" for="node"/>
18
+
19
+ <key id="synapse_weight" for="edge"/>
20
+ <key id="synapse_delay" for="edge"/>
21
+
22
+ <!-- defines a graph, id optional, edgedefault mandatory -->
23
+ <graph id="InspireGraph" edgedefault="directed">
24
+
25
+ <!-- define neuron type
26
+ for now those are defined:
27
+ NEURONTYPE_KBLIF, NEURONTYPE (Inspire class: KernelBasedLIFNeuron)
28
+ NEURONTYPE_EKERNEL (Inspire class: SpecialEKernelNeuron)
29
+ NEURONTYPE_KBLIF_HEBB (Inspire class: KernelBasedLIFNeuron_Hebb)
30
+ NEURONTYPE_ECLIF (Inspire class: ECurLIFNeuron)
31
+ NEURONTYPE_LIF (Inspire class: LIFNeuron)
32
+ -->
33
+ <data key="graph_default_neuron_type">NEURONTYPE_KBLIF</data>
34
+
35
+ <!-- define synapse type
36
+ for now those are defined:
37
+ SYNAPSE_DEFAULT (Inspire class: Synapse)
38
+ SYNAPSE_HEBB (Inspire class: Synapse_Hebb)
39
+ -->
40
+ <data key="graph_default_synapse_type">SYNAPSE_DEFAULT</data>
41
+
42
+ <!-- defines a node, id mandatory and has to be unique -->
43
+
44
+ <!-- Neuronen -->
45
+
46
+ <node id="SensorR1">
47
+ <data key="neuron_tauM">1.15</data>
48
+ <data key="neuron_refWeight">0.25</data>
49
+ <data key="neuron_tauRef">3</data>
50
+ <data key="neuron_arpTime">0.000</data>
51
+ <data key="neuron_constThreshold">1</data>
52
+ </node>
53
+ <node id="SensorR2">
54
+ <data key="neuron_tauM">1.15</data>
55
+ <data key="neuron_refWeight">0.25</data>
56
+ <data key="neuron_tauRef">3</data>
57
+ <data key="neuron_arpTime">0.000</data>
58
+ <data key="neuron_constThreshold">1</data>
59
+ </node>
60
+ <node id="SensorR3">
61
+ <data key="neuron_tauM">1.15</data>
62
+ <data key="neuron_refWeight">0.25</data>
63
+ <data key="neuron_tauRef">3</data>
64
+ <data key="neuron_arpTime">0.000</data>
65
+ <data key="neuron_constThreshold">1</data>
66
+ </node>
67
+ <node id="SensorR4">
68
+ <data key="neuron_tauM">1.15</data>
69
+ <data key="neuron_refWeight">0.25</data>
70
+ <data key="neuron_tauRef">3</data>
71
+ <data key="neuron_arpTime">0.000</data>
72
+ <data key="neuron_constThreshold">1</data>
73
+ </node>
74
+ <node id="SensorL1">
75
+ <data key="neuron_tauM">1.15</data>
76
+ <data key="neuron_refWeight">0.25</data>
77
+ <data key="neuron_tauRef">3</data>
78
+ <data key="neuron_arpTime">0.000</data>
79
+ <data key="neuron_constThreshold">1</data>
80
+ </node>
81
+ <node id="SensorL2">
82
+ <data key="neuron_tauM">1.15</data>
83
+ <data key="neuron_refWeight">0.25</data>
84
+ <data key="neuron_tauRef">3</data>
85
+ <data key="neuron_arpTime">0.000</data>
86
+ <data key="neuron_constThreshold">1</data>
87
+ </node>
88
+ <node id="SensorL3">
89
+ <data key="neuron_tauM">1.15</data>
90
+ <data key="neuron_refWeight">0.25</data>
91
+ <data key="neuron_tauRef">3</data>
92
+ <data key="neuron_arpTime">0.000</data>
93
+ <data key="neuron_constThreshold">1</data>
94
+ </node>
95
+ <node id="SensorL4">
96
+ <data key="neuron_tauM">1.15</data>
97
+ <data key="neuron_refWeight">0.25</data>
98
+ <data key="neuron_tauRef">3</data>
99
+ <data key="neuron_arpTime">0.000</data>
100
+ <data key="neuron_constThreshold">1</data>
101
+ </node>
102
+ <node id="KommaR1">
103
+ <data key="neuron_tauM">1.15</data>
104
+ <data key="neuron_refWeight">0.25</data>
105
+ <data key="neuron_tauRef">3</data>
106
+ <data key="neuron_arpTime">0.000</data>
107
+ <data key="neuron_constThreshold">1</data>
108
+ </node>
109
+ <node id="KommaR2">
110
+ <data key="neuron_tauM">1.15</data>
111
+ <data key="neuron_refWeight">0.25</data>
112
+ <data key="neuron_tauRef">3</data>
113
+ <data key="neuron_arpTime">0.000</data>
114
+ <data key="neuron_constThreshold">1</data>
115
+ </node>
116
+ <node id="KommaR3">
117
+ <data key="neuron_tauM">1.15</data>
118
+ <data key="neuron_refWeight">0.25</data>
119
+ <data key="neuron_tauRef">3</data>
120
+ <data key="neuron_arpTime">0.000</data>
121
+ <data key="neuron_constThreshold">1</data>
122
+ </node>
123
+ <node id="KommaR4">
124
+ <data key="neuron_tauM">1.15</data>
125
+ <data key="neuron_refWeight">0.25</data>
126
+ <data key="neuron_tauRef">3</data>
127
+ <data key="neuron_arpTime">0.000</data>
128
+ <data key="neuron_constThreshold">1</data>
129
+ </node>
130
+ <node id="KommaL1">
131
+ <data key="neuron_tauM">1.15</data>
132
+ <data key="neuron_refWeight">0.25</data>
133
+ <data key="neuron_tauRef">3</data>
134
+ <data key="neuron_arpTime">0.000</data>
135
+ <data key="neuron_constThreshold">1</data>
136
+ </node>
137
+ <node id="KommaL2">
138
+ <data key="neuron_tauM">1.15</data>
139
+ <data key="neuron_refWeight">0.25</data>
140
+ <data key="neuron_tauRef">3</data>
141
+ <data key="neuron_arpTime">0.000</data>
142
+ <data key="neuron_constThreshold">1</data>
143
+ </node>
144
+ <node id="KommaL3">
145
+ <data key="neuron_tauM">1.15</data>
146
+ <data key="neuron_refWeight">0.25</data>
147
+ <data key="neuron_tauRef">3</data>
148
+ <data key="neuron_arpTime">0.000</data>
149
+ <data key="neuron_constThreshold">1</data>
150
+ </node>
151
+ <node id="KommaL4">
152
+ <data key="neuron_tauM">1.15</data>
153
+ <data key="neuron_refWeight">0.25</data>
154
+ <data key="neuron_tauRef">3</data>
155
+ <data key="neuron_arpTime">0.000</data>
156
+ <data key="neuron_constThreshold">1</data>
157
+ </node>
158
+ <node id="InterR1">
159
+ <data key="neuron_tauM">1.15</data>
160
+ <data key="neuron_refWeight">0.25</data>
161
+ <data key="neuron_tauRef">3</data>
162
+ <data key="neuron_arpTime">0.000</data>
163
+ <data key="neuron_constThreshold">1</data>
164
+ </node>
165
+ <node id="InterR2">
166
+ <data key="neuron_tauM">1.15</data>
167
+ <data key="neuron_refWeight">0.25</data>
168
+ <data key="neuron_tauRef">3</data>
169
+ <data key="neuron_arpTime">0.000</data>
170
+ <data key="neuron_constThreshold">1</data>
171
+ </node>
172
+ <node id="InterR3">
173
+ <data key="neuron_tauM">1.15</data>
174
+ <data key="neuron_refWeight">0.25</data>
175
+ <data key="neuron_tauRef">3</data>
176
+ <data key="neuron_arpTime">0.000</data>
177
+ <data key="neuron_constThreshold">1</data>
178
+ </node>
179
+ <node id="InterR4">
180
+ <data key="neuron_tauM">1.15</data>
181
+ <data key="neuron_refWeight">0.25</data>
182
+ <data key="neuron_tauRef">3</data>
183
+ <data key="neuron_arpTime">0.000</data>
184
+ <data key="neuron_constThreshold">1</data>
185
+ </node>
186
+ <node id="InterL1">
187
+ <data key="neuron_tauM">1.15</data>
188
+ <data key="neuron_refWeight">0.25</data>
189
+ <data key="neuron_tauRef">3</data>
190
+ <data key="neuron_arpTime">0.000</data>
191
+ <data key="neuron_constThreshold">1</data>
192
+ </node>
193
+ <node id="InterL2">
194
+ <data key="neuron_tauM">1.15</data>
195
+ <data key="neuron_refWeight">0.25</data>
196
+ <data key="neuron_tauRef">3</data>
197
+ <data key="neuron_arpTime">0.000</data>
198
+ <data key="neuron_constThreshold">1</data>
199
+ </node>
200
+ <node id="InterL3">
201
+ <data key="neuron_tauM">1.15</data>
202
+ <data key="neuron_refWeight">0.25</data>
203
+ <data key="neuron_tauRef">3</data>
204
+ <data key="neuron_arpTime">0.000</data>
205
+ <data key="neuron_constThreshold">1</data>
206
+ </node>
207
+ <node id="InterL4">
208
+ <data key="neuron_tauM">1.15</data>
209
+ <data key="neuron_refWeight">0.25</data>
210
+ <data key="neuron_tauRef">3</data>
211
+ <data key="neuron_arpTime">0.000</data>
212
+ <data key="neuron_constThreshold">1</data>
213
+ </node>
214
+
215
+
216
+ <!-- Synapsen -->
217
+
218
+ <!-- Excitatorische Pulse -->
219
+
220
+ <edge id="e0" directed="true" source="SensorR1" target="KommaR1">
221
+ <data key="synapse_weight">1.1</data>
222
+ <data key="synapse_delay">0.70</data>
223
+ </edge>
224
+ <edge id="e1" directed="true" source="SensorR2" target="KommaR2">
225
+ <data key="synapse_weight">1.1</data>
226
+ <data key="synapse_delay">0.70</data>
227
+ </edge>
228
+ <edge id="e2" directed="true" source="SensorR3" target="KommaR3">
229
+ <data key="synapse_weight">1.1</data>
230
+ <data key="synapse_delay">0.70</data>
231
+ </edge>
232
+ <edge id="e3" directed="true" source="SensorR4" target="KommaR4">
233
+ <data key="synapse_weight">1.1</data>
234
+ <data key="synapse_delay">0.70</data>
235
+ </edge>
236
+ <edge id="e4" directed="true" source="SensorL1" target="KommaL1">
237
+ <data key="synapse_weight">1.1</data>
238
+ <data key="synapse_delay">0.70</data>
239
+ </edge>
240
+ <edge id="e5" directed="true" source="SensorL2" target="KommaL2">
241
+ <data key="synapse_weight">1.1</data>
242
+ <data key="synapse_delay">0.70</data>
243
+ </edge>
244
+ <edge id="e6" directed="true" source="SensorL3" target="KommaL3">
245
+ <data key="synapse_weight">1.1</data>
246
+ <data key="synapse_delay">0.70</data>
247
+ </edge>
248
+ <edge id="e7" directed="true" source="SensorL4" target="KommaL4">
249
+ <data key="synapse_weight">1.1</data>
250
+ <data key="synapse_delay">0.70</data>
251
+ </edge>
252
+
253
+ <!-- Inhibitorische Verschaltung -->
254
+
255
+ <edge id="e8" directed="true" source="SensorR1" target="InterR1">
256
+ <data key="synapse_weight">1.1</data>
257
+ <data key="synapse_delay">0.70</data>
258
+ </edge>
259
+ <edge id="e9" directed="true" source="SensorR2" target="InterR2">
260
+ <data key="synapse_weight">1.1</data>
261
+ <data key="synapse_delay">0.70</data>
262
+ </edge>
263
+ <edge id="e10" directed="true" source="SensorR3" target="InterR3">
264
+ <data key="synapse_weight">1.1</data>
265
+ <data key="synapse_delay">0.70</data>
266
+ </edge>
267
+ <edge id="e11" directed="true" source="SensorR4" target="InterR4">
268
+ <data key="synapse_weight">1.1</data>
269
+ <data key="synapse_delay">0.70</data>
270
+ </edge>
271
+ <edge id="e12" directed="true" source="SensorL1" target="InterL1">
272
+ <data key="synapse_weight">1.1</data>
273
+ <data key="synapse_delay">0.70</data>
274
+ </edge>
275
+ <edge id="e13" directed="true" source="SensorL2" target="InterL2">
276
+ <data key="synapse_weight">1.1</data>
277
+ <data key="synapse_delay">0.70</data>
278
+ </edge>
279
+ <edge id="e14" directed="true" source="SensorL3" target="InterL3">
280
+ <data key="synapse_weight">1.1</data>
281
+ <data key="synapse_delay">0.70</data>
282
+ </edge>
283
+ <edge id="e15" directed="true" source="SensorL4" target="InterL4">
284
+ <data key="synapse_weight">1.1</data>
285
+ <data key="synapse_delay">0.70</data>
286
+ </edge>
287
+
288
+ <!-- Inhibitorische Pulse -->
289
+
290
+ <edge id="e16" directed="true" source="InterR1" target="KommaL4">
291
+ <data key="synapse_weight">-1</data>
292
+ <data key="synapse_delay">0.20</data>
293
+ </edge>
294
+ <edge id="e17" directed="true" source="InterR2" target="KommaL3">
295
+ <data key="synapse_weight">-1</data>
296
+ <data key="synapse_delay">0.20</data>
297
+ </edge>
298
+ <edge id="e18" directed="true" source="InterR3" target="KommaL2">
299
+ <data key="synapse_weight">-1</data>
300
+ <data key="synapse_delay">0.20</data>
301
+ </edge>
302
+ <edge id="e19" directed="true" source="InterR4" target="KommaL1">
303
+ <data key="synapse_weight">-1</data>
304
+ <data key="synapse_delay">0.20</data>
305
+ </edge>
306
+ <edge id="e20" directed="true" source="InterL1" target="KommaR4">
307
+ <data key="synapse_weight">-1</data>
308
+ <data key="synapse_delay">0.20</data>
309
+ </edge>
310
+ <edge id="e21" directed="true" source="InterL2" target="KommaR3">
311
+ <data key="synapse_weight">-1</data>
312
+ <data key="synapse_delay">0.20</data>
313
+ </edge>
314
+ <edge id="e22" directed="true" source="InterL3" target="KommaR2">
315
+ <data key="synapse_weight">-1</data>
316
+ <data key="synapse_delay">0.20</data>
317
+ </edge>
318
+ <edge id="e23" directed="true" source="InterL4" target="KommaR1">
319
+ <data key="synapse_weight">-1</data>
320
+ <data key="synapse_delay">0.20</data>
321
+ </edge>
322
+
323
+ <!-- Inhibitorische Verschaltung -->
324
+
325
+ <edge id="e24" directed="true" source="SensorR2" target="InterR1">
326
+ <data key="synapse_weight">1.1</data>
327
+ <data key="synapse_delay">0.70</data>
328
+ </edge>
329
+ <edge id="e25" directed="true" source="SensorR3" target="InterR2">
330
+ <data key="synapse_weight">1.1</data>
331
+ <data key="synapse_delay">0.70</data>
332
+ </edge>
333
+ <edge id="e26" directed="true" source="SensorR4" target="InterR3">
334
+ <data key="synapse_weight">1.1</data>
335
+ <data key="synapse_delay">0.70</data>
336
+ </edge>
337
+ <edge id="e27" directed="true" source="SensorL4" target="InterR4">
338
+ <data key="synapse_weight">1.1</data>
339
+ <data key="synapse_delay">0.70</data>
340
+ </edge>
341
+
342
+
343
+ <edge id="e28" directed="true" source="SensorL3" target="InterL4">
344
+ <data key="synapse_weight">1.1</data>
345
+ <data key="synapse_delay">0.70</data>
346
+ </edge>
347
+ <edge id="e29" directed="true" source="SensorL2" target="InterL3">
348
+ <data key="synapse_weight">1.1</data>
349
+ <data key="synapse_delay">0.70</data>
350
+ </edge>
351
+ <edge id="e30" directed="true" source="SensorL1" target="InterL2">
352
+ <data key="synapse_weight">1.1</data>
353
+ <data key="synapse_delay">0.70</data>
354
+ </edge>
355
+ <edge id="e31" directed="true" source="SensorR1" target="InterL1">
356
+ <data key="synapse_weight">1.1</data>
357
+ <data key="synapse_delay">0.70</data>
358
+ </edge>
359
+
360
+
361
+ <edge id="e32" directed="true" source="SensorL1" target="InterR1">
362
+ <data key="synapse_weight">1.1</data>
363
+ <data key="synapse_delay">0.70</data>
364
+ </edge>
365
+ <edge id="e33" directed="true" source="SensorR1" target="InterR2">
366
+ <data key="synapse_weight">1.1</data>
367
+ <data key="synapse_delay">0.70</data>
368
+ </edge>
369
+ <edge id="e34" directed="true" source="SensorR2" target="InterR3">
370
+ <data key="synapse_weight">1.1</data>
371
+ <data key="synapse_delay">0.70</data>
372
+ </edge>
373
+ <edge id="e35" directed="true" source="SensorR3" target="InterR4">
374
+ <data key="synapse_weight">1.1</data>
375
+ <data key="synapse_delay">0.70</data>
376
+ </edge>
377
+
378
+
379
+ <edge id="e36" directed="true" source="SensorR4" target="InterL4">
380
+ <data key="synapse_weight">1.1</data>
381
+ <data key="synapse_delay">0.70</data>
382
+ </edge>
383
+ <edge id="e37" directed="true" source="SensorL4" target="InterL3">
384
+ <data key="synapse_weight">1.1</data>
385
+ <data key="synapse_delay">0.70</data>
386
+ </edge>
387
+ <edge id="e38" directed="true" source="SensorL3" target="InterL2">
388
+ <data key="synapse_weight">1.1</data>
389
+ <data key="synapse_delay">0.70</data>
390
+ </edge>
391
+ <edge id="e39" directed="true" source="SensorL2" target="InterL1">
392
+ <data key="synapse_weight">1.1</data>
393
+ <data key="synapse_delay">0.70</data>
394
+ </edge>
395
+ </graph>
396
+ </graphml>
@@ -0,0 +1,8 @@
1
+ SensorR1 2.594703 9.227162 15.81866 19.07049 22.57169 25.83111 32.55676 35.85572 39.21391 42.474 52.48194 55.89926 62.60042 65.74414 72.48369 79.179 82.5206 85.84028 89.2634 92.51566 95.92275 99.27933 109.3453 112.5394 122.4004 129.3569 142.3364 145.8237 149.0719 155.9092 159.1193 162.6425 169.1405 175.9528 189.1008 192.7005 199.1498 205.892 209.2507 212.4746 215.7466 219.3333 222.6251 225.7965 229.2265 232.477 235.868 239.2554 245.9066 249.1797 255.8725 259.1796 262.4431 265.7956 275.7893 289.1304 302.4053 309.0339 315.8662 319.1045 322.5079 325.9422 332.4954 339.2165 349.0678 355.8484 359.3012 362.369 369.2012 372.5803 375.9547 379.1033 382.5173 389.2036 392.5439 395.8015 399.1766 405.9957 412.6429 419.1834 422.5587 425.9527 429.2308 432.5661 435.9204 439.1281 442.4335 445.8234 455.8542 459.2287 465.8342 469.1286 472.6332 476.0644 482.6304 485.9207 492.5529 499.277 502.5514
2
+ SensorR2 2.323815 5.639224 8.889032 12.42446 15.74301 25.66655 32.36173 38.94047 42.29332 62.234 72.33317 75.70601 78.95663 82.29757 85.69892 89.05841 92.27233 95.73979 99.04611 102.305 112.2663 125.7565 128.9379 142.2531 145.613 148.9057 155.5491 165.6994 169.0817 172.3488 175.6945 178.914 182.4528 192.1957 195.445 199.0674 202.3365 205.6037 209.2024 215.6933 219.051 222.3491 225.7361 229.0869 235.6167 245.6685 248.9716 252.3412 259.0836 262.4267 265.6682 272.3867 282.2824 285.6952 289.075 292.4436 295.6511 302.3266 305.804 309.0043 312.2957 315.6594 322.538 325.6786 328.8384 332.2663 335.7735 339.1218 342.1975 352.3489 355.6798 362.4417 365.7579 375.7944 379.1741 382.4645 385.8837 395.6127 398.9951 402.2197 405.6421 412.328 418.9146 425.6445 429.0333 439.1213 445.6993 452.3244 455.7012 465.6696 468.8908 475.667 478.8966 482.2985 485.7164 495.6879 502.4547
3
+ SensorR3 2.257015 8.923397 12.03483 15.41781 25.28887 28.67055 31.95984 38.67013 42.02532 45.30355 52.06333 55.26678 58.70174 62.16806 65.53252 68.63677 72.00994 75.3871 85.29014 88.67926 92.005 95.30355 98.62749 105.3158 118.8085 122.1145 125.3053 135.4845 145.5328 152.0811 155.2539 158.7065 161.9789 165.3505 168.8061 172.006 175.3125 178.7984 181.9352 185.3483 188.6317 195.4316 198.7819 201.9481 205.3926 218.8623 222.1089 225.4743 232.0352 235.2702 241.9816 248.7582 252.1752 258.7927 265.367 275.4631 278.6701 281.9631 295.4033 298.8248 302.0445 308.7278 312.2258 315.3544 322.0827 325.4243 328.7286 335.432 338.6199 342.0851 345.3231 352.0581 355.3347 358.6336 365.2946 372.0137 375.408 378.8231 382.0354 385.36 388.5657 395.4201 398.7737 405.4802 411.9926 415.397 418.7206 421.9855 428.8284 431.9301 438.7855 442.1451 445.3434 448.8409 452.1568 455.4679 458.7194 462.147 465.433 468.7941 472.174 475.3531 485.3245 488.6215 495.4313 498.6609 502.0828
4
+ SensorR4 5.001548 8.286306 11.601 18.40174 21.58944 25.01808 28.35113 31.56663 38.2808 45.10514 51.69898 54.96781 58.25001 61.52847 64.98551 71.66454 74.98855 84.94841 88.22358 94.9847 101.6548 104.9766 108.2932 111.7251 115.0312 118.379 125.0687 128.3023 134.9775 138.3658 144.7949 158.2987 161.6455 168.4227 175.1116 178.3454 181.7009 184.9789 188.4046 195.0604 198.1522 201.4721 205.0204 208.4554 211.8517 215.0716 221.6244 224.9649 228.387 231.6278 238.3402 245.1002 248.3365 251.7591 254.893 258.4178 261.7088 264.9787 268.4087 271.7049 274.8949 278.3711 281.7395 284.9976 295.0564 298.3065 301.5558 311.6835 315.006 318.3551 321.7614 325.166 331.5318 335.0687 338.3743 341.7053 345.1547 348.2865 355.0481 361.6028 365.051 368.4292 371.5278 374.9307 378.4755 381.6851 384.8831 388.3734 391.7403 395.0294 398.2837 401.6324 405.1189 408.3057 411.7198 418.3495 424.9386 441.5792 445.0764 454.8468 461.6639 471.6682 475.0504 481.8009 484.9746 488.3171 494.8826 501.5351
5
+ SensorL4 1.712207 4.881 11.5463 15.00734 18.38203 25.07928 34.9526 38.34836 51.83464 54.85617 58.3181 61.67395 71.7141 78.44586 81.75385 84.9042 88.39366 91.68612 98.36364 104.9333 108.3136 111.7964 115.0069 121.5665 128.3044 131.7645 141.6263 145.0672 148.3796 151.7669 158.346 161.7092 165.0862 168.3349 171.5696 178.2867 181.6639 188.1635 191.5186 194.9697 198.2434 211.5493 218.3774 221.6955 234.9261 251.7632 255.0117 258.4451 261.6179 264.8708 268.3628 271.6537 278.2833 285.0512 288.2657 291.7419 294.8648 301.6088 308.3206 311.5878 315.009 318.2989 321.8518 324.968 335.028 341.657 344.8701 348.4314 351.6818 355.2382 358.3742 364.9522 368.3508 371.5465 378.2948 381.72 385.1082 391.5972 395.0058 398.4221 401.6482 408.4015 411.671 418.36 424.873 431.6218 435.042 438.2719 445.0295 448.3196 451.719 455.0361 458.1992 461.4884 464.9365 468.2944 475.0349 478.2544 481.8494 491.649 498.2942 501.8477
6
+ SensorL3 2.061666 8.856395 15.30063 28.68068 32.04817 35.39336 38.87273 42.02013 48.76551 55.32783 62.0845 65.38271 68.69504 71.9514 78.68789 81.95706 85.24225 88.72509 91.98957 95.33748 98.8182 105.1626 108.7987 115.5185 122.0412 132.1241 135.3653 138.77 152.1368 158.8289 162.0469 165.4866 168.7385 175.4443 178.73 181.9358 185.2505 188.7972 198.7656 202.0606 205.3109 211.949 215.3538 218.762 222.0154 228.6938 232.1704 245.4592 255.1481 258.6819 262.1233 272.219 275.3724 278.6885 282.0941 288.9183 295.3685 298.7007 308.6482 311.7938 315.281 318.7444 321.9055 332.0165 338.821 341.9345 345.3936 355.3454 358.6447 365.1789 368.7379 375.3205 381.8989 385.3728 388.6241 395.3888 402.0744 405.3607 411.9633 415.2997 418.6419 422.1275 425.4926 435.4851 438.6298 442.004 445.4009 448.6444 452.088 455.3487 462.0624 465.429 472.1807 478.8237 482.0719 485.4175 492.1121 498.7732 502.0884
7
+ SensorL2 8.919721 12.24623 29.11624 32.42542 35.67966 39.1449 52.234 58.85105 65.58527 72.35423 75.74131 85.61702 92.29101 98.99273 102.4933 105.7335 109.0627 112.2631 115.7533 118.9283 122.3779 132.2719 135.7712 138.9493 142.3506 148.9935 159.157 162.2983 165.7027 172.3778 182.331 192.3566 195.7049 199.0298 202.2275 205.687 212.4261 215.6616 219.0501 225.6957 229.0576 235.7992 239.0414 242.2428 245.6183 249.0237 252.3633 262.2356 265.7776 268.9489 272.3223 275.5332 282.3662 285.6428 289.0175 299.0427 302.5812 309.0449 312.3556 315.6195 325.7158 329.0346 332.3817 338.9321 342.3423 345.5666 352.3883 355.6988 362.3301 365.7592 368.9597 378.931 382.3501 388.9409 392.3445 395.7296 398.9824 405.7844 409.1028 412.47 415.6596 422.3818 432.2234 438.9859 442.3105 445.6785 449.0759 455.7585 462.2656 465.7305 472.4372 475.8627 479.1801 482.2603 485.5381 488.9947 492.3063 495.677 499.0604
8
+ SensorL1 2.473228 5.815037 9.099476 12.48038 15.91254 19.16744 22.52483 29.12411 35.78803 42.50656 45.92708 49.12724 52.29192 62.61805 65.70269 72.45019 75.82272 79.24606 82.57589 85.92134 102.5666 105.9364 109.2627 112.502 118.9688 122.5891 129.2162 135.8162 139.286 149.2541 152.5386 155.7371 159.1845 162.51 165.9525 169.117 172.5298 175.8948 179.2902 182.6505 192.673 199.2166 202.5155 205.8376 209.2256 212.5272 216.0187 219.2666 222.3761 225.6902 229.147 232.6117 235.8273 239.2029 245.8186 249.2053 252.5714 255.9883 262.3823 265.9115 269.1878 272.4692 275.8746 279.1434 285.8594 299.2854 302.5993 309.1883 315.9184 319.1519 322.679 325.9247 329.2414 332.6664 342.4461 345.8992 352.6006 355.9187 362.4485 369.2464 372.5411 375.8131 382.5036 385.9229 389.3084 392.536 399.061 405.8805 412.5328 415.7652 419.1127 422.4799 429.0145 432.5082 435.9498 439.1888 442.5184 449.1865 452.6017 455.8514 475.8845 482.5004 485.8729 492.4419 502.5701
@@ -0,0 +1,52 @@
1
+ /*
2
+ * Implements/wraps a simple dynamic array.
3
+ */
4
+
5
+ #ifndef __YINSPIRE__ARRAY__
6
+ #define __YINSPIRE__ARRAY__
7
+
8
+ #include <vector>
9
+
10
+ template <class T>
11
+ class Array
12
+ {
13
+ public:
14
+
15
+ inline int
16
+ size() const
17
+ {
18
+ return this->array.size();
19
+ }
20
+
21
+ inline void
22
+ push(T& i)
23
+ {
24
+ this->array.push_back(i);
25
+ }
26
+
27
+ inline T
28
+ pop()
29
+ {
30
+ T& res = this->array.back();
31
+ this->array.pop();
32
+ return res;
33
+ }
34
+
35
+ inline T&
36
+ operator[](int i)
37
+ {
38
+ return this->array[i];
39
+ }
40
+
41
+ inline void
42
+ clear()
43
+ {
44
+ this->array.clear();
45
+ }
46
+
47
+ private:
48
+
49
+ std::vector<T> array;
50
+ };
51
+
52
+ #endif