nmatrix 0.0.3 → 0.0.4

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.
Files changed (63) hide show
  1. data/.gitignore +3 -0
  2. data/CONTRIBUTING.md +66 -0
  3. data/Gemfile +1 -1
  4. data/History.txt +68 -10
  5. data/LICENSE.txt +2 -2
  6. data/Manifest.txt +2 -0
  7. data/README.rdoc +90 -69
  8. data/Rakefile +18 -9
  9. data/ext/nmatrix/data/complex.h +7 -7
  10. data/ext/nmatrix/data/data.cpp +2 -7
  11. data/ext/nmatrix/data/data.h +7 -4
  12. data/ext/nmatrix/data/rational.h +2 -2
  13. data/ext/nmatrix/data/ruby_object.h +3 -10
  14. data/ext/nmatrix/extconf.rb +79 -54
  15. data/ext/nmatrix/new_extconf.rb +11 -12
  16. data/ext/nmatrix/nmatrix.cpp +94 -125
  17. data/ext/nmatrix/nmatrix.h +38 -17
  18. data/ext/nmatrix/ruby_constants.cpp +2 -15
  19. data/ext/nmatrix/ruby_constants.h +2 -14
  20. data/ext/nmatrix/storage/common.cpp +2 -2
  21. data/ext/nmatrix/storage/common.h +2 -2
  22. data/ext/nmatrix/storage/dense.cpp +206 -31
  23. data/ext/nmatrix/storage/dense.h +5 -2
  24. data/ext/nmatrix/storage/list.cpp +52 -4
  25. data/ext/nmatrix/storage/list.h +3 -2
  26. data/ext/nmatrix/storage/storage.cpp +6 -6
  27. data/ext/nmatrix/storage/storage.h +2 -2
  28. data/ext/nmatrix/storage/yale.cpp +202 -49
  29. data/ext/nmatrix/storage/yale.h +5 -4
  30. data/ext/nmatrix/ttable_helper.rb +108 -108
  31. data/ext/nmatrix/types.h +2 -15
  32. data/ext/nmatrix/util/io.cpp +2 -2
  33. data/ext/nmatrix/util/io.h +2 -2
  34. data/ext/nmatrix/util/lapack.h +2 -2
  35. data/ext/nmatrix/util/math.cpp +14 -14
  36. data/ext/nmatrix/util/math.h +2 -2
  37. data/ext/nmatrix/util/sl_list.cpp +2 -2
  38. data/ext/nmatrix/util/sl_list.h +2 -2
  39. data/ext/nmatrix/util/util.h +2 -2
  40. data/lib/nmatrix.rb +13 -35
  41. data/lib/nmatrix/blas.rb +182 -56
  42. data/lib/nmatrix/io/market.rb +38 -14
  43. data/lib/nmatrix/io/mat5_reader.rb +393 -278
  44. data/lib/nmatrix/io/mat_reader.rb +121 -107
  45. data/lib/nmatrix/lapack.rb +59 -14
  46. data/lib/nmatrix/monkeys.rb +32 -30
  47. data/lib/nmatrix/nmatrix.rb +204 -100
  48. data/lib/nmatrix/nvector.rb +166 -57
  49. data/lib/nmatrix/shortcuts.rb +364 -231
  50. data/lib/nmatrix/version.rb +8 -4
  51. data/nmatrix.gemspec +5 -3
  52. data/scripts/mac-brew-gcc.sh +1 -1
  53. data/spec/blas_spec.rb +80 -2
  54. data/spec/math_spec.rb +78 -32
  55. data/spec/nmatrix_list_spec.rb +55 -55
  56. data/spec/nmatrix_spec.rb +60 -117
  57. data/spec/nmatrix_yale_resize_test_associations.yaml +2802 -0
  58. data/spec/nmatrix_yale_spec.rb +214 -198
  59. data/spec/nvector_spec.rb +58 -2
  60. data/spec/shortcuts_spec.rb +156 -32
  61. data/spec/slice_spec.rb +229 -178
  62. data/spec/spec_helper.rb +2 -2
  63. metadata +71 -21
