picrate 0.5.0-java → 0.6.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.mvn/wrapper/maven-wrapper.properties +1 -1
- data/CHANGELOG.md +3 -1
- data/README.md +1 -1
- data/Rakefile +8 -6
- data/docs/_editors/geany.md +5 -4
- data/docs/_editors/vim.md +6 -0
- data/docs/_includes/head.html +1 -0
- data/docs/_libraries/control_panel.md +2 -2
- data/docs/_libraries/gl_video.md +21 -0
- data/docs/_posts/2018-05-06-getting_started.md +10 -9
- data/docs/_posts/2018-05-06-install_jruby.md +19 -2
- data/docs/_posts/2018-06-26-auto_install_picrate.md +19 -4
- data/docs/_posts/2018-11-18-building-gem.md +18 -0
- data/docs/_posts/2018-11-27-getting_started_geany.md +38 -0
- data/docs/about.md +21 -10
- data/docs/assets/android-chrome-192x192.png +0 -0
- data/docs/assets/android-chrome-512x512.png +0 -0
- data/docs/assets/favicon.ico +0 -0
- data/docs/assets/geany.png +0 -0
- data/docs/assets/jwishy_picrate.png +0 -0
- data/docs/assets/picrate.svg +251 -0
- data/docs/index.html +8 -14
- data/lib/picrate/runner.rb +6 -2
- data/lib/picrate/version.rb +1 -1
- data/library/boids/boids.rb +10 -13
- data/mvnw +234 -0
- data/picrate.gemspec +2 -1
- data/pom.rb +1 -1
- data/pom.xml +1 -1
- data/src/main/java/japplemenubar/JAppleMenuBar.java +10 -2
- data/src/main/java/monkstone/ColorUtil.java +11 -1
- data/src/main/java/monkstone/MathToolModule.java +1 -0
- data/src/main/java/monkstone/PicrateLibrary.java +1 -0
- data/src/main/java/monkstone/fastmath/Deglut.java +1 -0
- data/src/main/java/monkstone/noise/SimplexNoise.java +3 -3
- data/src/main/java/monkstone/slider/CustomHorizontalSlider.java +1 -1
- data/src/main/java/monkstone/slider/CustomVerticalSlider.java +1 -1
- data/src/main/java/monkstone/slider/SimpleHorizontalSlider.java +1 -1
- data/src/main/java/monkstone/slider/SimpleSlider.java +8 -8
- data/src/main/java/monkstone/slider/SimpleVerticalSlider.java +1 -1
- data/src/main/java/monkstone/slider/Slider.java +3 -3
- data/src/main/java/monkstone/slider/SliderBar.java +1 -1
- data/src/main/java/monkstone/slider/SliderGroup.java +1 -1
- data/src/main/java/monkstone/vecmath/AppRender.java +1 -0
- data/src/main/java/monkstone/vecmath/JRender.java +1 -0
- data/src/main/java/monkstone/vecmath/ShapeRender.java +1 -0
- data/src/main/java/monkstone/vecmath/vec2/Vec2.java +8 -0
- data/src/main/java/monkstone/vecmath/vec3/Vec3.java +1 -0
- data/src/main/java/processing/awt/PGraphicsJava2D.java +85 -16
- data/src/main/java/processing/awt/PSurfaceAWT.java +1 -1
- data/src/main/java/processing/core/PApplet.java +18 -12
- data/src/main/java/processing/core/PShape.java +1182 -305
- data/src/main/java/processing/core/PStyle.java +1 -1
- data/src/main/java/processing/core/PSurface.java +1 -1
- data/src/main/java/processing/data/FloatDict.java +196 -54
- data/src/main/java/processing/data/FloatList.java +167 -54
- data/src/main/java/processing/data/IntDict.java +211 -56
- data/src/main/java/processing/data/IntList.java +185 -52
- data/src/main/java/processing/data/JSONArray.java +69 -20
- data/src/main/java/processing/data/JSONObject.java +53 -12
- data/src/main/java/processing/data/Sort.java +40 -10
- data/src/main/java/processing/data/StringDict.java +159 -49
- data/src/main/java/processing/data/StringList.java +147 -42
- data/src/main/java/processing/data/Table.java +778 -223
- data/src/main/java/processing/data/TableRow.java +26 -2
- data/src/main/java/processing/data/XML.java +190 -50
- data/src/main/java/processing/event/Event.java +93 -0
- data/src/main/java/processing/event/KeyEvent.java +55 -13
- data/src/main/java/processing/event/MouseEvent.java +77 -1
- data/src/main/java/processing/event/TouchEvent.java +14 -1
- data/src/main/java/processing/javafx/PGraphicsFX2D.java +8 -0
- data/src/main/java/processing/opengl/FrameBuffer.java +228 -66
- data/src/main/java/processing/opengl/LinePath.java +131 -27
- data/src/main/java/processing/opengl/LineStroker.java +30 -5
- data/src/main/java/processing/opengl/PGL.java +4066 -865
- data/src/main/java/processing/opengl/PGraphics2D.java +38 -10
- data/src/main/java/processing/opengl/PGraphics3D.java +38 -6
- data/src/main/java/processing/opengl/PGraphicsOpenGL.java +1980 -474
- data/src/main/java/processing/opengl/PJOGL.java +1460 -248
- data/src/main/java/processing/opengl/PShader.java +904 -217
- data/src/main/java/processing/opengl/PShapeOpenGL.java +1811 -487
- data/src/main/java/processing/opengl/PSurfaceJOGL.java +278 -71
- data/src/main/java/processing/opengl/Texture.java +610 -135
- data/src/main/java/processing/opengl/VertexBuffer.java +45 -9
- data/src/main/resources/icon/icon-1024.png +0 -0
- data/src/main/resources/icon/icon-128.png +0 -0
- data/src/main/resources/icon/icon-16.png +0 -0
- data/src/main/resources/icon/icon-256.png +0 -0
- data/src/main/resources/icon/icon-32.png +0 -0
- data/src/main/resources/icon/icon-48.png +0 -0
- data/src/main/resources/icon/icon-512.png +0 -0
- data/src/main/resources/icon/icon-64.png +0 -0
- data/vendors/Rakefile +1 -1
- metadata +13 -6
- data/docs/assets/circle_collisions.png +0 -0
- data/docs/favicon.ico +0 -0
@@ -23,13 +23,16 @@ public class FloatList implements Iterable<Float> {
|
|
23
23
|
int count;
|
24
24
|
float[] data;
|
25
25
|
|
26
|
-
|
27
|
-
|
26
|
+
/**
|
27
|
+
*
|
28
|
+
*/
|
29
|
+
public FloatList() {
|
28
30
|
data = new float[10];
|
29
31
|
}
|
30
32
|
|
31
33
|
|
32
34
|
/**
|
35
|
+
* @param length
|
33
36
|
* @nowebref
|
34
37
|
*/
|
35
38
|
public FloatList(int length) {
|
@@ -38,6 +41,7 @@ public class FloatList implements Iterable<Float> {
|
|
38
41
|
|
39
42
|
|
40
43
|
/**
|
44
|
+
* @param list
|
41
45
|
* @nowebref
|
42
46
|
*/
|
43
47
|
public FloatList(float[] list) {
|
@@ -48,9 +52,9 @@ public class FloatList implements Iterable<Float> {
|
|
48
52
|
|
49
53
|
|
50
54
|
/**
|
51
|
-
* Construct an FloatList from an iterable pile of objects.
|
52
|
-
* For instance, a float array, an array of strings, who knows).
|
55
|
+
* Construct an FloatList from an iterable pile of objects.For instance, a float array, an array of strings, who knows).
|
53
56
|
* Un-parseable or null values will be set to NaN.
|
57
|
+
* @param iter
|
54
58
|
* @nowebref
|
55
59
|
*/
|
56
60
|
public FloatList(Iterable<Object> iter) {
|
@@ -69,8 +73,8 @@ public class FloatList implements Iterable<Float> {
|
|
69
73
|
|
70
74
|
|
71
75
|
/**
|
72
|
-
* Construct an FloatList from a random pile of objects.
|
73
|
-
|
76
|
+
* Construct an FloatList from a random pile of objects.Un-parseable or null values will be set to NaN.
|
77
|
+
* @param items
|
74
78
|
*/
|
75
79
|
public FloatList(Object... items) {
|
76
80
|
// nuts, no good way to pass missingValue to this fn (varargs must be last)
|
@@ -109,6 +113,7 @@ public class FloatList implements Iterable<Float> {
|
|
109
113
|
/**
|
110
114
|
* Get the length of the list.
|
111
115
|
*
|
116
|
+
* @return
|
112
117
|
* @webref floatlist:method
|
113
118
|
* @brief Get the length of the list
|
114
119
|
*/
|
@@ -116,8 +121,11 @@ public class FloatList implements Iterable<Float> {
|
|
116
121
|
return count;
|
117
122
|
}
|
118
123
|
|
119
|
-
|
120
|
-
|
124
|
+
/**
|
125
|
+
*
|
126
|
+
* @param length
|
127
|
+
*/
|
128
|
+
public void resize(int length) {
|
121
129
|
if (length > data.length) {
|
122
130
|
float[] temp = new float[length];
|
123
131
|
System.arraycopy(data, 0, temp, 0, count);
|
@@ -144,6 +152,8 @@ public class FloatList implements Iterable<Float> {
|
|
144
152
|
/**
|
145
153
|
* Get an entry at a particular index.
|
146
154
|
*
|
155
|
+
* @param index
|
156
|
+
* @return
|
147
157
|
* @webref floatlist:method
|
148
158
|
* @brief Get an entry at a particular index
|
149
159
|
*/
|
@@ -156,10 +166,12 @@ public class FloatList implements Iterable<Float> {
|
|
156
166
|
|
157
167
|
|
158
168
|
/**
|
159
|
-
* Set the entry at a particular index.
|
160
|
-
|
161
|
-
|
169
|
+
* Set the entry at a particular index.If the index is past the length of
|
170
|
+
the list, it'll expand the list to accommodate, and fill the intermediate
|
171
|
+
entries with 0s.
|
162
172
|
*
|
173
|
+
* @param index
|
174
|
+
* @param what
|
163
175
|
* @webref floatlist:method
|
164
176
|
* @brief Set the entry at a particular index
|
165
177
|
*/
|
@@ -175,13 +187,17 @@ public class FloatList implements Iterable<Float> {
|
|
175
187
|
}
|
176
188
|
|
177
189
|
|
178
|
-
/** Just an alias for append(), but matches pop()
|
190
|
+
/** Just an alias for append(), but matches pop()
|
191
|
+
* @param value */
|
179
192
|
public void push(float value) {
|
180
193
|
append(value);
|
181
194
|
}
|
182
195
|
|
183
|
-
|
184
|
-
|
196
|
+
/**
|
197
|
+
*
|
198
|
+
* @return
|
199
|
+
*/
|
200
|
+
public float pop() {
|
185
201
|
if (count == 0) {
|
186
202
|
throw new RuntimeException("Can't call pop() on an empty list");
|
187
203
|
}
|
@@ -194,6 +210,8 @@ public class FloatList implements Iterable<Float> {
|
|
194
210
|
/**
|
195
211
|
* Remove an element from the specified index.
|
196
212
|
*
|
213
|
+
* @param index
|
214
|
+
* @return
|
197
215
|
* @webref floatlist:method
|
198
216
|
* @brief Remove an element from the specified index
|
199
217
|
*/
|
@@ -219,6 +237,12 @@ public class FloatList implements Iterable<Float> {
|
|
219
237
|
|
220
238
|
// Remove the first instance of a particular value,
|
221
239
|
// and return the index at which it was found.
|
240
|
+
|
241
|
+
/**
|
242
|
+
*
|
243
|
+
* @param value
|
244
|
+
* @return
|
245
|
+
*/
|
222
246
|
public int removeValue(int value) {
|
223
247
|
int index = index(value);
|
224
248
|
if (index != -1) {
|
@@ -231,6 +255,12 @@ public class FloatList implements Iterable<Float> {
|
|
231
255
|
|
232
256
|
// Remove all instances of a particular value,
|
233
257
|
// and return the number of values found and removed
|
258
|
+
|
259
|
+
/**
|
260
|
+
*
|
261
|
+
* @param value
|
262
|
+
* @return
|
263
|
+
*/
|
234
264
|
public int removeValues(int value) {
|
235
265
|
int ii = 0;
|
236
266
|
if (Float.isNaN(value)) {
|
@@ -252,7 +282,10 @@ public class FloatList implements Iterable<Float> {
|
|
252
282
|
}
|
253
283
|
|
254
284
|
|
255
|
-
/** Replace the first instance of a particular value
|
285
|
+
/** Replace the first instance of a particular value
|
286
|
+
* @param value
|
287
|
+
* @param newValue
|
288
|
+
* @return */
|
256
289
|
public boolean replaceValue(float value, float newValue) {
|
257
290
|
if (Float.isNaN(value)) {
|
258
291
|
for (int i = 0; i < count; i++) {
|
@@ -272,7 +305,10 @@ public class FloatList implements Iterable<Float> {
|
|
272
305
|
}
|
273
306
|
|
274
307
|
|
275
|
-
/** Replace all instances of a particular value
|
308
|
+
/** Replace all instances of a particular value
|
309
|
+
* @param value
|
310
|
+
* @param newValue
|
311
|
+
* @return */
|
276
312
|
public boolean replaceValues(float value, float newValue) {
|
277
313
|
boolean changed = false;
|
278
314
|
if (Float.isNaN(value)) {
|
@@ -298,6 +334,7 @@ public class FloatList implements Iterable<Float> {
|
|
298
334
|
/**
|
299
335
|
* Add a new entry to the list.
|
300
336
|
*
|
337
|
+
* @param value
|
301
338
|
* @webref floatlist:method
|
302
339
|
* @brief Add a new entry to the list
|
303
340
|
*/
|
@@ -308,22 +345,29 @@ public class FloatList implements Iterable<Float> {
|
|
308
345
|
data[count++] = value;
|
309
346
|
}
|
310
347
|
|
311
|
-
|
312
|
-
|
348
|
+
/**
|
349
|
+
*
|
350
|
+
* @param values
|
351
|
+
*/
|
352
|
+
public void append(float[] values) {
|
313
353
|
for (float v : values) {
|
314
354
|
append(v);
|
315
355
|
}
|
316
356
|
}
|
317
357
|
|
318
|
-
|
319
|
-
|
358
|
+
/**
|
359
|
+
*
|
360
|
+
* @param list
|
361
|
+
*/
|
362
|
+
public void append(FloatList list) {
|
320
363
|
for (float v : list.values()) { // will concat the list...
|
321
364
|
append(v);
|
322
365
|
}
|
323
366
|
}
|
324
367
|
|
325
368
|
|
326
|
-
/** Add this value, but only if it's not already in the list.
|
369
|
+
/** Add this value, but only if it's not already in the list.
|
370
|
+
* @param value */
|
327
371
|
public void appendUnique(float value) {
|
328
372
|
if (!hasValue(value)) {
|
329
373
|
append(value);
|
@@ -360,6 +404,12 @@ public class FloatList implements Iterable<Float> {
|
|
360
404
|
// }
|
361
405
|
// }
|
362
406
|
|
407
|
+
/**
|
408
|
+
*
|
409
|
+
* @param index
|
410
|
+
* @param value
|
411
|
+
*/
|
412
|
+
|
363
413
|
|
364
414
|
public void insert(int index, float value) {
|
365
415
|
insert(index, new float[] { value });
|
@@ -367,6 +417,12 @@ public class FloatList implements Iterable<Float> {
|
|
367
417
|
|
368
418
|
|
369
419
|
// same as splice
|
420
|
+
|
421
|
+
/**
|
422
|
+
*
|
423
|
+
* @param index
|
424
|
+
* @param values
|
425
|
+
*/
|
370
426
|
public void insert(int index, float[] values) {
|
371
427
|
if (index < 0) {
|
372
428
|
throw new IllegalArgumentException("insert() index cannot be negative: it was " + index);
|
@@ -394,8 +450,12 @@ public class FloatList implements Iterable<Float> {
|
|
394
450
|
data = temp;
|
395
451
|
}
|
396
452
|
|
397
|
-
|
398
|
-
|
453
|
+
/**
|
454
|
+
*
|
455
|
+
* @param index
|
456
|
+
* @param list
|
457
|
+
*/
|
458
|
+
public void insert(int index, FloatList list) {
|
399
459
|
insert(index, list.values());
|
400
460
|
}
|
401
461
|
|
@@ -443,7 +503,9 @@ public class FloatList implements Iterable<Float> {
|
|
443
503
|
// }
|
444
504
|
|
445
505
|
|
446
|
-
/** Return the first index of a particular value.
|
506
|
+
/** Return the first index of a particular value.
|
507
|
+
* @param what
|
508
|
+
* @return */
|
447
509
|
public int index(float what) {
|
448
510
|
/*
|
449
511
|
if (indexCache != null) {
|
@@ -464,6 +526,8 @@ public class FloatList implements Iterable<Float> {
|
|
464
526
|
|
465
527
|
|
466
528
|
/**
|
529
|
+
* @param value
|
530
|
+
* @return
|
467
531
|
* @webref floatlist:method
|
468
532
|
* @brief Check if a number is a part of the list
|
469
533
|
*/
|
@@ -493,6 +557,8 @@ public class FloatList implements Iterable<Float> {
|
|
493
557
|
|
494
558
|
|
495
559
|
/**
|
560
|
+
* @param index
|
561
|
+
* @param amount
|
496
562
|
* @webref floatlist:method
|
497
563
|
* @brief Add to a value
|
498
564
|
*/
|
@@ -506,6 +572,8 @@ public class FloatList implements Iterable<Float> {
|
|
506
572
|
|
507
573
|
|
508
574
|
/**
|
575
|
+
* @param index
|
576
|
+
* @param amount
|
509
577
|
* @webref floatlist:method
|
510
578
|
* @brief Subtract from a value
|
511
579
|
*/
|
@@ -519,6 +587,8 @@ public class FloatList implements Iterable<Float> {
|
|
519
587
|
|
520
588
|
|
521
589
|
/**
|
590
|
+
* @param index
|
591
|
+
* @param amount
|
522
592
|
* @webref floatlist:method
|
523
593
|
* @brief Multiply a value
|
524
594
|
*/
|
@@ -532,6 +602,8 @@ public class FloatList implements Iterable<Float> {
|
|
532
602
|
|
533
603
|
|
534
604
|
/**
|
605
|
+
* @param index
|
606
|
+
* @param amount
|
535
607
|
* @webref floatlist:method
|
536
608
|
* @brief Divide a value
|
537
609
|
*/
|
@@ -555,6 +627,7 @@ public class FloatList implements Iterable<Float> {
|
|
555
627
|
|
556
628
|
|
557
629
|
/**
|
630
|
+
* @return
|
558
631
|
* @webref floatlist:method
|
559
632
|
* @brief Return the smallest value
|
560
633
|
*/
|
@@ -564,8 +637,11 @@ public class FloatList implements Iterable<Float> {
|
|
564
637
|
return index == -1 ? Float.NaN : data[index];
|
565
638
|
}
|
566
639
|
|
567
|
-
|
568
|
-
|
640
|
+
/**
|
641
|
+
*
|
642
|
+
* @return
|
643
|
+
*/
|
644
|
+
public int minIndex() {
|
569
645
|
checkMinMax("minIndex");
|
570
646
|
float m = Float.NaN;
|
571
647
|
int mi = -1;
|
@@ -591,6 +667,7 @@ public class FloatList implements Iterable<Float> {
|
|
591
667
|
|
592
668
|
|
593
669
|
/**
|
670
|
+
* @return
|
594
671
|
* @webref floatlist:method
|
595
672
|
* @brief Return the largest value
|
596
673
|
*/
|
@@ -600,8 +677,11 @@ public class FloatList implements Iterable<Float> {
|
|
600
677
|
return index == -1 ? Float.NaN : data[index];
|
601
678
|
}
|
602
679
|
|
603
|
-
|
604
|
-
|
680
|
+
/**
|
681
|
+
*
|
682
|
+
* @return
|
683
|
+
*/
|
684
|
+
public int maxIndex() {
|
605
685
|
checkMinMax("maxIndex");
|
606
686
|
float m = Float.NaN;
|
607
687
|
int mi = -1;
|
@@ -625,8 +705,11 @@ public class FloatList implements Iterable<Float> {
|
|
625
705
|
return mi;
|
626
706
|
}
|
627
707
|
|
628
|
-
|
629
|
-
|
708
|
+
/**
|
709
|
+
*
|
710
|
+
* @return
|
711
|
+
*/
|
712
|
+
public float sum() {
|
630
713
|
double amount = sumDouble();
|
631
714
|
if (amount > Float.MAX_VALUE) {
|
632
715
|
throw new RuntimeException("sum() exceeds " + Float.MAX_VALUE + ", use sumDouble()");
|
@@ -637,8 +720,11 @@ public class FloatList implements Iterable<Float> {
|
|
637
720
|
return (float) amount;
|
638
721
|
}
|
639
722
|
|
640
|
-
|
641
|
-
|
723
|
+
/**
|
724
|
+
*
|
725
|
+
* @return
|
726
|
+
*/
|
727
|
+
public double sumDouble() {
|
642
728
|
double sum = 0;
|
643
729
|
for (int i = 0; i < count; i++) {
|
644
730
|
sum += data[i];
|
@@ -762,6 +848,7 @@ public class FloatList implements Iterable<Float> {
|
|
762
848
|
/**
|
763
849
|
* Randomize the list order using the random() function from the specified
|
764
850
|
* sketch, allowing shuffle() to use its current randomSeed() setting.
|
851
|
+
* @param sketch
|
765
852
|
*/
|
766
853
|
public void shuffle(PApplet sketch) {
|
767
854
|
int num = count;
|
@@ -774,8 +861,11 @@ public class FloatList implements Iterable<Float> {
|
|
774
861
|
}
|
775
862
|
}
|
776
863
|
|
777
|
-
|
778
|
-
|
864
|
+
/**
|
865
|
+
*
|
866
|
+
* @return
|
867
|
+
*/
|
868
|
+
public FloatList copy() {
|
779
869
|
FloatList outgoing = new FloatList(data);
|
780
870
|
outgoing.count = count;
|
781
871
|
return outgoing;
|
@@ -783,9 +873,10 @@ public class FloatList implements Iterable<Float> {
|
|
783
873
|
|
784
874
|
|
785
875
|
/**
|
786
|
-
* Returns the actual array being used to store the data.
|
787
|
-
|
788
|
-
|
876
|
+
* Returns the actual array being used to store the data.For advanced users,
|
877
|
+
this is the fastest way to access a large list. Suitable for iterating
|
878
|
+
with a for() loop, but modifying the list will have terrible consequences.
|
879
|
+
* @return
|
789
880
|
*/
|
790
881
|
public float[] values() {
|
791
882
|
crop();
|
@@ -793,7 +884,8 @@ public class FloatList implements Iterable<Float> {
|
|
793
884
|
}
|
794
885
|
|
795
886
|
|
796
|
-
/** Implemented this way so that we can use a FloatList in a for loop.
|
887
|
+
/** Implemented this way so that we can use a FloatList in a for loop.
|
888
|
+
* @return */
|
797
889
|
@Override
|
798
890
|
public Iterator<Float> iterator() {
|
799
891
|
// }
|
@@ -831,9 +923,10 @@ public class FloatList implements Iterable<Float> {
|
|
831
923
|
|
832
924
|
|
833
925
|
/**
|
834
|
-
* Copy values into the specified array.
|
835
|
-
|
926
|
+
* Copy values into the specified array.If the specified array is null or
|
927
|
+
not the same size, a new array will be allocated.
|
836
928
|
* @param array
|
929
|
+
* @return
|
837
930
|
*/
|
838
931
|
public float[] array(float[] array) {
|
839
932
|
if (array == null || array.length != count) {
|
@@ -845,10 +938,11 @@ public class FloatList implements Iterable<Float> {
|
|
845
938
|
|
846
939
|
|
847
940
|
/**
|
848
|
-
* Returns a normalized version of this array.
|
849
|
-
|
850
|
-
|
851
|
-
|
941
|
+
* Returns a normalized version of this array.Called getPercent() for
|
942
|
+
consistency with the Dict classes. It's a getter method because it needs
|
943
|
+
to returns a new list (because IntList/Dict can't do percentages or
|
944
|
+
normalization in place on int values).
|
945
|
+
* @return
|
852
946
|
*/
|
853
947
|
public FloatList getPercent() {
|
854
948
|
double sum = 0;
|
@@ -863,20 +957,33 @@ public class FloatList implements Iterable<Float> {
|
|
863
957
|
return outgoing;
|
864
958
|
}
|
865
959
|
|
866
|
-
|
867
|
-
|
960
|
+
/**
|
961
|
+
*
|
962
|
+
* @param start
|
963
|
+
* @return
|
964
|
+
*/
|
965
|
+
public FloatList getSubset(int start) {
|
868
966
|
return getSubset(start, count - start);
|
869
967
|
}
|
870
968
|
|
871
|
-
|
872
|
-
|
969
|
+
/**
|
970
|
+
*
|
971
|
+
* @param start
|
972
|
+
* @param num
|
973
|
+
* @return
|
974
|
+
*/
|
975
|
+
public FloatList getSubset(int start, int num) {
|
873
976
|
float[] subset = new float[num];
|
874
977
|
System.arraycopy(data, start, subset, 0, num);
|
875
978
|
return new FloatList(subset);
|
876
979
|
}
|
877
980
|
|
878
|
-
|
879
|
-
|
981
|
+
/**
|
982
|
+
*
|
983
|
+
* @param separator
|
984
|
+
* @return
|
985
|
+
*/
|
986
|
+
public String join(String separator) {
|
880
987
|
if (count == 0) {
|
881
988
|
return "";
|
882
989
|
}
|
@@ -889,8 +996,10 @@ public class FloatList implements Iterable<Float> {
|
|
889
996
|
return sb.toString();
|
890
997
|
}
|
891
998
|
|
892
|
-
|
893
|
-
|
999
|
+
/**
|
1000
|
+
*
|
1001
|
+
*/
|
1002
|
+
public void print() {
|
894
1003
|
for (int i = 0; i < count; i++) {
|
895
1004
|
System.out.format("[%d] %f%n", i, data[i]);
|
896
1005
|
}
|
@@ -899,13 +1008,17 @@ public class FloatList implements Iterable<Float> {
|
|
899
1008
|
|
900
1009
|
/**
|
901
1010
|
* Return this dictionary as a String in JSON format.
|
1011
|
+
* @return
|
902
1012
|
*/
|
903
1013
|
public String toJSON() {
|
904
1014
|
return "[ " + join(", ") + " ]";
|
905
1015
|
}
|
906
1016
|
|
907
|
-
|
908
|
-
|
1017
|
+
/**
|
1018
|
+
*
|
1019
|
+
* @return
|
1020
|
+
*/
|
1021
|
+
@Override
|
909
1022
|
public String toString() {
|
910
1023
|
return getClass().getSimpleName() + " size=" + size() + " " + toJSON();
|
911
1024
|
}
|