mdarray 0.5.4-java → 0.5.5-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,374 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ##########################################################################################
4
+ # Copyright © 2013 Rodrigo Botafogo. All Rights Reserved. Permission to use, copy, modify,
5
+ # and distribute this software and its documentation for educational, research, and
6
+ # not-for-profit purposes, without fee and without a signed licensing agreement, is hereby
7
+ # granted, provided that the above copyright notice, this paragraph and the following two
8
+ # paragraphs appear in all copies, modifications, and distributions. Contact Rodrigo
9
+ # Botafogo - rodrigo.a.botafogo@gmail.com for commercial licensing opportunities.
10
+ #
11
+ # IN NO EVENT SHALL RODRIGO BOTAFOGO BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL,
12
+ # INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF
13
+ # THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF RODRIGO BOTAFOGO HAS BEEN ADVISED OF THE
14
+ # POSSIBILITY OF SUCH DAMAGE.
15
+ #
16
+ # RODRIGO BOTAFOGO SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
17
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
18
+ # SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS IS".
19
+ # RODRIGO BOTAFOGO HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
20
+ # OR MODIFICATIONS.
21
+ ##########################################################################################
22
+
23
+ require 'java'
24
+
25
+ class MDMatrix
26
+
27
+ #------------------------------------------------------------------------------------
28
+ #
29
+ #------------------------------------------------------------------------------------
30
+
31
+ def self.build(type, shape, storage = nil)
32
+ if (shape.size > 3)
33
+ raise "Cannot create MDMatrix of size greater than 3"
34
+ end
35
+ self.from_mdarray(MDArray.build(type, shape, storage))
36
+ end
37
+
38
+ #------------------------------------------------------------------------------------
39
+ #
40
+ #------------------------------------------------------------------------------------
41
+
42
+ def self.double(shape, storage = nil)
43
+ self.build("double", shape, storage)
44
+ end
45
+
46
+ #------------------------------------------------------------------------------------
47
+ #
48
+ #------------------------------------------------------------------------------------
49
+
50
+ def self.float(shape, storage = nil)
51
+ self.build("float", shape, storage)
52
+ end
53
+
54
+ #------------------------------------------------------------------------------------
55
+ #
56
+ #------------------------------------------------------------------------------------
57
+
58
+ def self.long(shape, storage = nil)
59
+ self.build("long", shape, storage)
60
+ end
61
+
62
+ #------------------------------------------------------------------------------------
63
+ #
64
+ #------------------------------------------------------------------------------------
65
+
66
+ def self.int(shape, storage = nil)
67
+ self.build("int", shape, storage)
68
+ end
69
+
70
+ #------------------------------------------------------------------------------------
71
+ # Creates a MDMatrix from an MDArray.
72
+ # (int rows, int columns, double[] elements, int rowZero, int columnZero,
73
+ # int rowStride, int columnStride, boolean isView)
74
+ #------------------------------------------------------------------------------------
75
+
76
+ def self.from_mdarray(mdarray)
77
+
78
+ case mdarray.rank
79
+
80
+ when 1
81
+ dense1D(mdarray)
82
+ when 2
83
+ dense2D(mdarray)
84
+ when 3
85
+ dense3D(mdarray)
86
+ else
87
+ raise "Cannot create MDMatrix of rank greater than 3"
88
+ end
89
+
90
+ end
91
+
92
+ #------------------------------------------------------------------------------------
93
+ # Creates a new MDMatrix from a given colt_matrix
94
+ #------------------------------------------------------------------------------------
95
+
96
+ def self.from_colt_matrix(colt_matrix)
97
+
98
+ if (colt_matrix.is_a? DenseDoubleMatrix3D)
99
+ mdarray = MDArray.from_jstorage("double",
100
+ [colt_matrix.slices, colt_matrix.rows,
101
+ colt_matrix.columns], colt_matrix.elements)
102
+ return DoubleMDMatrix3D.from_mdarray(mdarray)
103
+ elsif (colt_matrix.is_a? DenseFloatMatrix3D)
104
+ mdarray = MDArray.from_jstorage("float",
105
+ [colt_matrix.slices, colt_matrix.rows,
106
+ colt_matrix.columns], colt_matrix.elements)
107
+ return FloatMDMatrix3D.from_mdarray(mdarray)
108
+ elsif (colt_matrix.is_a? DenseLongMatrix3D)
109
+ mdarray = MDArray.from_jstorage("long",
110
+ [colt_matrix.slices, colt_matrix.rows,
111
+ colt_matrix.columns], colt_matrix.elements)
112
+ return LongMDMatrix3D.from_mdarray(mdarray)
113
+ elsif (colt_matrix.is_a? DenseIntMatrix3D)
114
+ mdarray = MDArray.from_jstorage("int",
115
+ [colt_matrix.slices, colt_matrix.rows,
116
+ colt_matrix.columns], colt_matrix.elements)
117
+ return IntMDMatrix3D.from_mdarray(mdarray)
118
+ elsif (colt_matrix.is_a? DenseDoubleMatrix2D)
119
+ mdarray = MDArray.from_jstorage("double", [colt_matrix.rows, colt_matrix.columns],
120
+ colt_matrix.elements)
121
+ return DoubleMDMatrix2D.from_mdarray(mdarray)
122
+ elsif (colt_matrix.is_a? DenseFloatMatrix2D)
123
+ mdarray = MDArray.from_jstorage("float", [colt_matrix.rows, colt_matrix.columns],
124
+ colt_matrix.elements)
125
+ return FloatMDMatrix2D.from_mdarray(mdarray)
126
+ elsif (colt_matrix.is_a? DenseLongMatrix2D)
127
+ mdarray = MDArray.from_jstorage("long", [colt_matrix.rows, colt_matrix.columns],
128
+ colt_matrix.elements)
129
+ return LongMDMatrix2D.from_mdarray(mdarray)
130
+ elsif (colt_matrix.is_a? DenseIntMatrix2D)
131
+ mdarray = MDArray.from_jstorage("int", [colt_matrix.rows, colt_matrix.columns],
132
+ colt_matrix.elements)
133
+ return IntMDMatrix2D.from_mdarray(mdarray)
134
+ elsif (colt_matrix.is_a? DenseDoubleMatrix1D)
135
+ mdarray = MDArray.from_jstorage("double", [colt_matrix.size], colt_matrix.elements)
136
+ return DoubleMDMatrix1D.from_mdarray(mdarray)
137
+ elsif (colt_matrix.is_a? DenseFloatMatrix1D)
138
+ mdarray = MDArray.from_jstorage("float", [colt_matrix.size], colt_matrix.elements)
139
+ return FloatMDMatrix1D.from_mdarray(mdarray)
140
+ elsif (colt_matrix.is_a? DenseLongMatrix1D)
141
+ mdarray = MDArray.from_jstorage("long", [colt_matrix.size], colt_matrix.elements)
142
+ return LongMDMatrix1D.from_mdarray(mdarray)
143
+ elsif (colt_matrix.is_a? DenseIntMatrix1D)
144
+ mdarray = MDArray.from_jstorage("int", [colt_matrix.size], colt_matrix.elements)
145
+ return IntMDMatrix1D.from_mdarray(mdarray)
146
+ end
147
+
148
+ end
149
+
150
+ #------------------------------------------------------------------------------------
151
+ #
152
+ #------------------------------------------------------------------------------------
153
+
154
+ def self.fromfunction(type, shape, &block)
155
+
156
+ mdarray = MDArray.fromfunction(type, shape, &block)
157
+ MDMatrix.from_mdarray(mdarray)
158
+
159
+ end
160
+
161
+ #------------------------------------------------------------------------------------
162
+ #
163
+ #------------------------------------------------------------------------------------
164
+
165
+ def self.init_with(type, shape, value)
166
+ mdarray = MDArray.init_with(type, shape, value)
167
+ MDMatrix.from_mdarray(mdarray)
168
+ end
169
+
170
+ #------------------------------------------------------------------------------------
171
+ #
172
+ #------------------------------------------------------------------------------------
173
+
174
+ def self.arange(*args)
175
+ mdarray = MDArray.arange(*args)
176
+ MDMatrix.from_mdarray(mdarray)
177
+ end
178
+
179
+ #------------------------------------------------------------------------------------
180
+ #
181
+ #------------------------------------------------------------------------------------
182
+
183
+ def self.typed_arange(type, *args)
184
+ mdarray = MDArray.typed_arange(type, *args)
185
+ MDMatrix.from_mdarray(mdarray)
186
+ end
187
+
188
+ #------------------------------------------------------------------------------------
189
+ #
190
+ #------------------------------------------------------------------------------------
191
+
192
+ def self.linspace(type, start, stop, number)
193
+ mdarray = MDArray.linspace(type, start, stop, number)
194
+ MDMatrix.from_mdarray(mdarray)
195
+ end
196
+
197
+ #------------------------------------------------------------------------------------
198
+ #
199
+ #------------------------------------------------------------------------------------
200
+
201
+ def self.ones(type, shape)
202
+ mdarray = MDArray.ones(type, shape)
203
+ MDMatrix.from_mdarray(mdarray)
204
+ end
205
+
206
+ #------------------------------------------------------------------------------------
207
+ #
208
+ #------------------------------------------------------------------------------------
209
+
210
+ def copy
211
+ MDMatrix.from_mdarray(self.mdarray.copy)
212
+ end
213
+
214
+ #------------------------------------------------------------------------------------
215
+ #
216
+ #------------------------------------------------------------------------------------
217
+
218
+ private
219
+
220
+ #------------------------------------------------------------------------------------
221
+ # Only Floating Matrices have algebra. Long and Int matrices do not have algebra.
222
+ #------------------------------------------------------------------------------------
223
+
224
+ def initialize(mdarray, colt_matrix, colt_property, colt_algebra = nil)
225
+ @mdarray = mdarray
226
+ @colt_matrix = colt_matrix
227
+ @colt_property = colt_property
228
+ @colt_algebra = colt_algebra
229
+ @rank = @mdarray.rank
230
+ @coerced = false # should never be changed by any client
231
+ end
232
+
233
+ #------------------------------------------------------------------------------------
234
+ #
235
+ #------------------------------------------------------------------------------------
236
+
237
+ def self.dense1D(mdarray)
238
+
239
+ storage = mdarray.nc_array.getStorage()
240
+ index = mdarray.nc_array.getIndex()
241
+ size = index.size
242
+
243
+ klass = index.getClass
244
+ field = klass.getDeclaredField("stride0")
245
+ field.setAccessible true
246
+ stride0 = field.get(index)
247
+ # p stride0
248
+
249
+ klass = klass.getSuperclass()
250
+ field = klass.getDeclaredField("offset")
251
+ field.setAccessible true
252
+ offset = field.get(index)
253
+ # p offset
254
+
255
+ case mdarray.type
256
+ when "double"
257
+ colt_matrix = DenseDoubleMatrix1D.new(size, storage, offset, stride0, false)
258
+ DoubleMDMatrix1D.new(mdarray, colt_matrix)
259
+ when "float"
260
+ colt_matrix = DenseFloatMatrix1D.new(size, storage, offset, stride0, false)
261
+ FloatMDMatrix1D.new(mdarray, colt_matrix)
262
+ when "long"
263
+ colt_matrix = DenseLongMatrix1D.new(size, storage, offset, stride0, false)
264
+ LongMDMatrix1D.new(mdarray, colt_matrix)
265
+ when "int"
266
+ colt_matrix = DenseIntMatrix1D.new(size, storage, offset, stride0, false)
267
+ IntMDMatrix1D.new(mdarray, colt_matrix)
268
+ end
269
+
270
+ end
271
+
272
+ #------------------------------------------------------------------------------------
273
+ #
274
+ #------------------------------------------------------------------------------------
275
+
276
+ def self.dense2D(mdarray)
277
+
278
+ storage = mdarray.nc_array.getStorage()
279
+ index = mdarray.nc_array.getIndex()
280
+ shape = index.getShape()
281
+
282
+ klass = index.getClass
283
+ field = klass.getDeclaredField("stride0")
284
+ field.setAccessible true
285
+ stride0 = field.get(index)
286
+ # p stride0
287
+
288
+ field = klass.getDeclaredField("stride1")
289
+ field.setAccessible true
290
+ stride1 = field.get(index)
291
+ # p stride1
292
+
293
+ klass = klass.getSuperclass()
294
+ field = klass.getDeclaredField("offset")
295
+ field.setAccessible true
296
+ offset = field.get(index)
297
+ # p offset
298
+
299
+ case mdarray.type
300
+ when "double"
301
+ colt_matrix = DenseDoubleMatrix2D.new(shape[0], shape[1], storage, offset, 0,
302
+ stride0, stride1, false)
303
+ DoubleMDMatrix2D.new(mdarray, colt_matrix)
304
+ when "float"
305
+ colt_matrix = DenseFloatMatrix2D.new(shape[0], shape[1], storage, offset, 0,
306
+ stride0, stride1, false)
307
+ FloatMDMatrix2D.new(mdarray, colt_matrix)
308
+ when "long"
309
+ colt_matrix = DenseLongMatrix2D.new(shape[0], shape[1], storage, offset, 0,
310
+ stride0, stride1, false)
311
+ LongMDMatrix2D.new(mdarray, colt_matrix)
312
+ when "int"
313
+ colt_matrix = DenseIntMatrix2D.new(shape[0], shape[1], storage, offset, 0,
314
+ stride0, stride1, false)
315
+ IntMDMatrix2D.new(mdarray, colt_matrix)
316
+ end
317
+
318
+ end
319
+
320
+ #------------------------------------------------------------------------------------
321
+ #
322
+ #------------------------------------------------------------------------------------
323
+
324
+ def self.dense3D(mdarray)
325
+
326
+ storage = mdarray.nc_array.getStorage()
327
+ index = mdarray.nc_array.getIndex()
328
+ shape = index.getShape()
329
+
330
+ klass = index.getClass
331
+ field = klass.getDeclaredField("stride0")
332
+ field.setAccessible true
333
+ stride0 = field.get(index)
334
+ # p stride0
335
+
336
+ field = klass.getDeclaredField("stride1")
337
+ field.setAccessible true
338
+ stride1 = field.get(index)
339
+ # p stride1
340
+
341
+ field = klass.getDeclaredField("stride2")
342
+ field.setAccessible true
343
+ stride2 = field.get(index)
344
+ # p stride2
345
+
346
+ klass = klass.getSuperclass()
347
+ field = klass.getDeclaredField("offset")
348
+ field.setAccessible true
349
+ offset = field.get(index)
350
+ # p offset
351
+
352
+ case mdarray.type
353
+ when "double"
354
+ colt_matrix = DenseDoubleMatrix3D.new(shape[0], shape[1], shape[2], storage,
355
+ offset, 0, 0, stride0, stride1, stride2, false)
356
+ DoubleMDMatrix3D.new(mdarray, colt_matrix)
357
+ when "float"
358
+ colt_matrix = DenseFloatMatrix3D.new(shape[0], shape[1], shape[2], storage,
359
+ offset, 0, 0, stride0, stride1, stride2, false)
360
+ FloatMDMatrix3D.new(mdarray, colt_matrix)
361
+ when "long"
362
+ colt_matrix = DenseLongMatrix3D.new(shape[0], shape[1], shape[2], storage,
363
+ offset, 0, 0, stride0, stride1, stride2, false)
364
+ LongMDMatrix3D.new(mdarray, colt_matrix)
365
+ when "int"
366
+ colt_matrix = DenseIntMatrix3D.new(shape[0], shape[1], shape[2], storage,
367
+ offset, 0, 0, stride0, stride1, stride2, false)
368
+ IntMDMatrix3D.new(mdarray, colt_matrix)
369
+ end
370
+
371
+ end
372
+
373
+ end # MDMatrix
374
+
@@ -20,146 +20,144 @@
20
20
  # OR MODIFICATIONS.