@@ -34,8 +34,8 @@ COMPLEX_MATRIX32A_ARRAY = MATRIX32A_ARRAY.zip(MATRIX32A_ARRAY.reverse).collect {
34
34
  RATIONAL_MATRIX43A_ARRAY = MATRIX43A_ARRAY.collect { |x| x.to_r }
35
35
  RATIONAL_MATRIX32A_ARRAY = MATRIX32A_ARRAY.collect { |x| x.to_r }
36
36
 
37
- def create_matrix(stype)
38
- m = NMatrix.new(stype, [3,3], 0, :int32)
37
+ def create_matrix(stype) #:nodoc:
38
+ m = stype == :yale ? NMatrix.new(stype, 3, :int32) : NMatrix.new(stype, [3,3], 0, :int32)
39
39
 
40
40
  m[0,0] = 0
41
41
  m[0,1] = 1
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.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,27 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-01-21 00:00:00.000000000 Z
14
+ date: 2013-05-17 00:00:00.000000000Z
15
15
  dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rdoc
18
+ requirement: !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: 4.0.1
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ! '>='
30
+ - !ruby/object:Gem::Version
31
+ version: 4.0.1
16
32
  - !ruby/object:Gem::Dependency
17
33
  name: rake
18
- requirement: &78366730 !ruby/object:Gem::Requirement
34
+ requirement: !ruby/object:Gem::Requirement
19
35
  none: false
20
36
  requirements:
21
37
  - - ~>
@@ -23,10 +39,15 @@ dependencies:
23
39
  version: '0.9'
24
40
  type: :development
25
41
  prerelease: false
26
- version_requirements: *78366730
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '0.9'
27
48
  - !ruby/object:Gem::Dependency
28
49
  name: bundler
29
- requirement: &78366510 !ruby/object:Gem::Requirement
50
+ requirement: !ruby/object:Gem::Requirement
30
51
  none: false
31
52
  requirements:
32
53
  - - ! '>='
@@ -34,10 +55,15 @@ dependencies:
34
55
  version: '0'
35
56
  type: :development
36
57
  prerelease: false
37
- version_requirements: *78366510
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
38
64
  - !ruby/object:Gem::Dependency
39
65
  name: rspec
40
- requirement: &78366230 !ruby/object:Gem::Requirement
66
+ requirement: !ruby/object:Gem::Requirement
41
67
  none: false
42
68
  requirements:
43
69
  - - ~>
@@ -45,10 +71,15 @@ dependencies:
45
71
  version: 2.9.0
46
72
  type: :development
47
73
  prerelease: false
48
- version_requirements: *78366230
74
+ version_requirements: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ~>
78
+ - !ruby/object:Gem::Version
79
+ version: 2.9.0
49
80
  - !ruby/object:Gem::Dependency
50
81
  name: pry
51
- requirement: &78365970 !ruby/object:Gem::Requirement
82
+ requirement: !ruby/object:Gem::Requirement
52
83
  none: false
53
84
  requirements:
54
85
  - - ~>
@@ -56,10 +87,15 @@ dependencies:
56
87
  version: 0.9.9
57
88
  type: :development
58
89
  prerelease: false
59
- version_requirements: *78365970
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ~>
94
+ - !ruby/object:Gem::Version
95
+ version: 0.9.9
60
96
  - !ruby/object:Gem::Dependency
61
97
  name: guard-rspec
62
- requirement: &78365710 !ruby/object:Gem::Requirement
98
+ requirement: !ruby/object:Gem::Requirement
63
99
  none: false
64
100
  requirements:
65
101
  - - ~>
@@ -67,10 +103,15 @@ dependencies:
67
103
  version: 0.7.0
68
104
  type: :development
69
105
  prerelease: false
70
- version_requirements: *78365710
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: 0.7.0
71
112
  - !ruby/object:Gem::Dependency
72
113
  name: rake-compiler
73
- requirement: &78365470 !ruby/object:Gem::Requirement
114
+ requirement: !ruby/object:Gem::Requirement
74
115
  none: false
75
116
  requirements:
76
117
  - - ~>
@@ -78,7 +119,12 @@ dependencies:
78
119
  version: 0.8.1
79
120
  type: :development
80
121
  prerelease: false
81
- version_requirements: *78365470
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ~>
126
+ - !ruby/object:Gem::Version
127
+ version: 0.8.1
82
128
  description: NMatrix is an experimental linear algebra library for Ruby, written mostly
83
129
  in C.
84
130
  email:
@@ -90,6 +136,7 @@ extra_rdoc_files: []
90
136
  files:
91
137
  - .gitignore
92
138
  - .rspec
139
+ - CONTRIBUTING.md
93
140
  - Gemfile
94
141
  - Guardfile
95
142
  - History.txt
@@ -152,6 +199,7 @@ files:
152
199
  - spec/math_spec.rb
153
200
  - spec/nmatrix_list_spec.rb
154
201
  - spec/nmatrix_spec.rb
202
+ - spec/nmatrix_yale_resize_test_associations.yaml
155
203
  - spec/nmatrix_yale_spec.rb
156
204
  - spec/nvector_spec.rb
157
205
  - spec/shortcuts_spec.rb
@@ -165,12 +213,14 @@ post_install_message: ! "*******************************************************
165
213
  WARNING ***\nPlease be aware that NMatrix is in ALPHA status. If you're\nthinking
166
214
  of using NMatrix to write mission critical code,\nsuch as for driving a car or flying
167
215
  a space shuttle, you\nmay wish to choose other software (for now).\n\nNMatrix requires
168
- a C compiler, and has been tested only\nwith GCC 4.6.1. We are happy to accept contributions\nwhich
216
+ a C compiler, and has been tested only\nwith GCC 4.6+. We are happy to accept contributions\nwhich
169
217
  improve the portability of this project.\n\nAlso required is ATLAS. Most Linux distributions
170
- and Mac\nversions include ATLAS, but you may wish to compile it\nyourself.\n\nMore
171
- explicit instructions for NMatrix and SciRuby should\nbe available on the SciRuby
172
- website, sciruby.com, or\nthrough our mailing list (which can be found on our web-\nsite).\n\nThanks
173
- for trying out NMatrix! Happy coding!\n\n***********************************************************\n"
218
+ and Mac\nversions include ATLAS, but you may wish to compile it\nyourself. Rumor
219
+ has it that the Ubuntu/Debian apt package\nfor ATLAS WILL NOT WORK with NMatrix.
220
+ Please install it\nmanually if you are using apt.\n\nMore explicit instructions
221
+ for NMatrix and SciRuby should\nbe available on the SciRuby website, sciruby.com,
222
+ or\nthrough our mailing list (which can be found on our web-\nsite).\n\nThanks for
223
+ trying out NMatrix! Happy coding!\n\n***********************************************************\n"
174
224
  rdoc_options: []
175
225
  require_paths:
176
226
  - lib
@@ -188,10 +238,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
238
  version: '0'
189
239
  segments:
190
240
  - 0
191
- hash: -1012108815
241
+ hash: 186187539
192
242
  requirements: []
193
243
  rubyforge_project:
194
- rubygems_version: 1.8.10
244
+ rubygems_version: 1.8.18
195
245
  signing_key:
196
246
  specification_version: 3
197
247
  summary: NMatrix is an experimental linear algebra library for Ruby, written mostly