numo-narray 0.9.1.8 → 0.9.1.9
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/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
|