21
21
  ##########################################################################################
22
22
 
23
-
24
23
  ##########################################################################################
25
- # Floating point 1D Matrices
24
+ # Floating point Matrices
26
25
  ##########################################################################################
27
26
 
28
- class FloatingMDMatrix1D < MDMatrix
29
-
30
- end # FloatingMDMatrix1D
27
+ class FloatingMDMatrix < MDMatrix
31
28
 
32
- ##########################################################################################
33
- #
34
- ##########################################################################################
29
+ #------------------------------------------------------------------------------------
30
+ #
31
+ #------------------------------------------------------------------------------------
35
32
 
36
- class DoubleMDMatrix1D < FloatingMDMatrix1D
37
- include_package "cern.colt.matrix.tdouble.algo"
33
+ private
38
34
 
39
35
  #------------------------------------------------------------------------------------
40
36
  #
41
37
  #------------------------------------------------------------------------------------
42
38
 
43
- def initialize(mdarray, colt_matrix)
44
- super(mdarray, colt_matrix)
45
- @algebra = DenseDoubleAlgebra.new
39
+ def initialize(mdarray, colt_matrix, algebra)
40
+ super(mdarray, colt_matrix, algebra.property(), algebra)
46
41
  end
47
42
 
48
- end # DoubleMDMatrix1D
43
+ end
49
44
 
