numo-narray 0.9.1.8 → 0.9.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +3 -0
- data/ext/numo/narray/gen/spec.rb +11 -6
- data/ext/numo/narray/gen/tmpl/store.c +0 -9
- data/ext/numo/narray/gen/tmpl_bit/binary.c +6 -0
- data/ext/numo/narray/gen/tmpl_bit/store_bit.c +6 -2
- data/ext/numo/narray/gen/tmpl_bit/unary.c +4 -0
- data/ext/numo/narray/narray.c +2 -2
- data/ext/numo/narray/ndloop.c +2 -2
- data/ext/numo/narray/numo/narray.h +2 -2
- data/ext/numo/narray/numo/template.h +7 -9
- data/ext/numo/narray/struct.c +1 -1
- data/lib/numo/narray/extra.rb +13 -1
- data/numo-narray.gemspec +2 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2de0f542db4df78b97eecd077130fb8f3146191a229698512d487916a8a57ce0
|
4
|
+
data.tar.gz: 1452f989e4dc615c0e4f4b4891c9f44072431f9face27a602ce9b91286909cbf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23e67c8a70a95d69d25ad78561286eb56db63a0aa6465903ebbed1e076dfef6c4df4aa1ccd1d2f5ec40f4d02307c82c51b47c0da4cb48415c93bfdc6adaf4f27
|
7
|
+
data.tar.gz: 63847fb7e9173d0be70dc63be57ebbcb52a0dc6f52e613b7c9c69fab33f83920ba6b4b478156a18fa1fac0f6e08718713449441485149a6d9f178af7f2d87bdd
|
data/Rakefile
CHANGED
data/ext/numo/narray/gen/spec.rb
CHANGED
@@ -1,7 +1,4 @@
|
|
1
1
|
def_id "cast"
|
2
|
-
def_id "eq"
|
3
|
-
def_id "ne"
|
4
|
-
def_id "pow"
|
5
2
|
def_id "mulsum"
|
6
3
|
def_id "to_a"
|
7
4
|
if is_complex
|
@@ -33,7 +30,6 @@ if is_object
|
|
33
30
|
def_id "bit_xor"
|
34
31
|
def_id "bit_not"
|
35
32
|
def_id "abs"
|
36
|
-
def_id "minus"
|
37
33
|
def_id "reciprocal"
|
38
34
|
def_id "square"
|
39
35
|
def_id "floor"
|
@@ -43,6 +39,7 @@ if is_object
|
|
43
39
|
def_id "nan?"
|
44
40
|
def_id "infinite?"
|
45
41
|
def_id "finite?"
|
42
|
+
def_id "-@","minus"
|
46
43
|
def_id "==","eq"
|
47
44
|
def_id "!=","ne"
|
48
45
|
def_id ">" ,"gt"
|
@@ -50,6 +47,9 @@ if is_object
|
|
50
47
|
def_id "<" ,"lt"
|
51
48
|
def_id "<=","le"
|
52
49
|
def_id "<=>","ufo"
|
50
|
+
else
|
51
|
+
def_id "eq"
|
52
|
+
def_id "ne"
|
53
53
|
end
|
54
54
|
|
55
55
|
if is_int && !is_object
|
@@ -180,7 +180,12 @@ if !is_complex
|
|
180
180
|
binary2 "divmod"
|
181
181
|
end
|
182
182
|
|
183
|
-
|
183
|
+
|
184
|
+
if !is_bit
|
185
|
+
pow
|
186
|
+
def_id "**","pow"
|
187
|
+
def_alias "pow","**"
|
188
|
+
end
|
184
189
|
|
185
190
|
unary "minus", "-@"
|
186
191
|
unary "reciprocal"
|
@@ -274,7 +279,7 @@ if is_float
|
|
274
279
|
cond_unary "isfinite"
|
275
280
|
end
|
276
281
|
|
277
|
-
if is_int
|
282
|
+
if is_int && !is_object
|
278
283
|
if is_unsigned
|
279
284
|
accum "sum","u_int64_t","numo_cUInt64"
|
280
285
|
accum "prod","u_int64_t","numo_cUInt64"
|
@@ -30,15 +30,6 @@ static VALUE
|
|
30
30
|
}
|
31
31
|
}
|
32
32
|
|
33
|
-
if (rb_respond_to(obj,id_to_a)) {
|
34
|
-
obj = rb_funcall(obj,id_to_a,0);
|
35
|
-
if (TYPE(obj)!=T_ARRAY) {
|
36
|
-
rb_raise(rb_eTypeError, "`to_a' did not return Array");
|
37
|
-
}
|
38
|
-
<%=store_array.c_func%>(self,obj);
|
39
|
-
return self;
|
40
|
-
}
|
41
|
-
|
42
33
|
<% if is_object %>
|
43
34
|
robject_store_numeric(self,obj);
|
44
35
|
<% else %>
|
@@ -2,7 +2,7 @@ static void
|
|
2
2
|
<%=c_iter%>(na_loop_t *const lp)
|
3
3
|
{
|
4
4
|
size_t n;
|
5
|
-
|
5
|
+
ssize_t p1, p3;
|
6
6
|
ssize_t s1, s3;
|
7
7
|
size_t *idx1, *idx3;
|
8
8
|
int o1, l1, r1, len;
|
@@ -18,6 +18,10 @@ static void
|
|
18
18
|
STORE_BIT_STEP(a3, p3, s3, idx3, x);
|
19
19
|
}
|
20
20
|
} else {
|
21
|
+
a1 += p1/NB;
|
22
|
+
p1 %= NB;
|
23
|
+
a3 += p3/NB;
|
24
|
+
p3 %= NB;
|
21
25
|
o1 = p1-p3;
|
22
26
|
l1 = NB+o1;
|
23
27
|
r1 = NB-o1;
|
@@ -26,7 +30,7 @@ static void
|
|
26
30
|
if ((int)n<len) len=n;
|
27
31
|
if (o1>=0) x = *a1>>o1;
|
28
32
|
else x = *a1<<-o1;
|
29
|
-
if (p1+len>NB) x |= *(a1+1)<<r1;
|
33
|
+
if (p1+len>(ssize_t)NB) x |= *(a1+1)<<r1;
|
30
34
|
a1++;
|
31
35
|
*a3 = (x & (SLB(len)<<p3)) | (*a3 & ~(SLB(len)<<p3));
|
32
36
|
a3++;
|
data/ext/numo/narray/narray.c
CHANGED
@@ -1365,8 +1365,8 @@ nary_s_from_binary(int argc, VALUE *argv, VALUE type)
|
|
1365
1365
|
break;
|
1366
1366
|
case T_ARRAY:
|
1367
1367
|
nd = RARRAY_LEN(vshape);
|
1368
|
-
if (nd
|
1369
|
-
|
1368
|
+
if (nd > NA_MAX_DIMENSION) {
|
1369
|
+
rb_raise(nary_eDimensionError,"shape exceeds max dimension");
|
1370
1370
|
}
|
1371
1371
|
shape = ALLOCA_N(size_t,nd);
|
1372
1372
|
len = 1;
|
data/ext/numo/narray/ndloop.c
CHANGED
@@ -164,7 +164,7 @@ print_ndloop(na_md_loop_t *lp) {
|
|
164
164
|
for (i=0; i<lp->user.ndim; i++) {
|
165
165
|
printf(" &user.args[%d].iter[%d] = 0x%"SZF"x\n", j,i, (size_t)&lp->user.args[j].iter[i]);
|
166
166
|
printf(" user.args[%d].iter[%d].pos = %"SZF"u\n", j,i, lp->user.args[j].iter[i].pos);
|
167
|
-
printf(" user.args[%d].iter[%d].step = %"SZF"
|
167
|
+
printf(" user.args[%d].iter[%d].step = %"SZF"d\n", j,i, lp->user.args[j].iter[i].step);
|
168
168
|
printf(" user.args[%d].iter[%d].idx = 0x%"SZF"x\n", j,i, (size_t)lp->user.args[j].iter[i].idx);
|
169
169
|
}
|
170
170
|
}
|
@@ -174,7 +174,7 @@ print_ndloop(na_md_loop_t *lp) {
|
|
174
174
|
for (i=0; i<=nd; i++) {
|
175
175
|
printf(" &xargs[%d].iter[%d] = 0x%"SZF"x\n", j,i, (size_t)&LITER(lp,i,j));
|
176
176
|
printf(" xargs[%d].iter[%d].pos = %"SZF"u\n", j,i, LITER(lp,i,j).pos);
|
177
|
-
printf(" xargs[%d].iter[%d].step = %"SZF"
|
177
|
+
printf(" xargs[%d].iter[%d].step = %"SZF"d\n", j,i, LITER(lp,i,j).step);
|
178
178
|
printf(" xargs[%d].iter[%d].idx = 0x%"SZF"x\n", j,i, (size_t)LITER(lp,i,j).idx);
|
179
179
|
}
|
180
180
|
printf(" xargs[%d].bufcp = 0x%"SZF"x\n", j, (size_t)lp->xargs[j].bufcp);
|
@@ -36,19 +36,17 @@
|
|
36
36
|
|
37
37
|
#define INIT_PTR_BIT( lp, i, ad, ps, st ) \
|
38
38
|
{ \
|
39
|
-
ps = ((lp)->args[i].iter[0]).pos;
|
40
|
-
ad = (BIT_DIGIT*)(((lp)->args[i]).ptr)
|
41
|
-
|
42
|
-
st = ((lp)->args[i].iter[0]).step; \
|
39
|
+
ps = ((lp)->args[i].iter[0]).pos; \
|
40
|
+
ad = (BIT_DIGIT*)(((lp)->args[i]).ptr); \
|
41
|
+
st = ((lp)->args[i].iter[0]).step; \
|
43
42
|
}
|
44
43
|
|
45
44
|
#define INIT_PTR_BIT_IDX( lp, i, ad, ps, st, id ) \
|
46
45
|
{ \
|
47
|
-
ps = ((lp)->args[i].iter[0]).pos;
|
48
|
-
ad = (BIT_DIGIT*)(((lp)->args[i]).ptr)
|
49
|
-
|
50
|
-
|
51
|
-
id = ((lp)->args[i].iter[0]).idx; \
|
46
|
+
ps = ((lp)->args[i].iter[0]).pos; \
|
47
|
+
ad = (BIT_DIGIT*)(((lp)->args[i]).ptr); \
|
48
|
+
st = ((lp)->args[i].iter[0]).step; \
|
49
|
+
id = ((lp)->args[i].iter[0]).idx; \
|
52
50
|
}
|
53
51
|
|
54
52
|
#define GET_DATA( ptr, type, val ) \
|
data/ext/numo/narray/struct.c
CHANGED
@@ -813,7 +813,7 @@ nst_s_add_type(int argc, VALUE *argv, VALUE mod)
|
|
813
813
|
|
814
814
|
#define NST_TYPEDEF(tpname,tpclass) \
|
815
815
|
static VALUE \
|
816
|
-
nst_s_##tpname(
|
816
|
+
nst_s_##tpname(int argc, VALUE *argv, VALUE mod) \
|
817
817
|
{ nstruct_add_type(tpclass,argc,argv,mod); \
|
818
818
|
return Qnil; \
|
819
819
|
}
|
data/lib/numo/narray/extra.rb
CHANGED
@@ -106,7 +106,19 @@ module Numo
|
|
106
106
|
|
107
107
|
# Convert the argument to an narray if not an narray.
|
108
108
|
def self.cast(a)
|
109
|
-
|
109
|
+
case a
|
110
|
+
when NArray
|
111
|
+
a
|
112
|
+
when Array,Numeric
|
113
|
+
NArray.array_type(a).cast(a)
|
114
|
+
else
|
115
|
+
if a.respond_to?(:to_a)
|
116
|
+
a = a.to_a
|
117
|
+
NArray.array_type(a).cast(a)
|
118
|
+
else
|
119
|
+
raise TypeError,"invalid type for NArray"
|
120
|
+
end
|
121
|
+
end
|
110
122
|
end
|
111
123
|
|
112
124
|
def self.asarray(a)
|
data/numo-narray.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.summary = %q{alpha release of Numo::NArray - New NArray class library in Ruby/Numo (NUmerical MOdule)}
|
21
21
|
spec.homepage = "https://github.com/ruby-numo/numo-narray"
|
22
22
|
spec.license = "BSD-3-Clause"
|
23
|
-
spec.required_ruby_version = '
|
23
|
+
spec.required_ruby_version = '>= 2.2'
|
24
24
|
|
25
25
|
spec.files = `git ls-files Gemfile README.md Rakefile lib ext numo-narray.gemspec spec`.split($/)
|
26
26
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
@@ -34,5 +34,6 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_development_dependency "bundler", "~> 2.0"
|
35
35
|
end
|
36
36
|
spec.add_development_dependency "rake", ">= 12.3.3"
|
37
|
+
spec.add_development_dependency "rake-compiler", "~> 1.1"
|
37
38
|
spec.add_development_dependency "test-unit", "~> 3.0"
|
38
39
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: numo-narray
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.1.
|
4
|
+
version: 0.9.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masahiro TANAKA
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 12.3.3
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake-compiler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.1'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.1'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: test-unit
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -222,7 +236,7 @@ require_paths:
|
|
222
236
|
- lib
|
223
237
|
required_ruby_version: !ruby/object:Gem::Requirement
|
224
238
|
requirements:
|
225
|
-
- - "
|
239
|
+
- - ">="
|
226
240
|
- !ruby/object:Gem::Version
|
227
241
|
version: '2.2'
|
228
242
|
required_rubygems_version: !ruby/object:Gem::Requirement
|