mdarray 0.5.3-java → 0.5.4-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.
- data/README.md +325 -70
- data/doc/20130625 MDArray Internals.docx +0 -0
- data/lib/colt/colt.rb +2 -0
- data/lib/colt/matrix/colt_matrix.rb +365 -0
- data/lib/colt/matrix/matrix2D_floating_algebra.rb +325 -0
- data/lib/colt/matrix/matrix_hierarchy.rb +258 -0
- data/lib/mdarray.rb +54 -3
- data/lib/mdarray/access.rb +16 -0
- data/lib/mdarray/counter.rb +16 -0
- data/lib/mdarray/creation.rb +13 -1
- data/lib/mdarray/lazy_mdarray.rb +6 -2
- data/lib/mdarray/lazy_operators.rb +8 -0
- data/lib/mdarray/printing.rb +18 -3
- data/lib/mdarray/section.rb +101 -0
- data/lib/netcdf/attribute.rb +154 -0
- data/lib/netcdf/cdm_node.rb +71 -0
- data/lib/netcdf/dimension.rb +146 -0
- data/lib/netcdf/file.rb +253 -0
- data/lib/netcdf/file_writer.rb +474 -0
- data/lib/netcdf/group.rb +205 -0
- data/lib/netcdf/netcdf.rb +151 -0
- data/lib/netcdf/variable.rb +520 -0
- data/test/colt/test_complete.rb +1 -2
- data/test/colt/test_double_matrix2d.rb +186 -0
- data/test/colt/test_float_matrix2d.rb +171 -0
- data/test/colt/test_math.rb +21 -0
- data/test/colt/test_matrix.rb +172 -0
- data/test/complete.rb +9 -1
- data/test/env.rb +11 -1
- data/test/mdarray/test_complete.rb +2 -0
- data/test/mdarray/test_creation.rb +19 -28
- data/test/mdarray/test_non_numeric.rb +97 -0
- data/test/mdarray/test_sections.rb +94 -0
- data/test/mdarray/test_views.rb +23 -1
- data/test/netcdf/netcdfwriter.rb +197 -0
- data/test/netcdf/test_complete.rb +27 -0
- data/test/netcdf/test_netcdf.rb +331 -0
- data/test/netcdf/test_redefine.rb +120 -0
- data/vendor/incanter.jar +0 -0
- data/vendor/{netcdfAll-4.3.16.jar → netcdfAll-4.3.18.jar} +0 -0
- data/version.rb +1 -1
- metadata +44 -26
- data/vendor/parallelcolt-0.10.0.jar +0 -0
@@ -0,0 +1,325 @@
|
|
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 'jruby/core_ext'
|
24
|
+
|
25
|
+
require 'java'
|
26
|
+
|
27
|
+
##########################################################################################
|
28
|
+
#
|
29
|
+
##########################################################################################
|
30
|
+
|
31
|
+
module Matrix2DFloatingAlgebra
|
32
|
+
include_package "cern.colt.matrix.tdouble.algo"
|
33
|
+
include_package "cern.colt.matrix.tfloat.algo"
|
34
|
+
|
35
|
+
#------------------------------------------------------------------------------------
|
36
|
+
# Solves the upper triangular system U*x=b;
|
37
|
+
#------------------------------------------------------------------------------------
|
38
|
+
|
39
|
+
def backward_solve(matrix1D)
|
40
|
+
result = @algebra.backwardSolve(@colt_matrix, matrix1D.colt_matrix)
|
41
|
+
MDMatrix.from_colt_matrix(result)
|
42
|
+
end
|
43
|
+
|
44
|
+
#------------------------------------------------------------------------------------
|
45
|
+
# Constructs and returns the cholesky-decomposition of the given matrix. For a
|
46
|
+
# symmetric, positive definite matrix A, the Cholesky decomposition is a lower
|
47
|
+
# triangular matrix L so that A = L*L'; If the matrix is not symmetric positive
|
48
|
+
# definite, the IllegalArgumentException is thrown.
|
49
|
+
#------------------------------------------------------------------------------------
|
50
|
+
|
51
|
+
def chol
|
52
|
+
result = @algebra.chol(@colt_matrix).getL()
|
53
|
+
MDMatrix.from_colt_matrix(result)
|
54
|
+
end
|
55
|
+
|
56
|
+
#------------------------------------------------------------------------------------
|
57
|
+
# Returns the condition of matrix A, which is the ratio of largest to smallest
|
58
|
+
# singular value.
|
59
|
+
#------------------------------------------------------------------------------------
|
60
|
+
|
61
|
+
def cond
|
62
|
+
@algebra.cond(@colt_matrix)
|
63
|
+
end
|
64
|
+
|
65
|
+
#------------------------------------------------------------------------------------
|
66
|
+
# Returns the determinant of matrix A.
|
67
|
+
#------------------------------------------------------------------------------------
|
68
|
+
|
69
|
+
def det
|
70
|
+
@algebra.det(@colt_matrix)
|
71
|
+
end
|
72
|
+
|
73
|
+
#------------------------------------------------------------------------------------
|
74
|
+
#
|
75
|
+
#------------------------------------------------------------------------------------
|
76
|
+
|
77
|
+
def eig
|
78
|
+
eig = @algebra.eig(@colt_matrix)
|
79
|
+
[MDMatrix.from_colt_matrix(eig.getD),
|
80
|
+
MDMatrix.from_colt_matrix(eig.getImagEigenvalues),
|
81
|
+
MDMatrix.from_colt_matrix(eig.getRealEigenvalues),
|
82
|
+
MDMatrix.from_colt_matrix(eig.getV)]
|
83
|
+
end
|
84
|
+
|
85
|
+
#------------------------------------------------------------------------------------
|
86
|
+
# Solves the lower triangular system L*x=b;
|
87
|
+
#------------------------------------------------------------------------------------
|
88
|
+
|
89
|
+
def forward_solve(matrix1D)
|
90
|
+
result = @algebra.forwardSolve(@colt_matrix, matrix1D.colt_matrix)
|
91
|
+
MDMatrix.from_colt_matrix(result)
|
92
|
+
end
|
93
|
+
|
94
|
+
#------------------------------------------------------------------------------------
|
95
|
+
# Returns the inverse or pseudo-inverse of matrix A.
|
96
|
+
#------------------------------------------------------------------------------------
|
97
|
+
|
98
|
+
def inverse
|
99
|
+
result = @algebra.inverse(@colt_matrix)
|
100
|
+
MDMatrix.from_colt_matrix(result)
|
101
|
+
end
|
102
|
+
|
103
|
+
#------------------------------------------------------------------------------------
|
104
|
+
# Computes the Kronecker product of two real matrices.
|
105
|
+
#------------------------------------------------------------------------------------
|
106
|
+
|
107
|
+
def kron(matrix)
|
108
|
+
|
109
|
+
if (matrix.rank != 2)
|
110
|
+
raise "Rank should be 2"
|
111
|
+
end
|
112
|
+
result = @algebra.kron(@colt_matrix, matrix.colt_matrix)
|
113
|
+
MDMatrix.from_colt_matrix(result)
|
114
|
+
|
115
|
+
end
|
116
|
+
|
117
|
+
#------------------------------------------------------------------------------------
|
118
|
+
# Constructs and returns the LU-decomposition of the given matrix.
|
119
|
+
#------------------------------------------------------------------------------------
|
120
|
+
|
121
|
+
def lu
|
122
|
+
result = @algebra.lu(@colt_matrix)
|
123
|
+
[result.isNonsingular(), result.det(), result.getPivot.to_a(),
|
124
|
+
MDMatrix.from_colt_matrix(result.getL()),
|
125
|
+
MDMatrix.from_colt_matrix(result.getU())]
|
126
|
+
end
|
127
|
+
|
128
|
+
#------------------------------------------------------------------------------------
|
129
|
+
# Multiplies this matrix by another matrix
|
130
|
+
#------------------------------------------------------------------------------------
|
131
|
+
|
132
|
+
def mult(matrix)
|
133
|
+
|
134
|
+
if (matrix.rank > 2)
|
135
|
+
raise "Rank should be 1 or 2"
|
136
|
+
end
|
137
|
+
|
138
|
+
result = @colt_matrix.like
|
139
|
+
@colt_matrix.zMult(matrix.colt_matrix, result)
|
140
|
+
MDMatrix.from_colt_matrix(result)
|
141
|
+
|
142
|
+
end
|
143
|
+
|
144
|
+
alias :* :mult
|
145
|
+
|
146
|
+
#------------------------------------------------------------------------------------
|
147
|
+
# Returns the one-norm of vector x, which is Sum(abs(x[i])).
|
148
|
+
#------------------------------------------------------------------------------------
|
149
|
+
|
150
|
+
def norm1
|
151
|
+
@algebra.norm1(@colt_matrix)
|
152
|
+
end
|
153
|
+
|
154
|
+
#------------------------------------------------------------------------------------
|
155
|
+
# Returns the two-norm of matrix A, which is the maximum singular value; obtained
|
156
|
+
# from SVD.
|
157
|
+
#------------------------------------------------------------------------------------
|
158
|
+
|
159
|
+
def norm2
|
160
|
+
@algebra.norm2(@colt_matrix)
|
161
|
+
end
|
162
|
+
|
163
|
+
#------------------------------------------------------------------------------------
|
164
|
+
# Returns the Frobenius norm of matrix A, which is Sqrt(Sum(A[i,j]^2))
|
165
|
+
#------------------------------------------------------------------------------------
|
166
|
+
|
167
|
+
def normF
|
168
|
+
@algebra.normF(@colt_matrix)
|
169
|
+
end
|
170
|
+
|
171
|
+
#------------------------------------------------------------------------------------
|
172
|
+
# Returns the infinity norm of matrix A, which is the maximum absolute row sum.
|
173
|
+
#------------------------------------------------------------------------------------
|
174
|
+
|
175
|
+
def norm_infinity
|
176
|
+
@algebra.normInfinity(@colt_matrix)
|
177
|
+
end
|
178
|
+
|
179
|
+
#------------------------------------------------------------------------------------
|
180
|
+
# Linear algebraic matrix power; B = A^k <==> B = A*A*...
|
181
|
+
#------------------------------------------------------------------------------------
|
182
|
+
|
183
|
+
def power(val)
|
184
|
+
result = @algebra.pow(@colt_matrix, val)
|
185
|
+
MDMatrix.from_colt_matrix(result)
|
186
|
+
end
|
187
|
+
|
188
|
+
alias :** :power
|
189
|
+
|
190
|
+
#------------------------------------------------------------------------------------
|
191
|
+
# Returns the effective numerical rank of matrix A, obtained from Singular Value
|
192
|
+
# Decomposition.
|
193
|
+
#------------------------------------------------------------------------------------
|
194
|
+
|
195
|
+
def numerical_rank
|
196
|
+
@algebra.rank(@colt_matrix)
|
197
|
+
end
|
198
|
+
|
199
|
+
#------------------------------------------------------------------------------------
|
200
|
+
# Solves A*X = B
|
201
|
+
#------------------------------------------------------------------------------------
|
202
|
+
|
203
|
+
def solve(matrix)
|
204
|
+
result = @algebra.solve(@colt_matrix, matrix.colt_matrix)
|
205
|
+
MDMatris.from_colt_matrix(resul)
|
206
|
+
end
|
207
|
+
|
208
|
+
#------------------------------------------------------------------------------------
|
209
|
+
# Solves X*A = B, which is also A'*X' = B'.
|
210
|
+
#------------------------------------------------------------------------------------
|
211
|
+
|
212
|
+
def solve_transpose(matrix)
|
213
|
+
result = @algebra.solveTranspose(@colt_matrix, matrix.colt_matrix)
|
214
|
+
MDMatris.from_colt_matrix(resul)
|
215
|
+
end
|
216
|
+
|
217
|
+
#------------------------------------------------------------------------------------
|
218
|
+
# Constructs and returns the SingularValue-decomposition of the given matrix.
|
219
|
+
#------------------------------------------------------------------------------------
|
220
|
+
|
221
|
+
def svd
|
222
|
+
result = @algebra.svd(@colt_matrix)
|
223
|
+
[result.getInfo().val, result.cond(), result.norm2(), result.rank(),
|
224
|
+
result.getSingularValues().to_a(),
|
225
|
+
MDMatrix.from_colt_matrix(result.getS()),
|
226
|
+
MDMatrix.from_colt_matrix(result.getU()),
|
227
|
+
MDMatrix.from_colt_matrix(result.getV())]
|
228
|
+
end
|
229
|
+
|
230
|
+
#------------------------------------------------------------------------------------
|
231
|
+
# Returns the sum of the diagonal elements of matrix A; Sum(A[i,i]).
|
232
|
+
#------------------------------------------------------------------------------------
|
233
|
+
|
234
|
+
def trace
|
235
|
+
@algebra.trace(@colt_matrix)
|
236
|
+
end
|
237
|
+
|
238
|
+
#------------------------------------------------------------------------------------
|
239
|
+
# Modifies the matrix to be a lower trapezoidal matrix.
|
240
|
+
#------------------------------------------------------------------------------------
|
241
|
+
|
242
|
+
def trapezoidal_lower
|
243
|
+
result = @algebra.trapezoidalLower(@colt_matrix)
|
244
|
+
MDMatrix.from_colt_matrix(result)
|
245
|
+
end
|
246
|
+
|
247
|
+
#------------------------------------------------------------------------------------
|
248
|
+
# Returns the two-norm (aka euclidean norm) of vector X.vectorize();
|
249
|
+
#------------------------------------------------------------------------------------
|
250
|
+
|
251
|
+
def vector_norm2
|
252
|
+
@algebra.vectorNorm2(@colt_matrix)
|
253
|
+
end
|
254
|
+
|
255
|
+
end #
|
256
|
+
|
257
|
+
##########################################################################################
|
258
|
+
#
|
259
|
+
##########################################################################################
|
260
|
+
|
261
|
+
module Matrix2DDoubleAlgebra
|
262
|
+
include_package "cern.colt.matrix.tdouble.algo"
|
263
|
+
|
264
|
+
#------------------------------------------------------------------------------------
|
265
|
+
# Constructs and returns the QR-decomposition of the given matrix.
|
266
|
+
#------------------------------------------------------------------------------------
|
267
|
+
|
268
|
+
def qr(economy_size = true)
|
269
|
+
result = @algebra.qr(@colt_matrix)
|
270
|
+
[result.hasFullRank(), MDMatrix.from_colt_matrix(result.getQ(economy_size)),
|
271
|
+
MDMatrix.from_colt_matrix(result.getR(economy_size))]
|
272
|
+
end
|
273
|
+
|
274
|
+
end
|
275
|
+
|
276
|
+
##########################################################################################
|
277
|
+
#
|
278
|
+
##########################################################################################
|
279
|
+
|
280
|
+
module Matrix2DFloatAlgebra
|
281
|
+
include_package "cern.colt.matrix.tfloat.algo"
|
282
|
+
|
283
|
+
#------------------------------------------------------------------------------------
|
284
|
+
# Constructs and returns the QR-decomposition of the given matrix.
|
285
|
+
#------------------------------------------------------------------------------------
|
286
|
+
|
287
|
+
def qr
|
288
|
+
result = @algebra.qr(@colt_matrix)
|
289
|
+
[result.hasFullRank(),
|
290
|
+
MDMatrix.from_colt_matrix(result.getH()),
|
291
|
+
MDMatrix.from_colt_matrix(result.getQ()),
|
292
|
+
MDMatrix.from_colt_matrix(result.getR())]
|
293
|
+
end
|
294
|
+
|
295
|
+
end
|
296
|
+
|
297
|
+
##########################################################################################
|
298
|
+
#
|
299
|
+
##########################################################################################
|
300
|
+
|
301
|
+
class FloatingMDMatrix2D
|
302
|
+
|
303
|
+
include Matrix2DFloatingAlgebra
|
304
|
+
|
305
|
+
end # MDMatrix
|
306
|
+
|
307
|
+
##########################################################################################
|
308
|
+
#
|
309
|
+
##########################################################################################
|
310
|
+
|
311
|
+
class DoubleMDMatrix2D
|
312
|
+
|
313
|
+
include Matrix2DDoubleAlgebra
|
314
|
+
|
315
|
+
end
|
316
|
+
|
317
|
+
##########################################################################################
|
318
|
+
#
|
319
|
+
##########################################################################################
|
320
|
+
|
321
|
+
class FloatMDMatrix2D
|
322
|
+
|
323
|
+
include Matrix2DFloatAlgebra
|
324
|
+
|
325
|
+
end
|
@@ -0,0 +1,258 @@
|
|
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
|
+
|
24
|
+
##########################################################################################
|
25
|
+
# Floating point 1D Matrices
|
26
|
+
##########################################################################################
|
27
|
+
|
28
|
+
class FloatingMDMatrix1D < MDMatrix
|
29
|
+
|
30
|
+
end # FloatingMDMatrix1D
|
31
|
+
|
32
|
+
##########################################################################################
|
33
|
+
#
|
34
|
+
##########################################################################################
|
35
|
+
|
36
|
+
class DoubleMDMatrix1D < FloatingMDMatrix1D
|
37
|
+
include_package "cern.colt.matrix.tdouble.algo"
|
38
|
+
|
39
|
+
#------------------------------------------------------------------------------------
|
40
|
+
#
|
41
|
+
#------------------------------------------------------------------------------------
|
42
|
+
|
43
|
+
def initialize(mdarray, colt_matrix)
|
44
|
+
super(mdarray, colt_matrix)
|
45
|
+
@algebra = DenseDoubleAlgebra.new
|
46
|
+
end
|
47
|
+
|
48
|
+
end # DoubleMDMatrix1D
|
49
|
+
|
50
|
+
##########################################################################################
|
51
|
+
#
|
52
|
+
##########################################################################################
|
53
|
+
|
54
|
+
class FloatMDMatrix1D < FloatingMDMatrix1D
|
55
|
+
include_package "cern.colt.matrix.tfloat.algo"
|
56
|
+
|
57
|
+
#------------------------------------------------------------------------------------
|
58
|
+
#
|
59
|
+
#------------------------------------------------------------------------------------
|
60
|
+
|
61
|
+
def initialize(mdarray, colt_matrix)
|
62
|
+
super(mdarray, colt_matrix)
|
63
|
+
@algebra = DenseFloatAlgebra.new
|
64
|
+
end
|
65
|
+
|
66
|
+
end # FloatMDMatrix1D
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
##########################################################################################
|
71
|
+
# Floating point 2D Matrices
|
72
|
+
##########################################################################################
|
73
|
+
|
74
|
+
class FloatingMDMatrix2D < MDMatrix
|
75
|
+
|
76
|
+
end # FloatingMDMatrix2D
|
77
|
+
|
78
|
+
##########################################################################################
|
79
|
+
#
|
80
|
+
##########################################################################################
|
81
|
+
|
82
|
+
class DoubleMDMatrix2D < FloatingMDMatrix2D
|
83
|
+
include_package "cern.colt.matrix.tdouble.algo"
|
84
|
+
|
85
|
+
#------------------------------------------------------------------------------------
|
86
|
+
#
|
87
|
+
#------------------------------------------------------------------------------------
|
88
|
+
|
89
|
+
def initialize(mdarray, colt_matrix)
|
90
|
+
super(mdarray, colt_matrix)
|
91
|
+
@algebra = DenseDoubleAlgebra.new
|
92
|
+
end
|
93
|
+
|
94
|
+
end # DoubleMDMatrix
|
95
|
+
|
96
|
+
##########################################################################################
|
97
|
+
#
|
98
|
+
##########################################################################################
|
99
|
+
|
100
|
+
class FloatMDMatrix2D < FloatingMDMatrix2D
|
101
|
+
include_package "cern.colt.matrix.tfloat.algo"
|
102
|
+
|
103
|
+
#------------------------------------------------------------------------------------
|
104
|
+
#
|
105
|
+
#------------------------------------------------------------------------------------
|
106
|
+
|
107
|
+
def initialize(mdarray, colt_matrix)
|
108
|
+
super(mdarray, colt_matrix)
|
109
|
+
@algebra = DenseFloatAlgebra.new
|
110
|
+
end
|
111
|
+
|
112
|
+
end # FloatMDMatrix
|
113
|
+
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
|
118
|
+
##########################################################################################
|
119
|
+
#
|
120
|
+
##########################################################################################
|
121
|
+
|
122
|
+
class DoubleMDMatrix3D < MDMatrix
|
123
|
+
include_package "cern.colt.matrix.tdouble.algo"
|
124
|
+
|
125
|
+
#------------------------------------------------------------------------------------
|
126
|
+
#
|
127
|
+
#------------------------------------------------------------------------------------
|
128
|
+
|
129
|
+
def initialize(mdarray, colt_matrix)
|
130
|
+
super(mdarray, colt_matrix)
|
131
|
+
@algebra = DenseDoubleAlgebra.new
|
132
|
+
end
|
133
|
+
|
134
|
+
end # DoubleMDMatrix
|
135
|
+
|
136
|
+
##########################################################################################
|
137
|
+
#
|
138
|
+
##########################################################################################
|
139
|
+
|
140
|
+
class FloatMDMatrix3D < MDMatrix
|
141
|
+
include_package "cern.colt.matrix.tfloat.algo"
|
142
|
+
|
143
|
+
#------------------------------------------------------------------------------------
|
144
|
+
#
|
145
|
+
#------------------------------------------------------------------------------------
|
146
|
+
|
147
|
+
def initialize(mdarray, colt_matrix)
|
148
|
+
super(mdarray, colt_matrix)
|
149
|
+
@algebra = DenseFloatAlgebra.new
|
150
|
+
end
|
151
|
+
|
152
|
+
end # FloatMDMatrix
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
|
158
|
+
##########################################################################################
|
159
|
+
#
|
160
|
+
##########################################################################################
|
161
|
+
|
162
|
+
class LongMDMatrix1D < MDMatrix
|
163
|
+
include_package "cern.colt.matrix.tlong.algo"
|
164
|
+
|
165
|
+
#------------------------------------------------------------------------------------
|
166
|
+
#
|
167
|
+
#------------------------------------------------------------------------------------
|
168
|
+
|
169
|
+
def initialize(mdarray, colt_matrix)
|
170
|
+
super(mdarray, colt_matrix)
|
171
|
+
end
|
172
|
+
|
173
|
+
end # LongMDMatrix
|
174
|
+
|
175
|
+
##########################################################################################
|
176
|
+
#
|
177
|
+
##########################################################################################
|
178
|
+
|
179
|
+
class LongMDMatrix2D < MDMatrix
|
180
|
+
include_package "cern.colt.matrix.tlong.algo"
|
181
|
+
|
182
|
+
#------------------------------------------------------------------------------------
|
183
|
+
#
|
184
|
+
#------------------------------------------------------------------------------------
|
185
|
+
|
186
|
+
def initialize(mdarray, colt_matrix)
|
187
|
+
super(mdarray, colt_matrix)
|
188
|
+
end
|
189
|
+
|
190
|
+
end # LongMDMatrix
|
191
|
+
|
192
|
+
##########################################################################################
|
193
|
+
#
|
194
|
+
##########################################################################################
|
195
|
+
|
196
|
+
class LongMDMatrix3D < MDMatrix
|
197
|
+
include_package "cern.colt.matrix.tlong.algo"
|
198
|
+
|
199
|
+
#------------------------------------------------------------------------------------
|
200
|
+
#
|
201
|
+
#------------------------------------------------------------------------------------
|
202
|
+
|
203
|
+
def initialize(mdarray, colt_matrix)
|
204
|
+
super(mdarray, colt_matrix)
|
205
|
+
end
|
206
|
+
|
207
|
+
end # LongMDMatrix
|
208
|
+
|
209
|
+
##########################################################################################
|
210
|
+
#
|
211
|
+
##########################################################################################
|
212
|
+
|
213
|
+
class IntMDMatrix1D < MDMatrix
|
214
|
+
include_package "cern.colt.matrix.tint.algo"
|
215
|
+
|
216
|
+
#------------------------------------------------------------------------------------
|
217
|
+
#
|
218
|
+
#------------------------------------------------------------------------------------
|
219
|
+
|
220
|
+
def initialize(mdarray, colt_matrix)
|
221
|
+
super(mdarray, colt_matrix)
|
222
|
+
end
|
223
|
+
|
224
|
+
end # IntMDMatrix
|
225
|
+
|
226
|
+
##########################################################################################
|
227
|
+
#
|
228
|
+
##########################################################################################
|
229
|
+
|
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
|
240
|
+
|
241
|
+
end # IntMDMatrix
|
242
|
+
|
243
|
+
##########################################################################################
|
244
|
+
#
|
245
|
+
##########################################################################################
|
246
|
+
|
247
|
+
class IntMDMatrix3D < MDMatrix
|
248
|
+
include_package "cern.colt.matrix.tint.algo"
|
249
|
+
|
250
|
+
#------------------------------------------------------------------------------------
|
251
|
+
#
|
252
|
+
#------------------------------------------------------------------------------------
|
253
|
+
|
254
|
+
def initialize(mdarray, colt_matrix)
|
255
|
+
super(mdarray, colt_matrix)
|
256
|
+
end
|
257
|
+
|
258
|
+
end # IntMDMatrix
|