50
45
  ##########################################################################################
51
46
  #
52
47
  ##########################################################################################
53
48
 
54
- class FloatMDMatrix1D < FloatingMDMatrix1D
55
- include_package "cern.colt.matrix.tfloat.algo"
49
+ class DoubleMDMatrix < FloatingMDMatrix
50
+ include_package "cern.colt.matrix.tdouble.algo"
56
51
 
57
52
  #------------------------------------------------------------------------------------
58
53
  #
59
54
  #------------------------------------------------------------------------------------
60
55
 
61
- def initialize(mdarray, colt_matrix)
62
- super(mdarray, colt_matrix)
63
- @algebra = DenseFloatAlgebra.new
56
+ def initialize(mdarray, colt_matrix, tolerance = nil)
57
+ super(mdarray, colt_matrix, DenseDoubleAlgebra.new)
64
58
  end
65
59
 
66
- end # FloatMDMatrix1D
60
+ end # DoubleMDMatrix
61
+
62
+ ##########################################################################################
63
+ #
64
+ ##########################################################################################
67
65
 
66
+ class DoubleMDMatrix1D < DoubleMDMatrix
68
67
 
68
+ end # DoubleMDMatrix1D
69
69
 
70
70
  ##########################################################################################
71
- # Floating point 2D Matrices
71
+ #
72
72
  ##########################################################################################
