nmatrix 0.0.1 → 0.0.2
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/.gitignore +27 -0
- data/.rspec +2 -0
- data/Gemfile +3 -5
- data/Guardfile +6 -0
- data/History.txt +33 -0
- data/Manifest.txt +41 -38
- data/README.rdoc +88 -11
- data/Rakefile +35 -53
- data/ext/nmatrix/data/complex.h +372 -0
- data/ext/nmatrix/data/data.cpp +275 -0
- data/ext/nmatrix/data/data.h +707 -0
- data/ext/nmatrix/data/rational.h +421 -0
- data/ext/nmatrix/data/ruby_object.h +446 -0
- data/ext/nmatrix/extconf.rb +101 -51
- data/ext/nmatrix/new_extconf.rb +56 -0
- data/ext/nmatrix/nmatrix.cpp +1609 -0
- data/ext/nmatrix/nmatrix.h +265 -849
- data/ext/nmatrix/ruby_constants.cpp +134 -0
- data/ext/nmatrix/ruby_constants.h +103 -0
- data/ext/nmatrix/storage/common.cpp +70 -0
- data/ext/nmatrix/storage/common.h +170 -0
- data/ext/nmatrix/storage/dense.cpp +665 -0
- data/ext/nmatrix/storage/dense.h +116 -0
- data/ext/nmatrix/storage/list.cpp +1088 -0
- data/ext/nmatrix/storage/list.h +129 -0
- data/ext/nmatrix/storage/storage.cpp +658 -0
- data/ext/nmatrix/storage/storage.h +99 -0
- data/ext/nmatrix/storage/yale.cpp +1601 -0
- data/ext/nmatrix/storage/yale.h +208 -0
- data/ext/nmatrix/ttable_helper.rb +126 -0
- data/ext/nmatrix/{yale/smmp1_header.template.c → types.h} +36 -9
- data/ext/nmatrix/util/io.cpp +295 -0
- data/ext/nmatrix/util/io.h +117 -0
- data/ext/nmatrix/util/lapack.h +1175 -0
- data/ext/nmatrix/util/math.cpp +557 -0
- data/ext/nmatrix/util/math.h +1363 -0
- data/ext/nmatrix/util/sl_list.cpp +475 -0
- data/ext/nmatrix/util/sl_list.h +255 -0
- data/ext/nmatrix/util/util.h +78 -0
- data/lib/nmatrix/blas.rb +70 -0
- data/lib/nmatrix/io/mat5_reader.rb +567 -0
- data/lib/nmatrix/io/mat_reader.rb +162 -0
- data/lib/{string.rb → nmatrix/monkeys.rb} +49 -2
- data/lib/nmatrix/nmatrix.rb +199 -0
- data/lib/nmatrix/nvector.rb +103 -0
- data/lib/nmatrix/version.rb +27 -0
- data/lib/nmatrix.rb +22 -230
- data/nmatrix.gemspec +59 -0
- data/scripts/mac-brew-gcc.sh +47 -0
- data/spec/4x4_sparse.mat +0 -0
- data/spec/4x5_dense.mat +0 -0
- data/spec/blas_spec.rb +47 -0
- data/spec/elementwise_spec.rb +164 -0
- data/spec/io_spec.rb +60 -0
- data/spec/lapack_spec.rb +52 -0
- data/spec/math_spec.rb +96 -0
- data/spec/nmatrix_spec.rb +93 -89
- data/spec/nmatrix_yale_spec.rb +52 -36
- data/spec/nvector_spec.rb +1 -1
- data/spec/slice_spec.rb +257 -0
- data/spec/spec_helper.rb +51 -0
- data/spec/utm5940.mtx +83844 -0
- metadata +113 -71
- data/.autotest +0 -23
- data/.gemtest +0 -0
- data/ext/nmatrix/cblas.c +0 -150
- data/ext/nmatrix/dense/blas_header.template.c +0 -52
- data/ext/nmatrix/dense/elementwise.template.c +0 -107
- data/ext/nmatrix/dense/gemm.template.c +0 -159
- data/ext/nmatrix/dense/gemv.template.c +0 -130
- data/ext/nmatrix/dense/rationalmath.template.c +0 -68
- data/ext/nmatrix/dense.c +0 -307
- data/ext/nmatrix/depend +0 -18
- data/ext/nmatrix/generator/syntax_tree.rb +0 -481
- data/ext/nmatrix/generator.rb +0 -594
- data/ext/nmatrix/list.c +0 -774
- data/ext/nmatrix/nmatrix.c +0 -1977
- data/ext/nmatrix/rational.c +0 -98
- data/ext/nmatrix/yale/complexmath.template.c +0 -71
- data/ext/nmatrix/yale/elementwise.template.c +0 -46
- data/ext/nmatrix/yale/elementwise_op.template.c +0 -73
- data/ext/nmatrix/yale/numbmm.template.c +0 -94
- data/ext/nmatrix/yale/smmp1.template.c +0 -21
- data/ext/nmatrix/yale/smmp2.template.c +0 -43
- data/ext/nmatrix/yale/smmp2_header.template.c +0 -46
- data/ext/nmatrix/yale/sort_columns.template.c +0 -56
- data/ext/nmatrix/yale/symbmm.template.c +0 -54
- data/ext/nmatrix/yale/transp.template.c +0 -68
- data/ext/nmatrix/yale.c +0 -726
- data/lib/array.rb +0 -67
- data/spec/syntax_tree_spec.rb +0 -46
data/lib/array.rb
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
# = NMatrix
|
|
2
|
-
#
|
|
3
|
-
# A linear algebra library for scientific computation in Ruby.
|
|
4
|
-
# NMatrix is part of SciRuby.
|
|
5
|
-
#
|
|
6
|
-
# NMatrix was originally inspired by and derived from NArray, by
|
|
7
|
-
# Masahiro Tanaka: http://narray.rubyforge.org
|
|
8
|
-
#
|
|
9
|
-
# == Copyright Information
|
|
10
|
-
#
|
|
11
|
-
# SciRuby is Copyright (c) 2010 - 2012, Ruby Science Foundation
|
|
12
|
-
# NMatrix is Copyright (c) 2012, Ruby Science Foundation
|
|
13
|
-
#
|
|
14
|
-
# Please see LICENSE.txt for additional copyright notices.
|
|
15
|
-
#
|
|
16
|
-
# == Contributing
|
|
17
|
-
#
|
|
18
|
-
# By contributing source code to SciRuby, you agree to be bound by
|
|
19
|
-
# our Contributor Agreement:
|
|
20
|
-
#
|
|
21
|
-
# * https://github.com/SciRuby/sciruby/wiki/Contributor-Agreement
|
|
22
|
-
#
|
|
23
|
-
# == array.rb
|
|
24
|
-
#
|
|
25
|
-
# Ruby core extensions for NMatrix.
|
|
26
|
-
|
|
27
|
-
class Array
|
|
28
|
-
# Convert a Ruby Array to an NMatrix.
|
|
29
|
-
#
|
|
30
|
-
# You must provide a shape for the matrix as the first argument.
|
|
31
|
-
#
|
|
32
|
-
# == Arguments:
|
|
33
|
-
# <tt>shape</tt> :: Array describing matrix dimensions (or Fixnum for square) -- REQUIRED!
|
|
34
|
-
# <tt>dtype</tt> :: Override data type (e.g., to store a Float as :float32 instead of :float64) -- optional.
|
|
35
|
-
# <tt>stype</tt> :: Optional storage type (defaults to :dense)
|
|
36
|
-
def to_nm *args
|
|
37
|
-
pos = 0
|
|
38
|
-
|
|
39
|
-
shape = args[pos]; pos += 1
|
|
40
|
-
|
|
41
|
-
dtype = begin
|
|
42
|
-
if pos >= args.size
|
|
43
|
-
# TODO: Upcasting.
|
|
44
|
-
if self[0].is_a?(Fixnum)
|
|
45
|
-
:int64
|
|
46
|
-
elsif self[0].is_a?(Float)
|
|
47
|
-
:float64
|
|
48
|
-
elsif self[0].is_a?(Rational)
|
|
49
|
-
:rational128
|
|
50
|
-
elsif self[0].is_a?(Complex)
|
|
51
|
-
:complex128
|
|
52
|
-
end.tap { pos += 1 }
|
|
53
|
-
else
|
|
54
|
-
args[pos].tap { pos += 1 }
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
stype = args[pos].is_a?(Symbol) ? args[pos].tap { pos += 1} : :dense
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if stype == :dense
|
|
62
|
-
NMatrix.new(stype, shape, self, dtype)
|
|
63
|
-
else
|
|
64
|
-
NMatrix.new(:dense, shape, self, dtype).cast(:stype, dtype)
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
end
|
data/spec/syntax_tree_spec.rb
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# = NMatrix
|
|
2
|
-
#
|
|
3
|
-
# A linear algebra library for scientific computation in Ruby.
|
|
4
|
-
# NMatrix is part of SciRuby.
|
|
5
|
-
#
|
|
6
|
-
# NMatrix was originally inspired by and derived from NArray, by
|
|
7
|
-
# Masahiro Tanaka: http://narray.rubyforge.org
|
|
8
|
-
#
|
|
9
|
-
# == Copyright Information
|
|
10
|
-
#
|
|
11
|
-
# SciRuby is Copyright (c) 2010 - 2012, Ruby Science Foundation
|
|
12
|
-
# NMatrix is Copyright (c) 2012, Ruby Science Foundation
|
|
13
|
-
#
|
|
14
|
-
# Please see LICENSE.txt for additional copyright notices.
|
|
15
|
-
#
|
|
16
|
-
# == Contributing
|
|
17
|
-
#
|
|
18
|
-
# By contributing source code to SciRuby, you agree to be bound by
|
|
19
|
-
# our Contributor Agreement:
|
|
20
|
-
#
|
|
21
|
-
# * https://github.com/SciRuby/sciruby/wiki/Contributor-Agreement
|
|
22
|
-
#
|
|
23
|
-
# == syntax_tree_spec.rb
|
|
24
|
-
#
|
|
25
|
-
# Tests for the source code generator (syntax_tree.rb in the
|
|
26
|
-
# ext/nmatrix/generator dir).
|
|
27
|
-
#
|
|
28
|
-
require "./ext/nmatrix/generator/syntax_tree.rb"
|
|
29
|
-
|
|
30
|
-
describe SyntaxTree do
|
|
31
|
-
#it "correctly handles rational == 0" do
|
|
32
|
-
# SyntaxTree.parse("x == 0").operate(:rational,:r128).should == "x.n == 0"
|
|
33
|
-
#end
|
|
34
|
-
#
|
|
35
|
-
#it "correctly handles rational = 0" do
|
|
36
|
-
# SyntaxTree.parse("x == 0").operate(:rational,:r128).split("\n").should == ["x.n = 0", "x.d = 1;"]
|
|
37
|
-
#end
|
|
38
|
-
#
|
|
39
|
-
#it "correctly handles complex == 0" do
|
|
40
|
-
# SyntaxTree.parse("x == 0").operate(:complex,:c128).should == "x.r == 0 && x.i == 0"
|
|
41
|
-
#end
|
|
42
|
-
#
|
|
43
|
-
#it "correctly handles complex = 0" do
|
|
44
|
-
# SyntaxTree.parse("x = 0").operate(:complex,:c128).split("\n").should == ["x.r = 0", "x.i = 1;"]
|
|
45
|
-
#end
|
|
46
|
-
end
|