ruby-eigen 0.0.10 → 0.0.11.pre1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/eigen.rb CHANGED
@@ -16,6 +16,7 @@ module Eigen::MatrixConstructor
16
16
  ret = new(row_size, col_size)
17
17
  col_ind = 0
18
18
  ms.each{|m|
19
+ raise Eigen::EigenRuntimeError, "row sizes are different" unless row_size == m.rows
19
20
  ret[0,col_ind] = m
20
21
  col_ind += m.cols
21
22
  }
@@ -28,6 +29,7 @@ module Eigen::MatrixConstructor
28
29
  ret = new(row_size, col_size)
29
30
  row_ind = 0
30
31
  ms.each{|m|
32
+ raise Eigen::EigenRuntimeError, "col sizes are different" unless col_size == m.cols
31
33
  ret[row_ind,0] = m
32
34
  row_ind += m.rows
33
35
  }
@@ -168,3 +170,36 @@ class Eigen::VectorComplex
168
170
  extend Eigen::VectorConstructor
169
171
  include Eigen::VectorCommon
170
172
  end
173
+
174
+ module Eigen::SpMatrixCommon
175
+
176
+ def setFromTriplet(arry)
177
+ arry0 = arry.sort{|a, b|
178
+ ret = a[1] <=> b[1]
179
+ ret == 0 ? a[0] <=> b[0] : ret
180
+ }
181
+ each_col_size = Array.new(cols(), 0)
182
+ arry0.slice_when{|a, b| a[1] != b[1] }.each{|e|
183
+ each_col_size[ e[0][1] ] = e.size
184
+ }
185
+ reserve( each_col_size )
186
+ arry0.each{|e|
187
+ __insert__(e[0], e[1], e[2])
188
+ }
189
+ end
190
+
191
+ def reserve( arg )
192
+ if arg.respond_to?(:to_int)
193
+ return __reserve__( arg )
194
+ end
195
+ raise Eigen::EigenRuntimeError unless arg.size == cols()
196
+ __reserve__( arg )
197
+ end
198
+
199
+ end
200
+
201
+
202
+ class Eigen::SpMatrixDouble
203
+ include Eigen::SpMatrixCommon
204
+ private "__reserve__", "__insert__"
205
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-eigen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Tamura
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-17 00:00:00.000000000 Z
11
+ date: 2016-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -32,9 +32,11 @@ extensions:
32
32
  - ext/eigen/extconf.rb
33
33
  extra_rdoc_files: []
34
34
  files:
35
+ - COPYING.LGPLv3
35
36
  - LICENSE
36
37
  - README.md
37
38
  - ext/eigen/eigen3/COPYING.BSD
39
+ - ext/eigen/eigen3/COPYING.LGPL
38
40
  - ext/eigen/eigen3/COPYING.MPL2
39
41
  - ext/eigen/eigen3/COPYING.README
40
42
  - ext/eigen/eigen3/Eigen/Array
@@ -52,6 +54,7 @@ files:
52
54
  - ext/eigen/eigen3/Eigen/LU
53
55
  - ext/eigen/eigen3/Eigen/LeastSquares
54
56
  - ext/eigen/eigen3/Eigen/MetisSupport
57
+ - ext/eigen/eigen3/Eigen/OrderingMethods
55
58
  - ext/eigen/eigen3/Eigen/PaStiXSupport
56
59
  - ext/eigen/eigen3/Eigen/PardisoSupport
57
60
  - ext/eigen/eigen3/Eigen/QR
@@ -59,6 +62,7 @@ files:
59
62
  - ext/eigen/eigen3/Eigen/SPQRSupport
60
63
  - ext/eigen/eigen3/Eigen/SVD
61
64
  - ext/eigen/eigen3/Eigen/Sparse
65
+ - ext/eigen/eigen3/Eigen/SparseCholesky
62
66
  - ext/eigen/eigen3/Eigen/SparseCore
63
67
  - ext/eigen/eigen3/Eigen/SparseLU
64
68
  - ext/eigen/eigen3/Eigen/SparseQR
@@ -234,6 +238,7 @@ files:
234
238
  - ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
235
239
  - ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
236
240
  - ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
241
+ - ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
237
242
  - ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
238
243
  - ext/eigen/eigen3/Eigen/src/Jacobi/Jacobi.h
239
244
  - ext/eigen/eigen3/Eigen/src/LU/Determinant.h
@@ -245,6 +250,7 @@ files:
245
250
  - ext/eigen/eigen3/Eigen/src/MetisSupport/MetisSupport.h
246
251
  - ext/eigen/eigen3/Eigen/src/OrderingMethods/Amd.h
247
252
  - ext/eigen/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h
253
+ - ext/eigen/eigen3/Eigen/src/OrderingMethods/Ordering.h
248
254
  - ext/eigen/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h
249
255
  - ext/eigen/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h
250
256
  - ext/eigen/eigen3/Eigen/src/QR/ColPivHouseholderQR.h
@@ -325,7 +331,7 @@ files:
325
331
  - lib/eigen.rb
326
332
  homepage: https://github.com/ruby-eigen/ruby-eigen
327
333
  licenses:
328
- - MIT
334
+ - LGPL
329
335
  metadata: {}
330
336
  post_install_message:
331
337
  rdoc_options:
@@ -339,9 +345,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
339
345
  version: 2.2.0
340
346
  required_rubygems_version: !ruby/object:Gem::Requirement
341
347
  requirements:
342
- - - ">="
348
+ - - ">"
343
349
  - !ruby/object:Gem::Version
344
- version: '0'
350
+ version: 1.3.1
345
351
  requirements: []
346
352
  rubyforge_project:
347
353
  rubygems_version: 2.5.1