ndtypes 0.2.0dev5 → 0.2.0dev6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +12 -0
  3. data/Rakefile +8 -0
  4. data/ext/ruby_ndtypes/GPATH +0 -0
  5. data/ext/ruby_ndtypes/GRTAGS +0 -0
  6. data/ext/ruby_ndtypes/GTAGS +0 -0
  7. data/ext/ruby_ndtypes/extconf.rb +1 -1
  8. data/ext/ruby_ndtypes/include/ndtypes.h +231 -122
  9. data/ext/ruby_ndtypes/include/ruby_ndtypes.h +1 -1
  10. data/ext/ruby_ndtypes/lib/libndtypes.a +0 -0
  11. data/ext/ruby_ndtypes/lib/libndtypes.so.0.2.0dev3 +0 -0
  12. data/ext/ruby_ndtypes/ndtypes/Makefile +87 -0
  13. data/ext/ruby_ndtypes/ndtypes/config.h +68 -0
  14. data/ext/ruby_ndtypes/ndtypes/config.log +477 -0
  15. data/ext/ruby_ndtypes/ndtypes/config.status +1027 -0
  16. data/ext/ruby_ndtypes/ndtypes/doc/_static/style.css +7 -0
  17. data/ext/ruby_ndtypes/ndtypes/doc/_templates/layout.html +2 -0
  18. data/ext/ruby_ndtypes/ndtypes/doc/conf.py +40 -4
  19. data/ext/ruby_ndtypes/ndtypes/doc/images/xndlogo.png +0 -0
  20. data/ext/ruby_ndtypes/ndtypes/doc/ndtypes/types.rst +1 -1
  21. data/ext/ruby_ndtypes/ndtypes/doc/requirements.txt +2 -0
  22. data/ext/ruby_ndtypes/ndtypes/libndtypes/Makefile +287 -0
  23. data/ext/ruby_ndtypes/ndtypes/libndtypes/Makefile.in +20 -4
  24. data/ext/ruby_ndtypes/ndtypes/libndtypes/Makefile.vc +22 -3
  25. data/ext/ruby_ndtypes/ndtypes/libndtypes/alloc.c +1 -1
  26. data/ext/ruby_ndtypes/ndtypes/libndtypes/alloc.o +0 -0
  27. data/ext/ruby_ndtypes/ndtypes/libndtypes/attr.o +0 -0
  28. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/Makefile +73 -0
  29. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bpgrammar.c +246 -229
  30. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bpgrammar.h +15 -11
  31. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bpgrammar.o +0 -0
  32. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bpgrammar.y +38 -28
  33. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bplexer.c +91 -91
  34. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bplexer.h +1 -1
  35. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bplexer.l +4 -3
  36. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/bplexer.o +0 -0
  37. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/export.c +8 -7
  38. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/export.o +0 -0
  39. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/import.c +2 -2
  40. data/ext/ruby_ndtypes/ndtypes/libndtypes/compat/import.o +0 -0
  41. data/ext/ruby_ndtypes/ndtypes/libndtypes/context.o +0 -0
  42. data/ext/ruby_ndtypes/ndtypes/libndtypes/copy.c +263 -182
  43. data/ext/ruby_ndtypes/ndtypes/libndtypes/copy.o +0 -0
  44. data/ext/ruby_ndtypes/ndtypes/libndtypes/encodings.o +0 -0
  45. data/ext/ruby_ndtypes/ndtypes/libndtypes/equal.c +67 -7
  46. data/ext/ruby_ndtypes/ndtypes/libndtypes/equal.o +0 -0
  47. data/ext/ruby_ndtypes/ndtypes/libndtypes/grammar.c +1112 -1000
  48. data/ext/ruby_ndtypes/ndtypes/libndtypes/grammar.h +69 -58
  49. data/ext/ruby_ndtypes/ndtypes/libndtypes/grammar.o +0 -0
  50. data/ext/ruby_ndtypes/ndtypes/libndtypes/grammar.y +150 -99
  51. data/ext/ruby_ndtypes/ndtypes/libndtypes/io.c +185 -15
  52. data/ext/ruby_ndtypes/ndtypes/libndtypes/io.o +0 -0
  53. data/ext/ruby_ndtypes/ndtypes/libndtypes/lexer.c +301 -276
  54. data/ext/ruby_ndtypes/ndtypes/libndtypes/lexer.h +1 -1
  55. data/ext/ruby_ndtypes/ndtypes/libndtypes/lexer.l +9 -4
  56. data/ext/ruby_ndtypes/ndtypes/libndtypes/lexer.o +0 -0
  57. data/ext/ruby_ndtypes/ndtypes/libndtypes/libndtypes.a +0 -0
  58. data/ext/ruby_ndtypes/ndtypes/libndtypes/libndtypes.so +1 -0
  59. data/ext/ruby_ndtypes/ndtypes/libndtypes/libndtypes.so.0 +1 -0
  60. data/ext/ruby_ndtypes/ndtypes/libndtypes/libndtypes.so.0.2.0dev3 +0 -0
  61. data/ext/ruby_ndtypes/ndtypes/libndtypes/match.c +729 -228
  62. data/ext/ruby_ndtypes/ndtypes/libndtypes/match.o +0 -0
  63. data/ext/ruby_ndtypes/ndtypes/libndtypes/ndtypes.c +768 -403
  64. data/ext/ruby_ndtypes/ndtypes/libndtypes/ndtypes.h +1002 -0
  65. data/ext/ruby_ndtypes/ndtypes/libndtypes/ndtypes.h.in +231 -122
  66. data/ext/ruby_ndtypes/ndtypes/libndtypes/ndtypes.o +0 -0
  67. data/ext/ruby_ndtypes/ndtypes/libndtypes/parsefuncs.c +176 -84
  68. data/ext/ruby_ndtypes/ndtypes/libndtypes/parsefuncs.h +26 -14
  69. data/ext/ruby_ndtypes/ndtypes/libndtypes/parsefuncs.o +0 -0
  70. data/ext/ruby_ndtypes/ndtypes/libndtypes/parser.c +57 -35
  71. data/ext/ruby_ndtypes/ndtypes/libndtypes/parser.o +0 -0
  72. data/ext/ruby_ndtypes/ndtypes/libndtypes/primitive.c +420 -0
  73. data/ext/ruby_ndtypes/ndtypes/libndtypes/primitive.o +0 -0
  74. data/ext/ruby_ndtypes/ndtypes/libndtypes/seq.c +8 -8
  75. data/ext/ruby_ndtypes/ndtypes/libndtypes/seq.h +1 -1
  76. data/ext/ruby_ndtypes/ndtypes/libndtypes/seq.o +0 -0
  77. data/ext/ruby_ndtypes/ndtypes/libndtypes/serialize/Makefile +48 -0
  78. data/ext/ruby_ndtypes/ndtypes/libndtypes/serialize/deserialize.c +200 -116
  79. data/ext/ruby_ndtypes/ndtypes/libndtypes/serialize/deserialize.o +0 -0
  80. data/ext/ruby_ndtypes/ndtypes/libndtypes/serialize/serialize.c +46 -4
  81. data/ext/ruby_ndtypes/ndtypes/libndtypes/serialize/serialize.o +0 -0
  82. data/ext/ruby_ndtypes/ndtypes/libndtypes/substitute.c +58 -27
  83. data/ext/ruby_ndtypes/ndtypes/libndtypes/substitute.h +1 -1
  84. data/ext/ruby_ndtypes/ndtypes/libndtypes/substitute.o +0 -0
  85. data/ext/ruby_ndtypes/ndtypes/libndtypes/symtable.c +3 -5
  86. data/ext/ruby_ndtypes/ndtypes/libndtypes/symtable.h +12 -4
  87. data/ext/ruby_ndtypes/ndtypes/libndtypes/symtable.o +0 -0
  88. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/Makefile +55 -0
  89. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/Makefile.in +8 -8
  90. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/Makefile.vc +5 -5
  91. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/runtest.c +274 -172
  92. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test.h +24 -4
  93. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_array.c +2 -2
  94. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_buffer.c +14 -14
  95. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_match.c +32 -30
  96. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_parse.c +37 -0
  97. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_parse_error.c +36 -0
  98. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_parse_roundtrip.c +16 -0
  99. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_record.c +5 -5
  100. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_typecheck.c +706 -253
  101. data/ext/ruby_ndtypes/ndtypes/libndtypes/tests/test_unify.c +132 -0
  102. data/ext/ruby_ndtypes/ndtypes/libndtypes/unify.c +703 -0
  103. data/ext/ruby_ndtypes/ndtypes/libndtypes/unify.o +0 -0
  104. data/ext/ruby_ndtypes/ndtypes/libndtypes/util.c +335 -127
  105. data/ext/ruby_ndtypes/ndtypes/libndtypes/util.o +0 -0
  106. data/ext/ruby_ndtypes/ndtypes/libndtypes/values.c +2 -2
  107. data/ext/ruby_ndtypes/ndtypes/libndtypes/values.o +0 -0
  108. data/ext/ruby_ndtypes/ndtypes/python/ndt_randtype.py +88 -71
  109. data/ext/ruby_ndtypes/ndtypes/python/ndt_support.py +0 -1
  110. data/ext/ruby_ndtypes/ndtypes/python/ndtypes/__init__.py +10 -13
  111. data/ext/ruby_ndtypes/ndtypes/python/ndtypes/_ndtypes.c +395 -314
  112. data/ext/ruby_ndtypes/ndtypes/python/ndtypes/libndtypes.a +0 -0
  113. data/ext/ruby_ndtypes/ndtypes/python/ndtypes/libndtypes.so +1 -0
  114. data/ext/ruby_ndtypes/ndtypes/python/ndtypes/libndtypes.so.0 +1 -0
  115. data/ext/ruby_ndtypes/ndtypes/python/ndtypes/libndtypes.so.0.2.0dev3 +0 -0
  116. data/ext/ruby_ndtypes/ndtypes/python/ndtypes/ndtypes.h +1002 -0
  117. data/ext/ruby_ndtypes/ndtypes/python/ndtypes/pyndtypes.h +15 -33
  118. data/ext/ruby_ndtypes/ndtypes/python/test_ndtypes.py +340 -132
  119. data/ext/ruby_ndtypes/ndtypes/setup.py +11 -2
  120. data/ext/ruby_ndtypes/ruby_ndtypes.c +364 -241
  121. data/ext/ruby_ndtypes/ruby_ndtypes.h +1 -1
  122. data/ext/ruby_ndtypes/ruby_ndtypes_internal.h +0 -1
  123. data/lib/ndtypes.rb +11 -0
  124. data/lib/ndtypes/version.rb +2 -2
  125. data/lib/ruby_ndtypes.so +0 -0
  126. data/ndtypes.gemspec +3 -0
  127. data/spec/ndtypes_spec.rb +6 -0
  128. metadata +98 -4
  129. data/ext/ruby_ndtypes/gc_guard.c +0 -36
  130. data/ext/ruby_ndtypes/gc_guard.h +0 -12
