nmatrix 0.1.0 → 0.2.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/ext/nmatrix/data/complex.h +20 -55
- data/ext/nmatrix/data/data.cpp +11 -44
- data/ext/nmatrix/data/data.h +174 -311
- data/ext/nmatrix/data/meta.h +1 -7
- data/ext/nmatrix/data/ruby_object.h +3 -85
- data/ext/nmatrix/extconf.rb +2 -73
- data/ext/nmatrix/math.cpp +170 -813
- data/ext/nmatrix/math/asum.h +2 -25
- data/ext/nmatrix/math/{inc.h → cblas_enums.h} +11 -22
- data/ext/nmatrix/math/cblas_templates_core.h +507 -0
- data/ext/nmatrix/math/gemm.h +2 -32
- data/ext/nmatrix/math/gemv.h +1 -35
- data/ext/nmatrix/math/getrf.h +21 -6
- data/ext/nmatrix/math/getrs.h +0 -8
- data/ext/nmatrix/math/imax.h +0 -22
- data/ext/nmatrix/math/long_dtype.h +0 -3
- data/ext/nmatrix/math/math.h +11 -337
- data/ext/nmatrix/math/nrm2.h +2 -23
- data/ext/nmatrix/math/rot.h +1 -25
- data/ext/nmatrix/math/rotg.h +4 -13
- data/ext/nmatrix/math/scal.h +0 -22
- data/ext/nmatrix/math/trsm.h +0 -55
- data/ext/nmatrix/math/util.h +148 -0
- data/ext/nmatrix/nmatrix.cpp +0 -14
- data/ext/nmatrix/nmatrix.h +92 -84
- data/ext/nmatrix/ruby_constants.cpp +0 -2
- data/ext/nmatrix/ruby_constants.h +0 -2
- data/ext/nmatrix/ruby_nmatrix.c +86 -45
- data/ext/nmatrix/storage/dense/dense.cpp +1 -7
- data/ext/nmatrix/storage/storage.h +0 -1
- data/ext/nmatrix/ttable_helper.rb +0 -6
- data/ext/nmatrix/util/io.cpp +1 -1
- data/lib/nmatrix.rb +1 -19
- data/lib/nmatrix/blas.rb +33 -11
- data/lib/nmatrix/io/market.rb +3 -3
- data/lib/nmatrix/lapack_core.rb +181 -0
- data/lib/nmatrix/lapack_plugin.rb +44 -0
- data/lib/nmatrix/math.rb +382 -131
- data/lib/nmatrix/monkeys.rb +2 -3
- data/lib/nmatrix/nmatrix.rb +166 -13
- data/lib/nmatrix/shortcuts.rb +72 -7
- data/lib/nmatrix/version.rb +2 -2
- data/spec/00_nmatrix_spec.rb +154 -5
- data/spec/02_slice_spec.rb +2 -6
- data/spec/03_nmatrix_monkeys_spec.rb +7 -1
- data/spec/blas_spec.rb +60 -33
- data/spec/homogeneous_spec.rb +10 -10
- data/spec/lapack_core_spec.rb +482 -0
- data/spec/math_spec.rb +436 -52
- data/spec/shortcuts_spec.rb +28 -4
- data/spec/spec_helper.rb +14 -2
- data/spec/utm5940.mtx +83844 -0
- metadata +49 -76
- data/.gitignore +0 -27
- data/.rspec +0 -2
- data/.travis.yml +0 -15
- data/CONTRIBUTING.md +0 -82
- data/Gemfile +0 -2
- data/History.txt +0 -677
- data/LICENSE.txt +0 -23
- data/Manifest.txt +0 -92
- data/README.rdoc +0 -150
- data/Rakefile +0 -216
- data/ext/nmatrix/data/rational.h +0 -440
- data/ext/nmatrix/math/geev.h +0 -82
- data/ext/nmatrix/math/ger.h +0 -96
- data/ext/nmatrix/math/gesdd.h +0 -80
- data/ext/nmatrix/math/gesvd.h +0 -78
- data/ext/nmatrix/math/getf2.h +0 -86
- data/ext/nmatrix/math/getri.h +0 -108
- data/ext/nmatrix/math/potrs.h +0 -129
- data/ext/nmatrix/math/swap.h +0 -52
- data/lib/nmatrix/lapack.rb +0 -240
- data/nmatrix.gemspec +0 -55
- data/scripts/mac-brew-gcc.sh +0 -50
- data/scripts/mac-mavericks-brew-gcc.sh +0 -22
- data/spec/lapack_spec.rb +0 -459
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.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Woods
|
@@ -10,132 +10,132 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-08-25 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: packable
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
21
|
+
version: '1.3'
|
22
22
|
- - ">="
|
23
23
|
- !ruby/object:Gem::Version
|
24
|
-
version:
|
24
|
+
version: 1.3.5
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
27
|
version_requirements: !ruby/object:Gem::Requirement
|
28
28
|
requirements:
|
29
29
|
- - "~>"
|
30
30
|
- !ruby/object:Gem::Version
|
31
|
-
version: '
|
31
|
+
version: '1.3'
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 1.3.5
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
36
|
+
name: bundler
|
37
37
|
requirement: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '1.
|
42
|
-
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: 1.3.5
|
45
|
-
type: :runtime
|
41
|
+
version: '1.6'
|
42
|
+
type: :development
|
46
43
|
prerelease: false
|
47
44
|
version_requirements: !ruby/object:Gem::Requirement
|
48
45
|
requirements:
|
49
46
|
- - "~>"
|
50
47
|
- !ruby/object:Gem::Version
|
51
|
-
version: '1.
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 1.3.5
|
48
|
+
version: '1.6'
|
55
49
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
50
|
+
name: pry
|
57
51
|
requirement: !ruby/object:Gem::Requirement
|
58
52
|
requirements:
|
59
53
|
- - "~>"
|
60
54
|
- !ruby/object:Gem::Version
|
61
|
-
version: '10
|
55
|
+
version: '0.10'
|
62
56
|
type: :development
|
63
57
|
prerelease: false
|
64
58
|
version_requirements: !ruby/object:Gem::Requirement
|
65
59
|
requirements:
|
66
60
|
- - "~>"
|
67
61
|
- !ruby/object:Gem::Version
|
68
|
-
version: '10
|
62
|
+
version: '0.10'
|
69
63
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
64
|
+
name: rake
|
71
65
|
requirement: !ruby/object:Gem::Requirement
|
72
66
|
requirements:
|
73
67
|
- - "~>"
|
74
68
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
69
|
+
version: '10.3'
|
76
70
|
type: :development
|
77
71
|
prerelease: false
|
78
72
|
version_requirements: !ruby/object:Gem::Requirement
|
79
73
|
requirements:
|
80
74
|
- - "~>"
|
81
75
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
76
|
+
version: '10.3'
|
83
77
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
78
|
+
name: rake-compiler
|
85
79
|
requirement: !ruby/object:Gem::Requirement
|
86
80
|
requirements:
|
87
81
|
- - "~>"
|
88
82
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
83
|
+
version: '0.8'
|
90
84
|
type: :development
|
91
85
|
prerelease: false
|
92
86
|
version_requirements: !ruby/object:Gem::Requirement
|
93
87
|
requirements:
|
94
88
|
- - "~>"
|
95
89
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
90
|
+
version: '0.8'
|
97
91
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
92
|
+
name: rdoc
|
99
93
|
requirement: !ruby/object:Gem::Requirement
|
100
94
|
requirements:
|
101
95
|
- - "~>"
|
102
96
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
97
|
+
version: '4.0'
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: 4.0.1
|
104
101
|
type: :development
|
105
102
|
prerelease: false
|
106
103
|
version_requirements: !ruby/object:Gem::Requirement
|
107
104
|
requirements:
|
108
105
|
- - "~>"
|
109
106
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
107
|
+
version: '4.0'
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 4.0.1
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: rspec
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '2.14'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '2.14'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: rspec-longrun
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '0
|
131
|
+
version: '1.0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '0
|
138
|
+
version: '1.0'
|
139
139
|
description: NMatrix is a linear algebra library for Ruby, written mostly in C and
|
140
140
|
C++.
|
141
141
|
email:
|
@@ -145,48 +145,31 @@ extensions:
|
|
145
145
|
- ext/nmatrix/extconf.rb
|
146
146
|
extra_rdoc_files: []
|
147
147
|
files:
|
148
|
-
- ".gitignore"
|
149
|
-
- ".rspec"
|
150
|
-
- ".travis.yml"
|
151
|
-
- CONTRIBUTING.md
|
152
|
-
- Gemfile
|
153
|
-
- History.txt
|
154
|
-
- LICENSE.txt
|
155
|
-
- Manifest.txt
|
156
|
-
- README.rdoc
|
157
|
-
- Rakefile
|
158
148
|
- ext/nmatrix/binary_format.txt
|
159
149
|
- ext/nmatrix/data/complex.h
|
160
150
|
- ext/nmatrix/data/data.cpp
|
161
151
|
- ext/nmatrix/data/data.h
|
162
152
|
- ext/nmatrix/data/meta.h
|
163
|
-
- ext/nmatrix/data/rational.h
|
164
153
|
- ext/nmatrix/data/ruby_object.h
|
165
154
|
- ext/nmatrix/extconf.rb
|
166
155
|
- ext/nmatrix/math.cpp
|
167
156
|
- ext/nmatrix/math/asum.h
|
168
|
-
- ext/nmatrix/math/
|
157
|
+
- ext/nmatrix/math/cblas_enums.h
|
158
|
+
- ext/nmatrix/math/cblas_templates_core.h
|
169
159
|
- ext/nmatrix/math/gemm.h
|
170
160
|
- ext/nmatrix/math/gemv.h
|
171
|
-
- ext/nmatrix/math/ger.h
|
172
|
-
- ext/nmatrix/math/gesdd.h
|
173
|
-
- ext/nmatrix/math/gesvd.h
|
174
|
-
- ext/nmatrix/math/getf2.h
|
175
161
|
- ext/nmatrix/math/getrf.h
|
176
|
-
- ext/nmatrix/math/getri.h
|
177
162
|
- ext/nmatrix/math/getrs.h
|
178
163
|
- ext/nmatrix/math/imax.h
|
179
|
-
- ext/nmatrix/math/inc.h
|
180
164
|
- ext/nmatrix/math/laswp.h
|
181
165
|
- ext/nmatrix/math/long_dtype.h
|
182
166
|
- ext/nmatrix/math/math.h
|
183
167
|
- ext/nmatrix/math/nrm2.h
|
184
|
-
- ext/nmatrix/math/potrs.h
|
185
168
|
- ext/nmatrix/math/rot.h
|
186
169
|
- ext/nmatrix/math/rotg.h
|
187
170
|
- ext/nmatrix/math/scal.h
|
188
|
-
- ext/nmatrix/math/swap.h
|
189
171
|
- ext/nmatrix/math/trsm.h
|
172
|
+
- ext/nmatrix/math/util.h
|
190
173
|
- ext/nmatrix/nm_memory.h
|
191
174
|
- ext/nmatrix/nmatrix.cpp
|
192
175
|
- ext/nmatrix/nmatrix.h
|
@@ -228,7 +211,8 @@ files:
|
|
228
211
|
- lib/nmatrix/io/mat5_reader.rb
|
229
212
|
- lib/nmatrix/io/mat_reader.rb
|
230
213
|
- lib/nmatrix/io/point_cloud.rb
|
231
|
-
- lib/nmatrix/
|
214
|
+
- lib/nmatrix/lapack_core.rb
|
215
|
+
- lib/nmatrix/lapack_plugin.rb
|
232
216
|
- lib/nmatrix/math.rb
|
233
217
|
- lib/nmatrix/monkeys.rb
|
234
218
|
- lib/nmatrix/nmatrix.rb
|
@@ -236,9 +220,6 @@ files:
|
|
236
220
|
- lib/nmatrix/shortcuts.rb
|
237
221
|
- lib/nmatrix/version.rb
|
238
222
|
- lib/nmatrix/yale_functions.rb
|
239
|
-
- nmatrix.gemspec
|
240
|
-
- scripts/mac-brew-gcc.sh
|
241
|
-
- scripts/mac-mavericks-brew-gcc.sh
|
242
223
|
- spec/00_nmatrix_spec.rb
|
243
224
|
- spec/01_enum_spec.rb
|
244
225
|
- spec/02_slice_spec.rb
|
@@ -253,7 +234,7 @@ files:
|
|
253
234
|
- spec/io/harwell_boeing_spec.rb
|
254
235
|
- spec/io/test.rua
|
255
236
|
- spec/io_spec.rb
|
256
|
-
- spec/
|
237
|
+
- spec/lapack_core_spec.rb
|
257
238
|
- spec/leakcheck.rb
|
258
239
|
- spec/math_spec.rb
|
259
240
|
- spec/nmatrix_yale_resize_test_associations.yaml
|
@@ -278,10 +259,12 @@ post_install_message: |
|
|
278
259
|
with GCC 4.6+. We are happy to accept contributions
|
279
260
|
which improve the portability of this project.
|
280
261
|
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
262
|
+
If you are upgrading from NMatrix 0.1.0 and rely on
|
263
|
+
ATLAS features, please check the README.
|
264
|
+
|
265
|
+
Faster matrix calculations and more advanced linear
|
266
|
+
algebra features are available by installing either
|
267
|
+
the nmatrix-atlas or nmatrix-lapacke plugins.
|
285
268
|
|
286
269
|
More explicit instructions for NMatrix and SciRuby should
|
287
270
|
be available on the SciRuby website, sciruby.com, or
|
@@ -306,7 +289,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
306
289
|
version: '0'
|
307
290
|
requirements: []
|
308
291
|
rubyforge_project:
|
309
|
-
rubygems_version: 2.
|
292
|
+
rubygems_version: 2.4.5
|
310
293
|
signing_key:
|
311
294
|
specification_version: 4
|
312
295
|
summary: NMatrix is a linear algebra library for Ruby
|
@@ -315,26 +298,16 @@ test_files:
|
|
315
298
|
- spec/01_enum_spec.rb
|
316
299
|
- spec/02_slice_spec.rb
|
317
300
|
- spec/03_nmatrix_monkeys_spec.rb
|
318
|
-
- spec/2x2_dense_double.mat
|
319
|
-
- spec/4x4_sparse.mat
|
320
|
-
- spec/4x5_dense.mat
|
321
301
|
- spec/blas_spec.rb
|
322
302
|
- spec/elementwise_spec.rb
|
323
303
|
- spec/homogeneous_spec.rb
|
324
304
|
- spec/io/fortran_format_spec.rb
|
325
305
|
- spec/io/harwell_boeing_spec.rb
|
326
|
-
- spec/io/test.rua
|
327
306
|
- spec/io_spec.rb
|
328
|
-
- spec/
|
329
|
-
- spec/leakcheck.rb
|
307
|
+
- spec/lapack_core_spec.rb
|
330
308
|
- spec/math_spec.rb
|
331
|
-
- spec/nmatrix_yale_resize_test_associations.yaml
|
332
309
|
- spec/nmatrix_yale_spec.rb
|
333
|
-
- spec/rspec_monkeys.rb
|
334
310
|
- spec/rspec_spec.rb
|
335
311
|
- spec/shortcuts_spec.rb
|
336
312
|
- spec/slice_set_spec.rb
|
337
|
-
- spec/spec_helper.rb
|
338
313
|
- spec/stat_spec.rb
|
339
|
-
- spec/test.pcd
|
340
|
-
- spec/utm5940.mtx
|
data/.gitignore
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
.idea
|
2
|
-
Gemfile.lock
|
3
|
-
ext/nmatrix/dense/daxpy.c
|
4
|
-
ext/nmatrix/dense/dgeco.c
|
5
|
-
ext/nmatrix/dense/dgefa.c
|
6
|
-
ext/nmatrix/dense/dgemm.c
|
7
|
-
ext/nmatrix/dense/dgemv.c
|
8
|
-
ext/nmatrix/dense/dscal.c
|
9
|
-
ext/nmatrix/dense/idamax.c
|
10
|
-
ext/nmatrix/dense/467.c
|
11
|
-
ext/nmatrix/dense/*.f
|
12
|
-
ext/nmatrix/dense/transpose.txt
|
13
|
-
ext/nmatrix/yale/aicm.tex
|
14
|
-
tmp/
|
15
|
-
test.c
|
16
|
-
spec/*.mtx
|
17
|
-
*.so
|
18
|
-
*.bundle
|
19
|
-
*.bundle.dSYM
|
20
|
-
*.log
|
21
|
-
/tags
|
22
|
-
*.gem
|
23
|
-
html/
|
24
|
-
doc/
|
25
|
-
docs/
|
26
|
-
pkg/
|
27
|
-
.autotest
|
data/.rspec
DELETED
data/.travis.yml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache: bundler
|
3
|
-
env:
|
4
|
-
- CPLUS_INCLUDE_PATH=/usr/include/atlas C_INCLUDE_PATH=/usr/include/atlas
|
5
|
-
rvm:
|
6
|
-
- "1.9.3"
|
7
|
-
- "2.0.0"
|
8
|
-
- "2.1.0"
|
9
|
-
- "2.1.1"
|
10
|
-
before_install:
|
11
|
-
- sudo apt-get update -qq
|
12
|
-
- sudo apt-get install -qq libatlas-base-dev
|
13
|
-
script: bundle exec rake compile && bundle exec rake spec
|
14
|
-
notifications:
|
15
|
-
irc: "chat.freenode.net#sciruby"
|
data/CONTRIBUTING.md
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
NMatrix is part of SciRuby, a collaborative effort to bring scientific computation to Ruby. If you want to help, please
|
2
|
-
do so!
|
3
|
-
|
4
|
-
This guide covers ways in which you can contribute to the development of SciRuby and, more specifically, NMatrix.
|
5
|
-
|
6
|
-
## How to help
|
7
|
-
|
8
|
-
There are various ways to help NMatrix: bug reports, coding and documentation. All of them are important.
|
9
|
-
|
10
|
-
First, you can help implement new features or bug fixes. To do that, visit our
|
11
|
-
[roadmap](https://github.com/SciRuby/nmatrix/wiki/Roadmap) or our [issue tracker][2]. If you find something that you
|
12
|
-
want to work on, post it in the issue or on our [mailing list][1].
|
13
|
-
|
14
|
-
You need to send tests together with your code. No exceptions. You can ask for our opinion, but we won't accept patches
|
15
|
-
without good spec coverage.
|
16
|
-
|
17
|
-
We use RSpec for testing. If you aren't familiar with it, there's a good
|
18
|
-
[guide to better specs with RSpec](http://betterspecs.org/) that shows a bit of the syntax and how to use it properly.
|
19
|
-
However, the best resource is probably the specs that already exist -- so just read them.
|
20
|
-
|
21
|
-
And don't forget to write documentation (we use RDoc). It's necessary to allow others to know what's available in the
|
22
|
-
library. There's a section on it later in this guide.
|
23
|
-
|
24
|
-
We only accept bug reports and pull requests in GitHub. You'll need to create a new (free) account if you don't have one
|
25
|
-
already. To learn how to create a pull request, please see
|
26
|
-
[this guide on collaborating](https://help.github.com/categories/63/articles).
|
27
|
-
|
28
|
-
If you have a question about how to use NMatrix or SciRuby in general or a feature/change in mind, please ask the
|
29
|
-
[sciruby-dev mailing list][1].
|
30
|
-
|
31
|
-
Thanks!
|
32
|
-
|
33
|
-
## Coding
|
34
|
-
|
35
|
-
To start helping with the code, you need to have all the dependencies in place:
|
36
|
-
|
37
|
-
- ATLAS and LAPACK
|
38
|
-
- GCC 4.3+
|
39
|
-
- git
|
40
|
-
- Ruby 1.9+
|
41
|
-
- `bundler` gem
|
42
|
-
|
43
|
-
Now, you need to clone the git repository:
|
44
|
-
|
45
|
-
```bash
|
46
|
-
$ git clone git://github.com/SciRuby/nmatrix.git
|
47
|
-
$ cd nmatrix
|
48
|
-
$ bundle install
|
49
|
-
$ rake compile
|
50
|
-
$ rake spec
|
51
|
-
```
|
52
|
-
|
53
|
-
This will install all dependencies, compile the extension and run the specs.
|
54
|
-
|
55
|
-
If everything's fine until now, you can create a new branch to work on your feature:
|
56
|
-
|
57
|
-
```bash
|
58
|
-
$ git branch new-feature
|
59
|
-
$ git checkout new-feature
|
60
|
-
```
|
61
|
-
|
62
|
-
Before commiting any code, please read our
|
63
|
-
[Contributor Agreement](http://github.com/SciRuby/sciruby/wiki/Contributor-Agreement).
|
64
|
-
|
65
|
-
## Documentation
|
66
|
-
|
67
|
-
There are two ways in which NMatrix is being documented: guides and comments, which are converted with RDoc into the
|
68
|
-
documentation seen in [sciruby.com](http://sciruby.com).
|
69
|
-
|
70
|
-
If you want to write a guide on how to use NMatrix to solve some problem or simply showing how to use one of its
|
71
|
-
features, write it as a wiki page and send an e-mail on the [mailing list][1]. We're working to improve this process.
|
72
|
-
|
73
|
-
If you aren't familiar with RDoc syntax,
|
74
|
-
[this is the official documentation](http://docs.seattlerb.org/rdoc/RDoc/Markup.html).
|
75
|
-
|
76
|
-
## Conclusion
|
77
|
-
|
78
|
-
This guide was heavily based on the
|
79
|
-
[Contributing to Ruby on Rails guide](http://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html).
|
80
|
-
|
81
|
-
[1]: https://groups.google.com/forum/?fromgroups#!forum/sciruby-dev
|
82
|
-
[2]: https://github.com/sciruby/nmatrix/issues?sort=created&state=open
|
data/Gemfile
DELETED
data/History.txt
DELETED
@@ -1,677 +0,0 @@
|
|
1
|
-
=== 0.0.1 / 2012-04-10
|
2
|
-
|
3
|
-
* 1 major enhancement
|
4
|
-
|
5
|
-
* Initial alpha release
|
6
|
-
|
7
|
-
=== 0.0.2 / 2012-09-21
|
8
|
-
|
9
|
-
* 15 major enhancements
|
10
|
-
|
11
|
-
* Second alpha release
|
12
|
-
|
13
|
-
* Rewrote NMatrix in C++0x and C++11 using templates, namespaces;
|
14
|
-
removed Ruby generators and CAST parser
|
15
|
-
|
16
|
-
* Added preliminary C API
|
17
|
-
|
18
|
-
* Slicing and referencing support for dense and list matrices (by
|
19
|
-
@flipback)
|
20
|
-
|
21
|
-
* BLAS level-3 xTRSM algorithm added for rationals and BLAS types
|
22
|
-
|
23
|
-
* LAPACK support added, including partially working xGETRF
|
24
|
-
subroutine
|
25
|
-
|
26
|
-
* Element-wise comparisons now return byte-matrices
|
27
|
-
|
28
|
-
* Element-wise operations on list matrices may alter the default
|
29
|
-
value of the return matrix
|
30
|
-
|
31
|
-
* Element-wise division behaves like Ruby division
|
32
|
-
|
33
|
-
* Improved MATLAB .MAT v5 file reading
|
34
|
-
|
35
|
-
* clang support
|
36
|
-
|
37
|
-
* `==` operator now used for matrix equality, `=~` and `!~` for
|
38
|
-
element-wise comparisons
|
39
|
-
|
40
|
-
* Dense `each` returns an Enumerator when called without a block
|
41
|
-
|
42
|
-
* Sped up list storage item deletion, fixed bugs
|
43
|
-
|
44
|
-
* List matrix-to-hash conversion with `to_h`
|
45
|
-
|
46
|
-
* Note: Element-wise list operations current disabled
|
47
|
-
|
48
|
-
=== 0.0.3 / 2013-01-18
|
49
|
-
|
50
|
-
* 8 major enhancements
|
51
|
-
|
52
|
-
* Matrix-scalar operations (dense, list)
|
53
|
-
|
54
|
-
* Shortcuts for matrix creation (by @agarie)
|
55
|
-
|
56
|
-
* Access to most ATLAS-implemented LAPACK functions for those
|
57
|
-
with ATLAS' CLAPACK interface: xGETRF, xGETRI, xGETRS, xGESV,
|
58
|
-
xPOTRF, xPOTRI, xPOTRS, xPOSV, xLASWP, xSCAL, xLAUUM
|
59
|
-
|
60
|
-
* Access to additional ATLAS-implemented BLAS functions: xTRMM,
|
61
|
-
xSYRK, xHERK, xROT, xROTG
|
62
|
-
|
63
|
-
* Non-ATLAS versions of CLAPACK functions: xLASWP, xSCAL, xLAUUM,
|
64
|
-
xROT
|
65
|
-
|
66
|
-
* Matrix inversion (LU and Cholesky; requires CLAPACK)
|
67
|
-
|
68
|
-
* LU factoring with and without CLAPACK
|
69
|
-
|
70
|
-
* Native matrix I/O for dense (supporting upper, lower, hermitian,
|
71
|
-
skew, symmetric, and general) and yale (general only); excludes
|
72
|
-
Ruby objects currently
|
73
|
-
|
74
|
-
* 2 bug fixes:
|
75
|
-
|
76
|
-
* Yale-to-list casting
|
77
|
-
|
78
|
-
* Now requires packable-1.3.5 or higher, fixing a problem with
|
79
|
-
MATLAB .mat v5 file I/O (specific to doubles)
|
80
|
-
|
81
|
-
=== 0.0.4 / 2013-05-17
|
82
|
-
|
83
|
-
* 3 major enhancements
|
84
|
-
|
85
|
-
* Added a more user-friendly interface for cblas_rot in the form of
|
86
|
-
NMatrix::BLAS::rot
|
87
|
-
|
88
|
-
* Added to_hash for Yale matrices
|
89
|
-
|
90
|
-
* Improved source code documentation (by @agarie)
|
91
|
-
|
92
|
-
* 4 minor enhancements
|
93
|
-
|
94
|
-
* Spec clean-up (by @masaomi)
|
95
|
-
|
96
|
-
* Made it possible to request a different itype internally for Yale
|
97
|
-
matrices
|
98
|
-
|
99
|
-
* Improved space usage of Yale slice-by-copying, which was
|
100
|
-
requesting more space than needed
|
101
|
-
|
102
|
-
* Improved compile-time Mac OS X and Ubuntu library searching
|
103
|
-
|
104
|
-
* 8 bug fixes:
|
105
|
-
|
106
|
-
* NMatrix::BLAS::gemv segfaults
|
107
|
-
|
108
|
-
* Fixed Yale matrix slice-by-copy write error where default itypes
|
109
|
-
(which are based on shape) differ, and a separate problem where
|
110
|
-
incorrect IJA and A entries were written.
|
111
|
-
|
112
|
-
* NVector-scalar operations and NVector-NVector element-wise
|
113
|
-
options now return an NVector instead of an NMatrix
|
114
|
-
|
115
|
-
* Addressed problems with segmentation faults during iteration (by
|
116
|
-
@cjfuller)
|
117
|
-
|
118
|
-
* Addressed Ubuntu/Debian installation problems (incompatibility
|
119
|
-
with apt-supplied atlas)
|
120
|
-
|
121
|
-
* Fixed transpose behavior following slice-by-reference (by
|
122
|
-
@cjfuller)
|
123
|
-
|
124
|
-
* Fixed gem install command in Rakefile (by @jpmckinney)
|
125
|
-
|
126
|
-
* Fixed Spanish language compile issue (by @imcsk8 and @agarie)
|
127
|
-
|
128
|
-
=== 0.0.5 / 2013-07-09
|
129
|
-
|
130
|
-
* 4 major enhancements
|
131
|
-
|
132
|
-
* NVector orientation is now controlled by its shape, not by the
|
133
|
-
@orientation property
|
134
|
-
|
135
|
-
* NVector default orientation is now a row vector rather than a
|
136
|
-
column, as this is more efficient for Yale storage
|
137
|
-
|
138
|
-
* NVector objects may now be created with dtypes other than dense
|
139
|
-
|
140
|
-
* Exposure of additional ATLAS-implemented BLAS functions,
|
141
|
-
including native rational and Ruby object support, for xANUM (sum
|
142
|
-
of the absolute values of a vector) and xNRM2 (2-norm of a
|
143
|
-
vector); and Ruby helper functions BLAS::anum and BLAS::nrm2
|
144
|
-
which should do more careful argument sanity checking
|
145
|
-
|
146
|
-
* 9 minor enhancements
|
147
|
-
|
148
|
-
* Added #yale_vector_insert to NMatrix::YaleFunctions, to speed up
|
149
|
-
insertion of multiple items into a Yale matrix
|
150
|
-
|
151
|
-
* Added #yale_nd_row, #yale_nd_row_as_hash, #yale_nd_row_as_array,
|
152
|
-
#yale_nd_row_as_set, #yale_nd_row_as_sorted_set, #yale_row,
|
153
|
-
#yale_row_as_hash, #yale_row_as_array, #yale_row_as_set,
|
154
|
-
#yale_row_as_sorted_set, #yale_nd_row_size to
|
155
|
-
NMatrix::YaleFunctions in order to speed up getting multiple
|
156
|
-
items from some row of a Yale matrix
|
157
|
-
|
158
|
-
* Improved #yale_ija, #yale_a, #yale_d by allowing an optional
|
159
|
-
index argument, which returns a single array value instead of
|
160
|
-
copying and returning the entire array
|
161
|
-
|
162
|
-
* Improved sorting algorithm for Yale matrix multiplication;
|
163
|
-
instead of selection sort, now uses quicksort; and subs in
|
164
|
-
insertion sort for small partitions
|
165
|
-
|
166
|
-
* Slicing a single row or column now returns an NVector instead
|
167
|
-
of an NMatrix (does not yet work for n-dimensional matrices)
|
168
|
-
|
169
|
-
* Improved function documentation for NVector and NMatrix
|
170
|
-
|
171
|
-
* Added #min, #max, #to_a, #shuffle, #shuffle!, #absolute_sum,
|
172
|
-
#norm2 functions to NVector
|
173
|
-
|
174
|
-
* Aliased missing dimension of NVector#each_stored_with_indices to
|
175
|
-
#each_stored_with_index, which only yields a value and i or j
|
176
|
-
(not both i and j) depending on the vector orientation
|
177
|
-
|
178
|
-
* Added #each_row, #each_column to NMatrix
|
179
|
-
|
180
|
-
* 5 bug fixes:
|
181
|
-
|
182
|
-
* Dense iterators now return self (an NMatrix) in order to be
|
183
|
-
consistent with Ruby Array behavior (by @cjfuller)
|
184
|
-
|
185
|
-
* Fixed Yale resize problem (by @v0dro)
|
186
|
-
|
187
|
-
* Fixed Yale nx1 times 1xn multiplication problem
|
188
|
-
|
189
|
-
* Fixed Yale sorting-following-multiplication problem
|
190
|
-
|
191
|
-
* NMatrix::read() now raises an exception when asked to read a file
|
192
|
-
that does not exist
|
193
|
-
|
194
|
-
=== 0.0.6 / 2013-08-09
|
195
|
-
|
196
|
-
* 8 major enhancements:
|
197
|
-
|
198
|
-
* Refactored iteration, so that each storage type now has each of:
|
199
|
-
#each, #each_with_indices, #each_stored_with_indices
|
200
|
-
|
201
|
-
* Added element-wise power function (**) for dense matrices (by
|
202
|
-
@agarie)
|
203
|
-
|
204
|
-
* Dramatically improved matrix element-wise and scalar functions so
|
205
|
-
C++ templates are no longer necessary; element-wise operations
|
206
|
-
may now be written in protected Ruby methods that look like
|
207
|
-
NMatrix#__list_elementwise_op__ and NMatrix#__list_scalar_op__
|
208
|
-
|
209
|
-
* Element-wise and scalar operations that might return a true or
|
210
|
-
false now return Ruby matrices
|
211
|
-
|
212
|
-
* Yale element-wise and scalar operations have been added
|
213
|
-
|
214
|
-
* Yale is now allowed to have a non-zero default (specifically to
|
215
|
-
permit true-false matrices and nil sparse bases)
|
216
|
-
|
217
|
-
* Dramatically improved NMatrix#cast to allow for hashed options
|
218
|
-
including a :default for list and yale casts
|
219
|
-
|
220
|
-
* Dramatically improved speed of compilation
|
221
|
-
|
222
|
-
* 14 minor enhancements:
|
223
|
-
|
224
|
-
* Improved documentation for exposed BLAS and LAPACK functions
|
225
|
-
|
226
|
-
* Allowed for use of BLAS::rot without cloning x and y (in-place
|
227
|
-
plane rotation); removed unnecessary test of unfriendly version
|
228
|
-
|
229
|
-
* Added more user-friendly cblas_xrotg implementation: BLAS::rotg
|
230
|
-
|
231
|
-
* Moved NMatrix::YaleFunctions::yale_vector_insert to
|
232
|
-
NMatrix#__yale_vector_set__, which is more consistent with
|
233
|
-
behavior
|
234
|
-
|
235
|
-
* Changed notations for protected stype-specific functions, which
|
236
|
-
now look like __stype_method_name__, e.g., __yale_vector_set__
|
237
|
-
|
238
|
-
* Added NMatrix#__list_default_value__ protected function to get
|
239
|
-
the initial (sparse) value for list matrices
|
240
|
-
|
241
|
-
* Changed behavior and names of NMatrix::YaleFunctions methods
|
242
|
-
which get column indices and cell contents by row, so that they
|
243
|
-
now expect the :keys option (like Hash#keys) instead of :array,
|
244
|
-
which doesn't make sense; name changes are as follows:
|
245
|
-
yale_row_as_sorted_set -> yale_ja_d_keys_sorted_set_at
|
246
|
-
yale_row_as_set -> yale_ja_d_keys_set_at
|
247
|
-
yale_row_as_array -> yale_ja_d_keys_at
|
248
|
-
yale_nd_row_as_sorted_set -> yale_ja_sorted_set_at
|
249
|
-
yale_nd_row_as_set -> yale_ja_set_at
|
250
|
-
yale_nd_row_as_array -> yale_ja_at
|
251
|
-
Aliases are included but will be removed without notice.
|
252
|
-
|
253
|
-
* Added NVector#sorted_indices and #binned_sorted_indices for use
|
254
|
-
when running k-nearest neighbor searches on a distance matrix
|
255
|
-
|
256
|
-
* Added NVector::logspace shortcut function (analogous to
|
257
|
-
NVector::linspace)
|
258
|
-
|
259
|
-
* Cleaned up code by removing monkey patches that we stopped using
|
260
|
-
circa v0.0.2 (Array#min, Array#max, String#constantize,
|
261
|
-
String#camelize, String#underscore)
|
262
|
-
|
263
|
-
* Re-enabled element-wise mod (%) method
|
264
|
-
|
265
|
-
* Added NMatrix::guess_dtype class method, which allows you to
|
266
|
-
figure out what dtype (roughly) should be used for any given
|
267
|
-
Ruby value (e.g., 3)
|
268
|
-
|
269
|
-
* String and nil objects in NMatrix cells are no longer outlawed
|
270
|
-
(but are not supported), provided they are of the :object dtype
|
271
|
-
|
272
|
-
* NMatrix#diag shortcut for specifying sparse matrix with a user-
|
273
|
-
specified diagonal array (by @ryanmt)
|
274
|
-
|
275
|
-
* 3 bug fixes:
|
276
|
-
|
277
|
-
* Corrected BLAS::rot bounds checking on optional n argument
|
278
|
-
|
279
|
-
* Removed BLAS::rotg and BLAS::nrm2 code for rational numbers, as
|
280
|
-
both involve a square root
|
281
|
-
|
282
|
-
* Repaired list matrix element-wise functions
|
283
|
-
|
284
|
-
=== 0.0.7 / 2013-08-22
|
285
|
-
|
286
|
-
* 6 major enhancements:
|
287
|
-
|
288
|
-
* Eliminated NVector in favor of NMatrix objects with
|
289
|
-
#effective_dim smaller than #dim; added NVector-like
|
290
|
-
functionality to NMatrix, sometimes with #respond_to? dependent
|
291
|
-
upon matrix dimensions; allowed for NVector.new to continue
|
292
|
-
to function as before, but now returns an NMatrix instead
|
293
|
-
|
294
|
-
* Began major re-factoring of headers for math.cpp
|
295
|
-
|
296
|
-
* Added two singular value decomposition functions for dense
|
297
|
-
NMatrix objects, #gesvd and #gesdd, for floating point and
|
298
|
-
complex dtypes
|
299
|
-
|
300
|
-
* Added additional slicing shorthand, which uses hashes (e.g.,
|
301
|
-
n[0=>3,2] for n[0..3,2]), which may eventually allow users to use
|
302
|
-
n[0:3,2] notation instead (needs Ruby core patch)
|
303
|
-
|
304
|
-
* #[] and #[]= calls no longer need index on those matrix shape
|
305
|
-
elements which are equal to 1 (e.g., vectors)
|
306
|
-
|
307
|
-
* Yale slicing-by-reference has been added
|
308
|
-
|
309
|
-
* 18 minor enhancements:
|
310
|
-
|
311
|
-
* Added user-friendly NMatrix::LAPACK::laswp method
|
312
|
-
|
313
|
-
* Added NMatrix#permute_columns! and NMatrix#permute_columns
|
314
|
-
|
315
|
-
* Added NMatrix#abs to compute element-wise absolute values, and
|
316
|
-
#abs_dtype to determine the dtype returned by a call to #abs on a
|
317
|
-
given matrix (needed for RSpec)
|
318
|
-
|
319
|
-
* Added NMatrix#size to compute the total number of cells in an
|
320
|
-
NMatrix object (solely accounting for the shape, not sparsity)
|
321
|
-
|
322
|
-
* Added RSpec monkey patches for #be_within to work with NMatrix
|
323
|
-
objects; usable by requiring "nmatrix/rspec"
|
324
|
-
|
325
|
-
* Added experimental NMatrix::LAPACK::lapack_gesvd function (which
|
326
|
-
does NOT depend upon CLAPACK) (by @ryanmt and @mohawkjohn)
|
327
|
-
|
328
|
-
* Added experimental non-LAPACK-dependent function
|
329
|
-
NMatrix::LAPACK::lapack_gesdd
|
330
|
-
|
331
|
-
* Added NMatrix#supershape method for getting the shape of a
|
332
|
-
slice's parent or other ancestor, which may be useful for calling
|
333
|
-
ATLAS and LAPACK functions on slices
|
334
|
-
|
335
|
-
* Aliased NMatrix[] to function like N[] shortcut for matrix
|
336
|
-
creation (by @agarie)
|
337
|
-
|
338
|
-
* Added #layer for matrices with dimension greater than two
|
339
|
-
(corresponds to #row and #column)
|
340
|
-
|
341
|
-
* Added #rank and #each_rank generics for #row/#column/#layer and
|
342
|
-
#each_row/#each_column/#each_layer respectively (#each_rank
|
343
|
-
replaces #each_along_dim)
|
344
|
-
|
345
|
-
* Replaced #reduce_along_dim with #inject_rank
|
346
|
-
|
347
|
-
* NMatrix#to_a now works for up to two dimensional matrices; and
|
348
|
-
returns a flattened array for single-row matrices
|
349
|
-
|
350
|
-
* NMatrix#to_flat_a now returns a flattened array of all entries
|
351
|
-
|
352
|
-
* Re-organized NMatrix Ruby sources into multiple files: math.rb
|
353
|
-
for instance methods which are mathematical in nature or are
|
354
|
-
essentially ATLAS/LAPACK/BLAS calls, enumerate.rb for methods
|
355
|
-
involving enumeration; and existing shortcuts.rb for convenience
|
356
|
-
functions and shortcut constructors, and nmatrix.rb for core
|
357
|
-
functionality (#inspect, #to_h, #to_a, #to_s, #pretty_print,
|
358
|
-
and so on)
|
359
|
-
|
360
|
-
* Improved #pretty_print, which now also prints layers (the third
|
361
|
-
dimension in a 3D matrix)
|
362
|
-
|
363
|
-
* Re-factored some of dense slicing to remove some redundant code
|
364
|
-
|
365
|
-
* Added shortcut functions #list?, #dense?, #yale? for quickly
|
366
|
-
testing matrix storage type
|
367
|
-
|
368
|
-
* 5 bug fixes:
|
369
|
-
|
370
|
-
* Fixed compilation problem involving <typeinfo> and <vector> STL
|
371
|
-
headers
|
372
|
-
|
373
|
-
* Fixed NMatrix#inverse problem with non-square matrices
|
374
|
-
|
375
|
-
* Fixed invalid read problem detected by Valgrind for
|
376
|
-
Yale element-wise subtraction in spec
|
377
|
-
|
378
|
-
* Fixed conversion from Ruby object to Complex and Rational
|
379
|
-
|
380
|
-
* Fixed memory leak in slicing
|
381
|
-
|
382
|
-
=== 0.0.8 / 2013-08-23
|
383
|
-
|
384
|
-
* 2 bug fixes:
|
385
|
-
|
386
|
-
* Fixed Ubuntu compilation bug caused by math header file
|
387
|
-
refactoring
|
388
|
-
|
389
|
-
* Fixed pry version error which manifests on some systems but not
|
390
|
-
others
|
391
|
-
|
392
|
-
=== 0.0.9 / 2013-09-18
|
393
|
-
|
394
|
-
* 5 major enhancements:
|
395
|
-
|
396
|
-
* Re-factored NMatrix constructor
|
397
|
-
|
398
|
-
* Improved usability of NMatrix shortcut constructor options
|
399
|
-
(e.g., #zeros, #ones, #random, etc.) using new NMatrix
|
400
|
-
constructor
|
401
|
-
|
402
|
-
* Left-assignment of slices for all matrix storage types (uses a
|
403
|
-
dense cast, or accepts an array or single value)
|
404
|
-
|
405
|
-
* Re-factored Yale into a more object-oriented and less confusing
|
406
|
-
set of header files
|
407
|
-
|
408
|
-
* Enabled Travis CI (by @cjfuller)
|
409
|
-
|
410
|
-
* 4 minor enhancements:
|
411
|
-
|
412
|
-
* Renamed some specs in order to change their test order, so that
|
413
|
-
critical tests fail first (particularly in the case of
|
414
|
-
segmentation faults)
|
415
|
-
|
416
|
-
* Default dtype is now :object when no initial values are
|
417
|
-
specified
|
418
|
-
|
419
|
-
* Deprecated NVector#initialize and a number of other unnecessary
|
420
|
-
NVector functionality
|
421
|
-
|
422
|
-
* Made Ubuntu compilation significantly easier (by @cjfuller)
|
423
|
-
|
424
|
-
* 2 bug fixes:
|
425
|
-
|
426
|
-
* nil values in matrices are now pretty printed as "nil"
|
427
|
-
|
428
|
-
* Casting from dense to Yale now properly accepts the default
|
429
|
-
value option
|
430
|
-
|
431
|
-
=== 0.1.0.rc1 / 2013-12-28
|
432
|
-
|
433
|
-
* 4 major enhancements:
|
434
|
-
|
435
|
-
* Improved garbage collection strategy for partial object creation
|
436
|
-
(i.e., when VALUEs are allocated but not registered right away),
|
437
|
-
which in addition to fixing numerous bugs should prevent some new
|
438
|
-
bugs from arising in the future (by @cjfuller)
|
439
|
-
|
440
|
-
* Implemented list storage transpose
|
441
|
-
|
442
|
-
* Implemented generic n-dimensional transpose
|
443
|
-
|
444
|
-
* Implemented == comparison between differing matrix stypes
|
445
|
-
|
446
|
-
* 9 minor enhancements:
|
447
|
-
|
448
|
-
* User-friendly #gesvd and #gesdd updates (by @ryanmt)
|
449
|
-
|
450
|
-
* Added experimental #yale_row_key_intersection function for expert
|
451
|
-
recommendation problems
|
452
|
-
|
453
|
-
* Added additional *indgen shortcuts and changed behavior for some;
|
454
|
-
now, #cindgen for :complex64, #zindgen for :complex128, #findgen
|
455
|
-
for :float32, #dindgen for :float64, #rindgen for :rational128,
|
456
|
-
and #rbindgen for Ruby objects (which contain integers); also,
|
457
|
-
removed code repetition
|
458
|
-
|
459
|
-
* Changed #stddev to use elementwise #sqrt instead of a manual map
|
460
|
-
block (by @cjfuller)
|
461
|
-
|
462
|
-
* Added alias from MATLAB `load_mat` method to `load` for
|
463
|
-
consistency with the MatrixMarket loader
|
464
|
-
|
465
|
-
* Improved organization by moving list and yale code into storage/
|
466
|
-
subdirectories
|
467
|
-
|
468
|
-
* Added NMatrix#potrf! and NMatrix#getrf, which are instance methods
|
469
|
-
for calling CLAPACK functions (NMatrix#getrf! already existed)
|
470
|
-
|
471
|
-
* Added GCC installation instructions for Mac OS X Mavericks, and
|
472
|
-
updated the old installation instructions for Mac OS X (both
|
473
|
-
found in scripts/)
|
474
|
-
|
475
|
-
* Switched NMatrix::VERSION to work more like Rails::VERSION, with
|
476
|
-
support for MAJOR, MINOR, TINY, and PRE
|
477
|
-
|
478
|
-
* Added #concat, #hconcat, #vconcat, and #dconcat for joining
|
479
|
-
matrices together
|
480
|
-
|
481
|
-
* 16 bug fixes:
|
482
|
-
|
483
|
-
* Spec revisions for lapack_gesdd and lapack_gesvd (by @ryanmt)
|
484
|
-
|
485
|
-
* Fixed two double-free problems (by @cjfuller and @mohawkjohn)
|
486
|
-
|
487
|
-
* Fixed contiguous array marking fencepost error
|
488
|
-
|
489
|
-
* Fixed C/C++ API compatibility problem preventing rb/gsl linking
|
490
|
-
|
491
|
-
* Resolved a number of compiler warnings, including one return-type
|
492
|
-
problem that would likely have become a garbage collection error
|
493
|
-
(if it wasn't already)
|
494
|
-
|
495
|
-
* Fixed -O3 optimization problems
|
496
|
-
|
497
|
-
* Restored NMatrix#asum, #nrm2, #binned_sorted_indices,
|
498
|
-
#sorted_indices which were inadvertantly removed by NVector
|
499
|
-
deprecation; have not tested
|
500
|
-
|
501
|
-
* Experimental #yale_nd_row and functions which call it now checks
|
502
|
-
range of argument to prevent segfault
|
503
|
-
|
504
|
-
* Fixed :* shortcut for a full list dimension (by @cjfuller)
|
505
|
-
|
506
|
-
* Fixed list construction problem which occurred when an initial
|
507
|
-
value array was provided (by @cjfuller)
|
508
|
-
|
509
|
-
* Fixed #inject issue with list and yale matrices of two dimensions
|
510
|
-
(by @cjfuller)
|
511
|
-
|
512
|
-
* Fixed several garbage collection problems (also listed under
|
513
|
-
enhancements) (by @cjfuller)
|
514
|
-
|
515
|
-
* Updated object cleaning target in extconf.rb
|
516
|
-
|
517
|
-
* Fixed possible compilation problem on Mavericks with Xcode 5.02
|
518
|
-
|
519
|
-
* Fixed errors involving undefined symbols, unresolved symbols, and
|
520
|
-
lazy symbol binding
|
521
|
-
|
522
|
-
* Improved LAPACK and BLAS header selection for Ubuntu/Debian
|
523
|
-
systems with ATLAS (by @mvz)
|
524
|
-
|
525
|
-
=== 0.1.0.rc2 / 2014-03-12
|
526
|
-
|
527
|
-
* No major enhancements.
|
528
|
-
|
529
|
-
* 14 minor enhancements:
|
530
|
-
|
531
|
-
* Implemented negative-index slicing (by @rajatkapoor)
|
532
|
-
|
533
|
-
* Added reader for Point Cloud Library's PCD format
|
534
|
-
|
535
|
-
* Added Ruby 2.1 support (including Travis CI testing)
|
536
|
-
|
537
|
-
* Implemented LAPACK-independent exact inverse calculation for
|
538
|
-
dense matrices of size 2x2 and 3x3, as well as
|
539
|
-
|
540
|
-
* Added NMatrix::has_clapack? method to determine whether CLAPACK
|
541
|
-
support has been compiled in
|
542
|
-
|
543
|
-
* Improved conformance of specs to RSpec best practices (by
|
544
|
-
@duggiefresh)
|
545
|
-
|
546
|
-
* Travis CI now updates the IRC channel when a check passes (by
|
547
|
-
@agarie)
|
548
|
-
|
549
|
-
* Added NMatrix#data_pointer, which returns the memory address of
|
550
|
-
the stored elements in a matrix (generally for use with FFI and
|
551
|
-
other libraries that need pointers)
|
552
|
-
|
553
|
-
* Made NMatrix#clone_structure a public method (was protected)
|
554
|
-
|
555
|
-
* Added :scale option for NMatrix::random to handle non-floating
|
556
|
-
point forms
|
557
|
-
|
558
|
-
* Added complex support to NMatrix::random
|
559
|
-
|
560
|
-
* Aliased NMatrix::random to NMatrix::rand
|
561
|
-
|
562
|
-
* Added NMatrix#reshape! for in-place reshape of dense matrices (by
|
563
|
-
@rajatkapoor)
|
564
|
-
|
565
|
-
* Implemented unary negation of matrices
|
566
|
-
|
567
|
-
* 6 bug fixes:
|
568
|
-
|
569
|
-
* Fixed dot product operation on 1-dimensional matrices (by @rve
|
570
|
-
and @cjfuller)
|
571
|
-
|
572
|
-
* Fixed segfault on 1-dimensional matrix transpose (by @cjfuller)
|
573
|
-
|
574
|
-
* Fixed compile error with Ruby 2.1 (by @diminish7)
|
575
|
-
|
576
|
-
* Fixed regression which wasn't causing any problems but was
|
577
|
-
counter to design: stride was declared prior to data storage for
|
578
|
-
dense matrix storage
|
579
|
-
|
580
|
-
* Fixed Rakefile problem which was causing specs to run twice in a
|
581
|
-
row with each call to rake spec
|
582
|
-
|
583
|
-
* NMatrix::random now raises an exception when rational matrices
|
584
|
-
are requested
|
585
|
-
|
586
|
-
=== 0.1.0.rc3 / 2014-03-27
|
587
|
-
|
588
|
-
* No major enhancements.
|
589
|
-
|
590
|
-
* 2 minor enhancements:
|
591
|
-
|
592
|
-
* Exposed NMatrix::LAPACK::geev for LAPACK's xGEEV
|
593
|
-
|
594
|
-
* Added out-of-place complex conjugate for dense and yale storage
|
595
|
-
(by @rve)
|
596
|
-
|
597
|
-
* 1 bug fixes:
|
598
|
-
|
599
|
-
* Fixed critical bug with transposing a matrix reference slice (by
|
600
|
-
@rajatkapoor)
|
601
|
-
|
602
|
-
=== 0.1.0.rc4 / 2014-07-24
|
603
|
-
|
604
|
-
* No major enhancements.
|
605
|
-
|
606
|
-
* 1 minor enhancement:
|
607
|
-
|
608
|
-
* NMatrix#floor and #ceil implemented (by @v0dro)
|
609
|
-
|
610
|
-
* 2 bug fixes:
|
611
|
-
|
612
|
-
* Disallowed out-of-bounds rank calls (by @andrewcsmith)
|
613
|
-
|
614
|
-
* Fixed rspec 3.0 conflict with rspec-longrun 1.0.1
|
615
|
-
|
616
|
-
=== 0.1.0.rc5 / 2014-08-01
|
617
|
-
|
618
|
-
* No major enhancements.
|
619
|
-
|
620
|
-
* 1 minor enhancements:
|
621
|
-
|
622
|
-
* Added optional extension for generating homogeneous
|
623
|
-
transformation matrices for rotations and translations in three
|
624
|
-
dimensions
|
625
|
-
|
626
|
-
* 3 bug fixes:
|
627
|
-
|
628
|
-
* Fixed rake install (by @duggiefresh)
|
629
|
-
|
630
|
-
* Fixed API problems which prevented NMatrix from working with
|
631
|
-
the SciRuby rb-gsl fork
|
632
|
-
|
633
|
-
* Fixed Yale #inject behavior (by @yoongkang)
|
634
|
-
|
635
|
-
=== 0.1.0 / 2014-12-11
|
636
|
-
|
637
|
-
* 3 major enhancements:
|
638
|
-
|
639
|
-
* Updated to BSD 3-clause license
|
640
|
-
|
641
|
-
* Removed Ruby 1.9.2 support; now requires Ruby 1.9.3 or
|
642
|
-
higher (by @v0dro)
|
643
|
-
|
644
|
-
* Added Gauss-Jordan elimination for calculation of
|
645
|
-
matrix inverses (by @v0dro)
|
646
|
-
|
647
|
-
* 6 minor enhancements:
|
648
|
-
|
649
|
-
* Added trace method for square matrices
|
650
|
-
|
651
|
-
* Improved Array#to_nm monkey patch so matrices and
|
652
|
-
arrays can be interconverted easily, without need for a
|
653
|
-
shape argument (by @andrewcsmith)
|
654
|
-
|
655
|
-
* Added Harwell-Boeing and Fortran matrix format parsers
|
656
|
-
(by @v0dro)
|
657
|
-
|
658
|
-
* Removed soon-to-be-deprecated autoloads and replaced
|
659
|
-
with a more robust method (by @duggiefresh)
|
660
|
-
|
661
|
-
* Updated rake install task to use Bundler's GemHelper
|
662
|
-
install task (by @duggiefresh)
|
663
|
-
|
664
|
-
* Moved packable requirement from Gemfile to gemspec
|
665
|
-
(by @andrewcsmith)
|
666
|
-
|
667
|
-
* 3 bug fixes:
|
668
|
-
|
669
|
-
* Corrected Ubuntu clapack functionality checking, which
|
670
|
-
should fix most functions which rely on the ATLAS
|
671
|
-
version of clapack
|
672
|
-
|
673
|
-
* Corrected NMatrix::gesdd workspace request size (by
|
674
|
-
@yoongkang)
|
675
|
-
|
676
|
-
* Fixed definition of NMatrix#asum for one-by-one
|
677
|
-
matrices (by @andrewcsmith)
|