73
73
 
74
- class FloatingMDMatrix2D < MDMatrix
74
+ class DoubleMDMatrix2D < DoubleMDMatrix
75
75
 
76
- end # FloatingMDMatrix2D
76
+ end # DoubleMDMatrix2D
77
77
 
78
78
  ##########################################################################################
79
79
  #
80
80
  ##########################################################################################
81
81
 
82
- class DoubleMDMatrix2D < FloatingMDMatrix2D
83
- include_package "cern.colt.matrix.tdouble.algo"
82
+ class DoubleMDMatrix3D < DoubleMDMatrix
84
83
 
85
- #------------------------------------------------------------------------------------
86
- #
87
- #------------------------------------------------------------------------------------
84
+ end # DoubleMDMatrix3D
88
85
 
89
- def initialize(mdarray, colt_matrix)
90
- super(mdarray, colt_matrix)
91
- @algebra = DenseDoubleAlgebra.new
92
- end
93
86
 
94
- end # DoubleMDMatrix
95
87
 
96
88
  ##########################################################################################
97
89
  #
98
90
  ##########################################################################################
99
91
 
100
- class FloatMDMatrix2D < FloatingMDMatrix2D
92
+ class FloatMDMatrix < FloatingMDMatrix
101
93
  include_package "cern.colt.matrix.tfloat.algo"
