multiarray 0.25.2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/multiarray/operations.rb +4 -1
- data/test/tc_multiarray.rb +88 -85
- metadata +61 -43
data/Rakefile
CHANGED
@@ -272,7 +272,10 @@ module Hornetseye
|
|
272
272
|
# @param [Array<Integer>] order New order of indices.
|
273
273
|
#
|
274
274
|
# @return [Node] Returns the transposed array.
|
275
|
-
def transpose(
|
275
|
+
def transpose(*order)
|
276
|
+
if (0 ... dimension).to_a != order.sort
|
277
|
+
raise 'Each array index must be specified exactly once!'
|
278
|
+
end
|
276
279
|
term = self
|
277
280
|
variables = shape.reverse.collect do |i|
|
278
281
|
var = Variable.new Hornetseye::INDEX( i )
|
data/test/tc_multiarray.rb
CHANGED
@@ -173,24 +173,24 @@ class TC_MultiArray < Test::Unit::TestCase
|
|
173
173
|
assert_equal j * 3 + i + 1, m[ i, j ]
|
174
174
|
end
|
175
175
|
end
|
176
|
-
assert_raise(
|
177
|
-
assert_raise(
|
176
|
+
assert_raise(RuntimeError) { m[ -1 ] }
|
177
|
+
assert_raise(RuntimeError) { m[ 2 ] }
|
178
178
|
assert_nothing_raised { m[ 0 ] }
|
179
179
|
assert_nothing_raised { m[ 1 ] }
|
180
|
-
assert_raise(
|
181
|
-
assert_raise(
|
182
|
-
assert_raise(
|
183
|
-
assert_raise(
|
184
|
-
assert_raise(
|
185
|
-
assert_raise(
|
186
|
-
assert_raise(
|
187
|
-
assert_raise(
|
188
|
-
assert_raise(
|
189
|
-
assert_raise(
|
180
|
+
assert_raise(RuntimeError) { m[ -1 ] = 0 }
|
181
|
+
assert_raise(RuntimeError) { m[ 2 ] = 0 }
|
182
|
+
assert_raise(RuntimeError) { m[ 3, 1 ] }
|
183
|
+
assert_raise(RuntimeError) { m[ 3, 1 ] = 0 }
|
184
|
+
assert_raise(RuntimeError) { m[ -1, 1 ] }
|
185
|
+
assert_raise(RuntimeError) { m[ -1, 1 ] = 0 }
|
186
|
+
assert_raise(RuntimeError) { m[ 2, -1 ] }
|
187
|
+
assert_raise(RuntimeError) { m[ 2, -1 ] = 0 }
|
188
|
+
assert_raise(RuntimeError) { m[ 2, 2 ] }
|
189
|
+
assert_raise(RuntimeError) { m[ 2, 2 ] = 0 }
|
190
190
|
assert_nothing_raised { m[ 0, 0 ] }
|
191
191
|
assert_nothing_raised { m[ 2, 1 ] }
|
192
|
-
assert_raise(
|
193
|
-
assert_raise(
|
192
|
+
assert_raise(RuntimeError) { m[ 0 ] = m }
|
193
|
+
assert_raise(RuntimeError) { m[ 0 ] = S[ 0, 1 ] }
|
194
194
|
assert_nothing_raised { m[ 0 ] = 0 }
|
195
195
|
assert_nothing_raised { m[ 1 ] = 0 }
|
196
196
|
assert_nothing_raised { m[ 0 ] = m[ 1 ] }
|
@@ -224,60 +224,60 @@ class TC_MultiArray < Test::Unit::TestCase
|
|
224
224
|
m[ 1 ... 4, 1 ... 3 ] = 1
|
225
225
|
assert_equal [ [ 0, 1, 2, 3, 4 ], [ 3, 1, 1, 1, 7 ],
|
226
226
|
[ 3, 1, 1, 1, 7 ], [ 15, 16, 17, 18, 19 ] ], m.to_a
|
227
|
-
assert_raise(
|
228
|
-
assert_raise(
|
229
|
-
assert_raise(
|
230
|
-
assert_raise(
|
231
|
-
assert_raise(
|
232
|
-
assert_raise(
|
233
|
-
assert_raise(
|
234
|
-
assert_raise(
|
235
|
-
assert_raise(
|
236
|
-
assert_raise(
|
237
|
-
assert_raise(
|
238
|
-
assert_raise(
|
239
|
-
assert_raise(
|
240
|
-
assert_raise(
|
227
|
+
assert_raise(RuntimeError) { m[ 2 .. 4 ] }
|
228
|
+
assert_raise(RuntimeError) { m[ 2 .. 4 ] = 0 }
|
229
|
+
assert_raise(RuntimeError) { m[ 2 .. 4 ] = m[ 1 .. 3 ] }
|
230
|
+
assert_raise(RuntimeError) { m[ 2 .. 3 ] = m[ 1 .. 3 ] }
|
231
|
+
assert_raise(RuntimeError) { m[ 2 ... 5 ] }
|
232
|
+
assert_raise(RuntimeError) { m[ 2 ... 5 ] = 0 }
|
233
|
+
assert_raise(RuntimeError) { m[ 2 ... 5 ] = m[ 1 ... 4 ] }
|
234
|
+
assert_raise(RuntimeError) { m[ 2 ... 4 ] = m[ 1 ... 4 ] }
|
235
|
+
assert_raise(RuntimeError) { m[ -1 .. 0 ] }
|
236
|
+
assert_raise(RuntimeError) { m[ -1 .. 0 ] = 0 }
|
237
|
+
assert_raise(RuntimeError) { m[ -1 .. 0 ] = m[ 0 .. 1 ] }
|
238
|
+
assert_raise(RuntimeError) { m[ -1 ... 1 ] }
|
239
|
+
assert_raise(RuntimeError) { m[ -1 ... 1 ] = 0 }
|
240
|
+
assert_raise(RuntimeError) { m[ -1 ... 1 ] = m[ 0 ... 2 ] }
|
241
241
|
assert_nothing_raised { m[ 0 .. 3 ] }
|
242
242
|
assert_nothing_raised { m[ 0 .. 3 ] = 0 }
|
243
243
|
assert_nothing_raised { m[ 0 .. 3 ] = m[ 0 .. 3 ] }
|
244
244
|
assert_nothing_raised { m[ 0 ... 4 ] }
|
245
245
|
assert_nothing_raised { m[ 0 ... 4 ] = 0 }
|
246
246
|
assert_nothing_raised { m[ 0 ... 4 ] = m[ 0 ... 4 ] }
|
247
|
-
assert_raise(
|
248
|
-
assert_raise(
|
249
|
-
assert_raise(
|
250
|
-
assert_raise(
|
251
|
-
assert_raise(
|
252
|
-
assert_raise(
|
253
|
-
assert_raise(
|
254
|
-
assert_raise(
|
255
|
-
assert_raise(
|
256
|
-
assert_raise(
|
257
|
-
assert_raise(
|
258
|
-
assert_raise(
|
259
|
-
assert_raise(
|
260
|
-
assert_raise(
|
247
|
+
assert_raise(RuntimeError) { m[ 1 .. 5, 1 ] }
|
248
|
+
assert_raise(RuntimeError) { m[ 1 .. 5, 1 ] = 0 }
|
249
|
+
assert_raise(RuntimeError) { m[ 1 .. 5, 1 ] = m[ 0 .. 4, 1 ] }
|
250
|
+
assert_raise(RuntimeError) { m[ 1 .. 4, 1 ] = m[ 0 .. 4, 1 ] }
|
251
|
+
assert_raise(RuntimeError) { m[ 1 ... 6, 1 ] }
|
252
|
+
assert_raise(RuntimeError) { m[ 1 ... 6, 1 ] = 0 }
|
253
|
+
assert_raise(RuntimeError) { m[ 1 ... 6, 1 ] = m[ 0 ... 5, 1 ] }
|
254
|
+
assert_raise(RuntimeError) { m[ 1 ... 5, 1 ] = m[ 0 ... 5, 1 ] }
|
255
|
+
assert_raise(RuntimeError) { m[ -1 .. 3, 1 ] }
|
256
|
+
assert_raise(RuntimeError) { m[ -1 .. 3, 1 ] = 0 }
|
257
|
+
assert_raise(RuntimeError) { m[ -1 .. 3, 1 ] = m[ 0 .. 4, 1 ] }
|
258
|
+
assert_raise(RuntimeError) { m[ -1 ... 3, 1 ] }
|
259
|
+
assert_raise(RuntimeError) { m[ -1 ... 3, 1 ] = 0 }
|
260
|
+
assert_raise(RuntimeError) { m[ -1 ... 3, 1 ] = m[ 0 ... 4, 1 ] }
|
261
261
|
assert_nothing_raised { m[ 0 .. 4, 1 ] }
|
262
262
|
assert_nothing_raised { m[ 0 .. 4, 1 ] = 0 }
|
263
263
|
assert_nothing_raised { m[ 0 .. 4, 1 ] = m[ 0 .. 4, 0 ] }
|
264
264
|
assert_nothing_raised { m[ 0 ... 5, 1 ] }
|
265
265
|
assert_nothing_raised { m[ 0 ... 5, 1 ] = 0 }
|
266
266
|
assert_nothing_raised { m[ 0 ... 5, 1 ] = m[ 0 ... 5, 0 ] }
|
267
|
-
assert_raise(
|
268
|
-
assert_raise(
|
269
|
-
assert_raise(
|
270
|
-
assert_raise(
|
271
|
-
assert_raise(
|
272
|
-
assert_raise(
|
273
|
-
assert_raise(
|
274
|
-
assert_raise(
|
275
|
-
assert_raise(
|
276
|
-
assert_raise(
|
277
|
-
assert_raise(
|
278
|
-
assert_raise(
|
279
|
-
assert_raise(
|
280
|
-
assert_raise(
|
267
|
+
assert_raise(RuntimeError) { m[ 1, 1 .. 4 ] }
|
268
|
+
assert_raise(RuntimeError) { m[ 1, 1 .. 4 ] = 0 }
|
269
|
+
assert_raise(RuntimeError) { m[ 1, 1 .. 4 ] = m[ 1, 0 .. 3 ] }
|
270
|
+
assert_raise(RuntimeError) { m[ 1, 1 .. 3 ] = m[ 1, 0 .. 3 ] }
|
271
|
+
assert_raise(RuntimeError) { m[ 1, 1 ... 5 ] }
|
272
|
+
assert_raise(RuntimeError) { m[ 1, 1 ... 5 ] = 0 }
|
273
|
+
assert_raise(RuntimeError) { m[ 1, 1 ... 5 ] = m[ 1, 0 ... 4 ] }
|
274
|
+
assert_raise(RuntimeError) { m[ 1, 1 ... 4 ] = m[ 1, 0 ... 4 ] }
|
275
|
+
assert_raise(RuntimeError) { m[ 1, -1 .. 2 ] }
|
276
|
+
assert_raise(RuntimeError) { m[ 1, -1 .. 2 ] = 0 }
|
277
|
+
assert_raise(RuntimeError) { m[ 1, -1 .. 2 ] = m[ 1, 0 .. 3 ] }
|
278
|
+
assert_raise(RuntimeError) { m[ 1, -1 ... 2 ] }
|
279
|
+
assert_raise(RuntimeError) { m[ 1, -1 ... 2 ] = 0 }
|
280
|
+
assert_raise(RuntimeError) { m[ 1, -1 ... 2 ] = m[ 1, 0 ... 3 ] }
|
281
281
|
assert_nothing_raised { m[ 1, 0 .. 3 ] }
|
282
282
|
assert_nothing_raised { m[ 1, 0 .. 3 ] = 0 }
|
283
283
|
assert_nothing_raised { m[ 1, 0 .. 3 ] = m[ 0, 0 .. 3 ] }
|
@@ -301,6 +301,9 @@ class TC_MultiArray < Test::Unit::TestCase
|
|
301
301
|
M[ [ 1, 2, 3 ], [ 4, 5, 6 ] ].transpose(1, 0).to_a
|
302
302
|
assert_equal [ [ [ 0, 3 ], [ 1, 4 ], [ 2, 5 ] ] ],
|
303
303
|
M(I, 3).indgen(3, 2, 1).transpose(1, 0, 2).to_a
|
304
|
+
assert_raise(RuntimeError) { M[[1, 2], [3, 4]].transpose }
|
305
|
+
assert_raise(RuntimeError) { M[[1, 2], [3, 4]].transpose 1, 2 }
|
306
|
+
assert_raise(RuntimeError) { M[[1, 2], [3, 4]].transpose 0, 0 }
|
304
307
|
end
|
305
308
|
|
306
309
|
def test_roll_unroll
|
@@ -431,7 +434,7 @@ class TC_MultiArray < Test::Unit::TestCase
|
|
431
434
|
assert_equal M[ [ 0, 0, 0 ], [ 0, 0, 0 ], [ 1, 2, 3 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ],
|
432
435
|
M[ [ 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0 ] ].
|
433
436
|
convolve( s )
|
434
|
-
assert_raise(
|
437
|
+
assert_raise(RuntimeError) { S[ 1, 2, 3 ].convolve f }
|
435
438
|
end
|
436
439
|
|
437
440
|
def test_erode
|
@@ -464,15 +467,15 @@ class TC_MultiArray < Test::Unit::TestCase
|
|
464
467
|
assert_equal [ [ [ 0, 1 ], [ 1, 0 ] ] ],
|
465
468
|
S[ C( 1, 0, 0 ), C( 0, 1, 0 ) ].
|
466
469
|
histogram( 2, 2, 1, :weight => 1 ).to_a
|
467
|
-
assert_raise(
|
468
|
-
assert_raise(
|
469
|
-
assert_raise(
|
470
|
-
assert_raise(
|
471
|
-
assert_raise(
|
472
|
-
assert_raise(
|
473
|
-
assert_raise(
|
474
|
-
assert_raise(
|
475
|
-
assert_raise(
|
470
|
+
assert_raise(RuntimeError) { S[ 1, 2, 3 ].histogram 4, 4 }
|
471
|
+
assert_raise(RuntimeError) { M[ [ -1, 0 ] ].histogram 3, 2 }
|
472
|
+
assert_raise(RuntimeError) { M[ [ 0, -1 ] ].histogram 3, 2 }
|
473
|
+
assert_raise(RuntimeError) { M[ [ 3, 0 ] ].histogram 3, 2 }
|
474
|
+
assert_raise(RuntimeError) { M[ [ 0, 2 ] ].histogram 3, 2 }
|
475
|
+
assert_raise(RuntimeError) { [ S[ -1, 0 ], S[ 0, 1 ] ].histogram 3, 2 }
|
476
|
+
assert_raise(RuntimeError) { [ S[ 0, 3 ], S[ 0, 1 ] ].histogram 3, 2 }
|
477
|
+
assert_raise(RuntimeError) { [ S[ 0, 0, 1 ], S[ 0, 1 ] ].histogram 3, 2 }
|
478
|
+
assert_raise(RuntimeError) { [ S[ 0, 1 ], S[ 0, 1 ] ].histogram 3 }
|
476
479
|
end
|
477
480
|
|
478
481
|
def test_lut
|
@@ -486,19 +489,19 @@ class TC_MultiArray < Test::Unit::TestCase
|
|
486
489
|
M[ [ 1 ], [ 0 ] ].lut( M[ [ 1, 2 ], [ 3, 4 ] ] )
|
487
490
|
assert_equal S[ 2, 3 ], S[ C( 1, 0, 0 ), C( 0, 1, 0 ) ].
|
488
491
|
lut( M[ [ [ 1, 2 ], [ 3, 4 ] ] ] )
|
489
|
-
assert_raise(
|
490
|
-
assert_raise(
|
491
|
-
assert_raise(
|
492
|
-
assert_raise(
|
493
|
-
assert_raise(
|
494
|
-
assert_raise(
|
495
|
-
assert_raise(
|
492
|
+
assert_raise(RuntimeError) { S[ 0, 1, 2 ].lut M[ [ 1, 2 ], [ 3, 4 ] ] }
|
493
|
+
assert_raise(RuntimeError) { M[ [ -1, 0 ] ].lut M[ [ 1, 2 ] ] }
|
494
|
+
assert_raise(RuntimeError) { M[ [ 0, -1 ] ].lut M[ [ 1, 2 ] ] }
|
495
|
+
assert_raise(RuntimeError) { M[ [ 2, 0 ] ].lut M[ [ 1, 2 ] ] }
|
496
|
+
assert_raise(RuntimeError) { M[ [ 0, 1 ] ].lut M[ [ 1, 2 ] ] }
|
497
|
+
assert_raise(RuntimeError) { M[ [ 1 ], [ 2 ] ].lut M[ [ 1, 2 ], [ 3, 4 ] ] }
|
498
|
+
assert_raise(RuntimeError) { [ S[ -1, 0 ], S[ 0, 1 ] ].
|
496
499
|
lut M[ [ 1, 2 ], [ 3, 4 ] ] }
|
497
|
-
assert_raise(
|
500
|
+
assert_raise(RuntimeError) { [ S[ 0, 0 ], S[ 0, 2 ] ].
|
498
501
|
lut M[ [ 1, 2 ], [ 3, 4 ] ] }
|
499
|
-
assert_raise(
|
502
|
+
assert_raise(RuntimeError) { [ S[ 0, 0, 1 ], S[ 0, 1 ] ].
|
500
503
|
lut M[ [ 1, 2 ], [ 3, 4 ] ] }
|
501
|
-
assert_raise(
|
504
|
+
assert_raise(RuntimeError) { [ S[ 0, 1 ], S[ 0, 1 ] ].lut S[ 1, 2 ] }
|
502
505
|
end
|
503
506
|
|
504
507
|
def test_warp
|
@@ -645,22 +648,22 @@ class TC_MultiArray < Test::Unit::TestCase
|
|
645
648
|
M[ [ 1, 2, 3 ], [ 4, 5, 6 ] ] + S[ 1, 2 ]
|
646
649
|
assert_equal M[ [ 2, 3, 4 ], [ 6, 7, 8 ] ],
|
647
650
|
S[ 1, 2 ] + M[ [ 1, 2, 3 ], [ 4, 5, 6 ] ]
|
648
|
-
assert_raise(
|
651
|
+
assert_raise(RuntimeError) do
|
649
652
|
M[ [ 1, 2, 3 ], [ 4, 5, 6 ] ] + M[ [ 1, 2 ], [ 3, 4 ] ]
|
650
653
|
end
|
651
|
-
assert_raise(
|
654
|
+
assert_raise(RuntimeError) do
|
652
655
|
M[ [ 1, 2, 3 ], [ 4, 5, 6 ] ] + M[ [ 1, 2, 3 ] ]
|
653
656
|
end
|
654
|
-
assert_raise(
|
657
|
+
assert_raise(RuntimeError) do
|
655
658
|
M[ [ 1, 2 ], [ 3, 4 ] ] + M[ [ 1, 2, 3 ], [ 4, 5, 6 ] ]
|
656
659
|
end
|
657
|
-
assert_raise(
|
660
|
+
assert_raise(RuntimeError) do
|
658
661
|
M[ [ 1, 2, 3 ] ] + M[ [ 1, 2, 3 ], [ 4, 5, 6 ] ]
|
659
662
|
end
|
660
|
-
assert_raise(
|
663
|
+
assert_raise(RuntimeError) do
|
661
664
|
M[ [ 1, 2, 3 ], [ 4, 5, 6 ] ] + S[ 1, 2, 3 ]
|
662
665
|
end
|
663
|
-
assert_raise(
|
666
|
+
assert_raise(RuntimeError) do
|
664
667
|
S[ 1, 2, 3 ] + M[ [ 1, 2, 3 ], [ 4, 5, 6 ] ]
|
665
668
|
end
|
666
669
|
end
|
@@ -716,7 +719,7 @@ class TC_MultiArray < Test::Unit::TestCase
|
|
716
719
|
M(t, 2)[[1, 2, 3], [4, 5, 6]].reshape(6)
|
717
720
|
assert_equal M(t, 2)[[1, 2], [3, 4], [5, 6]],
|
718
721
|
M(t, 2)[[1, 2, 3], [4, 5, 6]].reshape(2, 3)
|
719
|
-
assert_raise(
|
722
|
+
assert_raise(RuntimeError) { M(t, 2)[[1, 2], [3, 4]].reshape 3 }
|
720
723
|
end
|
721
724
|
end
|
722
725
|
|
@@ -739,7 +742,7 @@ class TC_MultiArray < Test::Unit::TestCase
|
|
739
742
|
mask(S[true, false, true])
|
740
743
|
assert_equal S(t)[2, 5, 7], M(t, 2)[[1, 2, 3], [4, 5, 7]].
|
741
744
|
mask( M[[false, true, false], [false, true, true]])
|
742
|
-
assert_raise(
|
745
|
+
assert_raise(RuntimeError) do
|
743
746
|
M(t, 2)[[1, 2], [3, 4], [5, 7]].mask S[false, true]
|
744
747
|
end
|
745
748
|
end
|
@@ -754,7 +757,7 @@ class TC_MultiArray < Test::Unit::TestCase
|
|
754
757
|
S(t)[2, 5, 7].
|
755
758
|
unmask( M[[false, true, false], [false, true, true]],
|
756
759
|
:default => 0 )
|
757
|
-
assert_raise(
|
760
|
+
assert_raise(RuntimeError) { S(t)[1].unmask M[[true, true]] }
|
758
761
|
end
|
759
762
|
end
|
760
763
|
|
metadata
CHANGED
@@ -1,50 +1,60 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: multiarray
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 1.0.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Jan Wedekind
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2012-06-18 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: malloc
|
16
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
25
|
+
requirements:
|
19
26
|
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 13
|
29
|
+
segments:
|
30
|
+
- 1
|
31
|
+
- 1
|
32
|
+
version: "1.1"
|
22
33
|
type: :runtime
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
26
36
|
name: rake
|
27
|
-
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
33
47
|
type: :development
|
34
|
-
|
35
|
-
|
36
|
-
description: This Ruby-extension defines Hornetseye::MultiArray and other native datatypes.
|
37
|
-
Hornetseye::MultiArray provides multi-dimensional Ruby arrays with elements of same
|
38
|
-
type. The extension is designed to be mostly compatible with Masahiro Tanaka's NArray.
|
39
|
-
However it allows the definition of custom element types and operations on them.
|
40
|
-
This work was also inspired by Ronald Garcia's boost::multi_array and by Todd Veldhuizen's
|
41
|
-
Blitz++.
|
48
|
+
version_requirements: *id002
|
49
|
+
description: This Ruby-extension defines Hornetseye::MultiArray and other native datatypes. Hornetseye::MultiArray provides multi-dimensional Ruby arrays with elements of same type. The extension is designed to be mostly compatible with Masahiro Tanaka's NArray. However it allows the definition of custom element types and operations on them. This work was also inspired by Ronald Garcia's boost::multi_array and by Todd Veldhuizen's Blitz++.
|
42
50
|
email: jan@wedesoft.de
|
43
51
|
executables: []
|
44
|
-
|
52
|
+
|
53
|
+
extensions:
|
45
54
|
- Rakefile
|
46
55
|
extra_rdoc_files: []
|
47
|
-
|
56
|
+
|
57
|
+
files:
|
48
58
|
- Rakefile
|
49
59
|
- README.md
|
50
60
|
- COPYING
|
@@ -101,30 +111,38 @@ files:
|
|
101
111
|
- test/tc_sequence.rb
|
102
112
|
homepage: http://wedesoft.github.com/multiarray/
|
103
113
|
licenses: []
|
114
|
+
|
104
115
|
post_install_message:
|
105
|
-
rdoc_options:
|
116
|
+
rdoc_options:
|
106
117
|
- --no-private
|
107
|
-
require_paths:
|
118
|
+
require_paths:
|
108
119
|
- lib
|
109
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
120
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
110
121
|
none: false
|
111
|
-
requirements:
|
112
|
-
- -
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
|
115
|
-
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
hash: 3
|
126
|
+
segments:
|
127
|
+
- 0
|
128
|
+
version: "0"
|
129
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
130
|
none: false
|
117
|
-
requirements:
|
118
|
-
- -
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
|
131
|
+
requirements:
|
132
|
+
- - ">="
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
hash: 3
|
135
|
+
segments:
|
136
|
+
- 0
|
137
|
+
version: "0"
|
121
138
|
requirements: []
|
139
|
+
|
122
140
|
rubyforge_project: hornetseye
|
123
|
-
rubygems_version: 1.8.
|
141
|
+
rubygems_version: 1.8.15
|
124
142
|
signing_key:
|
125
143
|
specification_version: 3
|
126
144
|
summary: Multi-dimensional and uniform Ruby arrays
|
127
|
-
test_files:
|
145
|
+
test_files:
|
128
146
|
- test/tc_int.rb
|
129
147
|
- test/tc_compile.rb
|
130
148
|
- test/tc_object.rb
|