hamster-matrix 0.9.5 → 1.0.0
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/README.md +14 -1
- data/bin/console +1 -1
- data/lib/hamster-matrix.rb +2 -0
- data/lib/hamster/matrix.rb +39 -9
- data/lib/hamster/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9c57bcfcd225a6ca7bfb04bae733b1e425bc5ed
|
4
|
+
data.tar.gz: 29cf5ba08be8187bbbd61b8f04202618c6f815fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8ac30643511bfceaab242dd3e7c77081968473d6c73f8210615b58ddd56e75c3c430513cca76f7ed72400bc188ae5b31f0705a409db5be4f03ac90af5903444
|
7
|
+
data.tar.gz: fab9518ebfb0dba3f762c4cb56ae783831bb1f80a4ac4a549b49d293c611300e51df4259594be73d5220d19332e818b2a36a534161f32ad114cb9ba22cc7f6e5
|
data/README.md
CHANGED
@@ -25,7 +25,20 @@ Or install it yourself as:
|
|
25
25
|
|
26
26
|
## Usage
|
27
27
|
|
28
|
-
|
28
|
+
```ruby
|
29
|
+
require 'hamster-matrix'
|
30
|
+
a = Hamster::Matrix[[1,0,0],[0,1,0],[0,0,1]]
|
31
|
+
b = a.set(2,2,'foo')
|
32
|
+
puts b
|
33
|
+
# [[1, 0, 0]
|
34
|
+
# [0, 1, 0]
|
35
|
+
# [0, 0, "foo"]]
|
36
|
+
|
37
|
+
puts a
|
38
|
+
#[[1, 0, 0]
|
39
|
+
# [0, 1, 0]
|
40
|
+
# [0, 0, 1]]
|
41
|
+
```
|
29
42
|
|
30
43
|
## Contributing
|
31
44
|
|
data/bin/console
CHANGED
data/lib/hamster/matrix.rb
CHANGED
@@ -1,15 +1,18 @@
|
|
1
|
-
require "hamster/version"
|
2
1
|
require 'hamster'
|
3
2
|
require 'matrix'
|
4
3
|
|
5
4
|
module Hamster
|
6
|
-
|
7
|
-
def self.matrix(array = Hamster.vector)
|
8
|
-
Hamster::Matrix.new(array)
|
9
|
-
end
|
10
|
-
|
11
5
|
class Matrix
|
12
6
|
|
7
|
+
# Creates a new Hamster Matrix
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# Hamster::Matrix[[1,0,0],[0,1,0],[0,0,1]]
|
11
|
+
# # => Hamster::Matrix[[1,0,0]
|
12
|
+
# # [0,1,0]
|
13
|
+
# # [0,0,1]]
|
14
|
+
#
|
15
|
+
# @return [Hamster::Matrix]
|
13
16
|
def self.[](*array)
|
14
17
|
Hamster::Matrix.new(array)
|
15
18
|
end
|
@@ -87,6 +90,24 @@ module Hamster
|
|
87
90
|
alias_method :component, :get
|
88
91
|
alias_method :element, :get
|
89
92
|
|
93
|
+
|
94
|
+
# Sets the value at a certain given index, leaving
|
95
|
+
# existing references unchanged
|
96
|
+
#
|
97
|
+
# @example
|
98
|
+
# a = Hamster::Matrix[[1,0,0],[0,1,0],[0,0,1]]
|
99
|
+
# b = a.set(2,2,'foo')
|
100
|
+
# puts b
|
101
|
+
# # [[1, 0, 0]
|
102
|
+
# # [0, 1, 0]
|
103
|
+
# # [0, 0, "foo"]]
|
104
|
+
|
105
|
+
# puts a
|
106
|
+
# # [[1, 0, 0]
|
107
|
+
# # [0, 1, 0]
|
108
|
+
# # [0, 0, 1]]
|
109
|
+
#
|
110
|
+
# @return [Hamster::Matrix]
|
90
111
|
def set(i,j,value)
|
91
112
|
if(i >= row_vectors.size)
|
92
113
|
raise ExceptionForMatrix::ErrDimensionMismatch.new("I index #{i} outside of array bounds")
|
@@ -141,7 +162,7 @@ module Hamster
|
|
141
162
|
if empty?
|
142
163
|
"#{self.class}.empty"
|
143
164
|
else
|
144
|
-
"#{self.class}#{row_string(
|
165
|
+
"#{self.class}#{row_string(19)}"
|
145
166
|
end
|
146
167
|
end
|
147
168
|
|
@@ -157,19 +178,28 @@ module Hamster
|
|
157
178
|
row_string(1)
|
158
179
|
end
|
159
180
|
|
181
|
+
def to_matrix
|
182
|
+
::Matrix[to_a]
|
183
|
+
end
|
184
|
+
|
160
185
|
def zero?
|
161
|
-
row_vectors.all?
|
186
|
+
row_vectors.all? do |row|
|
187
|
+
row.all? { |elem| elem.is_a?(Numeric) && elem.zero? }
|
188
|
+
end
|
162
189
|
end
|
163
190
|
|
164
191
|
attr_reader :row_vectors
|
165
192
|
|
166
|
-
private
|
193
|
+
private
|
194
|
+
|
195
|
+
# @private
|
167
196
|
def enumerable_check!(enumerable)
|
168
197
|
unless enumerable.is_a?(::Enumerable)
|
169
198
|
raise TypeError.new('Matrix rows must be Enumerable')
|
170
199
|
end
|
171
200
|
end
|
172
201
|
|
202
|
+
# @private
|
173
203
|
def row_string(spaces)
|
174
204
|
br = ''
|
175
205
|
row_vectors.inject('[') do |acc, row|
|
data/lib/hamster/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hamster-matrix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brad Urani
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- bin/console
|
87
87
|
- bin/setup
|
88
88
|
- hamster-matrix.gemspec
|
89
|
+
- lib/hamster-matrix.rb
|
89
90
|
- lib/hamster/matrix.rb
|
90
91
|
- lib/hamster/version.rb
|
91
92
|
homepage: https://github.com/bradurani/hamster-matrix
|