102
94
 
103
95
  #------------------------------------------------------------------------------------
104
96
  #
105
97
  #------------------------------------------------------------------------------------
106
98
 
107
- def initialize(mdarray, colt_matrix)
108
- super(mdarray, colt_matrix)
109
- @algebra = DenseFloatAlgebra.new
99
+ def initialize(mdarray, colt_matrix, tolerance = nil)
100
+ super(mdarray, colt_matrix, DenseFloatAlgebra.new)
110
101
  end
111
102
 
112
103
  end # FloatMDMatrix
113
104
 
105
+ ##########################################################################################
106
+ #
107
+ ##########################################################################################
114
108
 
109
+ class FloatMDMatrix1D < FloatMDMatrix
115
110
 
111
+ end # FloatMDMatrix1D
116
112
 
117
113
 
118
114
  ##########################################################################################
119
115
  #
120
116
  ##########################################################################################
121
117
 
122
- class DoubleMDMatrix3D < MDMatrix
123
- include_package "cern.colt.matrix.tdouble.algo"
124
-
125
- #------------------------------------------------------------------------------------
126
- #
127
- #------------------------------------------------------------------------------------
118
+ class FloatMDMatrix2D < FloatMDMatrix
128
119
 
129
- def initialize(mdarray, colt_matrix)
130
- super(mdarray, colt_matrix)
131
- @algebra = DenseDoubleAlgebra.new
132
- end
120
+ end # FloatMDMatrix2D
133
121
 
