numo-linalg 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -7
- data/ext/numo/linalg/blas/gen/cogen.rb +2 -4
- data/ext/numo/linalg/blas/gen/decl.rb +1 -1
- data/ext/numo/linalg/blas/gen/erbln.rb +132 -0
- data/ext/numo/linalg/blas/gen/erbpp2.rb +7 -2
- data/ext/numo/linalg/lapack/gen/cogen.rb +2 -3
- data/lib/numo/linalg/autoloader.rb +142 -0
- data/lib/numo/linalg/function.rb +3 -3
- data/lib/numo/linalg/version.rb +1 -1
- data/numo-linalg.gemspec +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a9f783654dbe1c2f8ca4dbeef4030053d8e8c92a99f1ccf0fa0ecd551c90f90
|
4
|
+
data.tar.gz: 46f3558e6bd86db15fb0d3ab9558e1f4e565ca844db500684b9eaac0e6ec57c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1c478c9f017babd63b40dcea4eeb6ca9222226f680cc6870b01c1f305f54080ab7c035ead34c39d9f70aa431c6b2d9c9ec1be0642f7bab66eea32ee97c39363
|
7
|
+
data.tar.gz: d55a4aa11afffbb51486007df3c80b221a3e90e990e86b76eadc996d560abf8d3e16df62aa25e3f65f050175dca8d45d5b791c1dc4b2b2c3ac66031da0c70c7b
|
data/README.md
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# Numo::Linalg : Linear Algebra library with BLAS/LAPACK binding to Numo::NArray
|
2
2
|
|
3
|
-
[![Binder](http://mybinder.org/badge.svg)](http://mybinder.org/repo/ruby-numo/linalg)
|
4
|
-
[![Build Status](https://travis-ci.org/ruby-numo/linalg.svg?branch=master)](https://travis-ci.org/ruby-numo/linalg)
|
3
|
+
[![Binder](http://mybinder.org/badge.svg)](http://mybinder.org/repo/ruby-numo/numo-linalg)
|
4
|
+
[![Build Status](https://travis-ci.org/ruby-numo/numo-linalg.svg?branch=master)](https://travis-ci.org/ruby-numo/numo-linalg)
|
5
5
|
|
6
|
-
[GitHub](https://github.com/ruby-numo/linalg) |
|
7
|
-
[RubyGems](https://
|
6
|
+
[GitHub](https://github.com/ruby-numo/numo-linalg) |
|
7
|
+
[RubyGems](https://rubygems.org/gems/numo-linalg)
|
8
8
|
|
9
9
|
Under development!
|
10
10
|
|
@@ -49,7 +49,7 @@ This desgin allows you to change backend libraries without re-compiling.
|
|
49
49
|
* [Intel MKL](https://software.intel.com/intel-mkl)
|
50
50
|
|
51
51
|
* Note that the performance depends on the backend library as shown in
|
52
|
-
[benchmark](https://github.com/ruby-numo/linalg/tree/master/bench).
|
52
|
+
[benchmark](https://github.com/ruby-numo/numo-linalg/tree/master/bench).
|
53
53
|
|
54
54
|
* Install Numo::Linalg
|
55
55
|
|
@@ -60,7 +60,7 @@ $ gem install numo-linalg
|
|
60
60
|
or
|
61
61
|
|
62
62
|
```shell
|
63
|
-
$ git clone https://github.com/ruby-numo/linalg.git
|
63
|
+
$ git clone https://github.com/ruby-numo/numo-linalg.git
|
64
64
|
$ cd linalg
|
65
65
|
$ rake build
|
66
66
|
$ gem install pkg/numo-linalg-*.gem
|
@@ -74,7 +74,7 @@ $ gem install pkg/numo-linalg-*.gem
|
|
74
74
|
require "numo/linalg"
|
75
75
|
```
|
76
76
|
|
77
|
-
* Read also instruction for [Selecting Backend Library](https://github.com/ruby-numo/linalg/tree/master/doc/select-backend.md).
|
77
|
+
* Read also instruction for [Selecting Backend Library](https://github.com/ruby-numo/numo-linalg/tree/master/doc/select-backend.md).
|
78
78
|
|
79
79
|
## Authors
|
80
80
|
|
@@ -1,14 +1,12 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
|
3
3
|
pwd = File.dirname(__FILE__)
|
4
|
-
#libpath = File.absolute_path(File.dirname(__FILE__))+"/../../../../lib"
|
5
|
-
#$LOAD_PATH.unshift libpath
|
6
4
|
|
7
5
|
require_relative "./decl"
|
8
6
|
|
9
7
|
while true
|
10
8
|
if ARGV[0] == "-l"
|
11
|
-
|
9
|
+
$line_number = true
|
12
10
|
ARGV.shift
|
13
11
|
elsif ARGV[0] == "-o"
|
14
12
|
ARGV.shift
|
@@ -31,12 +29,12 @@ erb_dir = ["../tmpl"]
|
|
31
29
|
erb_dir.map!{|d| File.join(pwd,d)}
|
32
30
|
|
33
31
|
code = DefLib.new do
|
32
|
+
set line_number: $line_number
|
34
33
|
set erb_dir: erb_dir
|
35
34
|
set erb_suffix: ".c"
|
36
35
|
set ns_var: "mN"
|
37
36
|
|
38
37
|
set file_name: $output || ""
|
39
|
-
#set include_files: ["numo/types/#{type_name}.h"]
|
40
38
|
set lib_name: "numo_linalg_blas_"+blas_char
|
41
39
|
|
42
40
|
def_module do
|
@@ -0,0 +1,132 @@
|
|
1
|
+
require 'erb'
|
2
|
+
|
3
|
+
class ErbPP
|
4
|
+
|
5
|
+
class CountLnString < String
|
6
|
+
|
7
|
+
def initialize(filename)
|
8
|
+
@filename = filename
|
9
|
+
@lnchar = "\n"
|
10
|
+
@buf = ""
|
11
|
+
@str = ""
|
12
|
+
@countln = 1
|
13
|
+
@current = 1
|
14
|
+
super("\n"+report_line)
|
15
|
+
end
|
16
|
+
|
17
|
+
def report_line
|
18
|
+
"#line #{@current} \"#{@filename}\"\n"
|
19
|
+
end
|
20
|
+
|
21
|
+
def concat0(s)
|
22
|
+
ln(caller[0])
|
23
|
+
@buf.concat(s)
|
24
|
+
@str.concat(s)
|
25
|
+
end
|
26
|
+
|
27
|
+
def concat1(s)
|
28
|
+
ln(caller[0])
|
29
|
+
@buf.concat(s)
|
30
|
+
end
|
31
|
+
|
32
|
+
def ln(status=nil)
|
33
|
+
case status
|
34
|
+
when /:(\d+):/
|
35
|
+
n = $1.to_i
|
36
|
+
else
|
37
|
+
n = status.to_i
|
38
|
+
end
|
39
|
+
return if n == @current
|
40
|
+
if @current != @countln || @postpone
|
41
|
+
if /\A\s*\z/ =~ @str || /\A#line / =~ @buf
|
42
|
+
@postpone = true
|
43
|
+
elsif @in_comment
|
44
|
+
@postpone = false
|
45
|
+
else
|
46
|
+
if self[-1] != "\n"
|
47
|
+
concat("\n")
|
48
|
+
end
|
49
|
+
concat(report_line)
|
50
|
+
@postpone = false
|
51
|
+
end
|
52
|
+
end
|
53
|
+
concat(@buf)
|
54
|
+
|
55
|
+
b = @buf.gsub(/".*?(?<!\\)"/,'""')
|
56
|
+
/^.*(\/\*)(.*?)$/ =~ b
|
57
|
+
x = $2
|
58
|
+
/^.*(\*\/)(.*?)$/ =~ b
|
59
|
+
y = $2
|
60
|
+
if x
|
61
|
+
if y
|
62
|
+
if x.size < y.size
|
63
|
+
#:in_comment
|
64
|
+
@in_comment = true
|
65
|
+
else
|
66
|
+
#:out_comment
|
67
|
+
@in_comment = false
|
68
|
+
end
|
69
|
+
else
|
70
|
+
#:in_comment
|
71
|
+
@in_comment = true
|
72
|
+
end
|
73
|
+
else
|
74
|
+
if y
|
75
|
+
#:out_comment
|
76
|
+
@in_comment = false
|
77
|
+
else
|
78
|
+
#:keep
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
@countln = @current + @buf.count(@lnchar)
|
83
|
+
@current = n
|
84
|
+
@buf = ""
|
85
|
+
@str = ""
|
86
|
+
end
|
87
|
+
|
88
|
+
def d(s)
|
89
|
+
p [s, [x,y], r]
|
90
|
+
r
|
91
|
+
end
|
92
|
+
|
93
|
+
def final
|
94
|
+
ln(caller[0])
|
95
|
+
concat(@buf)
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
class ERBLN
|
101
|
+
|
102
|
+
def initialize(str, filename, trim_mode=nil, eoutvar='_erbout')
|
103
|
+
@filename = filename
|
104
|
+
compiler = ERB::Compiler.new(trim_mode)
|
105
|
+
set_eoutvar(compiler, eoutvar)
|
106
|
+
@src, @enc = *compiler.compile(str)
|
107
|
+
end
|
108
|
+
|
109
|
+
def set_eoutvar(compiler, eoutvar = '_erbout')
|
110
|
+
compiler.put_cmd = "#{eoutvar}.concat0"
|
111
|
+
compiler.insert_cmd = "#{eoutvar}.concat1"
|
112
|
+
compiler.pre_cmd = ["#{eoutvar} = CountLnString.new(#{@filename.inspect})"]
|
113
|
+
compiler.post_cmd = ["#{eoutvar}.final"]
|
114
|
+
end
|
115
|
+
|
116
|
+
def run(b)
|
117
|
+
print self.result(b)
|
118
|
+
end
|
119
|
+
|
120
|
+
def result(b)
|
121
|
+
#open("tmpout","a") do |f|
|
122
|
+
# f.puts "\n#file:#{@filename}"
|
123
|
+
# f.puts @src
|
124
|
+
#end
|
125
|
+
eval(@src, b, (@filename || '(erb)'), 0)
|
126
|
+
end
|
127
|
+
|
128
|
+
#require "fileutils"
|
129
|
+
#FileUtils.rm_f("tmpout")
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "erb"
|
2
|
+
require_relative "erbln"
|
2
3
|
|
3
4
|
class ErbPP
|
4
5
|
|
@@ -66,8 +67,12 @@ class ErbPP
|
|
66
67
|
Dir.glob(x).each do |dir|
|
67
68
|
path = File.join(dir,file)
|
68
69
|
if File.exist?(path)
|
69
|
-
|
70
|
-
|
70
|
+
if get(:line_number)
|
71
|
+
erb = ERBLN.new(File.read(path), path, trim_mode)
|
72
|
+
else
|
73
|
+
erb = ERB.new(File.read(path), safe_level, trim_mode)
|
74
|
+
erb.filename = path
|
75
|
+
end
|
71
76
|
return erb
|
72
77
|
end
|
73
78
|
end
|
@@ -1,14 +1,12 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
|
3
3
|
pwd = File.dirname(__FILE__)
|
4
|
-
#libpath = File.absolute_path(File.dirname(__FILE__))+"/../../../../lib"
|
5
|
-
#$LOAD_PATH.unshift libpath
|
6
4
|
|
7
5
|
require_relative "../../blas/gen/decl"
|
8
6
|
|
9
7
|
while true
|
10
8
|
if ARGV[0] == "-l"
|
11
|
-
|
9
|
+
$line_number = true
|
12
10
|
ARGV.shift
|
13
11
|
elsif ARGV[0] == "-o"
|
14
12
|
ARGV.shift
|
@@ -31,6 +29,7 @@ erb_dir = ["../tmpl"]
|
|
31
29
|
erb_dir.map!{|d| File.join(pwd,d)}
|
32
30
|
|
33
31
|
code = DefLib.new do
|
32
|
+
set line_number: $line_number
|
34
33
|
set erb_dir: erb_dir
|
35
34
|
set erb_suffix: ".c"
|
36
35
|
set ns_var: "mN"
|
@@ -0,0 +1,142 @@
|
|
1
|
+
require 'fiddle'
|
2
|
+
require 'rbconfig'
|
3
|
+
require 'numo/linalg/linalg'
|
4
|
+
|
5
|
+
module Numo
|
6
|
+
module Linalg
|
7
|
+
module Autoloader
|
8
|
+
|
9
|
+
@@libs = nil
|
10
|
+
|
11
|
+
module_function
|
12
|
+
|
13
|
+
def libs
|
14
|
+
@@libs
|
15
|
+
end
|
16
|
+
|
17
|
+
# Load backend libraries for Numo::Linalg automatically.
|
18
|
+
#
|
19
|
+
# @return [String] name of loaded backend library (mkl/openblas/lapack)
|
20
|
+
def load_library
|
21
|
+
mkl_dirs = ['/opt/intel/lib', '/opt/intel/lib64', '/opt/intel/mkl/lib', '/opt/intel/mkl/lib64']
|
22
|
+
openblas_dirs = ['/opt/openblas/lib', '/opt/openblas/lib64', '/usr/local/opt/openblas/lib']
|
23
|
+
atlas_dirs = ['/opt/atlas/lib', '/opt/atlas/lib64',
|
24
|
+
'/usr/lib/atlas', '/usr/lib64/atlas', '/usr/local/opt/atlas/lib']
|
25
|
+
lapacke_dirs = ['/opt/lapack/lib', '/opt/lapack/lib64', '/opt/local/lib/lapack',
|
26
|
+
'/usr/local/opt/lapack/lib']
|
27
|
+
opt_dirs = ['/opt/local/lib', '/opt/local/lib64', '/opt/lib', '/opt/lib64']
|
28
|
+
base_dirs = ['/usr/local/lib', '/usr/local/lib64', '/usr/lib', '/usr/lib64']
|
29
|
+
base_dirs.unshift(*ENV['LD_LIBRARY_PATH'].split(':')) unless ENV['LD_LIBRARY_PATH'].nil?
|
30
|
+
|
31
|
+
mkl_libs = find_mkl_libs([*base_dirs, *opt_dirs, *mkl_dirs])
|
32
|
+
openblas_libs = find_openblas_libs([*base_dirs, *opt_dirs, *openblas_dirs])
|
33
|
+
atlas_libs = find_atlas_libs([*base_dirs, *opt_dirs, *atlas_dirs, *lapacke_dirs])
|
34
|
+
lapack_libs = find_lapack_libs([*base_dirs, *opt_dirs, *lapacke_dirs])
|
35
|
+
|
36
|
+
@@libs = nil
|
37
|
+
if !mkl_libs.value?(nil)
|
38
|
+
open_mkl_libs(mkl_libs)
|
39
|
+
@@libs = mkl_libs.values
|
40
|
+
'mkl'
|
41
|
+
elsif !openblas_libs.value?(nil)
|
42
|
+
open_openblas_libs(openblas_libs)
|
43
|
+
@@libs = openblas_libs.values.uniq
|
44
|
+
'openblas'
|
45
|
+
elsif !atlas_libs.value?(nil)
|
46
|
+
open_atlas_libs(atlas_libs)
|
47
|
+
@@libs = atlas_libs.values.uniq
|
48
|
+
'atlas'
|
49
|
+
elsif !lapack_libs.value?(nil)
|
50
|
+
open_lapack_libs(lapack_libs)
|
51
|
+
@@libs = lapack_libs.values.uniq
|
52
|
+
'lapack'
|
53
|
+
else
|
54
|
+
raise 'cannot find MKL/OpenBLAS/ATLAS/BLAS-LAPACK library'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def detect_library_extension
|
59
|
+
case RbConfig::CONFIG['host_os']
|
60
|
+
when /mswin|msys|mingw|cygwin/
|
61
|
+
'dll'
|
62
|
+
when /darwin|mac os/
|
63
|
+
'dylib'
|
64
|
+
else
|
65
|
+
'so'
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def find_libs(lib_names, lib_dirs)
|
70
|
+
lib_ext = detect_library_extension
|
71
|
+
lib_arr = lib_names.map do |l|
|
72
|
+
[l.to_sym, lib_dirs.map { |d| "#{d}/lib#{l}.#{lib_ext}" }
|
73
|
+
.keep_if { |f| File.exist?(f) }.first]
|
74
|
+
end
|
75
|
+
Hash[*lib_arr.flatten]
|
76
|
+
end
|
77
|
+
|
78
|
+
def find_mkl_libs(lib_dirs)
|
79
|
+
lib_names = %w[iomp5 mkl_core mkl_intel_thread mkl_intel_lp64]
|
80
|
+
find_libs(lib_names, lib_dirs)
|
81
|
+
end
|
82
|
+
|
83
|
+
def find_openblas_libs(lib_dirs)
|
84
|
+
lib_names = %w[openblas lapacke]
|
85
|
+
openblas_libs = find_libs(lib_names, lib_dirs)
|
86
|
+
openblas_libs[:lapacke] = openblas_libs[:openblas] if openblas_libs[:lapacke].nil?
|
87
|
+
openblas_libs
|
88
|
+
end
|
89
|
+
|
90
|
+
def find_atlas_libs(lib_dirs)
|
91
|
+
lib_names = %w[tatlas atlas satlas cblas lapacke]
|
92
|
+
atlas_libs = find_libs(lib_names, lib_dirs)
|
93
|
+
atlas_libs[:atlas] = atlas_libs[:tatlas] unless atlas_libs[:tatlas].nil?
|
94
|
+
atlas_libs[:atlas] = atlas_libs[:satlas] if atlas_libs[:atlas].nil?
|
95
|
+
atlas_libs[:cblas] = atlas_libs[:atlas] if atlas_libs[:cblas].nil?
|
96
|
+
atlas_libs.delete(:tatlas)
|
97
|
+
atlas_libs.delete(:satlas)
|
98
|
+
atlas_libs
|
99
|
+
end
|
100
|
+
|
101
|
+
def find_lapack_libs(lib_dirs)
|
102
|
+
lib_names = %w[blas cblas lapack lapacke]
|
103
|
+
lapack_libs = find_libs(lib_names, lib_dirs)
|
104
|
+
lapack_libs[:cblas] = lapack_libs[:blas] if lapack_libs[:cblas].nil?
|
105
|
+
lapack_libs
|
106
|
+
end
|
107
|
+
|
108
|
+
def open_mkl_libs(mkl_libs)
|
109
|
+
Fiddle.dlopen(mkl_libs[:iomp5])
|
110
|
+
Fiddle.dlopen(mkl_libs[:mkl_core])
|
111
|
+
Fiddle.dlopen(mkl_libs[:mkl_intel_thread])
|
112
|
+
Fiddle.dlopen(mkl_libs[:mkl_intel_lp64])
|
113
|
+
Numo::Linalg::Blas.dlopen(mkl_libs[:mkl_intel_lp64])
|
114
|
+
Numo::Linalg::Lapack.dlopen(mkl_libs[:mkl_intel_lp64])
|
115
|
+
end
|
116
|
+
|
117
|
+
def open_openblas_libs(openblas_libs)
|
118
|
+
Numo::Linalg::Blas.dlopen(openblas_libs[:openblas])
|
119
|
+
Numo::Linalg::Lapack.dlopen(openblas_libs[:lapacke])
|
120
|
+
end
|
121
|
+
|
122
|
+
def open_atlas_libs(atlas_libs)
|
123
|
+
Fiddle.dlopen(atlas_libs[:atlas])
|
124
|
+
Numo::Linalg::Blas.dlopen(atlas_libs[:cblas])
|
125
|
+
Numo::Linalg::Lapack.dlopen(atlas_libs[:lapacke])
|
126
|
+
end
|
127
|
+
|
128
|
+
def open_lapack_libs(lapack_libs)
|
129
|
+
Fiddle.dlopen(lapack_libs[:blas])
|
130
|
+
Fiddle.dlopen(lapack_libs[:lapack])
|
131
|
+
Numo::Linalg::Blas.dlopen(lapack_libs[:cblas])
|
132
|
+
Numo::Linalg::Lapack.dlopen(lapack_libs[:lapacke])
|
133
|
+
end
|
134
|
+
|
135
|
+
private_class_method :detect_library_extension,
|
136
|
+
:find_libs, :find_mkl_libs, :find_openblas_libs, :find_atlas_libs, :find_lapack_libs,
|
137
|
+
:open_mkl_libs, :open_openblas_libs, :open_atlas_libs, :open_lapack_libs
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
Numo::Linalg::Autoloader.load_library
|
data/lib/numo/linalg/function.rb
CHANGED
@@ -992,17 +992,17 @@ module Numo; module Linalg
|
|
992
992
|
end
|
993
993
|
end
|
994
994
|
|
995
|
-
private
|
996
|
-
|
997
995
|
# @!visibility private
|
998
996
|
def _make_complex_eigvecs(w, vin) # :nodoc:
|
999
997
|
v = w.class.cast(vin)
|
1000
998
|
# broadcast to vin.shape
|
1001
|
-
m = (w.imag > 0 | Bit.zeros(*vin.shape)).where
|
999
|
+
m = ((w.imag > 0) | Bit.zeros(*vin.shape)).where
|
1002
1000
|
v[m].imag = vin[m+1]
|
1003
1001
|
v[m+1] = v[m].conj
|
1004
1002
|
v
|
1005
1003
|
end
|
1006
1004
|
|
1005
|
+
private_class_method :_make_complex_eigvecs
|
1006
|
+
|
1007
1007
|
end
|
1008
1008
|
end
|
data/lib/numo/linalg/version.rb
CHANGED
data/numo-linalg.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: numo-linalg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masahiro TANAKA
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-01-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -43,16 +43,16 @@ dependencies:
|
|
43
43
|
name: numo-narray
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - "
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 0.9.0
|
48
|
+
version: 0.9.0.7
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - "
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.9.0
|
55
|
+
version: 0.9.0.7
|
56
56
|
description: Ruby/Numo Linear Algebra library with interface to BLAS/LAPACK.
|
57
57
|
email:
|
58
58
|
- masa16.tanaka@gmail.com
|
@@ -73,6 +73,7 @@ files:
|
|
73
73
|
- ext/numo/linalg/blas/gen/cogen.rb
|
74
74
|
- ext/numo/linalg/blas/gen/decl.rb
|
75
75
|
- ext/numo/linalg/blas/gen/desc.rb
|
76
|
+
- ext/numo/linalg/blas/gen/erbln.rb
|
76
77
|
- ext/numo/linalg/blas/gen/erbpp2.rb
|
77
78
|
- ext/numo/linalg/blas/gen/replace_cblas_h.rb
|
78
79
|
- ext/numo/linalg/blas/gen/spec.rb
|
@@ -135,6 +136,7 @@ files:
|
|
135
136
|
- ext/numo/linalg/lapack/tmpl/trf.c
|
136
137
|
- ext/numo/linalg/numo_linalg.h
|
137
138
|
- lib/numo/linalg.rb
|
139
|
+
- lib/numo/linalg/autoloader.rb
|
138
140
|
- lib/numo/linalg/function.rb
|
139
141
|
- lib/numo/linalg/linalg.rb
|
140
142
|
- lib/numo/linalg/loader.rb
|