xnd 0.2.0dev6 → 0.2.0dev7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/Rakefile +1 -1
- data/ext/ruby_xnd/GPATH +0 -0
- data/ext/ruby_xnd/GRTAGS +0 -0
- data/ext/ruby_xnd/GTAGS +0 -0
- data/ext/ruby_xnd/extconf.rb +8 -5
- data/ext/ruby_xnd/gc_guard.c +53 -2
- data/ext/ruby_xnd/gc_guard.h +8 -2
- data/ext/ruby_xnd/include/overflow.h +147 -0
- data/ext/ruby_xnd/include/ruby_xnd.h +62 -0
- data/ext/ruby_xnd/include/xnd.h +590 -0
- data/ext/ruby_xnd/lib/libxnd.a +0 -0
- data/ext/ruby_xnd/lib/libxnd.so +1 -0
- data/ext/ruby_xnd/lib/libxnd.so.0 +1 -0
- data/ext/ruby_xnd/lib/libxnd.so.0.2.0dev3 +0 -0
- data/ext/ruby_xnd/ruby_xnd.c +556 -47
- data/ext/ruby_xnd/ruby_xnd.h +2 -1
- data/ext/ruby_xnd/xnd/Makefile +80 -0
- data/ext/ruby_xnd/xnd/config.h +26 -0
- data/ext/ruby_xnd/xnd/config.h.in +3 -0
- data/ext/ruby_xnd/xnd/config.log +421 -0
- data/ext/ruby_xnd/xnd/config.status +1023 -0
- data/ext/ruby_xnd/xnd/configure +376 -8
- data/ext/ruby_xnd/xnd/configure.ac +48 -7
- data/ext/ruby_xnd/xnd/doc/xnd/index.rst +3 -1
- data/ext/ruby_xnd/xnd/doc/xnd/{types.rst → xnd.rst} +3 -18
- data/ext/ruby_xnd/xnd/libxnd/Makefile +142 -0
- data/ext/ruby_xnd/xnd/libxnd/Makefile.in +43 -3
- data/ext/ruby_xnd/xnd/libxnd/Makefile.vc +19 -3
- data/ext/ruby_xnd/xnd/libxnd/bitmaps.c +42 -3
- data/ext/ruby_xnd/xnd/libxnd/bitmaps.o +0 -0
- data/ext/ruby_xnd/xnd/libxnd/bounds.c +366 -0
- data/ext/ruby_xnd/xnd/libxnd/bounds.o +0 -0
- data/ext/ruby_xnd/xnd/libxnd/contrib.h +98 -0
- data/ext/ruby_xnd/xnd/libxnd/contrib/bfloat16.h +213 -0
- data/ext/ruby_xnd/xnd/libxnd/copy.c +155 -4
- data/ext/ruby_xnd/xnd/libxnd/copy.o +0 -0
- data/ext/ruby_xnd/xnd/libxnd/cuda/cuda_memory.cu +121 -0
- data/ext/ruby_xnd/xnd/libxnd/cuda/cuda_memory.h +58 -0
- data/ext/ruby_xnd/xnd/libxnd/equal.c +195 -7
- data/ext/ruby_xnd/xnd/libxnd/equal.o +0 -0
- data/ext/ruby_xnd/xnd/libxnd/inline.h +32 -0
- data/ext/ruby_xnd/xnd/libxnd/libxnd.a +0 -0
- data/ext/ruby_xnd/xnd/libxnd/libxnd.so +1 -0
- data/ext/ruby_xnd/xnd/libxnd/libxnd.so.0 +1 -0
- data/ext/ruby_xnd/xnd/libxnd/libxnd.so.0.2.0dev3 +0 -0
- data/ext/ruby_xnd/xnd/libxnd/shape.c +207 -0
- data/ext/ruby_xnd/xnd/libxnd/shape.o +0 -0
- data/ext/ruby_xnd/xnd/libxnd/split.c +2 -2
- data/ext/ruby_xnd/xnd/libxnd/split.o +0 -0
- data/ext/ruby_xnd/xnd/libxnd/tests/Makefile +39 -0
- data/ext/ruby_xnd/xnd/libxnd/xnd.c +613 -91
- data/ext/ruby_xnd/xnd/libxnd/xnd.h +145 -4
- data/ext/ruby_xnd/xnd/libxnd/xnd.o +0 -0
- data/ext/ruby_xnd/xnd/python/test_xnd.py +1125 -50
- data/ext/ruby_xnd/xnd/python/xnd/__init__.py +609 -124
- data/ext/ruby_xnd/xnd/python/xnd/_version.py +1 -0
- data/ext/ruby_xnd/xnd/python/xnd/_xnd.c +1652 -101
- data/ext/ruby_xnd/xnd/python/xnd/libxnd.a +0 -0
- data/ext/ruby_xnd/xnd/python/xnd/libxnd.so +1 -0
- data/ext/ruby_xnd/xnd/python/xnd/libxnd.so.0 +1 -0
- data/ext/ruby_xnd/xnd/python/xnd/libxnd.so.0.2.0dev3 +0 -0
- data/ext/ruby_xnd/xnd/python/xnd/pyxnd.h +1 -1
- data/ext/ruby_xnd/xnd/python/xnd/util.h +25 -0
- data/ext/ruby_xnd/xnd/python/xnd/xnd.h +590 -0
- data/ext/ruby_xnd/xnd/python/xnd_randvalue.py +106 -6
- data/ext/ruby_xnd/xnd/python/xnd_support.py +4 -0
- data/ext/ruby_xnd/xnd/setup.py +46 -4
- data/lib/ruby_xnd.so +0 -0
- data/lib/xnd.rb +39 -3
- data/lib/xnd/version.rb +2 -2
- data/xnd.gemspec +2 -1
- metadata +58 -5
@@ -33,9 +33,10 @@
|
|
33
33
|
# Python NDarray and functions for generating test cases.
|
34
34
|
|
35
35
|
from itertools import accumulate, count, product
|
36
|
-
from random import randrange
|
36
|
+
from random import randrange, shuffle
|
37
37
|
from collections import namedtuple
|
38
38
|
from xnd_support import R
|
39
|
+
from ndtypes import ndt
|
39
40
|
|
40
41
|
|
41
42
|
# ======================================================================
|
@@ -59,6 +60,32 @@ EMPTY_TEST_CASES = [
|
|
59
60
|
]
|
60
61
|
|
61
62
|
|
63
|
+
# ======================================================================
|
64
|
+
# Max type for exact conversions
|
65
|
+
# ======================================================================
|
66
|
+
|
67
|
+
maxtype = {
|
68
|
+
ndt("int8"): ndt("int64"),
|
69
|
+
ndt("int16"): ndt("int64"),
|
70
|
+
ndt("int32"): ndt("int64"),
|
71
|
+
ndt("int64"): ndt("int64"),
|
72
|
+
|
73
|
+
ndt("uint8"): ndt("uint64"),
|
74
|
+
ndt("uint16"): ndt("uint64"),
|
75
|
+
ndt("uint32"): ndt("uint64"),
|
76
|
+
ndt("uint64"): ndt("uint64"),
|
77
|
+
|
78
|
+
ndt("bfloat16"): ndt("float64"),
|
79
|
+
ndt("float16"): ndt("float64"),
|
80
|
+
ndt("float32"): ndt("float64"),
|
81
|
+
ndt("float64"): ndt("float64"),
|
82
|
+
|
83
|
+
ndt("complex32"): ndt("complex128"),
|
84
|
+
ndt("complex64"): ndt("complex128"),
|
85
|
+
ndt("complex128"): ndt("complex128"),
|
86
|
+
}
|
87
|
+
|
88
|
+
|
62
89
|
# ======================================================================
|
63
90
|
# Typed values
|
64
91
|
# ======================================================================
|
@@ -207,6 +234,22 @@ DTYPE_EMPTY_TEST_CASES = [
|
|
207
234
|
(R['x': 0, 'y': 2 * [3 * [4 * [5 * [None]]]]], "{x: int64, y: 2 * 3 * Some(4 * 5 * ?float64)}"),
|
208
235
|
(R['x': 0, 'y': 2 * [3 * [4 * [5 * [None]]]]], "{x: int64, y: 2 * 3 * ref(4 * 5 * ?float64)}"),
|
209
236
|
|
237
|
+
# Unions
|
238
|
+
(('X', 0), "[X of int64]"),
|
239
|
+
(('X', 0), "[X of int8 | Y of int64]"),
|
240
|
+
(('X', 0), "[X of int8 | Y of {a: complex128, b: string}]"),
|
241
|
+
|
242
|
+
# Optional unions
|
243
|
+
(None, "?[X of complex64]"),
|
244
|
+
(None, "?[X of int8]"),
|
245
|
+
(None, "?[X of int8 | Y of int64]"),
|
246
|
+
(None, "?[X of uint16 | Y of {z: complex64}]"),
|
247
|
+
(None, "?[X of uint16 | Y of {z: complex64, pack=1}]"),
|
248
|
+
(None, "?[X of 0 * bytes]"),
|
249
|
+
(None, "?[X of 0 * bytes | Y of 0 * string]"),
|
250
|
+
(None, "?[X of 1 * bytes | Y of {y: 2 * complex128, z: 3 * string}]"),
|
251
|
+
(None, "?[X of 1 * bytes | Y of 2 * {a: complex128, b: 10 * 2 * string, z: 3 * string}]"),
|
252
|
+
|
210
253
|
# Primitive types
|
211
254
|
(False, "bool"),
|
212
255
|
(0, "bool"),
|
@@ -863,6 +906,13 @@ EQUAL_TEST_CASES = [
|
|
863
906
|
# Definition of generalized slicing and indexing
|
864
907
|
# ======================================================================
|
865
908
|
|
909
|
+
def have_none(lst):
|
910
|
+
if isinstance(lst, (list, tuple)):
|
911
|
+
return any(have_none(item) for item in lst)
|
912
|
+
if isinstance(lst, dict):
|
913
|
+
return any(have_none(item) for item in lst.values())
|
914
|
+
return lst is None
|
915
|
+
|
866
916
|
def maxlevel(lst):
|
867
917
|
"""Return maximum nesting depth"""
|
868
918
|
maxlev = 0
|
@@ -889,17 +939,22 @@ def getitem(lst, indices):
|
|
889
939
|
if isinstance(i, int):
|
890
940
|
return getitem(item, indices)
|
891
941
|
|
942
|
+
# Empty slice: check if all subsequent indices are in range for the
|
943
|
+
# full slice, raise IndexError otherwise. This is NumPy's behavior.
|
892
944
|
if not item:
|
893
|
-
|
894
|
-
|
895
|
-
|
945
|
+
if lst:
|
946
|
+
_ = getitem(lst, (slice(None),) + indices)
|
947
|
+
elif any(isinstance(k, int) for k in indices):
|
948
|
+
raise IndexError
|
896
949
|
return []
|
897
950
|
|
898
951
|
return [getitem(x, indices) for x in item]
|
899
952
|
|
900
953
|
class NDArray(list):
|
901
954
|
"""A simple wrapper for using generalized slicing/indexing on a list."""
|
902
|
-
def __init__(self, value):
|
955
|
+
def __init__(self, value, dtype=None):
|
956
|
+
if dtype is not None and dtype != "int64":
|
957
|
+
raise ValueError("the only supported dtype is 'int64'")
|
903
958
|
list.__init__(self, value)
|
904
959
|
self.maxlevel = maxlevel(value)
|
905
960
|
|
@@ -1006,6 +1061,14 @@ def rslice(ndim):
|
|
1006
1061
|
step = None if randrange(5) == 4 else step
|
1007
1062
|
return slice(start, stop, step)
|
1008
1063
|
|
1064
|
+
def rslice_neg(ndim):
|
1065
|
+
start = randrange(-ndim-1, ndim+1)
|
1066
|
+
stop = randrange(-ndim-1, ndim+1)
|
1067
|
+
step = 0
|
1068
|
+
while step == 0:
|
1069
|
+
step = randrange(-ndim-1, ndim+1)
|
1070
|
+
return slice(start, stop, step)
|
1071
|
+
|
1009
1072
|
def multislice(ndim):
|
1010
1073
|
return tuple(rslice(ndim) for _ in range(randrange(1, ndim+1)))
|
1011
1074
|
|
@@ -1041,14 +1104,26 @@ def mixed_index(max_ndim):
|
|
1041
1104
|
indices = []
|
1042
1105
|
for i in range(1, ndim+1):
|
1043
1106
|
if randrange(2):
|
1044
|
-
indices.append(randrange(max_ndim))
|
1107
|
+
indices.append(randrange(-max_ndim, max_ndim))
|
1045
1108
|
else:
|
1046
1109
|
indices.append(rslice(ndim))
|
1047
1110
|
return tuple(indices)
|
1048
1111
|
|
1112
|
+
def mixed_index_neg(max_ndim):
|
1113
|
+
ndim = randrange(1, max_ndim+1)
|
1114
|
+
indices = []
|
1115
|
+
for i in range(1, ndim+1):
|
1116
|
+
if randrange(2):
|
1117
|
+
indices.append(randrange(-max_ndim, max_ndim))
|
1118
|
+
else:
|
1119
|
+
indices.append(rslice_neg(ndim))
|
1120
|
+
return tuple(indices)
|
1121
|
+
|
1049
1122
|
def mixed_indices(max_ndim):
|
1050
1123
|
for i in range(5):
|
1051
1124
|
yield mixed_index(max_ndim)
|
1125
|
+
for i in range(5):
|
1126
|
+
yield mixed_index_neg(max_ndim)
|
1052
1127
|
|
1053
1128
|
def itos(indices):
|
1054
1129
|
return ", ".join(str(i) if isinstance(i, int) else "%s:%s:%s" %
|
@@ -1099,6 +1174,7 @@ def column(i, r, q, m, ms):
|
|
1099
1174
|
schedule(step(i, r, q), ms)) + \
|
1100
1175
|
column(i+1, r, q, m, ms)
|
1101
1176
|
|
1177
|
+
|
1102
1178
|
# ======================================================================
|
1103
1179
|
# Split an xnd object into N subtrees
|
1104
1180
|
# ======================================================================
|
@@ -1119,3 +1195,27 @@ def split_xnd(x, n, max_outer=None):
|
|
1119
1195
|
return [x[i] for i in indices_list]
|
1120
1196
|
|
1121
1197
|
|
1198
|
+
# ======================================================================
|
1199
|
+
# Random reshape
|
1200
|
+
# ======================================================================
|
1201
|
+
|
1202
|
+
def prod(lst):
|
1203
|
+
p = 1
|
1204
|
+
for v in lst:
|
1205
|
+
p *= v
|
1206
|
+
return p
|
1207
|
+
|
1208
|
+
def randshape(shape):
|
1209
|
+
if not shape:
|
1210
|
+
return []
|
1211
|
+
s = list(shape)
|
1212
|
+
shuffle(s)
|
1213
|
+
N = len(s)
|
1214
|
+
result = []
|
1215
|
+
while N > 0:
|
1216
|
+
n = randrange(1, N+1)
|
1217
|
+
t = s[:n]
|
1218
|
+
s = s[n:]
|
1219
|
+
result.append(prod(t))
|
1220
|
+
N -= n
|
1221
|
+
return result
|
@@ -90,6 +90,10 @@ def assertEqualWithEx(self, func, x, y):
|
|
90
90
|
|
91
91
|
if xerr is None is yerr:
|
92
92
|
self.assertEqual(xres, yres, msg="x: %s y: %s" % (x.type, y))
|
93
|
+
elif xerr is TypeError and yerr is None and isinstance(y, tuple) and len(y) == 2:
|
94
|
+
# Tagged unions like ('Int', 0) have len() in the Python representation
|
95
|
+
# but are scalars in xnd.
|
96
|
+
pass
|
93
97
|
else:
|
94
98
|
self.assertEqual(xerr, yerr, msg="x: %s y: %s" % (x.type, y))
|
95
99
|
|
data/ext/ruby_xnd/xnd/setup.py
CHANGED
@@ -42,6 +42,7 @@ from glob import glob
|
|
42
42
|
import platform
|
43
43
|
import subprocess
|
44
44
|
import shutil
|
45
|
+
import argparse
|
45
46
|
import warnings
|
46
47
|
|
47
48
|
try:
|
@@ -82,6 +83,15 @@ Links
|
|
82
83
|
|
83
84
|
warnings.simplefilter("ignore", UserWarning)
|
84
85
|
|
86
|
+
|
87
|
+
# Pre-parse and remove the '-j' argument from sys.argv.
|
88
|
+
parser = argparse.ArgumentParser()
|
89
|
+
parser.add_argument('-j', default=None)
|
90
|
+
values, rest = parser.parse_known_args()
|
91
|
+
PARALLEL = values.j
|
92
|
+
sys.argv = sys.argv[:1] + rest
|
93
|
+
|
94
|
+
|
85
95
|
if sys.platform == "darwin":
|
86
96
|
LIBNAME = "libxnd.dylib"
|
87
97
|
LIBSONAME = "libxnd.0.dylib"
|
@@ -209,6 +219,27 @@ elif len(sys.argv) == 2:
|
|
209
219
|
else:
|
210
220
|
pass
|
211
221
|
|
222
|
+
def configure(configure_includes, configure_libs):
|
223
|
+
os.chmod("./configure", 0x1ed) # pip removes execute permissions.
|
224
|
+
make = "make -j%d" % int(PARALLEL) if PARALLEL else "make"
|
225
|
+
os.system("./configure --with-includes='%s' --with-libs='%s' && %s" %
|
226
|
+
(configure_includes, configure_libs, make))
|
227
|
+
|
228
|
+
def get_config_vars():
|
229
|
+
f = open("config.h")
|
230
|
+
config_vars = {}
|
231
|
+
for line in f:
|
232
|
+
if line.startswith("#define"):
|
233
|
+
l = line.split()
|
234
|
+
try:
|
235
|
+
config_vars[l[1]] = int(l[2])
|
236
|
+
except ValueError:
|
237
|
+
pass
|
238
|
+
elif line.startswith("/* #undef"):
|
239
|
+
l = line.split()
|
240
|
+
config_vars[l[2]] = 0
|
241
|
+
f.close()
|
242
|
+
return config_vars
|
212
243
|
|
213
244
|
def xnd_ext():
|
214
245
|
include_dirs = ["libxnd", "ndtypes/python/ndtypes"] + INCLUDES
|
@@ -235,6 +266,11 @@ def xnd_ext():
|
|
235
266
|
os.chdir("..")
|
236
267
|
|
237
268
|
else:
|
269
|
+
if BUILD_ALL:
|
270
|
+
configure(CONFIGURE_INCLUDES, CONFIGURE_LIBS)
|
271
|
+
|
272
|
+
config_vars = get_config_vars()
|
273
|
+
|
238
274
|
extra_compile_args = ["-Wextra", "-Wno-missing-field-initializers", "-std=c11"]
|
239
275
|
if sys.platform == "darwin":
|
240
276
|
libraries = ["ndtypes", "xnd"]
|
@@ -245,10 +281,16 @@ def xnd_ext():
|
|
245
281
|
extra_link_args = []
|
246
282
|
runtime_library_dirs = ["$ORIGIN"]
|
247
283
|
|
248
|
-
if
|
249
|
-
|
250
|
-
|
251
|
-
|
284
|
+
if config_vars["HAVE_CUDA"]:
|
285
|
+
libraries += ["cudart"]
|
286
|
+
|
287
|
+
for d in [
|
288
|
+
"/usr/cuda/lib",
|
289
|
+
"/usr/cuda/lib64",
|
290
|
+
"/usr/local/cuda/lib/",
|
291
|
+
"/usr/local/cuda/lib64"]:
|
292
|
+
if os.path.isdir(d):
|
293
|
+
library_dirs.append(d)
|
252
294
|
|
253
295
|
return Extension (
|
254
296
|
"xnd._xnd",
|
data/lib/ruby_xnd.so
ADDED
Binary file
|
data/lib/xnd.rb
CHANGED
@@ -87,6 +87,14 @@ class XND < RubyXND
|
|
87
87
|
@data.map!(&block)
|
88
88
|
end
|
89
89
|
|
90
|
+
def == other
|
91
|
+
if other.is_a?(XND::T)
|
92
|
+
@data == other.data
|
93
|
+
else
|
94
|
+
@data == other
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
90
98
|
def [] *index
|
91
99
|
@data[index]
|
92
100
|
end
|
@@ -277,8 +285,22 @@ class XND < RubyXND
|
|
277
285
|
end
|
278
286
|
end
|
279
287
|
end
|
288
|
+
|
289
|
+
class << self
|
290
|
+
def empty type, device: nil
|
291
|
+
if device
|
292
|
+
name, no = device.split ":"
|
293
|
+
no = (no == "managed" ? -1 : no.to_i)
|
294
|
+
device = [name, no]
|
295
|
+
end
|
296
|
+
|
297
|
+
RubyXND.empty type, device
|
298
|
+
end
|
299
|
+
end
|
300
|
+
|
280
301
|
|
281
|
-
def initialize data, type: nil, dtype: nil, levels: nil, typedef: nil,
|
302
|
+
def initialize data, type: nil, dtype: nil, levels: nil, typedef: nil,
|
303
|
+
dtypedef: nil, device: nil
|
282
304
|
if [type, dtype, levels, typedef, dtypedef].count(nil) < 2
|
283
305
|
raise ArgumentError, "the 'type', 'dtype', 'levels' and 'typedef' arguments are "
|
284
306
|
"mutually exclusive."
|
@@ -307,8 +329,22 @@ class XND < RubyXND
|
|
307
329
|
data = TypeInference.convert_xnd_t_to_ruby_array data
|
308
330
|
end
|
309
331
|
|
310
|
-
|
332
|
+
if device
|
333
|
+
name, no = device.split ":"
|
334
|
+
no = (no == "managed" ? -1 : no.to_i)
|
335
|
+
device = [name, no]
|
336
|
+
end
|
337
|
+
|
338
|
+
super(type, data, device)
|
339
|
+
end
|
340
|
+
|
341
|
+
def reshape shape, order: nil
|
342
|
+
_reshape(shape, order)
|
343
|
+
end
|
344
|
+
|
345
|
+
def transpose permute: nil
|
346
|
+
_transpose(permute)
|
311
347
|
end
|
312
348
|
|
313
349
|
alias :to_a :value
|
314
|
-
end
|
350
|
+
end # class XND
|
data/lib/xnd/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
class RubyXND
|
2
2
|
# VERSION number should be the version of libxnd this is built against.
|
3
|
-
VERSION = "0.2.
|
3
|
+
VERSION = "0.2.0dev7"
|
4
4
|
# Working commit in xnd repo
|
5
|
-
COMMIT =
|
5
|
+
COMMIT = '6f305cd40d90b4f3fc2fe51ae144b433d186a6cc'
|
6
6
|
end
|
data/xnd.gemspec
CHANGED
@@ -40,9 +40,10 @@ Gem::Specification.new do |spec|
|
|
40
40
|
|
41
41
|
spec.add_development_dependency 'minitest', '~> 5.11'
|
42
42
|
spec.add_development_dependency 'minitest-hooks'
|
43
|
+
spec.add_development_dependency 'minitest-fail-fast'
|
43
44
|
spec.add_development_dependency 'rake-compiler'
|
44
45
|
spec.add_development_dependency 'pry'
|
45
46
|
spec.add_development_dependency 'pry-byebug'
|
46
47
|
|
47
|
-
spec.add_runtime_dependency 'ndtypes', '>= 0.2.
|
48
|
+
spec.add_runtime_dependency 'ndtypes', '>= 0.2.0dev6'
|
48
49
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xnd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.0dev7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sameer Deshmukh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest-fail-fast
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rake-compiler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +100,14 @@ dependencies:
|
|
86
100
|
requirements:
|
87
101
|
- - ">="
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.2.
|
103
|
+
version: 0.2.0dev6
|
90
104
|
type: :runtime
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - ">="
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.2.
|
110
|
+
version: 0.2.0dev6
|
97
111
|
description: 'XND is a library for typed data arrays in Ruby. It is a wrapper over
|
98
112
|
the libxnd C library.
|
99
113
|
|
@@ -110,11 +124,21 @@ files:
|
|
110
124
|
- History.md
|
111
125
|
- README.md
|
112
126
|
- Rakefile
|
127
|
+
- ext/ruby_xnd/GPATH
|
128
|
+
- ext/ruby_xnd/GRTAGS
|
129
|
+
- ext/ruby_xnd/GTAGS
|
113
130
|
- ext/ruby_xnd/extconf.rb
|
114
131
|
- ext/ruby_xnd/float_pack_unpack.c
|
115
132
|
- ext/ruby_xnd/float_pack_unpack.h
|
116
133
|
- ext/ruby_xnd/gc_guard.c
|
117
134
|
- ext/ruby_xnd/gc_guard.h
|
135
|
+
- ext/ruby_xnd/include/overflow.h
|
136
|
+
- ext/ruby_xnd/include/ruby_xnd.h
|
137
|
+
- ext/ruby_xnd/include/xnd.h
|
138
|
+
- ext/ruby_xnd/lib/libxnd.a
|
139
|
+
- ext/ruby_xnd/lib/libxnd.so
|
140
|
+
- ext/ruby_xnd/lib/libxnd.so.0
|
141
|
+
- ext/ruby_xnd/lib/libxnd.so.0.2.0dev3
|
118
142
|
- ext/ruby_xnd/memory_block_object.c
|
119
143
|
- ext/ruby_xnd/memory_block_object.h
|
120
144
|
- ext/ruby_xnd/ruby_xnd.c
|
@@ -126,10 +150,14 @@ files:
|
|
126
150
|
- ext/ruby_xnd/xnd/INSTALL.txt
|
127
151
|
- ext/ruby_xnd/xnd/LICENSE.txt
|
128
152
|
- ext/ruby_xnd/xnd/MANIFEST.in
|
153
|
+
- ext/ruby_xnd/xnd/Makefile
|
129
154
|
- ext/ruby_xnd/xnd/Makefile.in
|
130
155
|
- ext/ruby_xnd/xnd/README.rst
|
131
156
|
- ext/ruby_xnd/xnd/config.guess
|
157
|
+
- ext/ruby_xnd/xnd/config.h
|
132
158
|
- ext/ruby_xnd/xnd/config.h.in
|
159
|
+
- ext/ruby_xnd/xnd/config.log
|
160
|
+
- ext/ruby_xnd/xnd/config.status
|
133
161
|
- ext/ruby_xnd/xnd/config.sub
|
134
162
|
- ext/ruby_xnd/xnd/configure
|
135
163
|
- ext/ruby_xnd/xnd/configure.ac
|
@@ -145,17 +173,34 @@ files:
|
|
145
173
|
- ext/ruby_xnd/xnd/doc/xnd/buffer-protocol.rst
|
146
174
|
- ext/ruby_xnd/xnd/doc/xnd/index.rst
|
147
175
|
- ext/ruby_xnd/xnd/doc/xnd/quickstart.rst
|
148
|
-
- ext/ruby_xnd/xnd/doc/xnd/
|
176
|
+
- ext/ruby_xnd/xnd/doc/xnd/xnd.rst
|
149
177
|
- ext/ruby_xnd/xnd/install-sh
|
178
|
+
- ext/ruby_xnd/xnd/libxnd/Makefile
|
150
179
|
- ext/ruby_xnd/xnd/libxnd/Makefile.in
|
151
180
|
- ext/ruby_xnd/xnd/libxnd/Makefile.vc
|
152
181
|
- ext/ruby_xnd/xnd/libxnd/bitmaps.c
|
182
|
+
- ext/ruby_xnd/xnd/libxnd/bitmaps.o
|
183
|
+
- ext/ruby_xnd/xnd/libxnd/bounds.c
|
184
|
+
- ext/ruby_xnd/xnd/libxnd/bounds.o
|
153
185
|
- ext/ruby_xnd/xnd/libxnd/contrib.h
|
186
|
+
- ext/ruby_xnd/xnd/libxnd/contrib/bfloat16.h
|
154
187
|
- ext/ruby_xnd/xnd/libxnd/copy.c
|
188
|
+
- ext/ruby_xnd/xnd/libxnd/copy.o
|
189
|
+
- ext/ruby_xnd/xnd/libxnd/cuda/cuda_memory.cu
|
190
|
+
- ext/ruby_xnd/xnd/libxnd/cuda/cuda_memory.h
|
155
191
|
- ext/ruby_xnd/xnd/libxnd/equal.c
|
192
|
+
- ext/ruby_xnd/xnd/libxnd/equal.o
|
156
193
|
- ext/ruby_xnd/xnd/libxnd/inline.h
|
194
|
+
- ext/ruby_xnd/xnd/libxnd/libxnd.a
|
195
|
+
- ext/ruby_xnd/xnd/libxnd/libxnd.so
|
196
|
+
- ext/ruby_xnd/xnd/libxnd/libxnd.so.0
|
197
|
+
- ext/ruby_xnd/xnd/libxnd/libxnd.so.0.2.0dev3
|
157
198
|
- ext/ruby_xnd/xnd/libxnd/overflow.h
|
199
|
+
- ext/ruby_xnd/xnd/libxnd/shape.c
|
200
|
+
- ext/ruby_xnd/xnd/libxnd/shape.o
|
158
201
|
- ext/ruby_xnd/xnd/libxnd/split.c
|
202
|
+
- ext/ruby_xnd/xnd/libxnd/split.o
|
203
|
+
- ext/ruby_xnd/xnd/libxnd/tests/Makefile
|
159
204
|
- ext/ruby_xnd/xnd/libxnd/tests/Makefile.in
|
160
205
|
- ext/ruby_xnd/xnd/libxnd/tests/Makefile.vc
|
161
206
|
- ext/ruby_xnd/xnd/libxnd/tests/README.txt
|
@@ -164,13 +209,20 @@ files:
|
|
164
209
|
- ext/ruby_xnd/xnd/libxnd/tests/test_fixed.c
|
165
210
|
- ext/ruby_xnd/xnd/libxnd/xnd.c
|
166
211
|
- ext/ruby_xnd/xnd/libxnd/xnd.h
|
212
|
+
- ext/ruby_xnd/xnd/libxnd/xnd.o
|
167
213
|
- ext/ruby_xnd/xnd/python/test_xnd.py
|
168
214
|
- ext/ruby_xnd/xnd/python/xnd/__init__.py
|
215
|
+
- ext/ruby_xnd/xnd/python/xnd/_version.py
|
169
216
|
- ext/ruby_xnd/xnd/python/xnd/_xnd.c
|
170
217
|
- ext/ruby_xnd/xnd/python/xnd/contrib/pretty.py
|
171
218
|
- ext/ruby_xnd/xnd/python/xnd/docstrings.h
|
219
|
+
- ext/ruby_xnd/xnd/python/xnd/libxnd.a
|
220
|
+
- ext/ruby_xnd/xnd/python/xnd/libxnd.so
|
221
|
+
- ext/ruby_xnd/xnd/python/xnd/libxnd.so.0
|
222
|
+
- ext/ruby_xnd/xnd/python/xnd/libxnd.so.0.2.0dev3
|
172
223
|
- ext/ruby_xnd/xnd/python/xnd/pyxnd.h
|
173
224
|
- ext/ruby_xnd/xnd/python/xnd/util.h
|
225
|
+
- ext/ruby_xnd/xnd/python/xnd/xnd.h
|
174
226
|
- ext/ruby_xnd/xnd/python/xnd_randvalue.py
|
175
227
|
- ext/ruby_xnd/xnd/python/xnd_support.py
|
176
228
|
- ext/ruby_xnd/xnd/setup.py
|
@@ -181,6 +233,7 @@ files:
|
|
181
233
|
- ext/ruby_xnd/xnd/vcbuild/vcbuild64.bat
|
182
234
|
- ext/ruby_xnd/xnd/vcbuild/vcclean.bat
|
183
235
|
- ext/ruby_xnd/xnd/vcbuild/vcdistclean.bat
|
236
|
+
- lib/ruby_xnd.so
|
184
237
|
- lib/xnd.rb
|
185
238
|
- lib/xnd/version.rb
|
186
239
|
- xnd.gemspec
|