134
- end # DoubleMDMatrix
135
122
 
136
123
  ##########################################################################################
137
124
  #
138
125
  ##########################################################################################
139
126
 
140
- class FloatMDMatrix3D < MDMatrix
141
- include_package "cern.colt.matrix.tfloat.algo"
127
+ class FloatMDMatrix3D < FloatMDMatrix
128
+
129
+ end # FloatMDMatrix3D
130
+
131
+
132
+
133
+ ##########################################################################################
134
+ # Floating point Matrices
135
+ ##########################################################################################
136
+
137
+ class FixPointMDMatrix < MDMatrix
142
138
 
143
139
  #------------------------------------------------------------------------------------
144
140
  #
145
141
  #------------------------------------------------------------------------------------
146
142
 
147
- def initialize(mdarray, colt_matrix)
148
- super(mdarray, colt_matrix)
149
- @algebra = DenseFloatAlgebra.new
150
- end
151
-
152
- end # FloatMDMatrix
143
+ private
153
144
 
145
+ #------------------------------------------------------------------------------------
146
+ #
147
+ #------------------------------------------------------------------------------------
154
148
 
149
+ def initialize(mdarray, colt_matrix, property)
150
+ super(mdarray, colt_matrix, property)
151
+ end
155
152
 
153
+ end # FixPointMDMatrix
156
154
 
157
155
 
158
156
  ##########################################################################################
159
157
  #
160
158
  ##########################################################################################
161
159
 
162
- class LongMDMatrix1D < MDMatrix
160
+ class LongMDMatrix < FixPointMDMatrix
163
161
  include_package "cern.colt.matrix.tlong.algo"
164
162
 
165
163
  #------------------------------------------------------------------------------------
@@ -167,7 +165,7 @@ class LongMDMatrix1D < MDMatrix
167
165
  #------------------------------------------------------------------------------------
168
166
 
169
167
  def initialize(mdarray, colt_matrix)
