kmat 0.0.3 → 0.1.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.
data/kmat.gemspec CHANGED
@@ -37,10 +37,11 @@ Gem::Specification.new do |spec|
37
37
  spec.require_paths = ["lib"]
38
38
  spec.extensions = ["ext/kmat/extconf.rb"]
39
39
 
40
- spec.add_development_dependency "bundler", ">= 2.0"
41
- spec.add_development_dependency "rake", ">= 10.0"
40
+ spec.add_development_dependency "bundler", ">= 2.4.8"
41
+ spec.add_development_dependency "rake", ">= 13.0.6"
42
42
  spec.add_development_dependency "rake-compiler"
43
- spec.add_development_dependency "pry", ">= 0.12.2"
43
+ spec.add_development_dependency "pry", ">= 0.14.2"
44
+ spec.add_development_dependency "rspec", ">= 3.12.0"
44
45
 
45
- spec.required_ruby_version = '>= 2.6.0'
46
+ spec.required_ruby_version = '>= 3.2.0'
46
47
  end
data/lib/kmat/accessor.rb CHANGED
@@ -118,14 +118,14 @@ end
118
118
 
119
119
  class << Mat
120
120
  # for example, Mat.blocks([a, b], [c, d]) returns a single matrix of [a, b; c, d]
121
- def blocks(*blocks)
122
- vstack(*blocks.map do |row|
121
+ def blocks(args)
122
+ vstack(*(args.map do |row|
123
123
  hstack(*row)
124
- end)
124
+ end))
125
125
  end
126
126
 
127
127
  def vstack(*mats)
128
- m, n = *mats[0].shape
128
+ m, n = mats[0].shape
129
129
  1.upto(mats.size-1) do |i|
130
130
  mat = mats[i]
131
131
  raise MismatchedDimensionError, 'column-sizes must be the same' if mat.col_size != n
@@ -144,7 +144,7 @@ class << Mat
144
144
  end
145
145
 
146
146
  def hstack(*mats)
147
- m, n = *mats[0].shape
147
+ m, n = mats[0].shape
148
148
  1.upto(mats.size-1) do |i|
149
149
  mat = mats[i]
150
150
  raise MismatchedDimensionError, 'row-sizes must be the same' if mat.row_size != m
data/lib/kmat/linalg.rb CHANGED
@@ -27,8 +27,7 @@ class Mat
27
27
  if transpose
28
28
  tls(b)
29
29
  else
30
- n = self.col_size
31
- Mat.new(n, n, :float).__send__(:_ls, b)
30
+ Mat.new(*b.shape, :float).__send__(:_ls, self, b)
32
31
  end
33
32
  end
34
33
  end
data/lib/kmat/random.rb CHANGED
@@ -78,13 +78,13 @@ class << Random
78
78
  kmat_srand_org(*args)
79
79
  end
80
80
  def randn(*args)
81
- Random::DEFAULT.randn(*args)
81
+ $MatRandom.randn(*args)
82
82
  end
83
83
  end
84
84
 
85
85
  module Kernel
86
86
  module_function def randn(*args)
87
- Random::DEFAULT.randn(*args)
87
+ Random.randn(*args)
88
88
  end
89
89
  end
90
90
 
data/lib/kmat/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Mat
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/kmat.rb CHANGED
@@ -1,4 +1,4 @@
1
- require "kmat/version"
1
+ require_relative "./kmat/version"
2
2
 
3
3
  class Mat
4
4
  include Enumerable
@@ -10,11 +10,11 @@ class << Mat
10
10
  end
11
11
  end
12
12
 
13
- require "kmat/kmat"
14
- require "kmat/arith"
15
- require "kmat/accessor"
16
- require "kmat/linalg"
17
- require "kmat/logical"
18
- require "kmat/misc"
19
- require "kmat/random"
20
- require "kmat/statistics"
13
+ require_relative "./kmat/kmat"
14
+ require_relative "./kmat/arith"
15
+ require_relative "./kmat/accessor"
16
+ require_relative "./kmat/linalg"
17
+ require_relative "./kmat/logical"
18
+ require_relative "./kmat/misc"
19
+ require_relative "./kmat/random"
20
+ require_relative "./kmat/statistics"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kmat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - KAZOON
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-03 00:00:00.000000000 Z
11
+ date: 2023-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
19
+ version: 2.4.8
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '2.0'
26
+ version: 2.4.8
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: 13.0.6
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: 13.0.6
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake-compiler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 0.12.2
61
+ version: 0.14.2
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 0.12.2
68
+ version: 0.14.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 3.12.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 3.12.0
69
83
  description:
70
84
  email:
71
85
  - cycloawaodorin+gem@gmail.com
@@ -76,6 +90,7 @@ extra_rdoc_files: []
76
90
  files:
77
91
  - ".gitattributes"
78
92
  - ".gitignore"
93
+ - ".rspec"
79
94
  - CHANGELOG.md
80
95
  - Gemfile
81
96
  - LICENSE.md
@@ -142,14 +157,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
142
157
  requirements:
143
158
  - - ">="
144
159
  - !ruby/object:Gem::Version
145
- version: 2.6.0
160
+ version: 3.2.0
146
161
  required_rubygems_version: !ruby/object:Gem::Requirement
147
162
  requirements:
148
163
  - - ">="
149
164
  - !ruby/object:Gem::Version
150
165
  version: '0'
151
166
  requirements: []
152
- rubygems_version: 3.0.6
167
+ rubygems_version: 3.4.8
153
168
  signing_key:
154
169
  specification_version: 4
155
170
  summary: Kmat is a Ruby gem for matrix operations. Kmat uses BLAS/LAPACK as back-end.