@@ -276,6 +276,7 @@ const char *parse_roundtrip_tests[] = {
276
276
  /* BEGIN RANDOM */
277
277
  "fixed_bytes(size=1342281600, align=16)",
278
278
  "var * var * var * (...)",
279
+ "array of (...)",
279
280
  "categorical(-84, 18772, 49062, 1619552300, 'a', 'l')",
280
281
  "categorical(24, 44038, 1763886348, 2840608325, 1.2e-32, 'jOt')",
281
282
  "categorical(-2049848438, 94, 3577056037, 3599739756, 1.2e-32)",
@@ -283,12 +284,15 @@ const char *parse_roundtrip_tests[] = {
283
284
  "1286044356 * LbR6JPFI * 2096958782 * uint8",
284
285
  "categorical(-25910, 4265882500, 1.2e-32, 'xM3Mys0XqH')",
285
286
  "var * var * FixedBytesKind",
287
+ "array of FixedBytesKind",
286
288
  "var * var * var * fixed_bytes(size=2816010912, align=16)",
287
289
  "36 * 16 * fixed_bytes(size=912328236, align=2)",
288
290
  "var * var * var * ZcTmBXnKPi",
289
291
  "categorical(946986991, 43, 'omhwkoWVWw')",
290
292
  "var * float32",
293
+ "array of float32",
291
294
  "var * var * var * uint16",
295
+ "array of uint16",
292
296
  "var * var * var * ScalarKind",
293
297
  "fixed_bytes(size=280180300, align=2)",
294
298
  "fixed_string(1901614748, 'utf32')",
@@ -304,6 +308,7 @@ const char *parse_roundtrip_tests[] = {
304
308
  "fixed_bytes(size=1233209904, align=8)",
305
309
  "WhRsMHHXYp(categorical(145))",
306
310
  "var * var * bytes(align=2)",
311
+ "array of fixed_bytes(size=2882797900, align=2)",
307
312
  "categorical(-85, -49, -26791, 8094, 1780, 1.2e-32, 'pX')",
308
313
  "D6nfBg_(categorical(16278, 26651, 147170982, 1.2e-32, 'ylR7'))",
309
314
  "categorical(482331467, 3229733591, -1.2e-32, 1.2e-32)",
@@ -340,10 +345,21 @@ const char *parse_roundtrip_tests[] = {
340
345
  "!2 * 3 * uint8",
341
346
  "!2 * 3 * {a : !10 * 20 * int64, b : !10 * 2 * float64}",
342
347
 
348
+ /* Unions */
349
+ "[Int of int64]",
350
+ "[Int of int64 | Float of float32]",
351
+ "[Int of int64 | Union of [Complex of complex128 | Float of float32]]",
352
+ "2 * 10 * [Int of int64 | Union of [Complex of complex128 | Float of float32]]",
353
+ "2 * 10 * ([Int of int64 | Union of [Complex of complex128 | Float of float32]], [Some of bool])",
354
+
343
355
  /* Overflow */
344
356
  "9223372036854775807 * uint8",
345
357
  "1 * 1 * 9223372036854775807 * uint8",
346
358
 
359
+ /* var... and array... */
360
+ "var... * float64",
361
+ "array... of float64",
362
+
347
363
  /* END MANUALLY GENERATED */
348
364
 
349
365
  NULL
@@ -90,7 +90,7 @@ test_struct_align_pack(void)
90
90
  packed_with_trailing_padding_t packed_with_trail;
91
91
  aligned_t aligned;
92
92
  ndt_context_t *ctx;
93
- ndt_t *t;
93
+ const ndt_t *t;
94
94
 
95
95
  ctx = ndt_context_new();
96
96
  if (ctx == NULL) {
@@ -127,7 +127,7 @@ test_struct_align_pack(void)
127
127
  fprintf(stderr, "test_struct_align_pack: packed_no_trail: FAIL");
128
128
  ndt_context_del(ctx);
129
129
  }
130
- ndt_del(t);
130
+ ndt_decref(t);
131
131
 
132
132
 
133
133
  t = ndt_from_string(s1_abbrev, ctx);
@@ -159,7 +159,7 @@ test_struct_align_pack(void)
159
159
  fprintf(stderr, "test_struct_align_pack: packed_no_trail_abbrev: FAIL\n");
160
160
  ndt_context_del(ctx);
161
161
  }
162
- ndt_del(t);
162
+ ndt_decref(t);
163
163
 
164
164
 
165
165
  t = ndt_from_string(s2, ctx);
@@ -191,7 +191,7 @@ test_struct_align_pack(void)
191
191
  fprintf(stderr, "test_struct_align_pack: packed_with_trail: FAIL");
192
192
  ndt_context_del(ctx);
193
193
  }
194
- ndt_del(t);
194
+ ndt_decref(t);
195
195
 
196
196
 
197
197
  t = ndt_from_string(s3, ctx);
@@ -219,7 +219,7 @@ test_struct_align_pack(void)
219
219
  fprintf(stderr, "test_struct_align_pack: aligned: FAIL");
220
220
  ndt_context_del(ctx);
221
221
  }
222
- ndt_del(t);
222
+ ndt_decref(t);
223
223
 
224
224
  fprintf(stderr, "test_struct_align_pack (4 test cases)\n");
225
225
 
@@ -37,339 +37,792 @@
37
37
 
38
38
  const typecheck_testcase_t typecheck_tests[] = {
39
39
 
40
- { .signature="void -> float32",
41
- .in={NULL},
42
- .out={"float32"},
43
- .broadcast={NULL},
44
- .outer_dims=0,
45
- .success=true },
40
+ { .loc = loc(),
41
+ .success=true,
46
42
 
47
- { .signature="T -> T",
48
- .in={"T"},
49
- .out={NULL},
50
- .broadcast={NULL},
51
- .outer_dims=0,
52
- .success=false },
43
+ .signature="void -> float32",
44
+ .args={NULL},
45
+ .kwargs={NULL},
53
46
 
54
- { .signature="T -> T",
55
- .in={"int64"},
56
- .out={"int64"},
57
- .broadcast={NULL},
58
47
  .outer_dims=0,
59
- .success=true },
48
+ .nin=0,
49
+ .nout=1,
50
+ .nargs=1,
51
+ .types={"float32"} },
60
52
 
61
- { .signature="M*N*T, N*P*T -> M*P*T",
62
- .in={"2 * 3 * int64", "3 * 10 * int64"},
63
- .out={"2 * 10 * int64"},
64
- .broadcast={NULL},
65
- .outer_dims=0,
66
- .success=true },
53
+ { .loc = loc(),
54
+ .success=true,
55
+
56
+ .signature="void -> float32",
57
+ .args={NULL},
58
+ .kwargs={"float32"},
67
59
 
68
- { .signature="Dims... *M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
69
- .in={"2 * 3 * int64", "3 * 10 * int64"},
70
- .out={"2 * 10 * int64"},
71
- .broadcast={NULL},
72
60
  .outer_dims=0,
73
- .success=true },
61
+ .nin=0,
62
+ .nout=1,
63
+ .nargs=1,
64
+ .types={"float32"} },
74
65
 
75
- { .signature="Dims... *M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
76
- .in={"100 * 2 * 3 * int64", "100 * 3 * 10 * int64"},
77
- .out={"100 * 2 * 10 * int64"},
78
- .broadcast={NULL},
79
- .outer_dims=1,
80
- .success=true },
66
+ { .loc = loc(),
67
+ .success=false,
81
68
 
82
- { .signature="Dims... *M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
83
- .in={"2 * 3 * int64", "3 * 10 * int32"},
84
- .out={NULL},
85
- .broadcast={NULL},
86
- .outer_dims=0,
87
- .success=false },
69
+ .signature="T -> T",
70
+ .args={"T"},
71
+ .kwargs={NULL} },
72
+
73
+ { .loc = loc(),
74
+ .success=false,
75
+
76
+ .signature="T -> T",
77
+ .args={"T"},
78
+ .kwargs={"T"} },
79
+
80
+ { .loc = loc(),
81
+ .success=true,
82
+
83
+ .signature="T -> T",
84
+ .args={"int64"},
85
+ .kwargs={NULL},
88
86
 
89
- { .signature="Dims... *M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
90
- .in={"3 * int64", "3 * 10 * int64"},
91
- .out={NULL},
92
- .broadcast={NULL},
93
87
  .outer_dims=0,
94
- .success=false },
88
+ .nin=1,
89
+ .nout=1,
90
+ .nargs=2,
91
+ .types={"int64", "int64"} },
95
92
 
96
- { .signature="Dims... * M*N*T, Dims... * N*P*T -> Dims... *M*T",
97
- .in={"10 * 2 * 3 * int64", "10 * 3 * 10 * int64"},
98
- .out={"10 * 2 * int64"},
99
- .broadcast={NULL},
100
- .outer_dims=1,
101
- .success=true },
102
93
 
103
- { .signature="Dims... * M*T, Dims... * N*T -> Dims... * M*T",
104
- .in={"2 * 3 * int64", "3 * 3 * int64"},
105
- .out={NULL},
106
- .broadcast={NULL},
94
+ { .loc = loc(),
95
+ .success=true,
96
+
97
+ .signature="T -> T",
98
+ .args={"int64"},
99
+ .kwargs={"int64"},
100
+
107
101
  .outer_dims=0,
108
- .success=false },
102
+ .nin=1,
103
+ .nout=1,
104
+ .nargs=2,
105
+ .types={"int64", "int64"} },
106
+
107
+
108
+ { .loc = loc(),
109
+ .success=false,
110
+
111
+ .signature="T -> T",
112
+ .args={"int64"},
113
+ .kwargs={"int32"} },
114
+
115
+ { .loc = loc(),
116
+ .success=true,
117
+
118
+ .signature="M*N*T, N*P*T -> M*P*T",
119
+ .args={"2 * 3 * int64", "3 * 10 * int64"},
120
+ .kwargs={NULL},
109
121
 
110
- { .signature="Dims... * M*T, Dims... * N*T -> Dims... * M*T",
111
- .in={"2 * 3 * int64", "3 * 3 * int64"},
112
- .out={NULL},
113
- .broadcast={NULL},
114
122
  .outer_dims=0,
115
- .success=false },
123
+ .nin=2,
124
+ .nout=1,
125
+ .nargs=3,
126
+ .types={"2 * 3 * int64", "3 * 10 * int64", "2 * 10 * int64"} },
127
+
128
+ { .loc = loc(),
129
+ .success=true,
130
+
131
+ .signature="M*N*T, N*P*T -> M*P*T",
132
+ .args={"2 * 3 * int64", "3 * 10 * int64"},
133
+ .kwargs={"2 * 10 * int64"},
116
134
 
117
- { .signature="M*N*T, N*P*T -> M*P*T",
118
- .in={"2 * 3 * int64", "2 * 10 * int64"},
119
- .out={NULL},
120
- .broadcast={NULL},
121
135
  .outer_dims=0,
122
- .success=false },
136
+ .nin=2,
137
+ .nout=1,
138
+ .nargs=3,
139
+ .types={"2 * 3 * int64", "3 * 10 * int64", "2 * 10 * int64"} },
140
+
141
+ { .loc = loc(),
142
+ .success=false,
143
+
144
+ .signature="M*N*T, N*P*T -> M*P*T",
145
+ .args={"2 * 3 * int64", "3 * 10 * int64", "3 * 10 * int64"},
146
+ .kwargs={NULL} },
147
+
148
+ { .loc = loc(),
149
+ .success=true,
150
+
151
+ .signature="Dims... *M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
152
+ .args={"2 * 3 * int64", "3 * 10 * int64"},
153
+ .kwargs={NULL},
123
154
 
124
- { .signature="M*N*T, N*P*T -> M*P*T",
125
- .in={"2 * 3 * int64", "3 * 10 * int32"},
126
- .out={NULL},
127
- .broadcast={NULL},
128
155
  .outer_dims=0,
129
- .success=false },
156
+ .nin=2,
157
+ .nout=1,
158
+ .nargs=3,
159
+ .types={"2 * 3 * int64", "3 * 10 * int64", "2 * 10 * int64"} },
160
+
161
+ { .loc = loc(),
162
+ .success=true,
163
+
164
+ .signature="Dims... *M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
165
+ .args={"2 * 3 * int64", "3 * 10 * int64"},
166
+ .kwargs={"2 * 10 * int64"},
130
167
 
131
- { .signature="Dims... * M*N*T, Dims... * N*P*T -> Dims... *M*P*T",
132
- .in={"3 * int64", "3 * 10 * int64"},
133
- .out={NULL},
134
- .broadcast={NULL},
135
168
  .outer_dims=0,
136
- .success=false },
169
+ .nin=2,
170
+ .nout=1,
171
+ .nargs=3,
172
+ .types={"2 * 3 * int64", "3 * 10 * int64", "2 * 10 * int64"} },
173
+
174
+ { .loc = loc(),
175
+ .success=true,
176
+
177
+ .signature="Dims... *M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
178
+ .args={"100 * 2 * 3 * int64", "100 * 3 * 10 * int64"},
179
+ .kwargs={NULL},
180
+
181
+ .outer_dims=1,
182
+ .nin=2,
183
+ .nout=1,
184
+ .nargs=3,
185
+ .types={"100 * 2 * 3 * int64", "100 * 3 * 10 * int64", "100 * 2 * 10 * int64"} },
186
+
187
+ { .loc = loc(),
188
+ .success=true,
189
+
190
+ .signature="Dims... *M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
191
+ .args={"100 * 2 * 3 * int64", "100 * 3 * 10 * int64"},
192
+ .kwargs={"100 * 2 * 10 * int64"},
193
+
194
+ .outer_dims=1,
195
+ .nin=2,
196
+ .nout=1,
197
+ .nargs=3,
198
+ .types={"100 * 2 * 3 * int64", "100 * 3 * 10 * int64", "100 * 2 * 10 * int64"} },
199
+
200
+ { .loc = loc(),
201
+ .success=false,
202
+
203
+ .signature="Dims... *M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
204
+ .args={"100 * 2 * 3 * int64", "100 * 3 * 10 * int64"},
205
+ .kwargs={"100 * 2 * 20 * int64"} },
206
+
207
+ { .loc = loc(),
208
+ .success=false,
209
+
210
+ .signature="Dims... *M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
211
+ .args={"2 * 3 * int64", "3 * 10 * int32"},
212
+ .kwargs={NULL} },
213
+
214
+ { .loc = loc(),
215
+ .success=false,
216
+
217
+ .signature="Dims... *M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
218
+ .args={"3 * int64", "3 * 10 * int64"},
219
+ .kwargs={NULL} },
220
+
221
+ { .loc = loc(),
222
+ .success=true,
223
+
224
+ .signature="Dims... * M*N*T, Dims... * N*P*T -> Dims... *M*T",
225
+ .args={"10 * 2 * 3 * int64", "10 * 3 * 10 * int64"},
226
+ .kwargs={NULL},
137
227
 
138
- { .signature="Dims... * M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
139
- .in={"100 * 2 * 3 * int64", "100 * 3 * 10 * int64"},
140
- .out={"100 * 2 * 10 * int64"},
141
- .broadcast={NULL},
142
228
  .outer_dims=1,
143
- .success=true },
229
+ .nin=2,
230
+ .nout=1,
231
+ .nargs=3,
232
+ .types={"10 * 2 * 3 * int64", "10 * 3 * 10 * int64", "10 * 2 * int64"} },
233
+
234
+ { .loc = loc(),
235
+ .success=true,
236
+
237
+ .signature="Dims... * M*N*T, Dims... * N*P*T -> Dims... *M*T",
238
+ .args={"10 * 2 * 3 * int64", "10 * 3 * 10 * int64"},
239
+ .kwargs={"10 * 2 * int64"},
144
240
 
145
- { .signature="Dims... * M*N*T, Dims... *N*P*T -> Dims... *M*P*T",
146
- .in={"400 * 2 * 3 * int64", "400 * 3 * 10 * int64"},
147
- .out={"400 * 2 * 10 * int64"},
148
- .broadcast={NULL},
149
241
  .outer_dims=1,
150
- .success=true },
242
+ .nin=2,
243
+ .nout=1,
244
+ .nargs=3,
245
+ .types={"10 * 2 * 3 * int64", "10 * 3 * 10 * int64", "10 * 2 * int64"} },
246
+
247
+ { .loc = loc(),
248
+ .success=false,
249
+
250
+ .signature="Dims... * M*T, Dims... * N*T -> Dims... * M*T",
251
+ .args={"2 * 3 * int64", "3 * 3 * int64"},
252
+ .kwargs={NULL} },
253
+
254
+ { .loc = loc(),
255
+ .success=false,
256
+
257
+ .signature="Dims... * M*T, Dims... * N*T -> Dims... * M*T",
258
+ .args={"2 * 3 * int64", "3 * 3 * int64"},
259
+ .kwargs={"3 * 3 * int64"} },
260
+
261
+ { .loc = loc(),
262
+ .success=false,
263
+
264
+ .signature="Dims... * M*T, Dims... * N*T -> Dims... * M*T",
265
+ .args={"2 * 3 * int64", "3 * 3 * int64"},
266
+ .kwargs={NULL} },
267
+
268
+ { .loc = loc(),
269
+ .success=false,
270
+
271
+ .signature="M*N*T, N*P*T -> M*P*T",
272
+ .args={"2 * 3 * int64", "2 * 10 * int64"},
273
+ .kwargs={NULL} },
274
+
275
+ { .loc = loc(),
276
+ .success=false,
277
+
278
+ .signature="M*N*T, N*P*T -> M*P*T",
279
+ .args={"2 * 3 * int64", "3 * 10 * int32"},
280
+ .kwargs={NULL} },
281
+
282
+ { .loc = loc(),
283
+ .success=false,
284
+
285
+ .signature="Dims... * M*N*T, Dims... * N*P*T -> Dims... *M*P*T",
286
+ .args={"3 * int64", "3 * 10 * int64"},
287
+ .kwargs={NULL} },
288
+
289
+ { .loc = loc(),
290
+ .success=true,
291
+
292
+ .signature="Dims... * M*N*T, Dims... * N*P*T -> Dims... * M*P*T",
293
+ .args={"1000 * 400 * 2 * 3 * int64", "1000 * 400 * 3 * 10 * int64"},
294
+ .kwargs={NULL},
295
+
296
+ .outer_dims=2,
297
+ .nin=2,
298
+ .nout=1,
299
+ .nargs=3,
300
+ .types = { "1000 * 400 * 2 * 3 * int64",
301
+ "1000 * 400 * 3 * 10 * int64",
302
+ "1000 * 400 * 2 * 10 * int64"} },
303
+
304
+ { .loc = loc(),
305
+ .success=true,
306
+
307
+ .signature="Dims... * M*N*T, Dims... * N*P*T -> Dims... * M*P*T",
308
+ .args={"1000 * 400 * 2 * 3 * int64", "1000 * 400 * 3 * 10 * int64"},
309
+ .kwargs={"1000 * 400 * 2 * 10 * int64"},
151
310
 
152
- { .signature="Dims... * M*N*T, Dims... * N*P*T -> Dims... * M*P*T",
153
- .in={"1000 * 400 * 2 * 3 * int64", "1000 * 400 * 3 * 10 * int64"},
154
- .out={"1000 * 400 * 2 * 10 * int64"},
155
- .broadcast={NULL},
156
311
  .outer_dims=2,
157
- .success=true },
312
+ .nin=2,
313
+ .nout=1,
314
+ .nargs=3,
315
+ .types = { "1000 * 400 * 2 * 3 * int64",
316
+ "1000 * 400 * 3 * 10 * int64",
317
+ "1000 * 400 * 2 * 10 * int64"} },
318
+
319
+ { .loc = loc(),
320
+ .success=true,
321
+
322
+ .signature="Dims... * M*N*T, Dims... *N*P*T -> Dims... * M*P*T",
323
+ .args={"2 * 3 * 1000 * 400 * 2 * 3 * int64", "2 * 3 * 1000 * 400 * 3 * 10 * int64"},
324
+ .kwargs={"2 * 3 * 1000 * 400 * 2 * 10 * int64"},
158
325
 
159
- { .signature="Dims... * M*N*T, Dims... *N*P*T -> Dims... * M*P*T",
160
- .in={"2 * 3 * 1000 * 400 * 2 * 3 * int64", "2 * 3 * 1000 * 400 * 3 * 10 * int64"},
161
- .out={"2 * 3 * 1000 * 400 * 2 * 10 * int64"},
162
- .broadcast={NULL},
163
326
  .outer_dims=4,
164
- .success=true },
327
+ .nin=2,
328
+ .nout=1,
329
+ .nargs=3,
330
+ .types = { "2 * 3 * 1000 * 400 * 2 * 3 * int64",
331
+ "2 * 3 * 1000 * 400 * 3 * 10 * int64",
332
+ "2 * 3 * 1000 * 400 * 2 * 10 * int64"} },
333
+
334
+ { .loc = loc(),
335
+ .success=false,
336
+
337
+ .signature="Dims... * M*N*T, Dims... *N*P*T -> Dims... * M*P*T",
338
+ .args={"2 * 3 * 1000 * 400 * 2 * 3 * int64", "2 * 3 * 1000 * 400 * 3 * 10 * int64"},
339
+ .kwargs={"2 * 3 * 100 * 400 * 2 * 10 * int64"} },
340
+
341
+ { .loc = loc(),
342
+ .success=true,
343
+
344
+ .signature="D... * int64 -> D... * int64",
345
+ .args={"2 * 3 * int64"},
346
+ .kwargs={NULL},
347
+
348
+ .outer_dims=2,
349
+ .nin=1,
350
+ .nout=1,
351
+ .nargs=2,
352
+ .types = { "2 * 3 * int64", "2 * 3 * int64"} },
353
+
354
+ { .loc = loc(),
355
+ .success=true,
356
+
357
+ .signature="D... * int64 -> D... * int64",
358
+ .args={"2 * 3 * int64"},
359
+ .kwargs={"2 * 3 * int64"},
360
+
361
+ .outer_dims=2,
362
+ .nin=1,
363
+ .nout=1,
364
+ .nargs=2,
365
+ .types = { "2 * 3 * int64", "2 * 3 * int64"} },
366
+
367
+ { .loc = loc(),
368
+ .success=false,
369
+
370
+ .signature="D... * int64 -> D... * int64",
371
+ .args={"2 * 3 * int64"},
372
+ .kwargs={"2 * 3 * float32"} },
373
+
374
+ { .loc = loc(),
375
+ .success=true,
376
+
377
+ .signature="... * int64 -> ... * int64",
378
+ .args={"2 * 3 * int64"},
379
+ .kwargs={NULL},
165
380
 
166
- { .signature="D... * int64 -> D... * int64",
167
- .in={"2 * 3 * int64"},
168
- .out={"2 * 3 * int64"},
169
- .broadcast={NULL},
170
381
  .outer_dims=2,
171
- .success=true },
382
+ .nin=1,
383
+ .nout=1,
384
+ .nargs=2,
385
+ .types = { "2 * 3 * int64", "2 * 3 * int64"} },
386
+
387
+ { .loc = loc(),
388
+ .success=true,
389
+
390
+ .signature="... * int64 -> ... * int64",
391
+ .args={"2 * 3 * int64"},
392
+ .kwargs={"2 * 3 * int64"},
172
393
 
173
- { .signature="... * int64 -> ... * int64",
174
- .in={"2 * 3 * int64"},
175
- .out={"2 * 3 * int64"},
176
- .broadcast={"2 * 3 * int64"},
177
394
  .outer_dims=2,
178
- .success=true },
395
+ .nin=1,
396
+ .nout=1,
397
+ .nargs=2,
398
+ .types = { "2 * 3 * int64", "2 * 3 * int64"} },
399
+
400
+ { .loc = loc(),
401
+ .success=false,
402
+
403
+ .signature="... * int64 -> ... * int64",
404
+ .args={"2 * 3 * int64"},
405
+ .kwargs={"2 * 4 * int64"} },
406
+
407
+
408
+ { .loc = loc(),
409
+ .success=false,
410
+
411
+ .signature="... * int64 -> ... * int64",
412
+ .args={"2 * 3 * int64"},
413
+ .kwargs={"2 * 3 * int64", "2 * 3 * int64"} },
414
+
415
+ { .loc = loc(),
416
+ .success=true,
417
+
418
+ .signature="... * int64, ... * int64 -> ... * int64",
419
+ .args={"2 * 3 * int64", "10 * 2 * 3 * int64"},
420
+ .kwargs = {NULL},
421
+
422
+ .outer_dims=3,
423
+ .nin=2,
424
+ .nout=1,
425
+ .nargs=3,
426
+ .types = { "fixed(shape=10, step=0) * 2 * 3 * int64",
427
+ "10 * 2 * 3 * int64",
428
+ "10 * 2 * 3 * int64" } },
429
+
430
+ { .loc = loc(),
431
+ .success=true,
432
+
433
+ .signature="... * int64, ... * int64 -> ... * int64",
434
+ .args={"2 * 3 * int64", "10 * 2 * 3 * int64"},
435
+ .kwargs = {"10 * 2 * 3 * int64"},
179
436
 
180
- { .signature="... * int64, ... * int64 -> ... * int64",
181
- .in={"2 * 3 * int64", "10 * 2 * 3 * int64"},
182
- .out={"10 * 2 * 3 * int64"},
183
- .broadcast={"fixed(shape=10, step=0) * 2 * 3 * int64", "10 * 2 * 3 * int64"},
184
437
  .outer_dims=3,
185
- .success=true },
438
+ .nin=2,
439
+ .nout=1,
440
+ .nargs=3,
441
+ .types = { "fixed(shape=10, step=0) * 2 * 3 * int64",
442
+ "10 * 2 * 3 * int64",
443
+ "10 * 2 * 3 * int64" } },
444
+
445
+ { .loc = loc(),
446
+ .success=true,
447
+
448
+ .signature="... * N * int64, ... * int64 -> ... * int64",
449
+ .args={"2 * 3 * int64", "10 * 2 * int64"},
450
+ .kwargs={NULL},
186
451
 
187
- { .signature="... * N * int64, ... * int64 -> ... * int64",
188
- .in={"2 * 3 * int64", "10 * 2 * int64"},
189
- .out={"10 * 2 * int64"},
190
- .broadcast={"fixed(shape=10, step=0) * 2 * 3 * int64", "10 * 2 * int64"},
191
452
  .outer_dims=2,
192
- .success=true },
453
+ .nin=2,
454
+ .nout=1,
455
+ .nargs=3,
456
+ .types = { "fixed(shape=10, step=0) * 2 * 3 * int64",
457
+ "10 * 2 * int64",
458
+ "10 * 2 * int64" } },
459
+
460
+ { .loc = loc(),
461
+ .success=true,
462
+
463
+ .signature="... * N * int64, ... * int64 -> ... * int64",
464
+ .args={"2 * 3 * int64", "20 * 10 * 2 * int64"},
465
+ .kwargs={NULL},
193
466
 
194
- { .signature="... * N * int64, ... * int64 -> ... * int64",
195
- .in={"2 * 3 * int64", "20 * 10 * 2 * int64"},
196
- .out={"20 * 10 * 2 * int64"},
197
- .broadcast={"fixed(shape=20, step=0) * fixed(shape=10, step=0) * 2 * 3 * int64", "20 * 10 * 2 * int64"},
198
467
  .outer_dims=3,
199
- .success=true },
468
+ .nin=2,
469
+ .nout=1,
470
+ .nargs=3,
471
+ .types = { "fixed(shape=20, step=0) * fixed(shape=10, step=0) * 2 * 3 * int64",
472
+ "20 * 10 * 2 * int64",
473
+ "20 * 10 * 2 * int64" } },
474
+
475
+ { .loc = loc(),
476
+ .success=true,
477
+
478
+ .signature="... * N * int64, ... * int64 -> ... * N * int64",
479
+ .args={"2 * 3 * int64", "20 * 10 * 2 * int64"},
480
+ .kwargs={NULL},
200
481
 
201
- { .signature="... * N * int64, ... * int64 -> ... * N * int64",
202
- .in={"2 * 3 * int64", "20 * 10 * 2 * int64"},
203
- .out={"20 * 10 * 2 * 3 * int64"},
204
- .broadcast={"fixed(shape=20, step=0) * fixed(shape=10, step=0) * 2 * 3 * int64", "20 * 10 * 2 * int64"},
205
482
  .outer_dims=3,
206
- .success=true },
483
+ .nin=2,
484
+ .nout=1,
485
+ .nargs=3,
486
+ .types = { "fixed(shape=20, step=0) * fixed(shape=10, step=0) * 2 * 3 * int64",
487
+ "20 * 10 * 2 * int64",
488
+ "20 * 10 * 2 * 3 * int64" } },
207
489
 
208
- { .signature="var... * int64 -> var... * int64",
209
- .in={"2 * 3 * int64"},
210
- .out={NULL},
211
- .broadcast={NULL},
212
- .outer_dims=0,
213
- .success=false },
490
+ { .loc = loc(),
491
+ .success=false,
214
492
 
215
- { .signature="A... * int64 -> A... * int64",
216
- .in={"var(offsets=[0,2]) * int64"},
217
- .out={NULL},
218
- .broadcast={NULL},
219
- .outer_dims=0,
220
- .success=false },
493
+ .signature="var... * int64 -> var... * int64",
494
+ .args={"2 * 3 * int64"},
495
+ .kwargs={NULL} },
496
+
497
+ { .loc = loc(),
498
+ .success=false,
499
+
500
+ .signature="A... * int64 -> A... * int64",
501
+ .args={"var(offsets=[0,2]) * int64"},
502
+ .kwargs={NULL} },
503
+
504
+ { .loc = loc(),
505
+ .success=true,
506
+
507
+ .signature="var... * int64 -> var... * int64",
508
+ .args={"var(offsets=[0,2]) * int64"},
509
+ .kwargs={NULL},
221
510
 
222
- { .signature="var... * int64 -> var... * int64",
223
- .in={"var(offsets=[0,2]) * int64"},
224
- .out={"var(offsets=[0,2]) * int64"},
225
- .broadcast={NULL},
226
511
  .outer_dims=1,
227
- .success=true },
512
+ .nin=1,
513
+ .nout=1,
514
+ .nargs=2,
515
+ .types = { "var(offsets=[0,2]) * int64", "var(offsets=[0,2]) * int64" } },
516
+
517
+
518
+ { .loc = loc(),
519
+ .success=true,
520
+
521
+ .signature="var... * int64 -> var... * int64",
522
+ .args={"var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64"},
523
+ .kwargs={"var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64"},
228
524
 
229
- { .signature="var... * int64 -> var... * int64",
230
- .in={"var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64"},
231
- .out={"var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64"},
232
- .broadcast={NULL},
233
525
  .outer_dims=2,
234
- .success=true },
526
+ .nin=1,
527
+ .nout=1,
528
+ .nargs=2,
529
+ .types = { "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64",
530
+ "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64" } },
531
+
532
+ { .loc = loc(),
533
+ .success=true,
534
+
535
+ .signature="var... * int64 -> var... * int64",
536
+ .args={"var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64"},
537
+ .kwargs={NULL},
235
538
 
236
- { .signature="var... * int64 -> var... * int64",
237
- .in={"var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64"},
238
- .out={"var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64"},
239
- .broadcast={NULL},
240
539
  .outer_dims=2,
241
- .success=true },
540
+ .nin=1,
541
+ .nout=1,
542
+ .nargs=2,
543
+ .types={ "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64",
544
+ "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64"} },
545
+
546
+ { .loc = loc(),
547
+ .success=true,
548
+
549
+ .signature="var... * int64, var... * int64 -> var... * int64",
550
+ .args={ "var(offsets=[0,2]) * int64",
551
+ "var(offsets=[0,2]) * int64" },
552
+ .kwargs={NULL},
242
553
 
243
- { .signature="var... * int64, var... * int64 -> var... * int64",
244
- .in={"var(offsets=[0,2]) * int64",
245
- "var(offsets=[0,2]) * int64"},
246
- .out={"var(offsets=[0,2]) * int64"},
247
- .broadcast={NULL},
248
554
  .outer_dims=1,
249
- .success=true },
555
+ .nin=2,
556
+ .nout=1,
557
+ .nargs=3,
558
+ .types={ "var(offsets=[0,2]) * int64",
559
+ "var(offsets=[0,2]) * int64",
560
+ "var(offsets=[0,2]) * int64"} },
250
561
 
251
- { .signature="var... * int64, var... * int64 -> var... * int64",
252
- .in={"var(offsets=[0,3]) * int64",
253
- "var(offsets=[0,2]) * int64"},
254
- .out={NULL},
255
- .broadcast={NULL},
256
- .outer_dims=0,
257
- .success=false },
562
+ { .loc = loc(),
563
+ .success=false,
564
+
565
+ .signature="var... * int64, var... * int64 -> var... * int64",
566
+ .args={ "var(offsets=[0,3]) * int64",
567
+ "var(offsets=[0,2]) * int64" },
568
+ .kwargs={NULL} },
569
+
570
+ { .loc = loc(),
571
+ .success=true,
572
+
573
+ .signature="var... * int64, var... * int64 -> var... * int64",
574
+ .args={ "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64",
575
+ "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64" },
576
+ .kwargs={NULL},
258
577
 
259
- { .signature="var... * int64, var... * int64 -> var... * int64",
260
- .in={"var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64",
261
- "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64"},
262
- .out={"var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64"},
263
- .broadcast={NULL},
264
578
  .outer_dims=2,
265
- .success=true },
579
+ .nin=2,
580
+ .nout=1,
581
+ .nargs=3,
582
+ .types={ "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64",
583
+ "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64",
584
+ "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64" } },
266
585
 
267
- { .signature="var... * int64, var... * int64 -> var... * int64",
268
- .in={"var(offsets=[0,2]) * var(offsets=[0,4,11]) * int64",
269
- "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64"},
270
- .out={NULL},
271
- .broadcast={NULL},
272
- .outer_dims=0,
273
- .success=false },
586
+ { .loc = loc(),
587
+ .success=false,
588
+
589
+ .signature="var... * int64, var... * int64 -> var... * int64",
590
+ .args={ "var(offsets=[0,2]) * var(offsets=[0,4,11]) * int64",
591
+ "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64" },
592
+ .kwargs={NULL} },
593
+
594
+ { .loc = loc(),
595
+ .success=false,
596
+
597
+ .signature="var... * int64, var... * int64 -> var... * int64",
598
+ .args={ "var(offsets=[0,3]) * var(offsets=[0,4,10,20]) * int64",
599
+ "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64" },
600
+ .kwargs={NULL} },
601
+
602
+ { .loc = loc(),
603
+ .success=true,
604
+
605
+ .signature="var * var * (int32, float64), int32 -> var * var * int32",
606
+ .args={ "var(offsets=[0,3]) * var(offsets=[0,4,10,20]) * (int32, float64)",
607
+ "int32" },
608
+ .kwargs={NULL},
274
609
 
275
- { .signature="var... * int64, var... * int64 -> var... * int64",
276
- .in={"var(offsets=[0,3]) * var(offsets=[0,4,10,20]) * int64",
277
- "var(offsets=[0,2]) * var(offsets=[0,4,10]) * int64"},
278
- .out={NULL},
279
- .broadcast={NULL},
280
610
  .outer_dims=0,
281
- .success=false },
611
+ .nin=2,
612
+ .nout=1,
613
+ .nargs=3,
614
+ .types={ "var(offsets=[0,3]) * var(offsets=[0,4,10,20]) * (int32, float64)",
615
+ "int32",
616
+ "var * var * int32"} },
617
+
618
+ { .loc = loc(),
619
+ .success=true,
620
+
621
+ .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> ... * F[10 * 2 * float64]",
622
+ .args={"2 * 3 * float64", "!3 * 4 * float32"},
623
+ .kwargs={NULL},
282
624
 
283
- { .signature="var * var * (int32, float64), int32 -> var * var * int32",
284
- .in={"var(offsets=[0,3]) * var(offsets=[0,4,10,20]) * (int32, float64)",
285
- "int32"},
286
- .out={"var * var * int32"},
287
- .broadcast={NULL},
288
625
  .outer_dims=0,
289
- .success=true },
626
+ .nin=2,
627
+ .nout=1,
628
+ .nargs=3,
629
+ .types={ "2 * 3 * float64", "!3 * 4 * float32", "!10 * 2 * float64" } },
630
+
631
+ { .loc = loc(),
632
+ .success=true,
633
+
634
+ .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> ... * F[10 * 2 * float64]",
635
+ .args={"2 * 3 * float64", "!3 * 4 * float32"},
636
+ .kwargs={"!10 * 2 * float64"},
290
637
 
291
- { .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> ... * F[10 * 2 * float64]",
292
- .in={"2 * 3 * float64", "!3 * 4 * float32"},
293
- .out={"!10 * 2 * float64"},
294
- .broadcast={"2 * 3 * float64", "!3 * 4 * float32"},
295
638
  .outer_dims=0,
296
- .success=true },
639
+ .nin=2,
640
+ .nout=1,
641
+ .nargs=3,
642
+ .types={ "2 * 3 * float64", "!3 * 4 * float32", "!10 * 2 * float64" } },
643
+
644
+ { .loc = loc(),
645
+ .success=false,
646
+
647
+ .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> ... * F[10 * 2 * float64]",
648
+ .args={"2 * 3 * float64", "!3 * 4 * float32"},
649
+ .kwargs={"10 * 2 * float64"} },
650
+
651
+ { .loc = loc(),
652
+ .success=true,
653
+
654
+ .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> ... * F[10 * 2 * float64]",
655
+ .args={ "20 * 2 * 3 * float64", "20 * !3 * 4 * float32" },
656
+ .kwargs={NULL},
297
657
 
298
- { .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> ... * F[10 * 2 * float64]",
299
- .in={"20 * 2 * 3 * float64", "20 * !3 * 4 * float32"},
300
- .out={"20 * !10 * 2 * float64"},
301
- .broadcast={"20 * 2 * 3 * float64", "20 * !3 * 4 * float32"},
302
658
  .outer_dims=1,
303
- .success=true },
659
+ .nin=2,
660
+ .nout=1,
661
+ .nargs=3,
662
+ .types={ "20 * 2 * 3 * float64", "20 * !3 * 4 * float32", "20 * !10 * 2 * float64"} },
663
+
664
+ { .loc = loc(),
665
+ .success=true,
666
+
667
+ .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> ... * F[10 * 2 * float64]",
668
+ .args={ "20 * 2 * 3 * float64", "!3 * 4 * float32" },
669
+ .kwargs={NULL},
304
670
 
305
- { .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> ... * F[10 * 2 * float64]",
306
- .in={"20 * 2 * 3 * float64", "!3 * 4 * float32"},
307
- .out={"20 * !10 * 2 * float64"},
308
- .broadcast={"20 * 2 * 3 * float64", "fixed(shape=20, step=0) * !3 * 4 * float32"},
309
671
  .outer_dims=1,
310
- .success=true },
672
+ .nin=2,
673
+ .nout=1,
674
+ .nargs=3,
675
+ .types={ "20 * 2 * 3 * float64",
676
+ "fixed(shape=20, step=0) * !3 * 4 * float32",
677
+ "20 * !10 * 2 * float64" } },
678
+
679
+ { .loc = loc(),
680
+ .success=true,
681
+
682
+ .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> ... * F[10 * 2 * float64]",
683
+ .args={ "2 * 3 * float64", "20 * 30 * !3 * 4 * float32" },
684
+ .kwargs={NULL},
311
685
 
312
- { .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> ... * F[10 * 2 * float64]",
313
- .in={"2 * 3 * float64", "20 * 30 * !3 * 4 * float32"},
314
- .out={"20 * 30 * !10 * 2 * float64"},
315
- .broadcast={"fixed(shape=20, step=0) * fixed(shape=30, step=0) * 2 * 3 * float64",
316
- "20 * 30 * !3 * 4 * float32"},
317
686
  .outer_dims=2,
318
- .success=true },
687
+ .nin=2,
688
+ .nout=1,
689
+ .nargs=3,
690
+ .types={ "fixed(shape=20, step=0) * fixed(shape=30, step=0) * 2 * 3 * float64",
691
+ "20 * 30 * !3 * 4 * float32",
692
+ "20 * 30 * !10 * 2 * float64"} },
693
+
694
+ { .loc = loc(),
695
+ .success=true,
696
+
697
+ .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> ... * C[10 * 2 * float64]",
698
+ .args={"2 * 3 * float64", "20 * 30 * !3 * 4 * float32"},
699
+ .kwargs={NULL},
319
700
 
320
- { .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> ... * C[10 * 2 * float64]",
321
- .in={"2 * 3 * float64", "20 * 30 * !3 * 4 * float32"},
322
- .out={"20 * 30 * 10 * 2 * float64"},
323
- .broadcast={"fixed(shape=20, step=0) * fixed(shape=30, step=0) * 2 * 3 * float64",
324
- "20 * 30 * !3 * 4 * float32"},
325
701
  .outer_dims=2,
326
- .success=true },
702
+ .nin=2,
703
+ .nout=1,
704
+ .nargs=3,
705
+ .types={ "fixed(shape=20, step=0) * fixed(shape=30, step=0) * 2 * 3 * float64",
706
+ "20 * 30 * !3 * 4 * float32",
707
+ "20 * 30 * 10 * 2 * float64" } },
708
+
709
+ { .loc = loc(),
710
+ .success=true,
711
+
712
+ .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> C[... * 10 * 2 * float64]",
713
+ .args={"2 * 3 * float64", "20 * 30 * !3 * 4 * float32"},
714
+ .kwargs={NULL},
327
715
 
328
- { .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> C[... * 10 * 2 * float64]",
329
- .in={"2 * 3 * float64", "20 * 30 * !3 * 4 * float32"},
330
- .out={"20 * 30 * 10 * 2 * float64"},
331
- .broadcast={"fixed(shape=20, step=0) * fixed(shape=30, step=0) * 2 * 3 * float64",
332
- "20 * 30 * !3 * 4 * float32"},
333
716
  .outer_dims=2,
334
- .success=true },
717
+ .nin=2,
718
+ .nout=1,
719
+ .nargs=3,
720
+ .types={ "fixed(shape=20, step=0) * fixed(shape=30, step=0) * 2 * 3 * float64",
721
+ "20 * 30 * !3 * 4 * float32",
722
+ "20 * 30 * 10 * 2 * float64" } },
723
+
724
+ { .loc = loc(),
725
+ .success=true,
726
+
727
+ .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> F[... * 10 * 2 * float64]",
728
+ .args={"2 * 3 * float64", "20 * 30 * !3 * 4 * float32"},
729
+ .kwargs={NULL},
335
730
 
336
- { .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> F[... * 10 * 2 * float64]",
337
- .in={"2 * 3 * float64", "20 * 30 * !3 * 4 * float32"},
338
- .out={"!20 * 30 * 10 * 2 * float64"},
339
- .broadcast={"fixed(shape=20, step=0) * fixed(shape=30, step=0) * 2 * 3 * float64",
340
- "20 * 30 * !3 * 4 * float32"},
341
731
  .outer_dims=2,
342
- .success=true },
732
+ .nin=2,
733
+ .nout=1,
734
+ .nargs=3,
735
+ .types={ "fixed(shape=20, step=0) * fixed(shape=30, step=0) * 2 * 3 * float64",
736
+ "20 * 30 * !3 * 4 * float32",
737
+ "!20 * 30 * 10 * 2 * float64" } },
738
+
739
+ { .loc = loc(),
740
+ .success=true,
741
+
742
+ .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> F[... * 20 * 30 * 10 * 2 * float64]",
743
+ .args={"2 * 3 * float64", "!3 * 4 * float32"},
744
+ .kwargs={NULL},
343
745
 
344
- { .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> F[... * 20 * 30 * 10 * 2 * float64]",
345
- .in={"2 * 3 * float64", "!3 * 4 * float32"},
346
- .out={"!20 * 30 * 10 * 2 * float64"},
347
- .broadcast={"2 * 3 * float64", "!3 * 4 * float32"},
348
746
  .outer_dims=0,
349
- .success=true },
747
+ .nin=2,
748
+ .nout=1,
749
+ .nargs=3,
750
+ .types={ "2 * 3 * float64", "!3 * 4 * float32", "!20 * 30 * 10 * 2 * float64" } },
751
+
752
+ { .loc = loc(),
753
+ .success=true,
754
+
755
+ .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> F[... * 20 * 30 * 10 * 2 * float64]",
756
+ .args={"2 * 3 * float64", "!3 * 4 * float32"},
757
+ .kwargs={"!20 * 30 * 10 * 2 * float64"},
350
758
 
351
- { .signature="C[... * 2 * 3 * int64], ... * F[3 * 4 * float32] -> F[... * 20 * 30 * 10 * 2 * float64]",
352
- .in={"2 * 3 * int64", "!3 * 4 * float32"},
353
- .out={"!20 * 30 * 10 * 2 * float64"},
354
- .broadcast={"2 * 3 * int64", "!3 * 4 * float32"},
355
759
  .outer_dims=0,
356
- .success=true },
760
+ .nin=2,
761
+ .nout=1,
762
+ .nargs=3,
763
+ .types={ "2 * 3 * float64", "!3 * 4 * float32", "!20 * 30 * 10 * 2 * float64" } },
764
+
765
+ { .loc = loc(),
766
+ .success=false,
767
+
768
+ .signature="... * C[2 * 3 * float64], ... * F[3 * 4 * float32] -> F[... * 20 * 30 * 10 * 2 * float64]",
769
+ .args={"2 * 3 * float64", "!3 * 4 * float32"},
770
+ .kwargs={"20 * 30 * 10 * 2 * float64"} },
771
+
772
+ { .loc = loc(),
773
+ .success=true,
774
+
775
+ .signature="C[... * 2 * 3 * int64], ... * F[3 * 4 * float32] -> F[... * 20 * 30 * 10 * 2 * float64]",
776
+ .args={"2 * 3 * int64", "!3 * 4 * float32"},
777
+ .kwargs={NULL},
357
778
 
358
- /* First argument is not C after broadcasting. */
359
- { .signature="C[... * 2 * 3 * int64], ... * F[2 * 3 * 4 * float32] -> F[... * 20 * 30 * 10 * 2 * float64]",
360
- .in={"2 * 3 * float64", "!2 * 3 * 4 * float32"},
361
- .out={NULL},
362
- .broadcast={NULL},
363
779
  .outer_dims=0,
364
- .success=false },
780
+ .nin=2,
781
+ .nout=1,
782
+ .nargs=3,
783
+ .types={ "2 * 3 * int64", "!3 * 4 * float32", "!20 * 30 * 10 * 2 * float64" } },
784
+
785
+ /* First argument is not C after broadcasting. */
786
+ { .loc = loc(),
787
+ .success=false,
788
+
789
+ .signature="C[... * 2 * 3 * int64], ... * F[2 * 3 * 4 * float32] -> F[... * 20 * 30 * 10 * 2 * float64]",
790
+ .args={"2 * 3 * float64", "!2 * 3 * 4 * float32"},
791
+ .kwargs={NULL} },
365
792
 
366
793
  /* Second argument is not F after broadcasting. */
367
- { .signature="... * C[2 * 3 * 4 * int64], F[... * 3 * 4 * float32] -> F[... * 20 * 30 * 10 * 2 * float64]",
368
- .in={"3 * 4 * float64", "!3 * 4 * float32"},
369
- .out={NULL},
370
- .broadcast={NULL},
371
- .outer_dims=0,
372
- .success=false },
794
+ { .loc = loc(),
795
+ .success=false,
796
+
797
+ .signature="... * C[2 * 3 * 4 * int64], F[... * 3 * 4 * float32] -> F[... * 20 * 30 * 10 * 2 * float64]",
798
+ .args={"3 * 4 * float64", "!3 * 4 * float32"},
799
+ .kwargs={NULL} },
800
+
801
+ { .loc = loc(),
802
+ .success=true,
803
+
804
+ .signature="array... of float64 -> array... of int64",
805
+ .args={"array of float64"},
806
+ .kwargs={NULL},
807
+
808
+ .outer_dims=1,
809
+ .nin=1,
810
+ .nout=1,
811
+ .nargs=2,
812
+ .types={ "array of float64", "array of int64" } },
813
+
814
+ { .loc = loc(),
815
+ .success=true,
816
+
817
+ .signature="array... of array of float64, array... of uint8 -> array... of array of int64",
818
+ .args={"array of array of float64", "array of uint8"},
819
+ .kwargs={NULL},
820
+
821
+ .outer_dims=1,
822
+ .nin=2,
823
+ .nout=1,
824
+ .nargs=3,
825
+ .types={ "array of array of float64", "array of uint8", "array of array of int64" } },
373
826
 
374
- { NULL, {NULL}, {NULL}, {NULL}, 0, false }
827
+ { .loc=NULL, .success=false, .signature= NULL, .args={NULL}, .kwargs={NULL} }
375
828
  };