170
- super(mdarray, colt_matrix)
168
+ super(mdarray, colt_matrix, LongProperty.new)
171
169
  end
172
170
 
173
171
  end # LongMDMatrix
@@ -176,41 +174,32 @@ end # LongMDMatrix
176
174
  #
177
175
  ##########################################################################################
178
176
 
179
- class LongMDMatrix2D < MDMatrix
180
- include_package "cern.colt.matrix.tlong.algo"
177
+ class LongMDMatrix1D < LongMDMatrix
181
178
 
182
- #------------------------------------------------------------------------------------
183
- #
184
- #------------------------------------------------------------------------------------
179
+ end # LongMDMatrix1D
185
180
 
186
- def initialize(mdarray, colt_matrix)
187
- super(mdarray, colt_matrix)
188
- end
181
+ ##########################################################################################
182
+ #
183
+ ##########################################################################################
189
184
 
190
- end # LongMDMatrix
185
+ class LongMDMatrix2D < LongMDMatrix
186
+
187
+ end # LongMDMatrix2D
191
188
 
192
189
  ##########################################################################################
193
190
  #
194
191
  ##########################################################################################
195
192
 
196
- class LongMDMatrix3D < MDMatrix
197
- include_package "cern.colt.matrix.tlong.algo"
198
-
199
- #------------------------------------------------------------------------------------
200
- #
201
- #------------------------------------------------------------------------------------
193
+ class LongMDMatrix3D < LongMDMatrix
202
194
 
203
- def initialize(mdarray, colt_matrix)
204
- super(mdarray, colt_matrix)
205
- end
195
+ end # LongMDMatrix3D
206
196
 
207
- end # LongMDMatrix
208
197
 
209
198
  ##########################################################################################
210
199
  #
211
200
  ##########################################################################################
212
201
 
213
- class IntMDMatrix1D < MDMatrix
202
+ class IntMDMatrix < FixPointMDMatrix
214
203
  include_package "cern.colt.matrix.tint.algo"
215
204
 
216
205
  #------------------------------------------------------------------------------------
@@ -218,7 +207,7 @@ class IntMDMatrix1D < MDMatrix
218
207
  #------------------------------------------------------------------------------------
219
208
 
220
209
  def initialize(mdarray, colt_matrix)
221
- super(mdarray, colt_matrix)
210
+ super(mdarray, colt_matrix, IntProperty.new)
222
211
  end
223
212
 
224
213
  end # IntMDMatrix
@@ -227,32 +216,22 @@ end # IntMDMatrix
227
216
  #
228
217
  ##########################################################################################
229
218
 
230
- class IntMDMatrix2D < MDMatrix
231
- include_package "cern.colt.matrix.tint.algo"
232
-
233
- #------------------------------------------------------------------------------------
234
- #
235
- #------------------------------------------------------------------------------------
236
-
237
- def initialize(mdarray, colt_matrix)
238
- super(mdarray, colt_matrix)
239
- end
219
+ class IntMDMatrix1D < IntMDMatrix
240
220
 
241
- end # IntMDMatrix
221
+ end # IntMDMatrix1D
242
222
 
243
223
  ##########################################################################################
244
224
  #
245
225
  ##########################################################################################
246
226
 
247
- class IntMDMatrix3D < MDMatrix
248
- include_package "cern.colt.matrix.tint.algo"
227
+ class IntMDMatrix2D < IntMDMatrix
249
228
 
250
- #------------------------------------------------------------------------------------
251
- #
252
- #------------------------------------------------------------------------------------
229
+ end # IntMDMatrix2D
253
230
 
254
- def initialize(mdarray, colt_matrix)
255
- super(mdarray, colt_matrix)
256
- end
231
+ ##########################################################################################
232
+ #
233
+ ##########################################################################################
257
234
 
258
- end # IntMDMatrix
235
+ class IntMDMatrix3D < IntMDMatrix
236
+
237
+ end # IntMDMatrix3D