numo-narray 0.9.0.4 → 0.9.0.5
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/README.md +11 -8
- data/Rakefile +9 -0
- data/ext/numo/narray/array.c +178 -47
- data/ext/numo/narray/data.c +105 -97
- data/ext/numo/narray/depend.erb +6 -7
- data/ext/numo/narray/gen/cogen.rb +30 -7
- data/ext/numo/narray/gen/def/bit.rb +17 -14
- data/ext/numo/narray/gen/def/dcomplex.rb +19 -15
- data/ext/numo/narray/gen/def/dfloat.rb +17 -13
- data/ext/numo/narray/gen/def/int16.rb +16 -12
- data/ext/numo/narray/gen/def/int32.rb +16 -12
- data/ext/numo/narray/gen/def/int64.rb +16 -12
- data/ext/numo/narray/gen/def/int8.rb +16 -12
- data/ext/numo/narray/gen/def/robject.rb +18 -14
- data/ext/numo/narray/gen/def/scomplex.rb +19 -15
- data/ext/numo/narray/gen/def/sfloat.rb +17 -13
- data/ext/numo/narray/gen/def/uint16.rb +16 -12
- data/ext/numo/narray/gen/def/uint32.rb +16 -12
- data/ext/numo/narray/gen/def/uint64.rb +16 -12
- data/ext/numo/narray/gen/def/uint8.rb +16 -12
- data/ext/numo/narray/gen/erbpp2.rb +324 -0
- data/ext/numo/narray/gen/narray_def.rb +252 -0
- data/ext/numo/narray/gen/spec.rb +141 -71
- data/ext/numo/narray/gen/tmpl/accum.c +22 -9
- data/ext/numo/narray/gen/tmpl/accum_binary.c +29 -13
- data/ext/numo/narray/gen/tmpl/accum_index.c +38 -16
- data/ext/numo/narray/gen/tmpl/alloc_func.c +107 -0
- data/ext/numo/narray/gen/tmpl/allocate.c +1 -1
- data/ext/numo/narray/gen/tmpl/aref.c +1 -1
- data/ext/numo/narray/gen/tmpl/aset.c +4 -2
- data/ext/numo/narray/gen/tmpl/binary.c +4 -4
- data/ext/numo/narray/gen/tmpl/binary2.c +5 -5
- data/ext/numo/narray/gen/tmpl/binary_s.c +5 -5
- data/ext/numo/narray/gen/tmpl/bincount.c +4 -4
- data/ext/numo/narray/gen/tmpl/cast.c +9 -6
- data/ext/numo/narray/gen/tmpl/cast_array.c +4 -9
- data/ext/numo/narray/gen/tmpl/class.c +9 -0
- data/ext/numo/narray/gen/tmpl/clip.c +118 -0
- data/ext/numo/narray/gen/tmpl/coerce_cast.c +4 -2
- data/ext/numo/narray/gen/tmpl/cond_binary.c +5 -5
- data/ext/numo/narray/gen/tmpl/cond_unary.c +6 -6
- data/ext/numo/narray/gen/tmpl/cum.c +18 -9
- data/ext/numo/narray/gen/tmpl/each.c +2 -2
- data/ext/numo/narray/gen/tmpl/each_with_index.c +2 -2
- data/ext/numo/narray/gen/tmpl/extract.c +2 -2
- data/ext/numo/narray/gen/tmpl/extract_data.c +48 -0
- data/ext/numo/narray/gen/tmpl/eye.c +3 -3
- data/ext/numo/narray/gen/tmpl/fill.c +2 -2
- data/ext/numo/narray/gen/tmpl/format.c +5 -5
- data/ext/numo/narray/gen/tmpl/format_to_a.c +4 -4
- data/ext/numo/narray/gen/tmpl/frexp.c +37 -0
- data/ext/numo/narray/gen/tmpl/init_class.c +20 -0
- data/ext/numo/narray/gen/tmpl/init_module.c +12 -0
- data/ext/numo/narray/gen/tmpl/inspect.c +2 -2
- data/ext/numo/narray/gen/tmpl/lib.c +45 -0
- data/ext/numo/narray/gen/tmpl/logseq.c +1 -1
- data/ext/numo/narray/gen/tmpl/map_with_index.c +2 -2
- data/ext/numo/narray/gen/tmpl/median.c +31 -8
- data/ext/numo/narray/gen/tmpl/minmax.c +24 -24
- data/ext/numo/narray/gen/tmpl/module.c +9 -0
- data/ext/numo/narray/gen/tmpl/new_dim0.c +12 -0
- data/ext/numo/narray/gen/tmpl/poly.c +3 -3
- data/ext/numo/narray/gen/tmpl/pow.c +1 -1
- data/ext/numo/narray/gen/tmpl/powint.c +1 -1
- data/ext/numo/narray/gen/tmpl/qsort.c +10 -3
- data/ext/numo/narray/gen/tmpl/rand.c +1 -1
- data/ext/numo/narray/gen/tmpl/rand_norm.c +1 -1
- data/ext/numo/narray/gen/tmpl/seq.c +1 -1
- data/ext/numo/narray/gen/tmpl/set2.c +5 -5
- data/ext/numo/narray/gen/tmpl/sort.c +29 -14
- data/ext/numo/narray/gen/tmpl/sort_index.c +41 -20
- data/ext/numo/narray/gen/tmpl/store.c +11 -5
- data/ext/numo/narray/gen/tmpl/store_array.c +1 -1
- data/ext/numo/narray/gen/tmpl/store_bit.c +1 -1
- data/ext/numo/narray/gen/tmpl/store_from.c +1 -1
- data/ext/numo/narray/gen/tmpl/store_numeric.c +3 -16
- data/ext/numo/narray/gen/tmpl/to_a.c +2 -2
- data/ext/numo/narray/gen/tmpl/unary.c +7 -7
- data/ext/numo/narray/gen/tmpl/unary2.c +8 -8
- data/ext/numo/narray/gen/tmpl/unary_ret2.c +33 -0
- data/ext/numo/narray/gen/tmpl/unary_s.c +8 -8
- data/ext/numo/narray/gen/tmpl_bit/allocate.c +1 -5
- data/ext/numo/narray/gen/tmpl_bit/aref.c +1 -1
- data/ext/numo/narray/gen/tmpl_bit/aset.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/binary.c +8 -8
- data/ext/numo/narray/gen/tmpl_bit/bit_count.c +8 -8
- data/ext/numo/narray/gen/tmpl_bit/bit_reduce.c +6 -6
- data/ext/numo/narray/gen/tmpl_bit/each.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/each_with_index.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/extract.c +1 -1
- data/ext/numo/narray/gen/tmpl_bit/fill.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/format.c +5 -5
- data/ext/numo/narray/gen/tmpl_bit/format_to_a.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/inspect.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/mask.c +5 -5
- data/ext/numo/narray/gen/tmpl_bit/none_p.c +4 -4
- data/ext/numo/narray/gen/tmpl_bit/store_array.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/store_bit.c +1 -1
- data/ext/numo/narray/gen/tmpl_bit/store_from.c +1 -1
- data/ext/numo/narray/gen/tmpl_bit/to_a.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/unary.c +9 -9
- data/ext/numo/narray/gen/tmpl_bit/where.c +6 -6
- data/ext/numo/narray/gen/tmpl_bit/where2.c +8 -8
- data/ext/numo/narray/index.c +46 -30
- data/ext/numo/narray/math.c +12 -6
- data/ext/numo/narray/narray.c +242 -218
- data/ext/numo/narray/ndloop.c +17 -24
- data/ext/numo/narray/numo/intern.h +63 -67
- data/ext/numo/narray/numo/narray.h +38 -13
- data/ext/numo/narray/numo/ndloop.h +1 -1
- data/ext/numo/narray/numo/template.h +1 -1
- data/ext/numo/narray/numo/types/complex.h +8 -4
- data/ext/numo/narray/numo/types/complex_macro.h +118 -1
- data/ext/numo/narray/numo/types/float_macro.h +283 -6
- data/ext/numo/narray/numo/types/robj_macro.h +261 -9
- data/ext/numo/narray/numo/types/xint_macro.h +35 -0
- data/ext/numo/narray/struct.c +34 -15
- data/lib/erbpp.rb +5 -1
- data/lib/erbpp/line_number.rb +10 -3
- data/lib/erbpp/narray_def.rb +55 -25
- data/lib/numo/narray/extra.rb +638 -219
- data/numo-narray.gemspec +1 -0
- data/spec/narray_spec.rb +2 -2
- metadata +17 -14
- data/ext/numo/narray/gen/dtype.erb.c +0 -82
- data/ext/numo/narray/gen/tmpl/cast_numeric.c +0 -22
- data/ext/numo/narray/gen/tmpl/robj_allocate.c +0 -32
- data/ext/numo/narray/gen/tmpl_bit/cast.c +0 -37
- data/ext/numo/narray/gen/tmpl_bit/cast_array.c +0 -18
- data/ext/numo/narray/gen/tmpl_bit/cast_numeric.c +0 -22
- data/ext/numo/narray/gen/tmpl_bit/coerce_cast.c +0 -8
- data/ext/numo/narray/gen/tmpl_bit/map_with_index.c +0 -94
- data/ext/numo/narray/gen/tmpl_bit/store.c +0 -32
- data/ext/numo/narray/gen/tmpl_bit/store_numeric.c +0 -22
@@ -1,5 +1,5 @@
|
|
1
1
|
static VALUE
|
2
|
-
<%=c_func%>(VALUE self)
|
2
|
+
<%=c_func(0)%>(VALUE self)
|
3
3
|
{
|
4
4
|
narray_t *na;
|
5
5
|
char *ptr;
|
@@ -14,10 +14,6 @@ static VALUE
|
|
14
14
|
NA_DATA_PTR(na) = ptr;
|
15
15
|
}
|
16
16
|
break;
|
17
|
-
//case NARRAY_FILEMAP_T:
|
18
|
-
// to be implemented
|
19
|
-
// ptr = ((narray_filemap_t*)na)->ptr;
|
20
|
-
// break;
|
21
17
|
case NARRAY_VIEW_T:
|
22
18
|
rb_funcall(NA_VIEW_DATA(na), rb_intern("allocate"), 0);
|
23
19
|
break;
|
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
*/
|
40
40
|
static VALUE
|
41
|
-
<%=c_func%>(int argc, VALUE *argv, VALUE self)
|
41
|
+
<%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
|
42
42
|
{
|
43
43
|
int nd;
|
44
44
|
size_t pos;
|
@@ -55,8 +55,8 @@ static VALUE
|
|
55
55
|
a = na_aref_main(argc, argv, self, 0, nd);
|
56
56
|
<%=c_func.sub(/_aset/,"_store")%>(a, argv[argc]);
|
57
57
|
} else {
|
58
|
+
x = <%=type_name%>_extract_data(argv[argc]);
|
58
59
|
ptr = na_get_pointer_for_read_write(self);
|
59
|
-
x = m_num_to_data(argv[argc]);
|
60
60
|
STORE_BIT(ptr,pos,x);
|
61
61
|
}
|
62
62
|
|
@@ -17,7 +17,7 @@ static void
|
|
17
17
|
for (; n--;) {
|
18
18
|
LOAD_BIT_STEP(a1, p1, s1, idx1, x);
|
19
19
|
LOAD_BIT_STEP(a2, p2, s2, idx2, y);
|
20
|
-
x = m_<%=
|
20
|
+
x = m_<%=name%>(x,y);
|
21
21
|
STORE_BIT_STEP(a3, p3, s3, idx3, x);
|
22
22
|
}
|
23
23
|
} else {
|
@@ -40,7 +40,7 @@ static void
|
|
40
40
|
else y = *a2<<-o2;
|
41
41
|
if (p2+len>NB) y |= *(a2+1)<<r2;
|
42
42
|
a2++;
|
43
|
-
x = m_<%=
|
43
|
+
x = m_<%=name%>(x,y);
|
44
44
|
*a3 = (x & (SLB(len)<<p3)) | (*a3 & ~(SLB(len)<<p3));
|
45
45
|
a3++;
|
46
46
|
n -= len;
|
@@ -49,7 +49,7 @@ static void
|
|
49
49
|
for (; n>=NB; n-=NB) {
|
50
50
|
x = *(a1++);
|
51
51
|
y = *(a2++);
|
52
|
-
x = m_<%=
|
52
|
+
x = m_<%=name%>(x,y);
|
53
53
|
*(a3++) = x;
|
54
54
|
}
|
55
55
|
} else {
|
@@ -62,7 +62,7 @@ static void
|
|
62
62
|
if (o2<0) y |= *(a2-1)>>l2;
|
63
63
|
if (o2>0) y |= *(a2+1)<<r2;
|
64
64
|
a2++;
|
65
|
-
x = m_<%=
|
65
|
+
x = m_<%=name%>(x,y);
|
66
66
|
*(a3++) = x;
|
67
67
|
}
|
68
68
|
}
|
@@ -71,20 +71,20 @@ static void
|
|
71
71
|
if (o1<0) x |= *(a1-1)>>l1;
|
72
72
|
y = *a2>>o2;
|
73
73
|
if (o2<0) y |= *(a2-1)>>l2;
|
74
|
-
x = m_<%=
|
74
|
+
x = m_<%=name%>(x,y);
|
75
75
|
*a3 = (x & SLB(n)) | (*a3 & BALL<<n);
|
76
76
|
}
|
77
77
|
}
|
78
78
|
}
|
79
79
|
|
80
80
|
/*
|
81
|
-
Binary <%=
|
81
|
+
Binary <%=name%>.
|
82
82
|
@overload <%=op_map%> other
|
83
83
|
@param [Numo::NArray,Numeric] other
|
84
|
-
@return [Numo::NArray] <%=
|
84
|
+
@return [Numo::NArray] <%=name%> of self and other.
|
85
85
|
*/
|
86
86
|
static VALUE
|
87
|
-
<%=c_func%>(VALUE self, VALUE other)
|
87
|
+
<%=c_func(1)%>(VALUE self, VALUE other)
|
88
88
|
{
|
89
89
|
ndfunc_arg_in_t ain[2] = {{cT,0},{cT,0}};
|
90
90
|
ndfunc_arg_out_t aout[1] = {{cT,0}};
|
@@ -22,7 +22,7 @@ static void
|
|
22
22
|
for (; i--;) {
|
23
23
|
LOAD_BIT(a1, p1+*idx1, x);
|
24
24
|
idx1++;
|
25
|
-
if (m_<%=
|
25
|
+
if (m_<%=name%>(x)) {
|
26
26
|
y++;
|
27
27
|
}
|
28
28
|
}
|
@@ -30,7 +30,7 @@ static void
|
|
30
30
|
for (; i--;) {
|
31
31
|
LOAD_BIT(a1, p1, x);
|
32
32
|
p1 += s1;
|
33
|
-
if (m_<%=
|
33
|
+
if (m_<%=name%>(x)) {
|
34
34
|
y++;
|
35
35
|
}
|
36
36
|
}
|
@@ -41,7 +41,7 @@ static void
|
|
41
41
|
for (; i--;) {
|
42
42
|
LOAD_BIT(a1, p1+*idx1, x);
|
43
43
|
idx1++;
|
44
|
-
if (m_<%=
|
44
|
+
if (m_<%=name%>(x)) {
|
45
45
|
GET_DATA(p2, int_t, y);
|
46
46
|
y++;
|
47
47
|
SET_DATA(p2, int_t, y);
|
@@ -52,7 +52,7 @@ static void
|
|
52
52
|
for (; i--;) {
|
53
53
|
LOAD_BIT(a1, p1, x);
|
54
54
|
p1+=s1;
|
55
|
-
if (m_<%=
|
55
|
+
if (m_<%=name%>(x)) {
|
56
56
|
GET_DATA(p2, int_t, y);
|
57
57
|
y++;
|
58
58
|
SET_DATA(p2, int_t, y);
|
@@ -66,19 +66,19 @@ static void
|
|
66
66
|
/*
|
67
67
|
Returns the number of bits.
|
68
68
|
If argument is supplied, return Int-array counted along the axes.
|
69
|
-
@overload <%=op_map%>(
|
70
|
-
@param [Integer] axis axes to be counted.
|
69
|
+
@overload <%=op_map%>(axis:nil)
|
70
|
+
@param [Integer,Array,Range] axis axes to be counted.
|
71
71
|
@return [Numo::Int64]
|
72
72
|
*/
|
73
73
|
static VALUE
|
74
|
-
<%=c_func%>(int argc, VALUE *argv, VALUE self)
|
74
|
+
<%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
|
75
75
|
{
|
76
76
|
VALUE v, reduce;
|
77
77
|
ndfunc_arg_in_t ain[3] = {{cT,0},{sym_reduce,0},{sym_init,0}};
|
78
78
|
ndfunc_arg_out_t aout[1] = {{numo_cInt64,0}};
|
79
79
|
ndfunc_t ndf = { <%=c_iter%>, FULL_LOOP_NIP, 3, 1, ain, aout };
|
80
80
|
|
81
|
-
reduce = na_reduce_dimension(argc, argv, 1, &self);
|
81
|
+
reduce = na_reduce_dimension(argc, argv, 1, &self, 0);
|
82
82
|
v = na_ndloop(&ndf, 3, self, reduce, INT2FIX(0));
|
83
83
|
return rb_funcall(v,rb_intern("extract"),0);
|
84
84
|
}
|
@@ -91,31 +91,31 @@ static void
|
|
91
91
|
}
|
92
92
|
|
93
93
|
/*
|
94
|
-
<% case
|
94
|
+
<% case name
|
95
95
|
when /^any/ %>
|
96
96
|
Return true if any of bits is one (true).
|
97
97
|
<% when /^all/ %>
|
98
98
|
Return true if all of bits are one (true).
|
99
99
|
<% end %>
|
100
100
|
If argument is supplied, return Bit-array reduced along the axes.
|
101
|
-
@overload <%=op_map%>(
|
102
|
-
@param [Integer] axis axes to be reduced.
|
101
|
+
@overload <%=op_map%>(axis:nil)
|
102
|
+
@param [Integer,Array,Range] axis axes to be reduced.
|
103
103
|
@return [Numo::Bit] .
|
104
104
|
*/
|
105
105
|
static VALUE
|
106
|
-
<%=c_func%>(int argc, VALUE *argv, VALUE self)
|
106
|
+
<%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
|
107
107
|
{
|
108
108
|
VALUE v, reduce;
|
109
109
|
ndfunc_arg_in_t ain[3] = {{cT,0},{sym_reduce,0},{sym_init,0}};
|
110
110
|
ndfunc_arg_out_t aout[1] = {{numo_cBit,0}};
|
111
111
|
ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP_NIP, 3,1, ain,aout};
|
112
112
|
|
113
|
-
reduce = na_reduce_dimension(argc, argv, 1, &self);
|
113
|
+
reduce = na_reduce_dimension(argc, argv, 1, &self, 0);
|
114
114
|
v = na_ndloop(&ndf, 3, self, reduce, INT2FIX(<%=init_bit%>));
|
115
115
|
if (argc > 0) {
|
116
116
|
return v;
|
117
117
|
}
|
118
|
-
v =
|
118
|
+
v = <%=find_tmpl("extract").c_func%>(v);
|
119
119
|
switch (v) {
|
120
120
|
case INT2FIX(0):
|
121
121
|
return Qfalse;
|
@@ -28,13 +28,13 @@ void
|
|
28
28
|
/*
|
29
29
|
Calls the given block once for each element in self,
|
30
30
|
passing that element as a parameter.
|
31
|
-
@overload <%=
|
31
|
+
@overload <%=name%>
|
32
32
|
@return [Numo::NArray] self
|
33
33
|
For a block {|x| ... }
|
34
34
|
@yield [x] x is element of NArray.
|
35
35
|
*/
|
36
36
|
static VALUE
|
37
|
-
<%=c_func%>(VALUE self)
|
37
|
+
<%=c_func(0)%>(VALUE self)
|
38
38
|
{
|
39
39
|
ndfunc_arg_in_t ain[1] = {{Qnil,0}};
|
40
40
|
ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP_NIP, 1,0, ain,0};
|
@@ -50,13 +50,13 @@ void
|
|
50
50
|
/*
|
51
51
|
Invokes the given block once for each element of self,
|
52
52
|
passing that element and indices along each axis as parameters.
|
53
|
-
@overload <%=
|
53
|
+
@overload <%=name%>
|
54
54
|
@return [Numo::NArray] self
|
55
55
|
For a block {|x,i,j,...| ... }
|
56
56
|
@yield [x,i,j,...] x is an element, i,j,... are multidimensional indices.
|
57
57
|
*/
|
58
58
|
static VALUE
|
59
|
-
<%=c_func%>(VALUE self)
|
59
|
+
<%=c_func(0)%>(VALUE self)
|
60
60
|
{
|
61
61
|
ndfunc_arg_in_t ain[1] = {{Qnil,0}};
|
62
62
|
ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP_NIP, 1,0, ain,0};
|
@@ -50,12 +50,12 @@ static void
|
|
50
50
|
|
51
51
|
/*
|
52
52
|
Fill elements with other.
|
53
|
-
@overload <%=
|
53
|
+
@overload <%=name%> other
|
54
54
|
@param [Numeric] other
|
55
55
|
@return [Numo::<%=class_name%>] self.
|
56
56
|
*/
|
57
57
|
static VALUE
|
58
|
-
<%=c_func%>(VALUE self, VALUE val)
|
58
|
+
<%=c_func(1)%>(VALUE self, VALUE val)
|
59
59
|
{
|
60
60
|
ndfunc_arg_in_t ain[2] = {{OVERWRITE,0},{sym_option}};
|
61
61
|
ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP, 2,0, ain,0};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
static VALUE
|
2
|
-
format_<%=
|
2
|
+
format_<%=type_name%>(VALUE fmt, dtype x)
|
3
3
|
{
|
4
4
|
if (NIL_P(fmt)) {
|
5
5
|
char s[4];
|
@@ -29,13 +29,13 @@ static void
|
|
29
29
|
if (idx1) {
|
30
30
|
for (; i--;) {
|
31
31
|
LOAD_BIT(a1, p1+*idx1, x); idx1++;
|
32
|
-
y = format_<%=
|
32
|
+
y = format_<%=type_name%>(fmt, x);
|
33
33
|
SET_DATA_STRIDE(p2, s2, VALUE, y);
|
34
34
|
}
|
35
35
|
} else {
|
36
36
|
for (; i--;) {
|
37
37
|
LOAD_BIT(a1, p1, x); p1+=s1;
|
38
|
-
y = format_<%=
|
38
|
+
y = format_<%=type_name%>(fmt, x);
|
39
39
|
SET_DATA_STRIDE(p2, s2, VALUE, y);
|
40
40
|
}
|
41
41
|
}
|
@@ -43,12 +43,12 @@ static void
|
|
43
43
|
|
44
44
|
/*
|
45
45
|
Format elements into strings.
|
46
|
-
@overload <%=
|
46
|
+
@overload <%=name%> format
|
47
47
|
@param [String] format
|
48
48
|
@return [Numo::RObject] array of formated strings.
|
49
49
|
*/
|
50
50
|
static VALUE
|
51
|
-
<%=c_func%>(int argc, VALUE *argv, VALUE self)
|
51
|
+
<%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
|
52
52
|
{
|
53
53
|
VALUE fmt=Qnil;
|
54
54
|
|
@@ -31,12 +31,12 @@ static void
|
|
31
31
|
|
32
32
|
/*
|
33
33
|
Format elements into strings.
|
34
|
-
@overload <%=
|
34
|
+
@overload <%=name%> format
|
35
35
|
@param [String] format
|
36
36
|
@return [Array] array of formated strings.
|
37
37
|
*/
|
38
38
|
static VALUE
|
39
|
-
<%=c_func%>(int argc, VALUE *argv, VALUE self)
|
39
|
+
<%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
|
40
40
|
{
|
41
41
|
volatile VALUE fmt=Qnil;
|
42
42
|
ndfunc_arg_in_t ain[3] = {{Qnil,0},{sym_loop_opt},{sym_option}};
|
@@ -3,7 +3,7 @@ static VALUE
|
|
3
3
|
{
|
4
4
|
dtype x;
|
5
5
|
LOAD_BIT(ptr,pos,x);
|
6
|
-
return format_<%=
|
6
|
+
return format_<%=type_name%>(fmt, x);
|
7
7
|
}
|
8
8
|
|
9
9
|
/*
|
@@ -12,7 +12,7 @@ static VALUE
|
|
12
12
|
@return [String]
|
13
13
|
*/
|
14
14
|
VALUE
|
15
|
-
<%=c_func%>(VALUE ary)
|
15
|
+
<%=c_func(0)%>(VALUE ary)
|
16
16
|
{
|
17
17
|
return na_ndloop_inspect(ary, <%=c_iter%>, Qnil);
|
18
18
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
static void
|
2
|
-
|
2
|
+
<%=c_iter%>(na_loop_t *const lp)
|
3
3
|
{
|
4
4
|
size_t i;
|
5
5
|
BIT_DIGIT *a;
|
@@ -82,7 +82,7 @@ iter_bit_pointer(na_loop_t *const lp)
|
|
82
82
|
@return [Numo::NArray] view of masked array.
|
83
83
|
*/
|
84
84
|
static VALUE
|
85
|
-
|
85
|
+
<%=c_func(1)%>(VALUE mask, VALUE val)
|
86
86
|
{
|
87
87
|
volatile VALUE idx_1, view;
|
88
88
|
narray_data_t *nidx;
|
@@ -93,10 +93,10 @@ static VALUE
|
|
93
93
|
size_t n_1;
|
94
94
|
where_opt_t g;
|
95
95
|
ndfunc_arg_in_t ain[2] = {{cT,0},{Qnil,0}};
|
96
|
-
ndfunc_t ndf = {
|
96
|
+
ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP, 2, 0, ain, 0};
|
97
97
|
|
98
|
-
n_1 = NUM2SIZET(
|
99
|
-
idx_1 =
|
98
|
+
n_1 = NUM2SIZET(<%=find_tmpl("count_true").c_func%>(0, NULL, mask));
|
99
|
+
idx_1 = nary_new(cIndex, 1, &n_1);
|
100
100
|
g.count = 0;
|
101
101
|
g.elmsz = SIZEOF_VOIDP;
|
102
102
|
g.idx1 = na_get_pointer_for_write(idx_1);
|
@@ -1,14 +1,14 @@
|
|
1
|
-
VALUE
|
2
|
-
|
1
|
+
static VALUE
|
2
|
+
<%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
|
3
3
|
{
|
4
4
|
VALUE v;
|
5
5
|
|
6
|
-
v =
|
6
|
+
v = <%=find_tmpl("any?").c_func%>(argc,argv,self);
|
7
7
|
|
8
8
|
if (v==Qtrue) {
|
9
9
|
return Qfalse;
|
10
10
|
} else if (v==Qfalse) {
|
11
11
|
return Qtrue;
|
12
12
|
}
|
13
|
-
return
|
13
|
+
return <%=find_tmpl("not").c_func%>(v);
|
14
14
|
}
|
@@ -20,7 +20,7 @@ static void
|
|
20
20
|
|
21
21
|
if (lp->args[1].ptr) {
|
22
22
|
if (v1 == Qtrue) {
|
23
|
-
iter_<%=
|
23
|
+
iter_<%=type_name%>_store_<%=type_name%>(lp);
|
24
24
|
i = lp->args[1].shape[0];
|
25
25
|
if (idx1) {
|
26
26
|
idx1 += i;
|
@@ -94,7 +94,7 @@ static void
|
|
94
94
|
}
|
95
95
|
|
96
96
|
static VALUE
|
97
|
-
<%=c_func%>(VALUE self, VALUE rary)
|
97
|
+
<%=c_func(:nodef)%>(VALUE self, VALUE rary)
|
98
98
|
{
|
99
99
|
ndfunc_arg_in_t ain[2] = {{OVERWRITE,0}, {rb_cArray,0}};
|
100
100
|
ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP, 2, 0, ain, 0};
|
@@ -30,11 +30,11 @@ void
|
|
30
30
|
|
31
31
|
/*
|
32
32
|
Convert self to Array.
|
33
|
-
@overload <%=
|
33
|
+
@overload <%=name%>
|
34
34
|
@return [Array]
|
35
35
|
*/
|
36
36
|
static VALUE
|
37
|
-
<%=c_func%>(VALUE self)
|
37
|
+
<%=c_func(0)%>(VALUE self)
|
38
38
|
{
|
39
39
|
ndfunc_arg_in_t ain[3] = {{Qnil,0},{sym_loop_opt},{sym_option}};
|
40
40
|
ndfunc_arg_out_t aout[1] = {{rb_cArray,0}}; // dummy?
|
@@ -16,7 +16,7 @@ static void
|
|
16
16
|
if (s1!=1 || s3!=1 || idx1 || idx3) {
|
17
17
|
for (; n--;) {
|
18
18
|
LOAD_BIT_STEP(a1, p1, s1, idx1, x);
|
19
|
-
y = m_<%=
|
19
|
+
y = m_<%=name%>(x);
|
20
20
|
STORE_BIT_STEP(a3, p3, s3, idx3, y);
|
21
21
|
}
|
22
22
|
} else {
|
@@ -31,7 +31,7 @@ static void
|
|
31
31
|
else x = *a1<<-o1;
|
32
32
|
if (p1+len>NB) x |= *(a1+1)<<r1;
|
33
33
|
a1++;
|
34
|
-
y = m_<%=
|
34
|
+
y = m_<%=name%>(x);
|
35
35
|
*a3 = (y & (SLB(len)<<p3)) | (*a3 & ~(SLB(len)<<p3));
|
36
36
|
a3++;
|
37
37
|
n -= len;
|
@@ -39,7 +39,7 @@ static void
|
|
39
39
|
if (o1==0) {
|
40
40
|
for (; n>=NB; n-=NB) {
|
41
41
|
x = *(a1++);
|
42
|
-
y = m_<%=
|
42
|
+
y = m_<%=name%>(x);
|
43
43
|
*(a3++) = y;
|
44
44
|
}
|
45
45
|
} else {
|
@@ -48,26 +48,26 @@ static void
|
|
48
48
|
if (o1<0) x |= *(a1-1)>>l1;
|
49
49
|
if (o1>0) x |= *(a1+1)<<r1;
|
50
50
|
a1++;
|
51
|
-
y = m_<%=
|
51
|
+
y = m_<%=name%>(x);
|
52
52
|
*(a3++) = y;
|
53
53
|
}
|
54
54
|
}
|
55
55
|
if (n>0) {
|
56
56
|
x = *a1>>o1;
|
57
57
|
if (o1<0) x |= *(a1-1)>>l1;
|
58
|
-
y = m_<%=
|
58
|
+
y = m_<%=name%>(x);
|
59
59
|
*a3 = (y & SLB(n)) | (*a3 & BALL<<n);
|
60
60
|
}
|
61
61
|
}
|
62
62
|
}
|
63
63
|
|
64
64
|
/*
|
65
|
-
Unary <%=
|
66
|
-
@overload <%=
|
67
|
-
@return [Numo::<%=class_name%>] <%=
|
65
|
+
Unary <%=name%>.
|
66
|
+
@overload <%=name%>
|
67
|
+
@return [Numo::<%=class_name%>] <%=name%> of self.
|
68
68
|
*/
|
69
69
|
static VALUE
|
70
|
-
<%=c_func%>(VALUE self)
|
70
|
+
<%=c_func(0)%>(VALUE self)
|
71
71
|
{
|
72
72
|
ndfunc_arg_in_t ain[1] = {{cT,0}};
|
73
73
|
ndfunc_arg_out_t aout[1] = {{cT,0}};
|