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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.rspec +1 -0
- data/CHANGELOG.md +10 -0
- data/README.md +11 -11
- data/ext/kmat/arith/binary.c +161 -139
- data/ext/kmat/arith/math.c +1 -1
- data/ext/kmat/arith/statistics.c +11 -11
- data/ext/kmat/arith/unary.c +6 -6
- data/ext/kmat/extconf.rb +3 -0
- data/ext/kmat/km_util.h +34 -13
- data/ext/kmat/kmat.h +3 -3
- data/ext/kmat/linalg/dla.c +185 -133
- data/ext/kmat/linalg/linalg.c +33 -17
- data/ext/kmat/linalg/norm.c +83 -69
- data/ext/kmat/linalg/vla.c +23 -23
- data/ext/kmat/linalg/working.c +42 -38
- data/ext/kmat/main.c +4 -4
- data/ext/kmat/smat/accessor.c +104 -104
- data/ext/kmat/smat/array.c +3 -3
- data/ext/kmat/smat/boxmuller.c +5 -5
- data/ext/kmat/smat/constructer.c +52 -52
- data/ext/kmat/smat/convert.c +21 -21
- data/ext/kmat/smat/elem.c +7 -7
- data/ext/kmat/smat/fund.c +37 -37
- data/ext/kmat/smat/share.c +28 -27
- data/ext/kmat/smat/smat.c +58 -42
- data/ext/kmat/smat/sort.c +148 -146
- data/kmat.gemspec +5 -4
- data/lib/kmat/accessor.rb +5 -5
- data/lib/kmat/linalg.rb +1 -2
- data/lib/kmat/random.rb +2 -2
- data/lib/kmat/version.rb +1 -1
- data/lib/kmat.rb +9 -9
- metadata +25 -10
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.
|
41
|
-
spec.add_development_dependency "rake", ">=
|
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.
|
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.
|
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(
|
122
|
-
vstack(*
|
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 =
|
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 =
|
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
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
|
-
|
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
|
87
|
+
Random.randn(*args)
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
data/lib/kmat/version.rb
CHANGED
data/lib/kmat.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
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
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
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
|
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:
|
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:
|
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:
|
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:
|
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:
|
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.
|
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.
|
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.
|
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.
|
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.
|