nmatrix 0.1.0.rc4 → 0.1.0.rc5
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/Gemfile +0 -5
- data/History.txt +29 -1
- data/Manifest.txt +1 -0
- data/README.rdoc +1 -1
- data/Rakefile +7 -9
- data/ext/nmatrix/data/data.cpp +2 -2
- data/ext/nmatrix/extconf.rb +1 -1
- data/ext/nmatrix/math.cpp +4 -4
- data/ext/nmatrix/nmatrix.h +17 -14
- data/ext/nmatrix/ruby_nmatrix.c +158 -157
- data/ext/nmatrix/storage/dense/dense.cpp +28 -28
- data/ext/nmatrix/storage/list/list.cpp +63 -63
- data/ext/nmatrix/storage/yale/class.h +15 -15
- data/ext/nmatrix/storage/yale/yale.cpp +84 -84
- data/lib/nmatrix/homogeneous.rb +143 -0
- data/lib/nmatrix/nmatrix.rb +12 -0
- data/lib/nmatrix/version.rb +1 -1
- data/nmatrix.gemspec +7 -7
- data/spec/00_nmatrix_spec.rb +16 -0
- data/spec/homogeneous_spec.rb +91 -0
- data/spec/rspec_spec.rb +2 -2
- metadata +43 -34
@@ -0,0 +1,143 @@
|
|
1
|
+
#--
|
2
|
+
# = NMatrix
|
3
|
+
#
|
4
|
+
# A linear algebra library for scientific computation in Ruby.
|
5
|
+
# NMatrix is part of SciRuby.
|
6
|
+
#
|
7
|
+
# NMatrix was originally inspired by and derived from NArray, by
|
8
|
+
# Masahiro Tanaka: http://narray.rubyforge.org
|
9
|
+
#
|
10
|
+
# == Copyright Information
|
11
|
+
#
|
12
|
+
# SciRuby is Copyright (c) 2010 - 2014, Ruby Science Foundation
|
13
|
+
# NMatrix is Copyright (c) 2012 - 2014, John Woods and the Ruby Science Foundation
|
14
|
+
#
|
15
|
+
# Please see LICENSE.txt for additional copyright notices.
|
16
|
+
#
|
17
|
+
# == Contributing
|
18
|
+
#
|
19
|
+
# By contributing source code to SciRuby, you agree to be bound by
|
20
|
+
# our Contributor Agreement:
|
21
|
+
#
|
22
|
+
# * https://github.com/SciRuby/sciruby/wiki/Contributor-Agreement
|
23
|
+
#
|
24
|
+
# == homogeneous.rb
|
25
|
+
#
|
26
|
+
# This file contains optional shortcuts for generating homogeneous
|
27
|
+
# transformations.
|
28
|
+
#
|
29
|
+
#++
|
30
|
+
|
31
|
+
class NMatrix
|
32
|
+
class << self
|
33
|
+
#
|
34
|
+
# call-seq:
|
35
|
+
# x_rotation(angle_in_radians) -> NMatrix
|
36
|
+
# x_rotation(angle_in_radians, dtype: dtype) -> NMatrix
|
37
|
+
# y_rotation(angle_in_radians) -> NMatrix
|
38
|
+
# y_rotation(angle_in_radians, dtype: dtype) -> NMatrix
|
39
|
+
# z_rotation(angle_in_radians) -> NMatrix
|
40
|
+
# z_rotation(angle_in_radians, dtype: dtype) -> NMatrix
|
41
|
+
#
|
42
|
+
# Generate a 4x4 homogeneous transformation matrix representing a rotation
|
43
|
+
# about the x, y, or z axis respectively.
|
44
|
+
#
|
45
|
+
# * *Arguments* :
|
46
|
+
# - +angle_in_radians+ -> The angle of rotation in radians.
|
47
|
+
# - +dtype+ -> (optional) Default is +:float64+
|
48
|
+
# * *Returns* :
|
49
|
+
# - A homogeneous transformation matrix consisting of a single rotation.
|
50
|
+
#
|
51
|
+
# Examples:
|
52
|
+
#
|
53
|
+
# NMatrix.x_rotation(Math::PI.quo(6)) # =>
|
54
|
+
# 1.0 0.0 0.0 0.0
|
55
|
+
# 0.0 0.866025 -0.499999 0.0
|
56
|
+
# 0.0 0.499999 0.866025 0.0
|
57
|
+
# 0.0 0.0 0.0 1.0
|
58
|
+
#
|
59
|
+
#
|
60
|
+
# NMatrix.x_rotation(Math::PI.quo(6), dtype: :float32) # =>
|
61
|
+
# 1.0 0.0 0.0 0.0
|
62
|
+
# 0.0 0.866025 -0.5 0.0
|
63
|
+
# 0.0 0.5 0.866025 0.0
|
64
|
+
# 0.0 0.0 0.0 1.0
|
65
|
+
#
|
66
|
+
def x_rotation angle_in_radians, opts={}
|
67
|
+
c = Math.cos(angle_in_radians)
|
68
|
+
s = Math.sin(angle_in_radians)
|
69
|
+
NMatrix.new(4, [1.0, 0.0, 0.0, 0.0,
|
70
|
+
0.0, c, -s, 0.0,
|
71
|
+
0.0, s, c, 0.0,
|
72
|
+
0.0, 0.0, 0.0, 1.0], {dtype: :float64}.merge(opts))
|
73
|
+
end
|
74
|
+
|
75
|
+
def y_rotation angle_in_radians, opts={}
|
76
|
+
c = Math.cos(angle_in_radians)
|
77
|
+
s = Math.sin(angle_in_radians)
|
78
|
+
NMatrix.new(4, [ c, 0.0, s, 0.0,
|
79
|
+
0.0, 1.0, 0.0, 0.0,
|
80
|
+
-s, 0.0, c, 0.0,
|
81
|
+
0.0, 0.0, 0.0, 1.0], {dtype: :float64}.merge(opts))
|
82
|
+
end
|
83
|
+
|
84
|
+
def z_rotation angle_in_radians, opts={}
|
85
|
+
c = Math.cos(angle_in_radians)
|
86
|
+
s = Math.sin(angle_in_radians)
|
87
|
+
NMatrix.new(4, [ c, -s, 0.0, 0.0,
|
88
|
+
s, c, 0.0, 0.0,
|
89
|
+
0.0, 0.0, 1.0, 0.0,
|
90
|
+
0.0, 0.0, 0.0, 1.0], {dtype: :float64}.merge(opts))
|
91
|
+
end
|
92
|
+
|
93
|
+
|
94
|
+
#
|
95
|
+
# call-seq:
|
96
|
+
# translation(x, y, z) -> NMatrix
|
97
|
+
# translation([x,y,z]) -> NMatrix
|
98
|
+
# translation(translation_matrix) -> NMatrix
|
99
|
+
# translation(translation_matrix) -> NMatrix
|
100
|
+
# translation(translation, dtype: dtype) -> NMatrix
|
101
|
+
# translation(x, y, z, dtype: dtype) -> NMatrix
|
102
|
+
#
|
103
|
+
# Generate a 4x4 homogeneous transformation matrix representing a translation.
|
104
|
+
#
|
105
|
+
# * *Returns* :
|
106
|
+
# - A homogeneous transformation matrix consisting of a translation.
|
107
|
+
#
|
108
|
+
# Examples:
|
109
|
+
#
|
110
|
+
# NMatrix.translation(4.0,5.0,6.0) # =>
|
111
|
+
# 1.0 0.0 0.0 4.0
|
112
|
+
# 0.0 1.0 0.0 5.0
|
113
|
+
# 0.0 0.0 1.0 6.0
|
114
|
+
# 0.0 0.0 0.0 1.0
|
115
|
+
#
|
116
|
+
# NMatrix.translation(4.0,5.0,6.0, dtype: :int64) # =>
|
117
|
+
# 1 0 0 4
|
118
|
+
# 0 1 0 5
|
119
|
+
# 0 0 1 6
|
120
|
+
# 0 0 0 1
|
121
|
+
# NMatrix.translation(4,5,6) # =>
|
122
|
+
# 1 0 0 4
|
123
|
+
# 0 1 0 5
|
124
|
+
# 0 0 1 6
|
125
|
+
# 0 0 0 1
|
126
|
+
#
|
127
|
+
def translation *args
|
128
|
+
xyz = args.shift if args.first.is_a?(NMatrix) || args.first.is_a?(Array)
|
129
|
+
default_dtype = xyz.respond_to?(:dtype) ? xyz.dtype : NMatrix.guess_dtype(xyz)
|
130
|
+
opts = {dtype: default_dtype}
|
131
|
+
opts = opts.merge(args.pop) if args.size > 0 && args.last.is_a?(Hash)
|
132
|
+
xyz ||= args
|
133
|
+
|
134
|
+
n = if args.size > 0
|
135
|
+
NMatrix.eye(4, opts)
|
136
|
+
else
|
137
|
+
NMatrix.eye(4, opts)
|
138
|
+
end
|
139
|
+
n[0..2,3] = xyz
|
140
|
+
n
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
data/lib/nmatrix/nmatrix.rb
CHANGED
@@ -820,6 +820,18 @@ class NMatrix
|
|
820
820
|
end
|
821
821
|
|
822
822
|
|
823
|
+
#
|
824
|
+
# call-seq:
|
825
|
+
# inject -> symbol
|
826
|
+
#
|
827
|
+
# This overrides the inject function to use map_stored for yale matrices
|
828
|
+
#
|
829
|
+
def inject(sym)
|
830
|
+
return super(sym) unless self.yale?
|
831
|
+
return self.map_stored.inject(sym)
|
832
|
+
end
|
833
|
+
|
834
|
+
|
823
835
|
#
|
824
836
|
# call-seq:
|
825
837
|
# clone_structure -> NMatrix
|
data/lib/nmatrix/version.rb
CHANGED
data/nmatrix.gemspec
CHANGED
@@ -43,12 +43,12 @@ EOF
|
|
43
43
|
|
44
44
|
gem.required_ruby_version = '>= 1.9'
|
45
45
|
|
46
|
-
gem.add_dependency 'rdoc', '>=4.0.1'
|
47
|
-
gem.add_development_dependency 'rake'
|
48
|
-
gem.add_development_dependency 'bundler'
|
49
|
-
gem.add_development_dependency 'rspec', '~>2.14
|
50
|
-
gem.add_development_dependency 'rspec-longrun', '~>1.0
|
51
|
-
gem.add_development_dependency 'pry'
|
52
|
-
gem.add_development_dependency 'rake-compiler', '~>0.8
|
46
|
+
gem.add_dependency 'rdoc', '~>4.0', '>=4.0.1'
|
47
|
+
gem.add_development_dependency 'rake', '~>10.3'
|
48
|
+
gem.add_development_dependency 'bundler', '~>1.6'
|
49
|
+
gem.add_development_dependency 'rspec', '~>2.14'
|
50
|
+
gem.add_development_dependency 'rspec-longrun', '~>1.0'
|
51
|
+
gem.add_development_dependency 'pry', '~>0.10'
|
52
|
+
gem.add_development_dependency 'rake-compiler', '~>0.8'
|
53
53
|
end
|
54
54
|
|
data/spec/00_nmatrix_spec.rb
CHANGED
@@ -562,4 +562,20 @@ describe 'NMatrix' do
|
|
562
562
|
end
|
563
563
|
end
|
564
564
|
end
|
565
|
+
|
566
|
+
context "#inject" do
|
567
|
+
it "should sum columns of yale matrix correctly" do
|
568
|
+
n = NMatrix.new([4, 3], stype: :yale, default: 0)
|
569
|
+
n[0,0] = 1
|
570
|
+
n[1,1] = 2
|
571
|
+
n[2,2] = 4
|
572
|
+
n[3,2] = 8
|
573
|
+
column_sums = []
|
574
|
+
n.cols.times do |i|
|
575
|
+
column_sums << n.col(i).inject(:+)
|
576
|
+
end
|
577
|
+
expect(column_sums).to eq([1, 2, 12])
|
578
|
+
end
|
579
|
+
end
|
580
|
+
|
565
581
|
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# = NMatrix
|
2
|
+
#
|
3
|
+
# A linear algebra library for scientific computation in Ruby.
|
4
|
+
# NMatrix is part of SciRuby.
|
5
|
+
#
|
6
|
+
# NMatrix was originally inspired by and derived from NArray, by
|
7
|
+
# Masahiro Tanaka: http://narray.rubyforge.org
|
8
|
+
#
|
9
|
+
# == Copyright Information
|
10
|
+
#
|
11
|
+
# SciRuby is Copyright (c) 2010 - 2014, Ruby Science Foundation
|
12
|
+
# NMatrix is Copyright (c) 2012 - 2014, John Woods and the Ruby Science Foundation
|
13
|
+
#
|
14
|
+
# Please see LICENSE.txt for additional copyright notices.
|
15
|
+
#
|
16
|
+
# == Contributing
|
17
|
+
#
|
18
|
+
# By contributing source code to SciRuby, you agree to be bound by
|
19
|
+
# our Contributor Agreement:
|
20
|
+
#
|
21
|
+
# * https://github.com/SciRuby/sciruby/wiki/Contributor-Agreement
|
22
|
+
#
|
23
|
+
# == homogeneous_spec.rb
|
24
|
+
#
|
25
|
+
# Specs for the homogeneous transformation matrix methods.
|
26
|
+
#
|
27
|
+
|
28
|
+
require 'spec_helper'
|
29
|
+
require "./lib/nmatrix/homogeneous.rb"
|
30
|
+
|
31
|
+
require 'pry'
|
32
|
+
|
33
|
+
describe 'NMatrix' do
|
34
|
+
context "#x_rotation" do
|
35
|
+
it "should generate a matrix representing a rotation about the x axis" do
|
36
|
+
x = NMatrix.x_rotation(Math::PI.quo(6))
|
37
|
+
expect(x).to be_within(1e-8).of(NMatrix.new([4,4], [1.0, 0.0, 0.0, 0.0,
|
38
|
+
0.0, Math.cos(Math::PI.quo(6)), -0.5, 0.0,
|
39
|
+
0.0, 0.5, Math.cos(Math::PI.quo(6)), 0.0,
|
40
|
+
0.0, 0.0, 0.0, 1.0] ))
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
context "#y_rotation" do
|
46
|
+
it "should generate a matrix representing a rotation about the y axis" do
|
47
|
+
y = NMatrix.y_rotation(Math::PI.quo(6))
|
48
|
+
expect(y).to be_within(1e-8).of(NMatrix.new([4,4], [Math.cos(Math::PI.quo(6)), 0.0, 0.5, 0.0,
|
49
|
+
0.0, 1.0, 0.0, 0.0,
|
50
|
+
-0.5, 0.0, Math.cos(Math::PI.quo(6)), 0.0,
|
51
|
+
0.0, 0.0, 0.0, 1.0] ))
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
context "#z_rotation" do
|
56
|
+
it "should generate a matrix representing a rotation about the z axis" do
|
57
|
+
z = NMatrix.z_rotation(Math::PI.quo(6))
|
58
|
+
expect(z).to be_within(1e-8).of(NMatrix.new([4,4], [Math.cos(Math::PI.quo(6)), -0.5, 0.0, 0.0,
|
59
|
+
0.5, Math.cos(Math::PI.quo(6)), 0.0, 0.0,
|
60
|
+
0.0, 0.0, 1.0, 0.0,
|
61
|
+
0.0, 0.0, 0.0, 1.0] ))
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context "#translation" do
|
66
|
+
it "should generate a translation matrix from an Array" do
|
67
|
+
t = NMatrix.translation([4,5,6])
|
68
|
+
expect(t).to be_within(1e-8).of(NMatrix.new([4,4], [1, 0, 0, 4,
|
69
|
+
0, 1, 0, 5,
|
70
|
+
0, 0, 1, 6,
|
71
|
+
0, 0, 0, 1] ))
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should generate a translation matrix from x, y, and z values" do
|
75
|
+
t = NMatrix.translation(4,5,6)
|
76
|
+
expect(t).to be_within(1e-8).of(NMatrix.new([4,4], [1, 0, 0, 4,
|
77
|
+
0, 1, 0, 5,
|
78
|
+
0, 0, 1, 6,
|
79
|
+
0, 0, 0, 1] ))
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should generate a translation matrix from an NMatrix with correctly inferred dtype" do
|
83
|
+
t = NMatrix.translation(NMatrix.new([3,1], [4,5,6], dtype: :float64) )
|
84
|
+
expect(t).to be_within(1e-8).of(NMatrix.new([4,4], [1, 0, 0, 4,
|
85
|
+
0, 1, 0, 5,
|
86
|
+
0, 0, 1, 6,
|
87
|
+
0, 0, 0, 1] ))
|
88
|
+
expect(t.dtype).to be(:float64)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
data/spec/rspec_spec.rb
CHANGED
@@ -28,7 +28,7 @@ require 'spec_helper'
|
|
28
28
|
|
29
29
|
describe "RSpec" do
|
30
30
|
it "should permit #be_within to be used on a dense NMatrix" do
|
31
|
-
expect(NMatrix.new(
|
32
|
-
expect(NMatrix.new(
|
31
|
+
expect(NMatrix.new([4,1], 1.0, dtype: :complex128, stype: :dense) / 10000.0).to be_within(0.00000001).of(NMatrix.new([4,1], 0.0001, dtype: :float64, stype: :dense))
|
32
|
+
expect(NMatrix.new([4,1], 1.0, dtype: :complex128, stype: :dense) / 10000.0).not_to be_within(0.00000001).of(NMatrix.new([4,1], 1.0, dtype: :float64, stype: :dense))
|
33
33
|
end
|
34
34
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nmatrix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.rc5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Woods
|
@@ -10,106 +10,112 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-
|
13
|
+
date: 2014-08-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rdoc
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - "~>"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '4.0'
|
22
|
+
- - ">="
|
20
23
|
- !ruby/object:Gem::Version
|
21
24
|
version: 4.0.1
|
22
25
|
type: :runtime
|
23
26
|
prerelease: false
|
24
27
|
version_requirements: !ruby/object:Gem::Requirement
|
25
28
|
requirements:
|
26
|
-
- -
|
29
|
+
- - "~>"
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '4.0'
|
32
|
+
- - ">="
|
27
33
|
- !ruby/object:Gem::Version
|
28
34
|
version: 4.0.1
|
29
35
|
- !ruby/object:Gem::Dependency
|
30
36
|
name: rake
|
31
37
|
requirement: !ruby/object:Gem::Requirement
|
32
38
|
requirements:
|
33
|
-
- -
|
39
|
+
- - "~>"
|
34
40
|
- !ruby/object:Gem::Version
|
35
|
-
version: '
|
41
|
+
version: '10.3'
|
36
42
|
type: :development
|
37
43
|
prerelease: false
|
38
44
|
version_requirements: !ruby/object:Gem::Requirement
|
39
45
|
requirements:
|
40
|
-
- -
|
46
|
+
- - "~>"
|
41
47
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
48
|
+
version: '10.3'
|
43
49
|
- !ruby/object:Gem::Dependency
|
44
50
|
name: bundler
|
45
51
|
requirement: !ruby/object:Gem::Requirement
|
46
52
|
requirements:
|
47
|
-
- -
|
53
|
+
- - "~>"
|
48
54
|
- !ruby/object:Gem::Version
|
49
|
-
version: '
|
55
|
+
version: '1.6'
|
50
56
|
type: :development
|
51
57
|
prerelease: false
|
52
58
|
version_requirements: !ruby/object:Gem::Requirement
|
53
59
|
requirements:
|
54
|
-
- -
|
60
|
+
- - "~>"
|
55
61
|
- !ruby/object:Gem::Version
|
56
|
-
version: '
|
62
|
+
version: '1.6'
|
57
63
|
- !ruby/object:Gem::Dependency
|
58
64
|
name: rspec
|
59
65
|
requirement: !ruby/object:Gem::Requirement
|
60
66
|
requirements:
|
61
|
-
- - ~>
|
67
|
+
- - "~>"
|
62
68
|
- !ruby/object:Gem::Version
|
63
|
-
version: 2.14
|
69
|
+
version: '2.14'
|
64
70
|
type: :development
|
65
71
|
prerelease: false
|
66
72
|
version_requirements: !ruby/object:Gem::Requirement
|
67
73
|
requirements:
|
68
|
-
- - ~>
|
74
|
+
- - "~>"
|
69
75
|
- !ruby/object:Gem::Version
|
70
|
-
version: 2.14
|
76
|
+
version: '2.14'
|
71
77
|
- !ruby/object:Gem::Dependency
|
72
78
|
name: rspec-longrun
|
73
79
|
requirement: !ruby/object:Gem::Requirement
|
74
80
|
requirements:
|
75
|
-
- - ~>
|
81
|
+
- - "~>"
|
76
82
|
- !ruby/object:Gem::Version
|
77
|
-
version: 1.0
|
83
|
+
version: '1.0'
|
78
84
|
type: :development
|
79
85
|
prerelease: false
|
80
86
|
version_requirements: !ruby/object:Gem::Requirement
|
81
87
|
requirements:
|
82
|
-
- - ~>
|
88
|
+
- - "~>"
|
83
89
|
- !ruby/object:Gem::Version
|
84
|
-
version: 1.0
|
90
|
+
version: '1.0'
|
85
91
|
- !ruby/object:Gem::Dependency
|
86
92
|
name: pry
|
87
93
|
requirement: !ruby/object:Gem::Requirement
|
88
94
|
requirements:
|
89
|
-
- -
|
95
|
+
- - "~>"
|
90
96
|
- !ruby/object:Gem::Version
|
91
|
-
version: '0'
|
97
|
+
version: '0.10'
|
92
98
|
type: :development
|
93
99
|
prerelease: false
|
94
100
|
version_requirements: !ruby/object:Gem::Requirement
|
95
101
|
requirements:
|
96
|
-
- -
|
102
|
+
- - "~>"
|
97
103
|
- !ruby/object:Gem::Version
|
98
|
-
version: '0'
|
104
|
+
version: '0.10'
|
99
105
|
- !ruby/object:Gem::Dependency
|
100
106
|
name: rake-compiler
|
101
107
|
requirement: !ruby/object:Gem::Requirement
|
102
108
|
requirements:
|
103
|
-
- - ~>
|
109
|
+
- - "~>"
|
104
110
|
- !ruby/object:Gem::Version
|
105
|
-
version: 0.8
|
111
|
+
version: '0.8'
|
106
112
|
type: :development
|
107
113
|
prerelease: false
|
108
114
|
version_requirements: !ruby/object:Gem::Requirement
|
109
115
|
requirements:
|
110
|
-
- - ~>
|
116
|
+
- - "~>"
|
111
117
|
- !ruby/object:Gem::Version
|
112
|
-
version: 0.8
|
118
|
+
version: '0.8'
|
113
119
|
description: NMatrix is an experimental linear algebra library for Ruby, written mostly
|
114
120
|
in C.
|
115
121
|
email:
|
@@ -119,9 +125,9 @@ extensions:
|
|
119
125
|
- ext/nmatrix/extconf.rb
|
120
126
|
extra_rdoc_files: []
|
121
127
|
files:
|
122
|
-
- .gitignore
|
123
|
-
- .rspec
|
124
|
-
- .travis.yml
|
128
|
+
- ".gitignore"
|
129
|
+
- ".rspec"
|
130
|
+
- ".travis.yml"
|
125
131
|
- CONTRIBUTING.md
|
126
132
|
- Gemfile
|
127
133
|
- History.txt
|
@@ -195,6 +201,7 @@ files:
|
|
195
201
|
- lib/nmatrix.rb
|
196
202
|
- lib/nmatrix/blas.rb
|
197
203
|
- lib/nmatrix/enumerate.rb
|
204
|
+
- lib/nmatrix/homogeneous.rb
|
198
205
|
- lib/nmatrix/io/market.rb
|
199
206
|
- lib/nmatrix/io/mat5_reader.rb
|
200
207
|
- lib/nmatrix/io/mat_reader.rb
|
@@ -218,6 +225,7 @@ files:
|
|
218
225
|
- spec/4x5_dense.mat
|
219
226
|
- spec/blas_spec.rb
|
220
227
|
- spec/elementwise_spec.rb
|
228
|
+
- spec/homogeneous_spec.rb
|
221
229
|
- spec/io_spec.rb
|
222
230
|
- spec/lapack_spec.rb
|
223
231
|
- spec/leakcheck.rb
|
@@ -262,17 +270,17 @@ require_paths:
|
|
262
270
|
- lib
|
263
271
|
required_ruby_version: !ruby/object:Gem::Requirement
|
264
272
|
requirements:
|
265
|
-
- -
|
273
|
+
- - ">="
|
266
274
|
- !ruby/object:Gem::Version
|
267
275
|
version: '1.9'
|
268
276
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
269
277
|
requirements:
|
270
|
-
- -
|
278
|
+
- - ">"
|
271
279
|
- !ruby/object:Gem::Version
|
272
280
|
version: 1.3.1
|
273
281
|
requirements: []
|
274
282
|
rubyforge_project:
|
275
|
-
rubygems_version: 2.0
|
283
|
+
rubygems_version: 2.2.0
|
276
284
|
signing_key:
|
277
285
|
specification_version: 4
|
278
286
|
summary: NMatrix is an experimental linear algebra library for Ruby, written mostly
|
@@ -286,6 +294,7 @@ test_files:
|
|
286
294
|
- spec/4x5_dense.mat
|
287
295
|
- spec/blas_spec.rb
|
288
296
|
- spec/elementwise_spec.rb
|
297
|
+
- spec/homogeneous_spec.rb
|
289
298
|
- spec/io_spec.rb
|
290
299
|
- spec/lapack_spec.rb
|
291
300
|
- spec/leakcheck.rb
|