diff --git "a/build/webgpu/test.json" "b/build/webgpu/test.json" --- "a/build/webgpu/test.json" +++ "b/build/webgpu/test.json" @@ -1,9 +1,45 @@ { - "op": "ai.onnx.Unique", "fixtureArrays": { + "axis0_f32_hash_sorted_duplicate_rows_input_x": [27.25, 46, -4.125, -24, 13.5, 27.5, -13.375, -32.125, 61.125, 25, -18.125, 21.625, 62.25, -35.75, -48.375, 47.125, -45, 13.25, 54.125, 37.875, 41.25, 4, -63.5, 50.75, -0.5, 12.125, -27.375, -7.75, -49.75, 20.25, 42.625, -59, 40.125, -40.25, -19.25, 6.25, 48.25, 28.625, 58.875, -61.25, -28.5, 20.5, -52, 15.75, 30.875, -56.5, -15.875, -0.75, -54.25, -31, 19.125, -42.5, -62.375, 44.875, -3, -42.75, -41.375, 6.5, -55.375, 2.875, -57.875, -46.125, -14.5, -6.375, -33.25, 35.625, -21.75, -8.875, -1.875, -36.875, 9.875, 55.25, -20.375, 5.125, 26.125, -25.125, 56.625, 63.625, 57.75, -49.5, -21.5, 11, -38, -60.125, -35.5, 14.625, -50.875, -47.25, -56.75, -14.75, 48.5, -28.75, -43.875, 60, 16.875, -29.875, -10, -34.375, 0.625, -22.875, 53, 49.625, 29.75, 34.25, -17, 39, 55.5, 18, 33.125, 43.75, -11.125, 32, 8.75, 23.875, 41.5, 36.75, 34.5, 7.625, -7.5, -53.125, 22.75, -5.25, -26.25, 1.75, 51.875, -39.125, 62.5, -12.25], + "axis_nan_ordered_y_float32_nan_head_later_inner_sorted0_input_x": [5, 0, 1, 0, "NaN", 9, 3, 0, 5, 0, 1, 0, "NaN", 9, 3, 0, 5, 0, 1, 0, "NaN", 9, 3, 0, 5, 0, 1, 0, "NaN", 9, 3, 0, 5, 0, 1, 0, "NaN", 9, 3, 0, 5, 0, 1, 0, "NaN", 9, 3, 0, 5, 0, 1, 0, "NaN", 9, 3, 0, 5, 0, 1, 0, "NaN", 9, 3, 0, 5, 0], + "axis_nan_ordered_y_float32_nan_leading_single_bucket_outer_sorted0_input_x": ["NaN", 1, -1, "NaN", 1, -1, "NaN", 1, -1, "NaN", 1, -1, "NaN", 1, -1, "NaN", 1, -1, "NaN", 1, -1, "NaN", 1, -1, "NaN", 1, -1, "NaN", 1, -1, "NaN", 1, -1, 3, 5, 5, 3, 5, 5, 3, 5, 5, 3, 5, 5, 3, 5, 5, 3, 5, 5, 3, 5, 5, 3, 5, 5, 3, 5, 5, 3, 5, 5, 3, 5, 5], + "axis_nan_ordered_y_float32_nan_suffix_ignored_by_head_inner_sorted0_input_x": [1, "NaN", 2, 0, 3, 9, 1, "NaN", 2, 0, 3, 9, 1, "NaN", 2, 0, 3, 9, 1, "NaN", 2, 0, 3, 9, 1, "NaN", 2, 0, 3, 9, 1, "NaN", 2, 0, 3, 9, 1, "NaN", 2, 0, 3, 9, 1, "NaN", 2, 0, 3, 9, 1, "NaN", 2, 0, 3, 9, 1, "NaN", 2, 0, 3, 9, 1, "NaN", 2, 0, 3, 9], + "axis_nan_ordered_y_float32_nan_suffix_later_outer_sorted0_input_x": [1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 5, "NaN", 3, 0, 5, "NaN", 3, 0, 5, "NaN", 3, 0, 5, "NaN", 3, 0, 5, "NaN", 3, 0, 5, "NaN", 3, 0, 5, "NaN", 3, 0, 5, "NaN", 3, 0, 5], + "compact_incomplete_first_chunk33": [7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, -3], + "metadata_scrambled_cycle65": [0, 37, 9, 46, 18, 55, 27, 64, 36, 8, 45, 17, 54, 26, 63, 35, 7, 44, 16, 53, 25, 62, 34, 6, 43, 15, 52, 24, 61, 33, 5, 42, 14, 51, 23, 60, 32, 4, 41, 13, 50, 22, 59, 31, 3, 40, 12, 49, 21, 58, 30, 2, 39, 11, 48, 20, 57, 29, 1, 38, 10, 47, 19, 56, 28], "ort_axis1_unsorted_f32_input_x": [1, 1, 0, 1, 2, 1, 0, 1, 1, 1, 0, 1, 2, 1, 0, 1], + "scalar_hash_bool_finite_mask7_flat_sorted0_input_x": [1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1], + "scalar_hash_float32_finite_mask0_flat_sorted0_input_x": [5, 0, 1, -3, 5, 0, 2, 5, 0, 1, -3, 5, 0, 2, 5, 0, 1, -3, 5, 0, 2, 5, 0, 1, -3, 5, 0, 2, 5, 0, 1, -3, 5], + "scalar_hash_float32_finite_mask2_axis_sorted1_output_inverse_indices": [4, 1, 2, 0, 4, 1, 3, 4, 1, 2, 0, 4, 1, 3, 4, 1, 2, 0, 4, 1, 3, 4, 1, 2, 0, 4, 1, 3, 4, 1, 2, 0, 4], + "scalar_hash_float32_finite_mask2_flat_sorted0_output_inverse_indices": [0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 0], + "scalar_hash_float32_later_nan_mask4_flat_sorted0_input_x": [5, "NaN", 1, "NaN", 3, -2, "NaN", 5, "NaN", 1, "NaN", 3, -2, "NaN", 5, "NaN", 1, "NaN", 3, -2, "NaN", 5, "NaN", 1, "NaN", 3, -2, "NaN", 5, "NaN", 1, "NaN", 3], + "scalar_hash_float32_later_nan_mask7_axis_sorted1_output_inverse_indices": [3, 3, 1, 1, 2, 0, 0, 3, 0, 1, 0, 2, 0, 0, 3, 0, 1, 0, 2, 0, 0, 3, 0, 1, 0, 2, 0, 0, 3, 0, 1, 0, 2], + "scalar_hash_float32_later_nan_mask7_flat_sorted0_output_inverse_indices": [0, 0, 1, 1, 2, 3, 3, 0, 3, 1, 3, 2, 3, 3, 0, 3, 1, 3, 2, 3, 3, 0, 3, 1, 3, 2, 3, 3, 0, 3, 1, 3, 2], + "scalar_hash_float32_leading_nan_mask7_axis_sorted0_input_x": ["NaN", 5, 1, -2, "NaN", 5, 1, -2, "NaN", 5, 1, -2, "NaN", 5, 1, -2, "NaN", 5, 1, -2, "NaN", 5, 1, -2, "NaN", 5, 1, -2, "NaN", 5, 1, -2, "NaN"], + "scalar_hash_hybrid_tile1_input_x": [7, 2, 7, 5, -1, 0, 9, 7, 2, 7, 5, -1, 0, 9, 7, 2, 7, 5, -1, 0, 9, 7, 2, 7, 5, -1, 0, 9, 7, 2, 7, 5, -1, 0, 9], + "scalar_hash_int16_finite_mask7_axis_sorted1_output_inverse_indices": [0, 4, 1, 2, 0, 3, 0, 4, 1, 2, 0, 3, 0, 4, 1, 2, 0, 3, 0, 4, 1, 2, 0, 3, 0, 4, 1, 2, 0, 3, 0, 4, 1], + "scalar_hash_int16_finite_mask7_flat_sorted0_input_x": [-32768, 32767, -1, 0, -32768, 7, -32768, 32767, -1, 0, -32768, 7, -32768, 32767, -1, 0, -32768, 7, -32768, 32767, -1, 0, -32768, 7, -32768, 32767, -1, 0, -32768, 7, -32768, 32767, -1], + "scalar_hash_int32_finite_mask7_flat_sorted0_input_x": [-1, -2147483648, 2147483647, 0, -1, 7, -1, -2147483648, 2147483647, 0, -1, 7, -1, -2147483648, 2147483647, 0, -1, 7, -1, -2147483648, 2147483647, 0, -1, 7, -1, -2147483648, 2147483647, 0, -1, 7, -1, -2147483648, 2147483647], + "scalar_hash_int32_finite_mask7_flat_sorted0_output_inverse_indices": [0, 1, 2, 3, 0, 4, 0, 1, 2, 3, 0, 4, 0, 1, 2, 3, 0, 4, 0, 1, 2, 3, 0, 4, 0, 1, 2, 3, 0, 4, 0, 1, 2], + "scalar_hash_int8_finite_mask7_flat_sorted0_input_x": [-128, 127, -1, 0, -128, 7, -128, 127, -1, 0, -128, 7, -128, 127, -1, 0, -128, 7, -128, 127, -1, 0, -128, 7, -128, 127, -1, 0, -128, 7, -128, 127, -1], + "scalar_hash_prefix_chunks_sparse_heads_n1023_sorted0_input_x": [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1], + "scalar_hash_prefix_chunks_sparse_heads_n1024_sorted0_input_x": [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1], + "scalar_hash_prefix_chunks_sparse_heads_n1025_sorted0_input_x": [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1], + "scalar_hash_scan_float32_n255_sorted0_input_x": [0, 37, 74, 111, 148, 185, 222, 5, 42, 79, 116, 153, 190, 227, 10, 47, 84, 121, 158, 195, 232, 15, 52, 89, 126, 163, 200, 237, 20, 57, 94, 131, 168, 205, 242, 25, 62, 99, 136, 173, 210, 247, 30, 67, 104, 141, 178, 215, 252, 35, 72, 109, 146, 183, 220, 3, 40, 77, 114, 151, 188, 225, 8, 45, 82, 119, 156, 193, 230, 13, 50, 87, 124, 161, 198, 235, 18, 55, 92, 129, 166, 203, 240, 23, 60, 97, 134, 171, 208, 245, 28, 65, 102, 139, 176, 213, 250, 33, 70, 107, 144, 181, 218, 1, 38, 75, 112, 149, 186, 223, 6, 43, 80, 117, 154, 191, 228, 11, 48, 85, 122, 159, 196, 233, 16, 53, 90, 127, 164, 201, 238, 21, 58, 95, 132, 169, 206, 243, 26, 63, 100, 137, 174, 211, 248, 31, 68, 105, 142, 179, 216, 253, 36, 73, 110, 147, 184, 221, 4, 41, 78, 115, 152, 189, 226, 9, 46, 83, 120, 157, 194, 231, 14, 51, 88, 125, 162, 199, 236, 19, 56, 93, 130, 167, 204, 241, 24, 61, 98, 135, 172, 209, 246, 29, 66, 103, 140, 177, 214, 251, 34, 71, 108, 145, 182, 219, 2, 39, 76, 113, 150, 187, 224, 7, 44, 81, 118, 155, 192, 229, 12, 49, 86, 123, 160, 197, 234, 17, 54, 91, 128, 165, 202, 239, 22, 59, 96, 133, 170, 207, 244, 27, 64, 101, 138, 175, 212, 249, 32, 69, 106, 143, 180, 217, 0], + "scalar_hash_scan_float32_n256_sorted0_input_x": [0, 37, 74, 111, 148, 185, 222, 4, 41, 78, 115, 152, 189, 226, 8, 45, 82, 119, 156, 193, 230, 12, 49, 86, 123, 160, 197, 234, 16, 53, 90, 127, 164, 201, 238, 20, 57, 94, 131, 168, 205, 242, 24, 61, 98, 135, 172, 209, 246, 28, 65, 102, 139, 176, 213, 250, 32, 69, 106, 143, 180, 217, 254, 36, 73, 110, 147, 184, 221, 3, 40, 77, 114, 151, 188, 225, 7, 44, 81, 118, 155, 192, 229, 11, 48, 85, 122, 159, 196, 233, 15, 52, 89, 126, 163, 200, 237, 19, 56, 93, 130, 167, 204, 241, 23, 60, 97, 134, 171, 208, 245, 27, 64, 101, 138, 175, 212, 249, 31, 68, 105, 142, 179, 216, 253, 35, 72, 109, 146, 183, 220, 2, 39, 76, 113, 150, 187, 224, 6, 43, 80, 117, 154, 191, 228, 10, 47, 84, 121, 158, 195, 232, 14, 51, 88, 125, 162, 199, 236, 18, 55, 92, 129, 166, 203, 240, 22, 59, 96, 133, 170, 207, 244, 26, 63, 100, 137, 174, 211, 248, 30, 67, 104, 141, 178, 215, 252, 34, 71, 108, 145, 182, 219, 1, 38, 75, 112, 149, 186, 223, 5, 42, 79, 116, 153, 190, 227, 9, 46, 83, 120, 157, 194, 231, 13, 50, 87, 124, 161, 198, 235, 17, 54, 91, 128, 165, 202, 239, 21, 58, 95, 132, 169, 206, 243, 25, 62, 99, 136, 173, 210, 247, 29, 66, 103, 140, 177, 214, 251, 33, 70, 107, 144, 181, 218, 0], + "scalar_hash_scan_float32_n257_sorted0_input_x": [0, 37, 74, 111, 148, 185, 222, 3, 40, 77, 114, 151, 188, 225, 6, 43, 80, 117, 154, 191, 228, 9, 46, 83, 120, 157, 194, 231, 12, 49, 86, 123, 160, 197, 234, 15, 52, 89, 126, 163, 200, 237, 18, 55, 92, 129, 166, 203, 240, 21, 58, 95, 132, 169, 206, 243, 24, 61, 98, 135, 172, 209, 246, 27, 64, 101, 138, 175, 212, 249, 30, 67, 104, 141, 178, 215, 252, 33, 70, 107, 144, 181, 218, 255, 36, 73, 110, 147, 184, 221, 2, 39, 76, 113, 150, 187, 224, 5, 42, 79, 116, 153, 190, 227, 8, 45, 82, 119, 156, 193, 230, 11, 48, 85, 122, 159, 196, 233, 14, 51, 88, 125, 162, 199, 236, 17, 54, 91, 128, 165, 202, 239, 20, 57, 94, 131, 168, 205, 242, 23, 60, 97, 134, 171, 208, 245, 26, 63, 100, 137, 174, 211, 248, 29, 66, 103, 140, 177, 214, 251, 32, 69, 106, 143, 180, 217, 254, 35, 72, 109, 146, 183, 220, 1, 38, 75, 112, 149, 186, 223, 4, 41, 78, 115, 152, 189, 226, 7, 44, 81, 118, 155, 192, 229, 10, 47, 84, 121, 158, 195, 232, 13, 50, 87, 124, 161, 198, 235, 16, 53, 90, 127, 164, 201, 238, 19, 56, 93, 130, 167, 204, 241, 22, 59, 96, 133, 170, 207, 244, 25, 62, 99, 136, 173, 210, 247, 28, 65, 102, 139, 176, 213, 250, 31, 68, 105, 142, 179, 216, 253, 34, 71, 108, 145, 182, 219, 0], + "scalar_hash_scan_float32_n31_sorted0_input_x": [0, 7, 14, 21, 28, 5, 12, 19, 26, 3, 10, 17, 24, 1, 8, 15, 22, 29, 6, 13, 20, 27, 4, 11, 18, 25, 2, 9, 16, 23, 0], + "scalar_hash_scan_float32_n32_sorted0_input_x": [0, 6, 12, 18, 24, 30, 5, 11, 17, 23, 29, 4, 10, 16, 22, 28, 3, 9, 15, 21, 27, 2, 8, 14, 20, 26, 1, 7, 13, 19, 25, 0], + "scalar_hash_scan_float32_n33_sorted0_input_x": [0, 5, 10, 15, 20, 25, 30, 3, 8, 13, 18, 23, 28, 1, 6, 11, 16, 21, 26, 31, 4, 9, 14, 19, 24, 29, 2, 7, 12, 17, 22, 27, 0], + "scalar_hash_uint32_finite_mask7_axis_sorted1_output_inverse_indices": [4, 0, 3, 1, 4, 2, 4, 0, 3, 1, 4, 2, 4, 0, 3, 1, 4, 2, 4, 0, 3, 1, 4, 2, 4, 0, 3, 1, 4, 2, 4, 0, 3], + "scalar_hash_uint32_finite_mask7_flat_sorted0_input_x": [4294967295, 0, 2147483648, 7, 4294967295, 2147483647, 4294967295, 0, 2147483648, 7, 4294967295, 2147483647, 4294967295, 0, 2147483648, 7, 4294967295, 2147483647, 4294967295, 0, 2147483648, 7, 4294967295, 2147483647, 4294967295, 0, 2147483648, 7, 4294967295, 2147483647, 4294967295, 0, 2147483648], + "scalar_hash_uint8_finite_mask7_flat_sorted0_input_x": [255, 0, 128, 7, 255, 127, 255, 0, 128, 7, 255, 127, 255, 0, 128, 7, 255, 127, 255, 0, 128, 7, 255, 127, 255, 0, 128, 7, 255, 127, 255, 0, 128], "serial_sorted_dense_duplicates_int32_input_x": [37, -5, 12, 99, -73, 0, 41, 8, -21, 64, 3, -90, 55, 17, -2, 76, 29, -48, 83, 6, -33, 92, 14, -67, 50, 22, -9, 70, 35, -58, 88, 1, -26, 95, 19, -81, 46, 27, -14, 61, 33, -44, 79, 10, -39, 53, 24, -86], - "axis0_f32_hash_sorted_duplicate_rows_input_x": [27.25, 46, -4.125, -24, 13.5, 27.5, -13.375, -32.125, 61.125, 25, -18.125, 21.625, 62.25, -35.75, -48.375, 47.125, -45, 13.25, 54.125, 37.875, 41.25, 4, -63.5, 50.75, -0.5, 12.125, -27.375, -7.75, -49.75, 20.25, 42.625, -59, 40.125, -40.25, -19.25, 6.25, 48.25, 28.625, 58.875, -61.25, -28.5, 20.5, -52, 15.75, 30.875, -56.5, -15.875, -0.75, -54.25, -31, 19.125, -42.5, -62.375, 44.875, -3, -42.75, -41.375, 6.5, -55.375, 2.875, -57.875, -46.125, -14.5, -6.375, -33.25, 35.625, -21.75, -8.875, -1.875, -36.875, 9.875, 55.25, -20.375, 5.125, 26.125, -25.125, 56.625, 63.625, 57.75, -49.5, -21.5, 11, -38, -60.125, -35.5, 14.625, -50.875, -47.25, -56.75, -14.75, 48.5, -28.75, -43.875, 60, 16.875, -29.875, -10, -34.375, 0.625, -22.875, 53, 49.625, 29.75, 34.25, -17, 39, 55.5, 18, 33.125, 43.75, -11.125, 32, 8.75, 23.875, 41.5, 36.75, 34.5, 7.625, -7.5, -53.125, 22.75, -5.25, -26.25, 1.75, 51.875, -39.125, 62.5, -12.25] + "single_class_axis1_outer2_inner3_mask0_input_x": [7, 2, 5, 7, 2, 5, 7, 2, 5, 7, 2, 5, 7, 2, 5, 11, 3, 2, 11, 3, 2, 11, 3, 2, 11, 3, 2, 11, 3, 2], + "flat_global_crossover_int32_n4097_u2049_sorted0_input_x": [2048, 2047, 2046, 2045, 2044, 2043, 2042, 2041, 2040, 2039, 2038, 2037, 2036, 2035, 2034, 2033, 2032, 2031, 2030, 2029, 2028, 2027, 2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973, 1972, 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1952, 1951, 1950, 1949, 1948, 1947, 1946, 1945, 1944, 1943, 1942, 1941, 1940, 1939, 1938, 1937, 1936, 1935, 1934, 1933, 1932, 1931, 1930, 1929, 1928, 1927, 1926, 1925, 1924, 1923, 1922, 1921, 1920, 1919, 1918, 1917, 1916, 1915, 1914, 1913, 1912, 1911, 1910, 1909, 1908, 1907, 1906, 1905, 1904, 1903, 1902, 1901, 1900, 1899, 1898, 1897, 1896, 1895, 1894, 1893, 1892, 1891, 1890, 1889, 1888, 1887, 1886, 1885, 1884, 1883, 1882, 1881, 1880, 1879, 1878, 1877, 1876, 1875, 1874, 1873, 1872, 1871, 1870, 1869, 1868, 1867, 1866, 1865, 1864, 1863, 1862, 1861, 1860, 1859, 1858, 1857, 1856, 1855, 1854, 1853, 1852, 1851, 1850, 1849, 1848, 1847, 1846, 1845, 1844, 1843, 1842, 1841, 1840, 1839, 1838, 1837, 1836, 1835, 1834, 1833, 1832, 1831, 1830, 1829, 1828, 1827, 1826, 1825, 1824, 1823, 1822, 1821, 1820, 1819, 1818, 1817, 1816, 1815, 1814, 1813, 1812, 1811, 1810, 1809, 1808, 1807, 1806, 1805, 1804, 1803, 1802, 1801, 1800, 1799, 1798, 1797, 1796, 1795, 1794, 1793, 1792, 1791, 1790, 1789, 1788, 1787, 1786, 1785, 1784, 1783, 1782, 1781, 1780, 1779, 1778, 1777, 1776, 1775, 1774, 1773, 1772, 1771, 1770, 1769, 1768, 1767, 1766, 1765, 1764, 1763, 1762, 1761, 1760, 1759, 1758, 1757, 1756, 1755, 1754, 1753, 1752, 1751, 1750, 1749, 1748, 1747, 1746, 1745, 1744, 1743, 1742, 1741, 1740, 1739, 1738, 1737, 1736, 1735, 1734, 1733, 1732, 1731, 1730, 1729, 1728, 1727, 1726, 1725, 1724, 1723, 1722, 1721, 1720, 1719, 1718, 1717, 1716, 1715, 1714, 1713, 1712, 1711, 1710, 1709, 1708, 1707, 1706, 1705, 1704, 1703, 1702, 1701, 1700, 1699, 1698, 1697, 1696, 1695, 1694, 1693, 1692, 1691, 1690, 1689, 1688, 1687, 1686, 1685, 1684, 1683, 1682, 1681, 1680, 1679, 1678, 1677, 1676, 1675, 1674, 1673, 1672, 1671, 1670, 1669, 1668, 1667, 1666, 1665, 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652, 1651, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1639, 1638, 1637, 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1619, 1618, 1617, 1616, 1615, 1614, 1613, 1612, 1611, 1610, 1609, 1608, 1607, 1606, 1605, 1604, 1603, 1602, 1601, 1600, 1599, 1598, 1597, 1596, 1595, 1594, 1593, 1592, 1591, 1590, 1589, 1588, 1587, 1586, 1585, 1584, 1583, 1582, 1581, 1580, 1579, 1578, 1577, 1576, 1575, 1574, 1573, 1572, 1571, 1570, 1569, 1568, 1567, 1566, 1565, 1564, 1563, 1562, 1561, 1560, 1559, 1558, 1557, 1556, 1555, 1554, 1553, 1552, 1551, 1550, 1549, 1548, 1547, 1546, 1545, 1544, 1543, 1542, 1541, 1540, 1539, 1538, 1537, 1536, 1535, 1534, 1533, 1532, 1531, 1530, 1529, 1528, 1527, 1526, 1525, 1524, 1523, 1522, 1521, 1520, 1519, 1518, 1517, 1516, 1515, 1514, 1513, 1512, 1511, 1510, 1509, 1508, 1507, 1506, 1505, 1504, 1503, 1502, 1501, 1500, 1499, 1498, 1497, 1496, 1495, 1494, 1493, 1492, 1491, 1490, 1489, 1488, 1487, 1486, 1485, 1484, 1483, 1482, 1481, 1480, 1479, 1478, 1477, 1476, 1475, 1474, 1473, 1472, 1471, 1470, 1469, 1468, 1467, 1466, 1465, 1464, 1463, 1462, 1461, 1460, 1459, 1458, 1457, 1456, 1455, 1454, 1453, 1452, 1451, 1450, 1449, 1448, 1447, 1446, 1445, 1444, 1443, 1442, 1441, 1440, 1439, 1438, 1437, 1436, 1435, 1434, 1433, 1432, 1431, 1430, 1429, 1428, 1427, 1426, 1425, 1424, 1423, 1422, 1421, 1420, 1419, 1418, 1417, 1416, 1415, 1414, 1413, 1412, 1411, 1410, 1409, 1408, 1407, 1406, 1405, 1404, 1403, 1402, 1401, 1400, 1399, 1398, 1397, 1396, 1395, 1394, 1393, 1392, 1391, 1390, 1389, 1388, 1387, 1386, 1385, 1384, 1383, 1382, 1381, 1380, 1379, 1378, 1377, 1376, 1375, 1374, 1373, 1372, 1371, 1370, 1369, 1368, 1367, 1366, 1365, 1364, 1363, 1362, 1361, 1360, 1359, 1358, 1357, 1356, 1355, 1354, 1353, 1352, 1351, 1350, 1349, 1348, 1347, 1346, 1345, 1344, 1343, 1342, 1341, 1340, 1339, 1338, 1337, 1336, 1335, 1334, 1333, 1332, 1331, 1330, 1329, 1328, 1327, 1326, 1325, 1324, 1323, 1322, 1321, 1320, 1319, 1318, 1317, 1316, 1315, 1314, 1313, 1312, 1311, 1310, 1309, 1308, 1307, 1306, 1305, 1304, 1303, 1302, 1301, 1300, 1299, 1298, 1297, 1296, 1295, 1294, 1293, 1292, 1291, 1290, 1289, 1288, 1287, 1286, 1285, 1284, 1283, 1282, 1281, 1280, 1279, 1278, 1277, 1276, 1275, 1274, 1273, 1272, 1271, 1270, 1269, 1268, 1267, 1266, 1265, 1264, 1263, 1262, 1261, 1260, 1259, 1258, 1257, 1256, 1255, 1254, 1253, 1252, 1251, 1250, 1249, 1248, 1247, 1246, 1245, 1244, 1243, 1242, 1241, 1240, 1239, 1238, 1237, 1236, 1235, 1234, 1233, 1232, 1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1218, 1217, 1216, 1215, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1207, 1206, 1205, 1204, 1203, 1202, 1201, 1200, 1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1175, 1174, 1173, 1172, 1171, 1170, 1169, 1168, 1167, 1166, 1165, 1164, 1163, 1162, 1161, 1160, 1159, 1158, 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1150, 1149, 1148, 1147, 1146, 1145, 1144, 1143, 1142, 1141, 1140, 1139, 1138, 1137, 1136, 1135, 1134, 1133, 1132, 1131, 1130, 1129, 1128, 1127, 1126, 1125, 1124, 1123, 1122, 1121, 1120, 1119, 1118, 1117, 1116, 1115, 1114, 1113, 1112, 1111, 1110, 1109, 1108, 1107, 1106, 1105, 1104, 1103, 1102, 1101, 1100, 1099, 1098, 1097, 1096, 1095, 1094, 1093, 1092, 1091, 1090, 1089, 1088, 1087, 1086, 1085, 1084, 1083, 1082, 1081, 1080, 1079, 1078, 1077, 1076, 1075, 1074, 1073, 1072, 1071, 1070, 1069, 1068, 1067, 1066, 1065, 1064, 1063, 1062, 1061, 1060, 1059, 1058, 1057, 1056, 1055, 1054, 1053, 1052, 1051, 1050, 1049, 1048, 1047, 1046, 1045, 1044, 1043, 1042, 1041, 1040, 1039, 1038, 1037, 1036, 1035, 1034, 1033, 1032, 1031, 1030, 1029, 1028, 1027, 1026, 1025, 1024, 1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1015, 1014, 1013, 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945, 944, 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911, 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0], + "output_span_int32_n257_sorted0_input_x": [257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1], + "output_span_int32_n1025_sorted0_input_x": [1025, 1024, 1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1015, 1014, 1013, 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945, 944, 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911, 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1], + "output_span_int32_n2048_sorted0_input_x": [2048, 2047, 2046, 2045, 2044, 2043, 2042, 2041, 2040, 2039, 2038, 2037, 2036, 2035, 2034, 2033, 2032, 2031, 2030, 2029, 2028, 2027, 2026, 2025, 2024, 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973, 1972, 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1952, 1951, 1950, 1949, 1948, 1947, 1946, 1945, 1944, 1943, 1942, 1941, 1940, 1939, 1938, 1937, 1936, 1935, 1934, 1933, 1932, 1931, 1930, 1929, 1928, 1927, 1926, 1925, 1924, 1923, 1922, 1921, 1920, 1919, 1918, 1917, 1916, 1915, 1914, 1913, 1912, 1911, 1910, 1909, 1908, 1907, 1906, 1905, 1904, 1903, 1902, 1901, 1900, 1899, 1898, 1897, 1896, 1895, 1894, 1893, 1892, 1891, 1890, 1889, 1888, 1887, 1886, 1885, 1884, 1883, 1882, 1881, 1880, 1879, 1878, 1877, 1876, 1875, 1874, 1873, 1872, 1871, 1870, 1869, 1868, 1867, 1866, 1865, 1864, 1863, 1862, 1861, 1860, 1859, 1858, 1857, 1856, 1855, 1854, 1853, 1852, 1851, 1850, 1849, 1848, 1847, 1846, 1845, 1844, 1843, 1842, 1841, 1840, 1839, 1838, 1837, 1836, 1835, 1834, 1833, 1832, 1831, 1830, 1829, 1828, 1827, 1826, 1825, 1824, 1823, 1822, 1821, 1820, 1819, 1818, 1817, 1816, 1815, 1814, 1813, 1812, 1811, 1810, 1809, 1808, 1807, 1806, 1805, 1804, 1803, 1802, 1801, 1800, 1799, 1798, 1797, 1796, 1795, 1794, 1793, 1792, 1791, 1790, 1789, 1788, 1787, 1786, 1785, 1784, 1783, 1782, 1781, 1780, 1779, 1778, 1777, 1776, 1775, 1774, 1773, 1772, 1771, 1770, 1769, 1768, 1767, 1766, 1765, 1764, 1763, 1762, 1761, 1760, 1759, 1758, 1757, 1756, 1755, 1754, 1753, 1752, 1751, 1750, 1749, 1748, 1747, 1746, 1745, 1744, 1743, 1742, 1741, 1740, 1739, 1738, 1737, 1736, 1735, 1734, 1733, 1732, 1731, 1730, 1729, 1728, 1727, 1726, 1725, 1724, 1723, 1722, 1721, 1720, 1719, 1718, 1717, 1716, 1715, 1714, 1713, 1712, 1711, 1710, 1709, 1708, 1707, 1706, 1705, 1704, 1703, 1702, 1701, 1700, 1699, 1698, 1697, 1696, 1695, 1694, 1693, 1692, 1691, 1690, 1689, 1688, 1687, 1686, 1685, 1684, 1683, 1682, 1681, 1680, 1679, 1678, 1677, 1676, 1675, 1674, 1673, 1672, 1671, 1670, 1669, 1668, 1667, 1666, 1665, 1664, 1663, 1662, 1661, 1660, 1659, 1658, 1657, 1656, 1655, 1654, 1653, 1652, 1651, 1650, 1649, 1648, 1647, 1646, 1645, 1644, 1643, 1642, 1641, 1640, 1639, 1638, 1637, 1636, 1635, 1634, 1633, 1632, 1631, 1630, 1629, 1628, 1627, 1626, 1625, 1624, 1623, 1622, 1621, 1620, 1619, 1618, 1617, 1616, 1615, 1614, 1613, 1612, 1611, 1610, 1609, 1608, 1607, 1606, 1605, 1604, 1603, 1602, 1601, 1600, 1599, 1598, 1597, 1596, 1595, 1594, 1593, 1592, 1591, 1590, 1589, 1588, 1587, 1586, 1585, 1584, 1583, 1582, 1581, 1580, 1579, 1578, 1577, 1576, 1575, 1574, 1573, 1572, 1571, 1570, 1569, 1568, 1567, 1566, 1565, 1564, 1563, 1562, 1561, 1560, 1559, 1558, 1557, 1556, 1555, 1554, 1553, 1552, 1551, 1550, 1549, 1548, 1547, 1546, 1545, 1544, 1543, 1542, 1541, 1540, 1539, 1538, 1537, 1536, 1535, 1534, 1533, 1532, 1531, 1530, 1529, 1528, 1527, 1526, 1525, 1524, 1523, 1522, 1521, 1520, 1519, 1518, 1517, 1516, 1515, 1514, 1513, 1512, 1511, 1510, 1509, 1508, 1507, 1506, 1505, 1504, 1503, 1502, 1501, 1500, 1499, 1498, 1497, 1496, 1495, 1494, 1493, 1492, 1491, 1490, 1489, 1488, 1487, 1486, 1485, 1484, 1483, 1482, 1481, 1480, 1479, 1478, 1477, 1476, 1475, 1474, 1473, 1472, 1471, 1470, 1469, 1468, 1467, 1466, 1465, 1464, 1463, 1462, 1461, 1460, 1459, 1458, 1457, 1456, 1455, 1454, 1453, 1452, 1451, 1450, 1449, 1448, 1447, 1446, 1445, 1444, 1443, 1442, 1441, 1440, 1439, 1438, 1437, 1436, 1435, 1434, 1433, 1432, 1431, 1430, 1429, 1428, 1427, 1426, 1425, 1424, 1423, 1422, 1421, 1420, 1419, 1418, 1417, 1416, 1415, 1414, 1413, 1412, 1411, 1410, 1409, 1408, 1407, 1406, 1405, 1404, 1403, 1402, 1401, 1400, 1399, 1398, 1397, 1396, 1395, 1394, 1393, 1392, 1391, 1390, 1389, 1388, 1387, 1386, 1385, 1384, 1383, 1382, 1381, 1380, 1379, 1378, 1377, 1376, 1375, 1374, 1373, 1372, 1371, 1370, 1369, 1368, 1367, 1366, 1365, 1364, 1363, 1362, 1361, 1360, 1359, 1358, 1357, 1356, 1355, 1354, 1353, 1352, 1351, 1350, 1349, 1348, 1347, 1346, 1345, 1344, 1343, 1342, 1341, 1340, 1339, 1338, 1337, 1336, 1335, 1334, 1333, 1332, 1331, 1330, 1329, 1328, 1327, 1326, 1325, 1324, 1323, 1322, 1321, 1320, 1319, 1318, 1317, 1316, 1315, 1314, 1313, 1312, 1311, 1310, 1309, 1308, 1307, 1306, 1305, 1304, 1303, 1302, 1301, 1300, 1299, 1298, 1297, 1296, 1295, 1294, 1293, 1292, 1291, 1290, 1289, 1288, 1287, 1286, 1285, 1284, 1283, 1282, 1281, 1280, 1279, 1278, 1277, 1276, 1275, 1274, 1273, 1272, 1271, 1270, 1269, 1268, 1267, 1266, 1265, 1264, 1263, 1262, 1261, 1260, 1259, 1258, 1257, 1256, 1255, 1254, 1253, 1252, 1251, 1250, 1249, 1248, 1247, 1246, 1245, 1244, 1243, 1242, 1241, 1240, 1239, 1238, 1237, 1236, 1235, 1234, 1233, 1232, 1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1223, 1222, 1221, 1220, 1219, 1218, 1217, 1216, 1215, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1207, 1206, 1205, 1204, 1203, 1202, 1201, 1200, 1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1175, 1174, 1173, 1172, 1171, 1170, 1169, 1168, 1167, 1166, 1165, 1164, 1163, 1162, 1161, 1160, 1159, 1158, 1157, 1156, 1155, 1154, 1153, 1152, 1151, 1150, 1149, 1148, 1147, 1146, 1145, 1144, 1143, 1142, 1141, 1140, 1139, 1138, 1137, 1136, 1135, 1134, 1133, 1132, 1131, 1130, 1129, 1128, 1127, 1126, 1125, 1124, 1123, 1122, 1121, 1120, 1119, 1118, 1117, 1116, 1115, 1114, 1113, 1112, 1111, 1110, 1109, 1108, 1107, 1106, 1105, 1104, 1103, 1102, 1101, 1100, 1099, 1098, 1097, 1096, 1095, 1094, 1093, 1092, 1091, 1090, 1089, 1088, 1087, 1086, 1085, 1084, 1083, 1082, 1081, 1080, 1079, 1078, 1077, 1076, 1075, 1074, 1073, 1072, 1071, 1070, 1069, 1068, 1067, 1066, 1065, 1064, 1063, 1062, 1061, 1060, 1059, 1058, 1057, 1056, 1055, 1054, 1053, 1052, 1051, 1050, 1049, 1048, 1047, 1046, 1045, 1044, 1043, 1042, 1041, 1040, 1039, 1038, 1037, 1036, 1035, 1034, 1033, 1032, 1031, 1030, 1029, 1028, 1027, 1026, 1025, 1024, 1023, 1022, 1021, 1020, 1019, 1018, 1017, 1016, 1015, 1014, 1013, 1012, 1011, 1010, 1009, 1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 984, 983, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945, 944, 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928, 927, 926, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911, 910, 909, 908, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 879, 878, 877, 876, 875, 874, 873, 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1] }, "cases": [ { @@ -440,7 +476,7 @@ "provenance": { "source": "onnxruntime/test/providers/cpu/tensor/unique_op_test.cc", "test": "Unique.Flatten_Unsorted", - "notes": "Large-input companion to the scalar subnormal case: the exact serial float comparator keeps finite subnormal values distinct from zero and emits three first-seen buckets." + "notes": "A 4,096-element cycle of zero and signed subnormal values verifies that the serial float comparator keeps finite subnormals distinct from zero and emits three first-seen buckets." }, "inputs": { "x": { "dtype": "float32", "shape": [4096], "data": { "kind": "cycle", "values": [0.0, 1e-40, 0.0, -1e-40] } } @@ -473,7 +509,7 @@ "name": "serial_unsorted_first_seen_f32_32k_subnormal", "attrs": { "sorted": 0 }, "provenance": { - "notes": "First-seen-order companion for the exact serial float path: comparator-order buckets are reordered by representative input index for sorted=0." + "notes": "A 32,768-element subnormal cycle verifies that the serial float path orders output buckets by representative input index when sorted is disabled." }, "inputs": { "x": { @@ -512,7 +548,7 @@ "name": "hash_sorted_int32_32k", "attrs": { "sorted": 1 }, "provenance": { - "notes": "32768 int32 elements cycling 48 distinct values: exercises the hash-set parallel dedup (numel >= 32768 floor) for the sorted flatten path. Bit-exact vs the CPU reference." + "notes": "A 32,768-element int32 input cycling 48 distinct values exercises sorted parallel hash deduplication with an exact integer result." }, "inputs": { "x": { @@ -618,7 +654,7 @@ "name": "axis0_f32_subnormal_collapse_sorted", "attrs": { "axis": 0, "sorted": 1 }, "provenance": { - "notes": "Sorted companion to the subnormal axis case. Raw-bit equality and total-order keys preserve -1e-40 < 0 < 1e-40 on FTZ GPUs; the pinned output is cross-checked with ORT." + "notes": "Raw-bit equality and total-order keys preserve -1e-40 < 0 < 1e-40 when arithmetic operations flush subnormals to zero." }, "inputs": { "x": { @@ -640,7 +676,7 @@ "name": "hash_int8_signed_negatives_32k", "attrs": { "sorted": 1 }, "provenance": { - "notes": "Exercises hash deduplication at 32768 elements with 12 signed int8 values, including -128, 127, and other negatives. The TypeScript reference is the oracle because ORT CPU does not implement Unique for int8." + "notes": "Hash deduplication over 32,768 int8 elements must sort 12 distinct values, including -128, 127, and other negatives. Expected values follow the operator's sorting rule." }, "inputs": { "x": { @@ -655,7 +691,7 @@ "name": "parallel_uint32_sentinel_first_seen_4k", "attrs": { "sorted": 0 }, "provenance": { - "notes": "Exercises grid-parallel deduplication below the hash threshold with 0xffffffff present in first-seen order. The TypeScript reference is the oracle because ORT CPU does not implement Unique for uint32." + "notes": "Parallel deduplication over 4,096 uint32 elements must preserve first-seen order, including 0xffffffff. Expected values follow the operator's ordering rule." }, "inputs": { "x": { @@ -691,7 +727,7 @@ { "name": "serial_f32_32k_signed_zero_single_bucket", "provenance": { - "notes": "32768 f32 elements containing both +0.0 and -0.0 plus finite values verify that exact serial equality canonicalizes signed zero into one bucket, matching ORT." + "notes": "32768 f32 elements containing both +0.0 and -0.0 plus finite values verify that exact serial equality canonicalizes signed zero into one bucket." }, "attrs": { "sorted": 1 }, "inputs": { @@ -793,7 +829,7 @@ { "name": "axis0_large_y_int32_unsorted_2100_distinct", "provenance": { - "notes": "axis=0 output axis dim 2100 > 2048 with sorted=0 selects axis_bounded_large's no-bitonic branch: parallel compaction gathers the first-occurrence slice indices in appearance order and scatters them from GLOBAL slots scratch, skipping the sort network. inner=1 so flat-unique == axis-unique (reference exact). Validates the unsorted large-axis path at multi-chunk scale against the single-lane unique-axis kernel." + "notes": "An axis length of 2,100 with sorted=0 requires multi-chunk parallel compaction without a sort network. Because each slice has one element, the distinct values must be emitted in first-occurrence order." }, "attrs": { "axis": 0, "sorted": 0 }, "inputs": { @@ -815,7 +851,7 @@ { "name": "axis_hash_split_scatter_unsorted_four_distinct", "provenance": { - "notes": "Unsorted companion for grid-parallel axis scatter: four distinct scalar rows are emitted in first-occurrence order into an exact four-row output." + "notes": "Four distinct scalar rows exercise grid-parallel axis scatter and must be emitted in first-occurrence order into an exact four-row output." }, "attrs": { "axis": 0, "sorted": 0 }, "inputs": { @@ -826,7 +862,7 @@ { "name": "axis_hash_int32_inner2_duplicate_rows_sorted", "provenance": { - "notes": "Routes the >=2048-axis exact hash dedup with vector-valued slices. Repeated rows must share one hash bucket, first-occurrence representatives must survive, and sorted output remains lexicographic over the complete two-element slice. Pinned values avoid relying on the flattened TypeScript Unique reference for axis semantics." + "notes": "An axis length of 2,048 exercises exact hash deduplication for two-element rows. Repeated rows must share a bucket, first-occurrence representatives must survive, and sorted output must be lexicographic over complete rows." }, "attrs": { "axis": 0, "sorted": 1 }, "inputs": { @@ -896,9 +932,9 @@ "outputs": { "y": { "dtype": "float32", "shape": [1025, 1], "tolerance": 0 } } }, { - "name": "axis0_rows65537_over_hash_ceiling_large_y", + "name": "axis0_rows65537_above_old_hash_ceiling", "provenance": { - "notes": "65537 rows exceed the axis hash-table ceiling, while exactly 2049 distinct rows keep the output above the local crossover; this selects the global axis fallback with an exact result." + "notes": "A 65,537-row input cycling 2,049 distinct values exercises large-axis hash deduplication and sorted output." }, "attrs": { "axis": 0, "sorted": 1 }, "inputs": { @@ -1548,7 +1584,7 @@ { "name": "axis0_f32_hash_unsorted_first_occurrence", "provenance": { - "notes": "Unsorted companion on the float axis hash route: the same 64 distinct rows must come back in first-occurrence order from the compaction scan alone." + "notes": "A 2,560-row float input cycling 64 distinct two-element rows must emit them in first-occurrence order through the hash compaction scan." }, "attrs": { "axis": 0, "sorted": 0 }, "inputs": { @@ -1616,6 +1652,5678 @@ } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 40], "tolerance": 0 } } + }, + { + "name": "parallel_metadata_indices_int32_sorted", + "provenance": { + "notes": "A scrambled 65-value cycle over 512 elements gives uneven counts and makes first-occurrence order differ from sorted order. This case requests first indices from the parallel integer-dedup route." + }, + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [512], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "indices": { "dtype": "uint32", "shape": [65] } + } + }, + { + "name": "parallel_metadata_inverse_int32_unsorted", + "provenance": { + "notes": "A scrambled 65-value cycle over 512 elements gives uneven counts and makes first-occurrence order differ from sorted order. This case requests the inverse map from the parallel integer-dedup route." + }, + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [512], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [512] } + } + }, + { + "name": "parallel_metadata_counts_int32_sorted", + "provenance": { + "notes": "A scrambled 65-value cycle over 512 elements gives uneven counts and makes first-occurrence order differ from sorted order. This case requests counts from the parallel integer-dedup route." + }, + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [512], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "counts": { "dtype": "uint32", "shape": [65] } + } + }, + { + "name": "parallel_metadata_indices_inverse_int32_unsorted", + "provenance": { + "notes": "A scrambled 65-value cycle over 512 elements gives uneven counts and makes first-occurrence order differ from sorted order. This case requests first indices and the inverse map from the parallel integer-dedup route." + }, + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [512], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "indices": { "dtype": "uint32", "shape": [65] }, + "inverse_indices": { "dtype": "uint32", "shape": [512] } + } + }, + { + "name": "parallel_metadata_indices_counts_int32_sorted", + "provenance": { + "notes": "A scrambled 65-value cycle over 512 elements gives uneven counts and makes first-occurrence order differ from sorted order. This case requests first indices and counts from the parallel integer-dedup route." + }, + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [512], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "indices": { "dtype": "uint32", "shape": [65] }, + "counts": { "dtype": "uint32", "shape": [65] } + } + }, + { + "name": "parallel_metadata_inverse_counts_int32_unsorted", + "provenance": { + "notes": "A scrambled 65-value cycle over 512 elements gives uneven counts and makes first-occurrence order differ from sorted order. This case requests the inverse map and counts from the parallel integer-dedup route." + }, + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [512], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [512] }, + "counts": { "dtype": "uint32", "shape": [65] } + } + }, + { + "name": "parallel_metadata_all_int32_sorted", + "provenance": { + "notes": "A scrambled 65-value cycle over 512 elements gives uneven counts and makes first-occurrence order differ from sorted order. This case requests first indices, the inverse map, and counts from the parallel integer-dedup route." + }, + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [512], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "indices": { "dtype": "uint32", "shape": [65] }, + "inverse_indices": { "dtype": "uint32", "shape": [512] }, + "counts": { "dtype": "uint32", "shape": [65] } + } + }, + { + "name": "hash_metadata_inverse_int32_unsorted", + "provenance": { + "notes": "The smallest hash-route input uses a scrambled 65-value cycle, giving uneven counts and distinct first-occurrence and sorted orders. This case requests the inverse map." + }, + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [32768], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [32768] } + } + }, + { + "name": "hash_metadata_counts_int32_sorted", + "provenance": { + "notes": "The smallest hash-route input uses a scrambled 65-value cycle, giving uneven counts and distinct first-occurrence and sorted orders. This case requests counts." + }, + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [32768], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "counts": { "dtype": "uint32", "shape": [65] } + } + }, + { + "name": "hash_metadata_all_int32_unsorted", + "provenance": { + "notes": "The smallest hash-route input uses a scrambled 65-value cycle, giving uneven counts and distinct first-occurrence and sorted orders. This case requests first indices, the inverse map, and counts." + }, + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [32768], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "indices": { "dtype": "uint32", "shape": [65] }, + "inverse_indices": { "dtype": "uint32", "shape": [32768] }, + "counts": { "dtype": "uint32", "shape": [65] } + } + }, + { + "name": "hash_metadata_indices_int32_sorted", + "provenance": { + "notes": "The smallest hash-route input uses a scrambled 65-value cycle, giving uneven counts and distinct first-occurrence and sorted orders. This case requests first indices." + }, + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [32768], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "indices": { "dtype": "uint32", "shape": [65] } + } + }, + { + "name": "hash_metadata_indices_inverse_int32_unsorted", + "provenance": { + "notes": "The smallest hash-route input uses a scrambled 65-value cycle, giving uneven counts and distinct first-occurrence and sorted orders. This case requests first indices and the inverse map." + }, + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [32768], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "indices": { "dtype": "uint32", "shape": [65] }, + "inverse_indices": { "dtype": "uint32", "shape": [32768] } + } + }, + { + "name": "hash_metadata_indices_counts_int32_sorted", + "provenance": { + "notes": "The smallest hash-route input uses a scrambled 65-value cycle, giving uneven counts and distinct first-occurrence and sorted orders. This case requests first indices and counts." + }, + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [32768], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "indices": { "dtype": "uint32", "shape": [65] }, + "counts": { "dtype": "uint32", "shape": [65] } + } + }, + { + "name": "hash_metadata_inverse_counts_int32_unsorted", + "provenance": { + "notes": "The smallest hash-route input uses a scrambled 65-value cycle, giving uneven counts and distinct first-occurrence and sorted orders. This case requests the inverse map and counts." + }, + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [32768], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/metadata_scrambled_cycle65" } } + } + }, + "outputs": { + "y": { "dtype": "int32", "shape": [65], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [32768] }, + "counts": { "dtype": "uint32", "shape": [65] } + } + }, + { + "name": "axis0_f32_rows70000_above_old_hash_ceiling", + "provenance": { + "notes": "A 70,000-row float input cycling eight one-element rows exercises large-axis hash deduplication and lexicographic sorted output." + }, + "attrs": { "axis": 0, "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [70000, 1], + "data": { "kind": "cycle", "values": [-4.0, -2.5, -1.0, 0.0, 1.5, 2.0, 3.25, 8.0] } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [8, 1], "tolerance": 0 } } + }, + { + "name": "flat_i32_70000_distinct_above_old_ceiling", + "provenance": { + "notes": "A flat 70,000-element input with every value distinct exercises large-output parallel deduplication and sorted emission." + }, + "attrs": { "sorted": 1 }, + "inputs": { + "x": { "dtype": "int32", "shape": [70000], "data": { "kind": "linspace", "start": -35000, "end": 34999 } } + }, + "outputs": { "y": { "dtype": "int32", "shape": [70000], "tolerance": 0 } } + }, + { + "name": "flat_i32_above_old_input_length_ceiling", + "provenance": { + "notes": "A 1,049,600-element class-label stream cycling six values exercises large-input parallel deduplication and first-occurrence output." + }, + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1049600], + "data": { "kind": "cycle", "values": [7, -3, 0, 11, -3, 42, 7, 5] } + } + }, + "outputs": { "y": { "dtype": "int32", "shape": [6], "tolerance": 0 } } + }, + { + "name": "hash_float32_sorted0_leading_nan_tail33", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { "kind": "cycle", "values": ["NaN", 5.0, 1.0, "NaN", "-Infinity"] } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [1], "tolerance": 0, "allowNaN": true } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float32_sorted0_later_nan_tail33", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { "kind": "cycle", "values": [5.0, "NaN", 1.0, 3.0, "NaN", 1.0] } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float32_sorted0_negative_zero_first_tail33", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { "kind": "cycle", "values": [-0.0, 0.0, 1e-40, -1e-40, "Infinity", "-Infinity"] } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [5], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float32_sorted0_positive_zero_first_tail33", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { "kind": "cycle", "values": [0.0, -0.0, -1e-40, 1e-40, "-Infinity", "Infinity"] } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [5], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float32_sorted0_infinity_duplicates_tail33", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { "kind": "cycle", "values": ["Infinity", "-Infinity", 2.0, -3.0, "Infinity"] } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [4], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float32_sorted1_leading_nan_tail33", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { "kind": "cycle", "values": ["NaN", 5.0, 1.0, "NaN", "-Infinity"] } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [1], "tolerance": 0, "allowNaN": true } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float32_sorted1_later_nan_tail33", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { "kind": "cycle", "values": [5.0, "NaN", 1.0, 3.0, "NaN", 1.0] } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float32_sorted1_negative_zero_first_tail33", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { "kind": "cycle", "values": [-0.0, 0.0, 1e-40, -1e-40, "Infinity", "-Infinity"] } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [5], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float32_sorted1_positive_zero_first_tail33", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { "kind": "cycle", "values": [0.0, -0.0, -1e-40, 1e-40, "-Infinity", "Infinity"] } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [5], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float32_sorted1_infinity_duplicates_tail33", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { "kind": "cycle", "values": ["Infinity", "-Infinity", 2.0, -3.0, "Infinity"] } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [4], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float16_sorted0_leading_nan_tail33", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { "kind": "cycle", "values": ["NaN", 5.0, 1.0, "NaN", "-Infinity"] } + } + }, + "outputs": { "y": { "dtype": "float16", "shape": [1], "tolerance": 0, "allowNaN": true } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float16_sorted0_later_nan_tail33", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { "kind": "cycle", "values": [5.0, "NaN", 1.0, 3.0, "NaN", 1.0] } + } + }, + "outputs": { "y": { "dtype": "float16", "shape": [3], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float16_sorted0_negative_zero_first_tail33", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "cycle", + "values": [-0.0, 0.0, 5.960464477539063e-8, -5.960464477539063e-8, "Infinity", "-Infinity"] + } + } + }, + "outputs": { "y": { "dtype": "float16", "shape": [5], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float16_sorted0_positive_zero_first_tail33", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "cycle", + "values": [0.0, -0.0, -5.960464477539063e-8, 5.960464477539063e-8, "-Infinity", "Infinity"] + } + } + }, + "outputs": { "y": { "dtype": "float16", "shape": [5], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float16_sorted0_infinity_duplicates_tail33", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { "kind": "cycle", "values": ["Infinity", "-Infinity", 2.0, -3.0, "Infinity"] } + } + }, + "outputs": { "y": { "dtype": "float16", "shape": [4], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float16_sorted1_leading_nan_tail33", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { "kind": "cycle", "values": ["NaN", 5.0, 1.0, "NaN", "-Infinity"] } + } + }, + "outputs": { "y": { "dtype": "float16", "shape": [1], "tolerance": 0, "allowNaN": true } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float16_sorted1_later_nan_tail33", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { "kind": "cycle", "values": [5.0, "NaN", 1.0, 3.0, "NaN", 1.0] } + } + }, + "outputs": { "y": { "dtype": "float16", "shape": [3], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float16_sorted1_negative_zero_first_tail33", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "cycle", + "values": [-0.0, 0.0, 5.960464477539063e-8, -5.960464477539063e-8, "Infinity", "-Infinity"] + } + } + }, + "outputs": { "y": { "dtype": "float16", "shape": [5], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float16_sorted1_positive_zero_first_tail33", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "cycle", + "values": [0.0, -0.0, -5.960464477539063e-8, 5.960464477539063e-8, "-Infinity", "Infinity"] + } + } + }, + "outputs": { "y": { "dtype": "float16", "shape": [5], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float16_sorted1_infinity_duplicates_tail33", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { "kind": "cycle", "values": ["Infinity", "-Infinity", 2.0, -3.0, "Infinity"] } + } + }, + "outputs": { "y": { "dtype": "float16", "shape": [4], "tolerance": 0 } }, + "tunables": { "HASH_MIN_INPUT": 32 }, + "provenance": { + "notes": "Small forced-hash fixture preserves ordered-map NaN semantics, IEEE subnormal identity, and the earliest signed-zero representative in the Y-only float path." + } + }, + { + "name": "hash_float32_sorted0_compact_first_chunk_incomplete_tail33", + "provenance": { + "notes": "With 32 invocations, the first compact chunk contains only the representative 7. The distinct final -3 must be consumed from the second chunk before sorting or preserving appearance order." + }, + "attrs": { "sorted": 0 }, + "tunables": { "WORKGROUP_SIZE": 32, "HASH_MIN_INPUT": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/compact_incomplete_first_chunk33" } } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [7.0, -3.0] } } + } + }, + { + "name": "hash_float32_sorted1_compact_first_chunk_incomplete_tail33", + "provenance": { + "notes": "With 32 invocations, the first compact chunk contains only the representative 7. The distinct final -3 must be consumed from the second chunk before sorting or preserving appearance order." + }, + "attrs": { "sorted": 1 }, + "tunables": { "WORKGROUP_SIZE": 32, "HASH_MIN_INPUT": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/compact_incomplete_first_chunk33" } } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [-3.0, 7.0] } } + } + }, + { + "name": "hash_float16_sorted0_compact_first_chunk_incomplete_tail33", + "provenance": { + "notes": "With 32 invocations, the first compact chunk contains only the representative 7. The distinct final -3 must be consumed from the second chunk before sorting or preserving appearance order." + }, + "attrs": { "sorted": 0 }, + "tunables": { "WORKGROUP_SIZE": 32, "HASH_MIN_INPUT": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/compact_incomplete_first_chunk33" } } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [7.0, -3.0] } } + } + }, + { + "name": "hash_float16_sorted1_compact_first_chunk_incomplete_tail33", + "provenance": { + "notes": "With 32 invocations, the first compact chunk contains only the representative 7. The distinct final -3 must be consumed from the second chunk before sorting or preserving appearance order." + }, + "attrs": { "sorted": 1 }, + "tunables": { "WORKGROUP_SIZE": 32, "HASH_MIN_INPUT": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/compact_incomplete_first_chunk33" } } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [-3.0, 7.0] } } + } + }, + { + "name": "hybrid_sort_i32_extremes_sentinel_duplicates", + "attrs": { "sorted": 1 }, + "tunables": { + "HASH_MIN_INPUT": 1, + "LOCAL_SORT_CROSSOVER": 1, + "HASH_SORT_MAX_CAPACITY": 1, + "SORT_WORKGROUP": 32, + "WORKGROUP_SIZE": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [8], + "data": { "kind": "values", "values": [-1, 2147483647, -2147483648, 9, 0, -1, 9, -2147483648] } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [5], + "data": { "kind": "values", "values": [-2147483648, -1, 0, 9, 2147483647] }, + "tolerance": 0 + } + }, + "provenance": { + "notes": "Low HASH_MIN_INPUT/LOCAL_SORT_CROSSOVER/HASH_SORT_MAX_CAPACITY tunables exercise the large-output integer hash family on a bounded input; GLOBAL_SORT_TILE chooses the documented shared-tile or hash fallback boundary. Exact integer outputs pin sentinel, padding, and first-occurrence behavior." + } + }, + { + "name": "hybrid_sort_u32_real_max_before_padding", + "attrs": { "sorted": 1 }, + "tunables": { + "HASH_MIN_INPUT": 1, + "LOCAL_SORT_CROSSOVER": 1, + "HASH_SORT_MAX_CAPACITY": 1, + "SORT_WORKGROUP": 32, + "WORKGROUP_SIZE": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "uint32", + "shape": [8], + "data": { "kind": "values", "values": [4294967295, 0, 2147483648, 4, 1, 4294967295, 0, 4] } + } + }, + "outputs": { + "y": { + "dtype": "uint32", + "shape": [5], + "data": { "kind": "values", "values": [0, 1, 4, 2147483648, 4294967295] }, + "tolerance": 0 + } + }, + "provenance": { + "notes": "Low HASH_MIN_INPUT/LOCAL_SORT_CROSSOVER/HASH_SORT_MAX_CAPACITY tunables exercise the large-output integer hash family on a bounded input; GLOBAL_SORT_TILE chooses the documented shared-tile or hash fallback boundary. Exact integer outputs pin sentinel, padding, and first-occurrence behavior." + } + }, + { + "name": "hybrid_sort_i32_underfilled_capacity_zero_tail", + "attrs": { "sorted": 1 }, + "tunables": { + "HASH_MIN_INPUT": 1, + "LOCAL_SORT_CROSSOVER": 1, + "HASH_SORT_MAX_CAPACITY": 1, + "SORT_WORKGROUP": 32, + "WORKGROUP_SIZE": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [12], + "data": { "kind": "values", "values": [-1, 2147483647, -2147483648, 9, 0, -1, 9, -2147483648, 9, 9, 0, -1] } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [7], + "data": { "kind": "values", "values": [-2147483648, -1, 0, 9, 2147483647, 0, 0] }, + "tolerance": 0 + } + }, + "provenance": { + "notes": "Low HASH_MIN_INPUT/LOCAL_SORT_CROSSOVER/HASH_SORT_MAX_CAPACITY tunables exercise the large-output integer hash family on a bounded input; GLOBAL_SORT_TILE chooses the documented shared-tile or hash fallback boundary. Exact integer outputs pin sentinel, padding, and first-occurrence behavior." + } + }, + { + "name": "hash_global_nonpower_tile_i32_extremes_sentinel_duplicates", + "attrs": { "sorted": 1 }, + "tunables": { + "HASH_MIN_INPUT": 1, + "LOCAL_SORT_CROSSOVER": 1, + "HASH_SORT_MAX_CAPACITY": 1, + "SORT_WORKGROUP": 32, + "WORKGROUP_SIZE": 32, + "GLOBAL_SORT_TILE": 3 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [8], + "data": { "kind": "values", "values": [-1, 2147483647, -2147483648, 9, 0, -1, 9, -2147483648] } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [5], + "data": { "kind": "values", "values": [-2147483648, -1, 0, 9, 2147483647] }, + "tolerance": 0 + } + }, + "provenance": { + "notes": "Low HASH_MIN_INPUT/LOCAL_SORT_CROSSOVER/HASH_SORT_MAX_CAPACITY tunables exercise the large-output integer hash family on a bounded input; GLOBAL_SORT_TILE chooses the documented shared-tile or hash fallback boundary. Exact integer outputs pin sentinel, padding, and first-occurrence behavior. Non-power-of-two tile3 rejects hybrid and pins sorted hash-only fallback." + } + }, + { + "name": "hash_global_nonpower_tile_u32_real_max_before_padding", + "attrs": { "sorted": 1 }, + "tunables": { + "HASH_MIN_INPUT": 1, + "LOCAL_SORT_CROSSOVER": 1, + "HASH_SORT_MAX_CAPACITY": 1, + "SORT_WORKGROUP": 32, + "WORKGROUP_SIZE": 32, + "GLOBAL_SORT_TILE": 3 + }, + "inputs": { + "x": { + "dtype": "uint32", + "shape": [8], + "data": { "kind": "values", "values": [4294967295, 0, 2147483648, 4, 1, 4294967295, 0, 4] } + } + }, + "outputs": { + "y": { + "dtype": "uint32", + "shape": [5], + "data": { "kind": "values", "values": [0, 1, 4, 2147483648, 4294967295] }, + "tolerance": 0 + } + }, + "provenance": { + "notes": "Low HASH_MIN_INPUT/LOCAL_SORT_CROSSOVER/HASH_SORT_MAX_CAPACITY tunables exercise the large-output integer hash family on a bounded input; GLOBAL_SORT_TILE chooses the documented shared-tile or hash fallback boundary. Exact integer outputs pin sentinel, padding, and first-occurrence behavior. Non-power-of-two tile3 rejects hybrid and pins sorted hash-only fallback." + } + }, + { + "name": "hash_global_unsorted_first_seen_sentinel_zero_tail", + "attrs": { "sorted": 0 }, + "tunables": { + "HASH_MIN_INPUT": 1, + "LOCAL_SORT_CROSSOVER": 1, + "HASH_SORT_MAX_CAPACITY": 1, + "SORT_WORKGROUP": 32, + "WORKGROUP_SIZE": 32 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [12], + "data": { "kind": "values", "values": [-1, 2147483647, -2147483648, 9, 0, -1, 9, -2147483648, 9, 9, 0, -1] } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [7], + "data": { "kind": "values", "values": [-1, 2147483647, -2147483648, 9, 0, 0, 0] }, + "tolerance": 0 + } + }, + "provenance": { + "notes": "Low HASH_MIN_INPUT/LOCAL_SORT_CROSSOVER/HASH_SORT_MAX_CAPACITY tunables exercise the large-output integer hash family on a bounded input; GLOBAL_SORT_TILE chooses the documented shared-tile or hash fallback boundary. Exact integer outputs pin sentinel, padding, and first-occurrence behavior. Unsorted output preserves appearance order, not numeric order, and zero-fills excess capacity." + } + }, + { + "name": "hybrid_sort_network_tile1", + "attrs": { "sorted": 1 }, + "tunables": { + "HASH_MIN_INPUT": 1, + "LOCAL_SORT_CROSSOVER": 1, + "HASH_SORT_MAX_CAPACITY": 1, + "SORT_WORKGROUP": 32, + "WORKGROUP_SIZE": 32, + "GLOBAL_SORT_TILE": 1 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [8], + "data": { "kind": "values", "values": [-1, 2147483647, -2147483648, 9, 0, -1, 9, -2147483648] } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [5], + "data": { "kind": "values", "values": [-2147483648, -1, 0, 9, 2147483647] }, + "tolerance": 0 + } + }, + "provenance": { + "notes": "Low HASH_MIN_INPUT/LOCAL_SORT_CROSSOVER/HASH_SORT_MAX_CAPACITY tunables exercise the large-output integer hash family on a bounded input; GLOBAL_SORT_TILE chooses the documented shared-tile or hash fallback boundary. Exact integer outputs pin sentinel, padding, and first-occurrence behavior. Tile1 emits no shared passes; tile2 finishes one pair locally per tile." + } + }, + { + "name": "hybrid_sort_network_tile2", + "attrs": { "sorted": 1 }, + "tunables": { + "HASH_MIN_INPUT": 1, + "LOCAL_SORT_CROSSOVER": 1, + "HASH_SORT_MAX_CAPACITY": 1, + "SORT_WORKGROUP": 32, + "WORKGROUP_SIZE": 32, + "GLOBAL_SORT_TILE": 2 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [8], + "data": { "kind": "values", "values": [-1, 2147483647, -2147483648, 9, 0, -1, 9, -2147483648] } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [5], + "data": { "kind": "values", "values": [-2147483648, -1, 0, 9, 2147483647] }, + "tolerance": 0 + } + }, + "provenance": { + "notes": "Low HASH_MIN_INPUT/LOCAL_SORT_CROSSOVER/HASH_SORT_MAX_CAPACITY tunables exercise the large-output integer hash family on a bounded input; GLOBAL_SORT_TILE chooses the documented shared-tile or hash fallback boundary. Exact integer outputs pin sentinel, padding, and first-occurrence behavior. Tile1 emits no shared passes; tile2 finishes one pair locally per tile." + } + }, + { + "name": "hybrid_sort_default_tile512_sorted513_signed_boundary", + "attrs": { "sorted": 1 }, + "tunables": { "HASH_MIN_INPUT": 32, "LOCAL_SORT_CROSSOVER": 32, "HASH_SORT_MAX_CAPACITY": 32 }, + "inputs": { "x": { "dtype": "int32", "shape": [513], "data": { "kind": "linspace", "start": 256, "end": -256 } } }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [513], + "tolerance": 0, + "data": { "kind": "linspace", "start": -256, "end": 256 } + } + }, + "provenance": { + "notes": "Lower input and collected-key crossover tunables admit the global integer family while retaining the default512-record shared tile and default256-lane WG.513 distinct descending signed values cross two512-record padded sort tiles and exercise the final real/padding boundary." + } + }, + { + "name": "axis_scalar_hash_float32_finite_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 7, 1], + "data": { "kind": "values", "values": [5.0, 1.0, 5.0, 3.0, -2.0, 1.0, 7.0] } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 5, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [7], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float32_finite_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 7, 1], + "data": { "kind": "values", "values": [5.0, 1.0, 5.0, 3.0, -2.0, 1.0, 7.0] } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 5, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [7], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float32_later_nan_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 8, 1], + "data": { "kind": "values", "values": [5.0, "NaN", 1.0, "NaN", 3.0, -2.0, "NaN", 5.0] } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 4, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [8], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float32_later_nan_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 8, 1], + "data": { "kind": "values", "values": [5.0, "NaN", 1.0, "NaN", 3.0, -2.0, "NaN", 5.0] } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 4, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [8], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float32_leading_nan_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 5, 1], + "data": { "kind": "values", "values": ["NaN", 5.0, 1.0, "NaN", -2.0] } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 1, 1], "tolerance": 0, "allowNaN": true }, + "inverse_indices": { "dtype": "uint32", "shape": [5], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float32_leading_nan_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 5, 1], + "data": { "kind": "values", "values": ["NaN", 5.0, 1.0, "NaN", -2.0] } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 1, 1], "tolerance": 0, "allowNaN": true }, + "inverse_indices": { "dtype": "uint32", "shape": [5], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float32_local_sort_below_crossover_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "provenance": { + "notes": "A slice count at or below LOCAL_SORT_CROSSOVER keeps the single-workgroup local-sort metadata route while the distinct slices still give every inverse index its own answer." + }, + "tunables": { "LOCAL_SORT_CROSSOVER": 6, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 7, 1], + "data": { "kind": "values", "values": [5.0, 1.0, 5.0, 3.0, -2.0, 1.0, 7.0] } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 5, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [7], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float32_zero_subnormal_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 9, 1], + "data": { + "kind": "values", + "values": [-0.0, 0.0, 1.401298464324817e-45, -1.401298464324817e-45, 1.401298464324817e-45, "Infinity", "-Infinity", 1.0, -1.0] + } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 7, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [9], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float32_zero_subnormal_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 9, 1], + "data": { + "kind": "values", + "values": [-0.0, 0.0, 1.401298464324817e-45, -1.401298464324817e-45, 1.401298464324817e-45, "Infinity", "-Infinity", 1.0, -1.0] + } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 7, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [9], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float32_zero_reverse_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 7, 1], + "data": { + "kind": "values", + "values": [0.0, -0.0, -1.401298464324817e-45, 1.401298464324817e-45, 1.0, -1.0, "NaN"] + } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 5, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [7], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float32_zero_reverse_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 7, 1], + "data": { + "kind": "values", + "values": [0.0, -0.0, -1.401298464324817e-45, 1.401298464324817e-45, 1.0, -1.0, "NaN"] + } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 5, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [7], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float16_finite_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 7, 1], + "data": { "kind": "values", "values": [5.0, 1.0, 5.0, 3.0, -2.0, 1.0, 7.0] } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [1, 5, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [7], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float16_finite_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 7, 1], + "data": { "kind": "values", "values": [5.0, 1.0, 5.0, 3.0, -2.0, 1.0, 7.0] } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [1, 5, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [7], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float16_later_nan_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 8, 1], + "data": { "kind": "values", "values": [5.0, "NaN", 1.0, "NaN", 3.0, -2.0, "NaN", 5.0] } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [1, 4, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [8], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float16_later_nan_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 8, 1], + "data": { "kind": "values", "values": [5.0, "NaN", 1.0, "NaN", 3.0, -2.0, "NaN", 5.0] } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [1, 4, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [8], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float16_leading_nan_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 5, 1], + "data": { "kind": "values", "values": ["NaN", 5.0, 1.0, "NaN", -2.0] } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [1, 1, 1], "tolerance": 0, "allowNaN": true }, + "inverse_indices": { "dtype": "uint32", "shape": [5], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float16_leading_nan_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 5, 1], + "data": { "kind": "values", "values": ["NaN", 5.0, 1.0, "NaN", -2.0] } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [1, 1, 1], "tolerance": 0, "allowNaN": true }, + "inverse_indices": { "dtype": "uint32", "shape": [5], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float16_local_sort_below_crossover_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "provenance": { + "notes": "A slice count at or below LOCAL_SORT_CROSSOVER keeps the single-workgroup local-sort metadata route while the distinct slices still give every inverse index its own answer." + }, + "tunables": { "LOCAL_SORT_CROSSOVER": 6, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 7, 1], + "data": { "kind": "values", "values": [5.0, 1.0, 5.0, 3.0, -2.0, 1.0, 7.0] } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [1, 5, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [7], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float16_zero_subnormal_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 9, 1], + "data": { + "kind": "values", + "values": [-0.0, 0.0, 5.960464477539063e-8, -5.960464477539063e-8, 5.960464477539063e-8, "Infinity", "-Infinity", 1.0, -1.0] + } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [1, 7, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [9], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float16_zero_subnormal_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 9, 1], + "data": { + "kind": "values", + "values": [-0.0, 0.0, 5.960464477539063e-8, -5.960464477539063e-8, 5.960464477539063e-8, "Infinity", "-Infinity", 1.0, -1.0] + } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [1, 7, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [9], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float16_zero_reverse_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 7, 1], + "data": { + "kind": "values", + "values": [0.0, -0.0, -5.960464477539063e-8, 5.960464477539063e-8, 1.0, -1.0, "NaN"] + } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [1, 5, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [7], "tolerance": 0 } + } + }, + { + "name": "axis_scalar_hash_float16_zero_reverse_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 7, 1], + "data": { + "kind": "values", + "values": [0.0, -0.0, -5.960464477539063e-8, 5.960464477539063e-8, 1.0, -1.0, "NaN"] + } + } + }, + "outputs": { + "y": { "dtype": "float16", "shape": [1, 5, 1], "tolerance": 0 }, + "inverse_indices": { "dtype": "uint32", "shape": [7], "tolerance": 0 } + } + }, + { + "name": "scalar_hash_float32_finite_mask0_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask0_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask1_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 6] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask1_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [3, 1, 2, 6, 0] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask2_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_flat_sorted0_output_inverse_indices" } + } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask2_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_axis_sorted1_output_inverse_indices" } + } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask3_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 6] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_flat_sorted0_output_inverse_indices" } + } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask3_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [3, 1, 2, 6, 0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_axis_sorted1_output_inverse_indices" } + } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask4_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [10, 9, 5, 5, 4] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask4_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 9, 5, 4, 10] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask5_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 6] } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [10, 9, 5, 5, 4] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask5_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [3, 1, 2, 6, 0] } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 9, 5, 4, 10] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask6_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_flat_sorted0_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [10, 9, 5, 5, 4] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask6_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_axis_sorted1_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 9, 5, 4, 10] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask7_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 6] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_flat_sorted0_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [10, 9, 5, 5, 4] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_finite_mask7_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [3, 1, 2, 6, 0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_axis_sorted1_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 9, 5, 4, 10] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask0_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask0_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask1_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 6] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask1_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [3, 1, 2, 6, 0] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask2_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_flat_sorted0_output_inverse_indices" } + } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask2_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_axis_sorted1_output_inverse_indices" } + } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask3_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 6] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_flat_sorted0_output_inverse_indices" } + } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask3_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [3, 1, 2, 6, 0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_axis_sorted1_output_inverse_indices" } + } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask4_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [10, 9, 5, 5, 4] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask4_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 9, 5, 4, 10] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask5_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 6] } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [10, 9, 5, 5, 4] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask5_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [3, 1, 2, 6, 0] } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 9, 5, 4, 10] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask6_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_flat_sorted0_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [10, 9, 5, 5, 4] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask6_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_axis_sorted1_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 9, 5, 4, 10] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask7_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, -0.0, 1.0, -3.0, 2.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 6] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_flat_sorted0_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [10, 9, 5, 5, 4] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_finite_mask7_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask0_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-3.0, -0.0, 1.0, 2.0, 5.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [3, 1, 2, 6, 0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_finite_mask2_axis_sorted1_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 9, 5, 4, 10] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_int32_finite_mask7_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int32_finite_mask7_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [-1, -2147483648, 2147483647, 0, 7] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 5] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int32_finite_mask7_flat_sorted0_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [11, 6, 6, 5, 5] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_int32_finite_mask7_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int32_finite_mask7_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-2147483648, -1, 0, 7, 2147483647] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [1, 0, 3, 5, 2] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": [1, 0, 4, 2, 1, 3, 1, 0, 4, 2, 1, 3, 1, 0, 4, 2, 1, 3, 1, 0, 4, 2, 1, 3, 1, 0, 4, 2, 1, 3, 1, 0, 4] + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [6, 11, 5, 5, 6] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_uint32_finite_mask7_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "uint32", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_uint32_finite_mask7_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [4294967295, 0, 2147483648, 7, 2147483647] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 5] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int32_finite_mask7_flat_sorted0_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [11, 6, 6, 5, 5] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_uint32_finite_mask7_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "uint32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_uint32_finite_mask7_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "uint32", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 7, 2147483647, 2147483648, 4294967295] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [1, 3, 5, 2, 0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_uint32_finite_mask7_axis_sorted1_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [6, 5, 5, 6, 11] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_int16_finite_mask7_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "int16", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int16_finite_mask7_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "int16", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [-32768, 32767, -1, 0, 7] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 5] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int32_finite_mask7_flat_sorted0_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [11, 6, 6, 5, 5] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_int16_finite_mask7_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "int16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int16_finite_mask7_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "int16", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-32768, -1, 0, 7, 32767] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 2, 3, 5, 1] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int16_finite_mask7_axis_sorted1_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [11, 6, 5, 5, 6] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_int8_finite_mask7_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "int8", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int8_finite_mask7_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "int8", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [-128, 127, -1, 0, 7] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 5] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int32_finite_mask7_flat_sorted0_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [11, 6, 6, 5, 5] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_int8_finite_mask7_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "int8", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int8_finite_mask7_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "int8", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-128, -1, 0, 7, 127] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 2, 3, 5, 1] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int16_finite_mask7_axis_sorted1_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [11, 6, 5, 5, 6] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_uint8_finite_mask7_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "uint8", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_uint8_finite_mask7_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "uint8", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [255, 0, 128, 7, 127] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 1, 2, 3, 5] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_int32_finite_mask7_flat_sorted0_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [11, 6, 6, 5, 5] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_uint8_finite_mask7_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "uint8", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_uint8_finite_mask7_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "uint8", + "shape": [1, 5, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 7, 127, 128, 255] } + }, + "indices": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [1, 3, 5, 2, 0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_uint32_finite_mask7_axis_sorted1_output_inverse_indices" } + } + }, + "counts": { + "dtype": "uint32", + "shape": [5], + "tolerance": 0, + "data": { "kind": "values", "values": [6, 5, 5, 6, 11] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_bool_finite_mask7_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "bool", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_bool_finite_mask7_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { "dtype": "bool", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [1, 0] } }, + "indices": { "dtype": "uint32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [0, 1] } }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0] + } + }, + "counts": { "dtype": "uint32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [22, 11] } } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_bool_finite_mask7_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "bool", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_bool_finite_mask7_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { "dtype": "bool", "shape": [1, 2, 1], "tolerance": 0, "data": { "kind": "values", "values": [0, 1] } }, + "indices": { "dtype": "uint32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [1, 0] } }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_bool_finite_mask7_flat_sorted0_input_x" } + } + }, + "counts": { "dtype": "uint32", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [11, 22] } } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_later_nan_mask4_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_later_nan_mask4_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, 1.0, 3.0, -2.0] } + }, + "counts": { + "dtype": "uint32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [6, 6, 5, 16] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_later_nan_mask4_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_later_nan_mask4_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 4, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-2.0, 1.0, 3.0, 5.0] } + }, + "counts": { + "dtype": "uint32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [16, 6, 5, 6] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_later_nan_mask7_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_later_nan_mask4_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, 1.0, 3.0, -2.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 2, 4, 5] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { + "$ref": "#/fixtureArrays/scalar_hash_float32_later_nan_mask7_flat_sorted0_output_inverse_indices" + } + } + }, + "counts": { + "dtype": "uint32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [6, 6, 5, 16] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_later_nan_mask7_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_later_nan_mask4_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 4, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-2.0, 1.0, 3.0, 5.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 2, 4, 0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { + "$ref": "#/fixtureArrays/scalar_hash_float32_later_nan_mask7_axis_sorted1_output_inverse_indices" + } + } + }, + "counts": { + "dtype": "uint32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [16, 6, 5, 6] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_leading_nan_mask5_axis_sorted0", + "attrs": { "sorted": 0, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_leading_nan_mask7_axis_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 1], + "tolerance": 0, + "data": { "kind": "values", "values": ["NaN"] }, + "allowNaN": true + }, + "indices": { "dtype": "uint32", "shape": [1], "tolerance": 0, "data": { "kind": "values", "values": [0] } }, + "counts": { "dtype": "uint32", "shape": [1], "tolerance": 0, "data": { "kind": "values", "values": [33] } } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float32_leading_nan_mask5_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_leading_nan_mask7_axis_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 1], + "tolerance": 0, + "data": { "kind": "values", "values": ["NaN"] }, + "allowNaN": true + }, + "indices": { "dtype": "uint32", "shape": [1], "tolerance": 0, "data": { "kind": "values", "values": [0] } }, + "counts": { "dtype": "uint32", "shape": [1], "tolerance": 0, "data": { "kind": "values", "values": [33] } } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_later_nan_mask4_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_later_nan_mask4_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, 1.0, 3.0, -2.0] } + }, + "counts": { + "dtype": "uint32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [6, 6, 5, 16] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_later_nan_mask4_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_later_nan_mask4_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 4, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-2.0, 1.0, 3.0, 5.0] } + }, + "counts": { + "dtype": "uint32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [16, 6, 5, 6] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_later_nan_mask7_flat_sorted0", + "attrs": { "sorted": 0 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_later_nan_mask4_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, 1.0, 3.0, -2.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [0, 2, 4, 5] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { + "$ref": "#/fixtureArrays/scalar_hash_float32_later_nan_mask7_flat_sorted0_output_inverse_indices" + } + } + }, + "counts": { + "dtype": "uint32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [6, 6, 5, 16] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_later_nan_mask7_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_later_nan_mask4_flat_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 4, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-2.0, 1.0, 3.0, 5.0] } + }, + "indices": { + "dtype": "uint32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 2, 4, 0] } + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [33], + "tolerance": 0, + "data": { + "kind": "values", + "values": { + "$ref": "#/fixtureArrays/scalar_hash_float32_later_nan_mask7_axis_sorted1_output_inverse_indices" + } + } + }, + "counts": { + "dtype": "uint32", + "shape": [4], + "tolerance": 0, + "data": { "kind": "values", "values": [16, 6, 5, 6] } + } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_leading_nan_mask5_axis_sorted0", + "attrs": { "sorted": 0, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_leading_nan_mask7_axis_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 1, 1], + "tolerance": 0, + "data": { "kind": "values", "values": ["NaN"] }, + "allowNaN": true + }, + "indices": { "dtype": "uint32", "shape": [1], "tolerance": 0, "data": { "kind": "values", "values": [0] } }, + "counts": { "dtype": "uint32", "shape": [1], "tolerance": 0, "data": { "kind": "values", "values": [33] } } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "scalar_hash_float16_leading_nan_mask5_axis_sorted1", + "attrs": { "sorted": 1, "axis": -2 }, + "tunables": { + "PARALLEL_SCAN_MIN_CHUNKS": 0, + "LOCAL_SORT_CROSSOVER": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4 + }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_float32_leading_nan_mask7_axis_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 1, 1], + "tolerance": 0, + "data": { "kind": "values", "values": ["NaN"] }, + "allowNaN": true + }, + "indices": { "dtype": "uint32", "shape": [1], "tolerance": 0, "data": { "kind": "values", "values": [0] } }, + "counts": { "dtype": "uint32", "shape": [1], "tolerance": 0, "data": { "kind": "values", "values": [33] } } + }, + "provenance": { + "notes": "Exact ordered-insertion expectations for all scalar output masks. Integer -1/max uint32 exercises EMPTY side storage; float signed zero retains its first representative. Leading NaN exercises the exact one-class contract." + } + }, + { + "name": "axis_nan_ordered_y_float32_nan_head_later_inner_sorted0", + "attrs": { "axis": 0, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33, 2], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_head_later_inner_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [3, 2], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, 0.0, 1.0, 0.0, 3.0, 0.0] } + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float32_nan_suffix_ignored_by_head_inner_sorted0", + "attrs": { "axis": 0, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33, 2], + "data": { + "kind": "values", + "values": { + "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_suffix_ignored_by_head_inner_sorted0_input_x" + } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [3, 2], + "tolerance": 0, + "data": { "kind": "values", "values": [1.0, "NaN", 2.0, 0.0, 3.0, 9.0] }, + "allowNaN": true + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float32_nan_suffix_later_outer_sorted0", + "attrs": { "axis": -1, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [2, 33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_suffix_later_outer_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [2, 3], + "tolerance": 0, + "data": { "kind": "values", "values": [1.0, 1.0, 0.0, 5.0, 3.0, 0.0] } + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float32_nan_leading_single_bucket_outer_sorted0", + "attrs": { "axis": -1, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [2, 33], + "data": { + "kind": "values", + "values": { + "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_leading_single_bucket_outer_sorted0_input_x" + } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [2, 1], + "tolerance": 0, + "data": { "kind": "values", "values": ["NaN", 3.0] }, + "allowNaN": true + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float32_nan_head_later_inner_sorted1", + "attrs": { "axis": 0, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33, 2], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_head_later_inner_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [3, 2], + "tolerance": 0, + "data": { "kind": "values", "values": [1.0, 0.0, 3.0, 0.0, 5.0, 0.0] } + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float32_nan_suffix_ignored_by_head_inner_sorted1", + "attrs": { "axis": 0, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [33, 2], + "data": { + "kind": "values", + "values": { + "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_suffix_ignored_by_head_inner_sorted0_input_x" + } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [3, 2], + "tolerance": 0, + "data": { "kind": "values", "values": [1.0, "NaN", 2.0, 0.0, 3.0, 9.0] }, + "allowNaN": true + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float32_nan_suffix_later_outer_sorted1", + "attrs": { "axis": -1, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [2, 33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_suffix_later_outer_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [2, 3], + "tolerance": 0, + "data": { "kind": "values", "values": [0.0, 1.0, 1.0, 0.0, 3.0, 5.0] } + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float32_nan_leading_single_bucket_outer_sorted1", + "attrs": { "axis": -1, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [2, 33], + "data": { + "kind": "values", + "values": { + "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_leading_single_bucket_outer_sorted0_input_x" + } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [2, 1], + "tolerance": 0, + "data": { "kind": "values", "values": ["NaN", 3.0] }, + "allowNaN": true + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float16_nan_head_later_inner_sorted0", + "attrs": { "axis": 0, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33, 2], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_head_later_inner_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [3, 2], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, 0.0, 1.0, 0.0, 3.0, 0.0] } + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float16_nan_suffix_ignored_by_head_inner_sorted0", + "attrs": { "axis": 0, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33, 2], + "data": { + "kind": "values", + "values": { + "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_suffix_ignored_by_head_inner_sorted0_input_x" + } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [3, 2], + "tolerance": 0, + "data": { "kind": "values", "values": [1.0, "NaN", 2.0, 0.0, 3.0, 9.0] }, + "allowNaN": true + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float16_nan_suffix_later_outer_sorted0", + "attrs": { "axis": -1, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [2, 33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_suffix_later_outer_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [2, 3], + "tolerance": 0, + "data": { "kind": "values", "values": [1.0, 1.0, 0.0, 5.0, 3.0, 0.0] } + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float16_nan_leading_single_bucket_outer_sorted0", + "attrs": { "axis": -1, "sorted": 0 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [2, 33], + "data": { + "kind": "values", + "values": { + "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_leading_single_bucket_outer_sorted0_input_x" + } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [2, 1], + "tolerance": 0, + "data": { "kind": "values", "values": ["NaN", 3.0] }, + "allowNaN": true + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float16_nan_head_later_inner_sorted1", + "attrs": { "axis": 0, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33, 2], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_head_later_inner_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [3, 2], + "tolerance": 0, + "data": { "kind": "values", "values": [1.0, 0.0, 3.0, 0.0, 5.0, 0.0] } + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float16_nan_suffix_ignored_by_head_inner_sorted1", + "attrs": { "axis": 0, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [33, 2], + "data": { + "kind": "values", + "values": { + "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_suffix_ignored_by_head_inner_sorted0_input_x" + } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [3, 2], + "tolerance": 0, + "data": { "kind": "values", "values": [1.0, "NaN", 2.0, 0.0, 3.0, 9.0] }, + "allowNaN": true + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float16_nan_suffix_later_outer_sorted1", + "attrs": { "axis": -1, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [2, 33], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_suffix_later_outer_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [2, 3], + "tolerance": 0, + "data": { "kind": "values", "values": [0.0, 1.0, 1.0, 0.0, 3.0, 5.0] } + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "axis_nan_ordered_y_float16_nan_leading_single_bucket_outer_sorted1", + "attrs": { "axis": -1, "sorted": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { + "dtype": "float16", + "shape": [2, 33], + "data": { + "kind": "values", + "values": { + "$ref": "#/fixtureArrays/axis_nan_ordered_y_float32_nan_leading_single_bucket_outer_sorted0_input_x" + } + } + } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [2, 1], + "tolerance": 0, + "data": { "kind": "values", "values": ["NaN", 3.0] }, + "allowNaN": true + } + }, + "provenance": { + "notes": "Y-only multi-element axis ordered-map reference with NaN at the deciding coordinate, after an earlier decisive coordinate, or in the initial representative. Outer/inner layouts preserve the same lexicographic slice values." + } + }, + { + "name": "scalar_hash_scan_float32_n31_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 1, 31, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_scan_float32_n31_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 30, 1], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0.0, 7.0, 14.0, 21.0, 28.0, 5.0, 12.0, 19.0, 26.0, 3.0, 10.0, 17.0, 24.0, 1.0, 8.0, 15.0, 22.0, 29.0, 6.0, 13.0, 20.0, 27.0, 4.0, 11.0, 18.0, 25.0, 2.0, 9.0, 16.0, 23.0] + } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_scan_float32_n31_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 1, 31, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_scan_float32_n31_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 30, 1], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0] + } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_scan_float32_n32_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 1, 32, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_scan_float32_n32_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 31, 1], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0.0, 6.0, 12.0, 18.0, 24.0, 30.0, 5.0, 11.0, 17.0, 23.0, 29.0, 4.0, 10.0, 16.0, 22.0, 28.0, 3.0, 9.0, 15.0, 21.0, 27.0, 2.0, 8.0, 14.0, 20.0, 26.0, 1.0, 7.0, 13.0, 19.0, 25.0] + } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_scan_float32_n32_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 1, 32, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_scan_float32_n32_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 31, 1], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0] + } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_scan_float32_n33_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_scan_float32_n33_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 32, 1], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0.0, 5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 3.0, 8.0, 13.0, 18.0, 23.0, 28.0, 1.0, 6.0, 11.0, 16.0, 21.0, 26.0, 31.0, 4.0, 9.0, 14.0, 19.0, 24.0, 29.0, 2.0, 7.0, 12.0, 17.0, 22.0, 27.0] + } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_scan_float32_n33_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 1, 33, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_scan_float32_n33_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 32, 1], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0] + } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_scan_float32_n255_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 256, + "SORT_WORKGROUP": 256, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 1, 255, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_scan_float32_n255_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 254, 1], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0.0, 37.0, 74.0, 111.0, 148.0, 185.0, 222.0, 5.0, 42.0, 79.0, 116.0, 153.0, 190.0, 227.0, 10.0, 47.0, 84.0, 121.0, 158.0, 195.0, 232.0, 15.0, 52.0, 89.0, 126.0, 163.0, 200.0, 237.0, 20.0, 57.0, 94.0, 131.0, 168.0, 205.0, 242.0, 25.0, 62.0, 99.0, 136.0, 173.0, 210.0, 247.0, 30.0, 67.0, 104.0, 141.0, 178.0, 215.0, 252.0, 35.0, 72.0, 109.0, 146.0, 183.0, 220.0, 3.0, 40.0, 77.0, 114.0, 151.0, 188.0, 225.0, 8.0, 45.0, 82.0, 119.0, 156.0, 193.0, 230.0, 13.0, 50.0, 87.0, 124.0, 161.0, 198.0, 235.0, 18.0, 55.0, 92.0, 129.0, 166.0, 203.0, 240.0, 23.0, 60.0, 97.0, 134.0, 171.0, 208.0, 245.0, 28.0, 65.0, 102.0, 139.0, 176.0, 213.0, 250.0, 33.0, 70.0, 107.0, 144.0, 181.0, 218.0, 1.0, 38.0, 75.0, 112.0, 149.0, 186.0, 223.0, 6.0, 43.0, 80.0, 117.0, 154.0, 191.0, 228.0, 11.0, 48.0, 85.0, 122.0, 159.0, 196.0, 233.0, 16.0, 53.0, 90.0, 127.0, 164.0, 201.0, 238.0, 21.0, 58.0, 95.0, 132.0, 169.0, 206.0, 243.0, 26.0, 63.0, 100.0, 137.0, 174.0, 211.0, 248.0, 31.0, 68.0, 105.0, 142.0, 179.0, 216.0, 253.0, 36.0, 73.0, 110.0, 147.0, 184.0, 221.0, 4.0, 41.0, 78.0, 115.0, 152.0, 189.0, 226.0, 9.0, 46.0, 83.0, 120.0, 157.0, 194.0, 231.0, 14.0, 51.0, 88.0, 125.0, 162.0, 199.0, 236.0, 19.0, 56.0, 93.0, 130.0, 167.0, 204.0, 241.0, 24.0, 61.0, 98.0, 135.0, 172.0, 209.0, 246.0, 29.0, 66.0, 103.0, 140.0, 177.0, 214.0, 251.0, 34.0, 71.0, 108.0, 145.0, 182.0, 219.0, 2.0, 39.0, 76.0, 113.0, 150.0, 187.0, 224.0, 7.0, 44.0, 81.0, 118.0, 155.0, 192.0, 229.0, 12.0, 49.0, 86.0, 123.0, 160.0, 197.0, 234.0, 17.0, 54.0, 91.0, 128.0, 165.0, 202.0, 239.0, 22.0, 59.0, 96.0, 133.0, 170.0, 207.0, 244.0, 27.0, 64.0, 101.0, 138.0, 175.0, 212.0, 249.0, 32.0, 69.0, 106.0, 143.0, 180.0, 217.0] + } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_scan_float32_n255_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 256, + "SORT_WORKGROUP": 256, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 1, 255, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_scan_float32_n255_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 254, 1], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0, 58.0, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.0, 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, 100.0, 101.0, 102.0, 103.0, 104.0, 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0, 112.0, 113.0, 114.0, 115.0, 116.0, 117.0, 118.0, 119.0, 120.0, 121.0, 122.0, 123.0, 124.0, 125.0, 126.0, 127.0, 128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0, 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0, 152.0, 153.0, 154.0, 155.0, 156.0, 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0, 195.0, 196.0, 197.0, 198.0, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 207.0, 208.0, 209.0, 210.0, 211.0, 212.0, 213.0, 214.0, 215.0, 216.0, 217.0, 218.0, 219.0, 220.0, 221.0, 222.0, 223.0, 224.0, 225.0, 226.0, 227.0, 228.0, 229.0, 230.0, 231.0, 232.0, 233.0, 234.0, 235.0, 236.0, 237.0, 238.0, 239.0, 240.0, 241.0, 242.0, 243.0, 244.0, 245.0, 246.0, 247.0, 248.0, 249.0, 250.0, 251.0, 252.0, 253.0] + } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_scan_float32_n256_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 256, + "SORT_WORKGROUP": 256, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 1, 256, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_scan_float32_n256_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 255, 1], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0.0, 37.0, 74.0, 111.0, 148.0, 185.0, 222.0, 4.0, 41.0, 78.0, 115.0, 152.0, 189.0, 226.0, 8.0, 45.0, 82.0, 119.0, 156.0, 193.0, 230.0, 12.0, 49.0, 86.0, 123.0, 160.0, 197.0, 234.0, 16.0, 53.0, 90.0, 127.0, 164.0, 201.0, 238.0, 20.0, 57.0, 94.0, 131.0, 168.0, 205.0, 242.0, 24.0, 61.0, 98.0, 135.0, 172.0, 209.0, 246.0, 28.0, 65.0, 102.0, 139.0, 176.0, 213.0, 250.0, 32.0, 69.0, 106.0, 143.0, 180.0, 217.0, 254.0, 36.0, 73.0, 110.0, 147.0, 184.0, 221.0, 3.0, 40.0, 77.0, 114.0, 151.0, 188.0, 225.0, 7.0, 44.0, 81.0, 118.0, 155.0, 192.0, 229.0, 11.0, 48.0, 85.0, 122.0, 159.0, 196.0, 233.0, 15.0, 52.0, 89.0, 126.0, 163.0, 200.0, 237.0, 19.0, 56.0, 93.0, 130.0, 167.0, 204.0, 241.0, 23.0, 60.0, 97.0, 134.0, 171.0, 208.0, 245.0, 27.0, 64.0, 101.0, 138.0, 175.0, 212.0, 249.0, 31.0, 68.0, 105.0, 142.0, 179.0, 216.0, 253.0, 35.0, 72.0, 109.0, 146.0, 183.0, 220.0, 2.0, 39.0, 76.0, 113.0, 150.0, 187.0, 224.0, 6.0, 43.0, 80.0, 117.0, 154.0, 191.0, 228.0, 10.0, 47.0, 84.0, 121.0, 158.0, 195.0, 232.0, 14.0, 51.0, 88.0, 125.0, 162.0, 199.0, 236.0, 18.0, 55.0, 92.0, 129.0, 166.0, 203.0, 240.0, 22.0, 59.0, 96.0, 133.0, 170.0, 207.0, 244.0, 26.0, 63.0, 100.0, 137.0, 174.0, 211.0, 248.0, 30.0, 67.0, 104.0, 141.0, 178.0, 215.0, 252.0, 34.0, 71.0, 108.0, 145.0, 182.0, 219.0, 1.0, 38.0, 75.0, 112.0, 149.0, 186.0, 223.0, 5.0, 42.0, 79.0, 116.0, 153.0, 190.0, 227.0, 9.0, 46.0, 83.0, 120.0, 157.0, 194.0, 231.0, 13.0, 50.0, 87.0, 124.0, 161.0, 198.0, 235.0, 17.0, 54.0, 91.0, 128.0, 165.0, 202.0, 239.0, 21.0, 58.0, 95.0, 132.0, 169.0, 206.0, 243.0, 25.0, 62.0, 99.0, 136.0, 173.0, 210.0, 247.0, 29.0, 66.0, 103.0, 140.0, 177.0, 214.0, 251.0, 33.0, 70.0, 107.0, 144.0, 181.0, 218.0] + } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_scan_float32_n256_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 256, + "SORT_WORKGROUP": 256, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 1, 256, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_scan_float32_n256_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 255, 1], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0, 58.0, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.0, 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, 100.0, 101.0, 102.0, 103.0, 104.0, 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0, 112.0, 113.0, 114.0, 115.0, 116.0, 117.0, 118.0, 119.0, 120.0, 121.0, 122.0, 123.0, 124.0, 125.0, 126.0, 127.0, 128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0, 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0, 152.0, 153.0, 154.0, 155.0, 156.0, 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0, 195.0, 196.0, 197.0, 198.0, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 207.0, 208.0, 209.0, 210.0, 211.0, 212.0, 213.0, 214.0, 215.0, 216.0, 217.0, 218.0, 219.0, 220.0, 221.0, 222.0, 223.0, 224.0, 225.0, 226.0, 227.0, 228.0, 229.0, 230.0, 231.0, 232.0, 233.0, 234.0, 235.0, 236.0, 237.0, 238.0, 239.0, 240.0, 241.0, 242.0, 243.0, 244.0, 245.0, 246.0, 247.0, 248.0, 249.0, 250.0, 251.0, 252.0, 253.0, 254.0] + } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_scan_float32_n257_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 256, + "SORT_WORKGROUP": 256, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 1, 257, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_scan_float32_n257_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 256, 1], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0.0, 37.0, 74.0, 111.0, 148.0, 185.0, 222.0, 3.0, 40.0, 77.0, 114.0, 151.0, 188.0, 225.0, 6.0, 43.0, 80.0, 117.0, 154.0, 191.0, 228.0, 9.0, 46.0, 83.0, 120.0, 157.0, 194.0, 231.0, 12.0, 49.0, 86.0, 123.0, 160.0, 197.0, 234.0, 15.0, 52.0, 89.0, 126.0, 163.0, 200.0, 237.0, 18.0, 55.0, 92.0, 129.0, 166.0, 203.0, 240.0, 21.0, 58.0, 95.0, 132.0, 169.0, 206.0, 243.0, 24.0, 61.0, 98.0, 135.0, 172.0, 209.0, 246.0, 27.0, 64.0, 101.0, 138.0, 175.0, 212.0, 249.0, 30.0, 67.0, 104.0, 141.0, 178.0, 215.0, 252.0, 33.0, 70.0, 107.0, 144.0, 181.0, 218.0, 255.0, 36.0, 73.0, 110.0, 147.0, 184.0, 221.0, 2.0, 39.0, 76.0, 113.0, 150.0, 187.0, 224.0, 5.0, 42.0, 79.0, 116.0, 153.0, 190.0, 227.0, 8.0, 45.0, 82.0, 119.0, 156.0, 193.0, 230.0, 11.0, 48.0, 85.0, 122.0, 159.0, 196.0, 233.0, 14.0, 51.0, 88.0, 125.0, 162.0, 199.0, 236.0, 17.0, 54.0, 91.0, 128.0, 165.0, 202.0, 239.0, 20.0, 57.0, 94.0, 131.0, 168.0, 205.0, 242.0, 23.0, 60.0, 97.0, 134.0, 171.0, 208.0, 245.0, 26.0, 63.0, 100.0, 137.0, 174.0, 211.0, 248.0, 29.0, 66.0, 103.0, 140.0, 177.0, 214.0, 251.0, 32.0, 69.0, 106.0, 143.0, 180.0, 217.0, 254.0, 35.0, 72.0, 109.0, 146.0, 183.0, 220.0, 1.0, 38.0, 75.0, 112.0, 149.0, 186.0, 223.0, 4.0, 41.0, 78.0, 115.0, 152.0, 189.0, 226.0, 7.0, 44.0, 81.0, 118.0, 155.0, 192.0, 229.0, 10.0, 47.0, 84.0, 121.0, 158.0, 195.0, 232.0, 13.0, 50.0, 87.0, 124.0, 161.0, 198.0, 235.0, 16.0, 53.0, 90.0, 127.0, 164.0, 201.0, 238.0, 19.0, 56.0, 93.0, 130.0, 167.0, 204.0, 241.0, 22.0, 59.0, 96.0, 133.0, 170.0, 207.0, 244.0, 25.0, 62.0, 99.0, 136.0, 173.0, 210.0, 247.0, 28.0, 65.0, 102.0, 139.0, 176.0, 213.0, 250.0, 31.0, 68.0, 105.0, 142.0, 179.0, 216.0, 253.0, 34.0, 71.0, 108.0, 145.0, 182.0, 219.0] + } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_scan_float32_n257_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 256, + "SORT_WORKGROUP": 256, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 1, 257, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_scan_float32_n257_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 1, 256, 1], + "tolerance": 0, + "data": { + "kind": "values", + "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0, 58.0, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.0, 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, 100.0, 101.0, 102.0, 103.0, 104.0, 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0, 112.0, 113.0, 114.0, 115.0, 116.0, 117.0, 118.0, 119.0, 120.0, 121.0, 122.0, 123.0, 124.0, 125.0, 126.0, 127.0, 128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0, 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0, 152.0, 153.0, 154.0, 155.0, 156.0, 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0, 195.0, 196.0, 197.0, 198.0, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 207.0, 208.0, 209.0, 210.0, 211.0, 212.0, 213.0, 214.0, 215.0, 216.0, 217.0, 218.0, 219.0, 220.0, 221.0, 222.0, 223.0, 224.0, 225.0, 226.0, 227.0, 228.0, 229.0, 230.0, 231.0, 232.0, 233.0, 234.0, 235.0, 236.0, 237.0, 238.0, 239.0, 240.0, 241.0, 242.0, 243.0, 244.0, 245.0, 246.0, 247.0, 248.0, 249.0, 250.0, 251.0, 252.0, 253.0, 254.0, 255.0] + } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_prefix_chunks_sparse_heads_n1023_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1, 1, 1023, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_prefix_chunks_sparse_heads_n1023_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [1, 1, 4, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 3, 7, 1] } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_prefix_chunks_sparse_heads_n1023_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1, 1, 1023, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_prefix_chunks_sparse_heads_n1023_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [1, 1, 4, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [1, 3, 5, 7] } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_prefix_chunks_sparse_heads_n1024_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1, 1, 1024, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_prefix_chunks_sparse_heads_n1024_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [1, 1, 4, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 3, 7, 1] } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_prefix_chunks_sparse_heads_n1024_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1, 1, 1024, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_prefix_chunks_sparse_heads_n1024_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [1, 1, 4, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [1, 3, 5, 7] } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_prefix_chunks_sparse_heads_n1025_sorted0", + "attrs": { "axis": -2, "sorted": 0 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1, 1, 1025, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_prefix_chunks_sparse_heads_n1025_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [1, 1, 4, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [5, 3, 7, 1] } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_prefix_chunks_sparse_heads_n1025_sorted1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 512, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1, 1, 1025, 1], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/scalar_hash_prefix_chunks_sparse_heads_n1025_sorted0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [1, 1, 4, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [1, 3, 5, 7] } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_hybrid_tile1", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 1, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1, 1, 35, 1], + "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/scalar_hash_hybrid_tile1_input_x" } } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [1, 1, 6, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-1, 0, 2, 5, 7, 9] } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_hybrid_tile2", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 2, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1, 1, 35, 1], + "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/scalar_hash_hybrid_tile1_input_x" } } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [1, 1, 6, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-1, 0, 2, 5, 7, 9] } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_hybrid_tile4", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 4, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1, 1, 35, 1], + "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/scalar_hash_hybrid_tile1_input_x" } } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [1, 1, 6, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-1, 0, 2, 5, 7, 9] } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_hybrid_tile32", + "attrs": { "axis": -2, "sorted": 1 }, + "tunables": { + "LOCAL_SORT_CROSSOVER": 1, + "HASH_MIN_INPUT": 1, + "WORKGROUP_SIZE": 32, + "SORT_WORKGROUP": 32, + "GLOBAL_SORT_TILE": 32, + "PARALLEL_SCAN_MIN_CHUNKS": 0 + }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1, 1, 35, 1], + "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/scalar_hash_hybrid_tile1_input_x" } } + } + }, + "outputs": { + "y": { + "dtype": "int32", + "shape": [1, 1, 6, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [-1, 0, 2, 5, 7, 9] } + } + }, + "provenance": { + "notes": "Round4 scratch boundary matrix: exact scalar-axis shape proof, first-occurrence semantics, scan tails, and sort padding. Small crossover forces the scalable family without a large oracle workload." + } + }, + { + "name": "scalar_hash_y_float32_axis_scalar_later_nan_sorted0", + "attrs": { "sorted": 0, "axis": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "HASH_MIN_INPUT": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { "dtype": "float32", "shape": [1, 3, 1], "data": { "kind": "values", "values": [5.0, "NaN", 1.0] } } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 2, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, 1.0] } + } + }, + "provenance": { + "notes": "Minimal ordered-map later-NaN Y-only witness. A NaN creates no new bucket; scalar axis and flattening have identical value semantics. Forced small crossover reaches existing hash families." + } + }, + { + "name": "scalar_hash_y_float32_axis_scalar_later_nan_sorted1", + "attrs": { "sorted": 1, "axis": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "HASH_MIN_INPUT": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { "dtype": "float32", "shape": [1, 3, 1], "data": { "kind": "values", "values": [5.0, "NaN", 1.0] } } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [1, 2, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [1.0, 5.0] } + } + }, + "provenance": { + "notes": "Minimal ordered-map later-NaN Y-only witness. A NaN creates no new bucket; scalar axis and flattening have identical value semantics. Forced small crossover reaches existing hash families." + } + }, + { + "name": "scalar_hash_y_float16_axis_scalar_later_nan_sorted0", + "attrs": { "sorted": 0, "axis": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "HASH_MIN_INPUT": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { "dtype": "float16", "shape": [1, 3, 1], "data": { "kind": "values", "values": [5.0, "NaN", 1.0] } } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 2, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [5.0, 1.0] } + } + }, + "provenance": { + "notes": "Minimal ordered-map later-NaN Y-only witness. A NaN creates no new bucket; scalar axis and flattening have identical value semantics. Forced small crossover reaches existing hash families." + } + }, + { + "name": "scalar_hash_y_float16_axis_scalar_later_nan_sorted1", + "attrs": { "sorted": 1, "axis": 1 }, + "tunables": { "LOCAL_SORT_CROSSOVER": 1, "HASH_MIN_INPUT": 1, "WORKGROUP_SIZE": 32, "SORT_WORKGROUP": 32 }, + "inputs": { + "x": { "dtype": "float16", "shape": [1, 3, 1], "data": { "kind": "values", "values": [5.0, "NaN", 1.0] } } + }, + "outputs": { + "y": { + "dtype": "float16", + "shape": [1, 2, 1], + "tolerance": 0, + "data": { "kind": "values", "values": [1.0, 5.0] } + } + }, + "provenance": { + "notes": "Minimal ordered-map later-NaN Y-only witness. A NaN creates no new bucket; scalar axis and flattening have identical value semantics. Forced small crossover reaches existing hash families." + } + }, + { + "name": "single_class_axis1_outer2_inner3_mask0", + "attrs": { "axis": 1, "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [2, 5, 3], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/single_class_axis1_outer2_inner3_mask0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [2, 1, 3], + "data": { "kind": "values", "values": [7.0, 2.0, 5.0, 11.0, 3.0, 2.0] }, + "tolerance": 0 + } + }, + "provenance": { + "notes": "The required one-class output extent proves every full axis slice belongs to its first representative; nonuniform coordinates check outer/inner copy indexing." + } + }, + { + "name": "single_class_axis1_outer2_inner3_mask1", + "attrs": { "axis": 1, "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [2, 5, 3], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/single_class_axis1_outer2_inner3_mask0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [2, 1, 3], + "data": { "kind": "values", "values": [7.0, 2.0, 5.0, 11.0, 3.0, 2.0] }, + "tolerance": 0 + }, + "indices": { "dtype": "uint32", "shape": [1], "data": { "kind": "values", "values": [0] }, "tolerance": 0 } + }, + "provenance": { + "notes": "The required one-class output extent proves every full axis slice belongs to its first representative; nonuniform coordinates check outer/inner copy indexing." + } + }, + { + "name": "single_class_axis1_outer2_inner3_mask2", + "attrs": { "axis": 1, "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [2, 1, 3], + "data": { "kind": "values", "values": [7.0, 2.0, 5.0, 11.0, 3.0, 2.0] } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [2, 1, 3], + "data": { "kind": "values", "values": [7.0, 2.0, 5.0, 11.0, 3.0, 2.0] }, + "tolerance": 0 + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [1], + "data": { "kind": "values", "values": [0] }, + "tolerance": 0 + } + }, + "provenance": { + "notes": "The required one-class output extent proves every full axis slice belongs to its first representative; nonuniform coordinates check outer/inner copy indexing." + } + }, + { + "name": "single_class_axis1_outer2_inner3_mask3", + "attrs": { "axis": 1, "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [2, 1, 3], + "data": { "kind": "values", "values": [7.0, 2.0, 5.0, 11.0, 3.0, 2.0] } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [2, 1, 3], + "data": { "kind": "values", "values": [7.0, 2.0, 5.0, 11.0, 3.0, 2.0] }, + "tolerance": 0 + }, + "indices": { "dtype": "uint32", "shape": [1], "data": { "kind": "values", "values": [0] }, "tolerance": 0 }, + "inverse_indices": { + "dtype": "uint32", + "shape": [1], + "data": { "kind": "values", "values": [0] }, + "tolerance": 0 + } + }, + "provenance": { + "notes": "The required one-class output extent proves every full axis slice belongs to its first representative; nonuniform coordinates check outer/inner copy indexing." + } + }, + { + "name": "single_class_axis1_outer2_inner3_mask4", + "attrs": { "axis": 1, "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [2, 5, 3], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/single_class_axis1_outer2_inner3_mask0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [2, 1, 3], + "data": { "kind": "values", "values": [7.0, 2.0, 5.0, 11.0, 3.0, 2.0] }, + "tolerance": 0 + }, + "counts": { "dtype": "uint32", "shape": [1], "data": { "kind": "values", "values": [5] }, "tolerance": 0 } + }, + "provenance": { + "notes": "The required one-class output extent proves every full axis slice belongs to its first representative; nonuniform coordinates check outer/inner copy indexing." + } + }, + { + "name": "single_class_axis1_outer2_inner3_mask5", + "attrs": { "axis": 1, "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [2, 5, 3], + "data": { + "kind": "values", + "values": { "$ref": "#/fixtureArrays/single_class_axis1_outer2_inner3_mask0_input_x" } + } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [2, 1, 3], + "data": { "kind": "values", "values": [7.0, 2.0, 5.0, 11.0, 3.0, 2.0] }, + "tolerance": 0 + }, + "indices": { "dtype": "uint32", "shape": [1], "data": { "kind": "values", "values": [0] }, "tolerance": 0 }, + "counts": { "dtype": "uint32", "shape": [1], "data": { "kind": "values", "values": [5] }, "tolerance": 0 } + }, + "provenance": { + "notes": "The required one-class output extent proves every full axis slice belongs to its first representative; nonuniform coordinates check outer/inner copy indexing." + } + }, + { + "name": "single_class_axis1_outer2_inner3_mask6", + "attrs": { "axis": 1, "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [2, 1, 3], + "data": { "kind": "values", "values": [7.0, 2.0, 5.0, 11.0, 3.0, 2.0] } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [2, 1, 3], + "data": { "kind": "values", "values": [7.0, 2.0, 5.0, 11.0, 3.0, 2.0] }, + "tolerance": 0 + }, + "inverse_indices": { + "dtype": "uint32", + "shape": [1], + "data": { "kind": "values", "values": [0] }, + "tolerance": 0 + }, + "counts": { "dtype": "uint32", "shape": [1], "data": { "kind": "values", "values": [1] }, "tolerance": 0 } + }, + "provenance": { + "notes": "The required one-class output extent proves every full axis slice belongs to its first representative; nonuniform coordinates check outer/inner copy indexing." + } + }, + { + "name": "single_class_axis1_outer2_inner3_mask7", + "attrs": { "axis": 1, "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [2, 1, 3], + "data": { "kind": "values", "values": [7.0, 2.0, 5.0, 11.0, 3.0, 2.0] } + } + }, + "outputs": { + "y": { + "dtype": "float32", + "shape": [2, 1, 3], + "data": { "kind": "values", "values": [7.0, 2.0, 5.0, 11.0, 3.0, 2.0] }, + "tolerance": 0 + }, + "indices": { "dtype": "uint32", "shape": [1], "data": { "kind": "values", "values": [0] }, "tolerance": 0 }, + "inverse_indices": { + "dtype": "uint32", + "shape": [1], + "data": { "kind": "values", "values": [0] }, + "tolerance": 0 + }, + "counts": { "dtype": "uint32", "shape": [1], "data": { "kind": "values", "values": [1] }, "tolerance": 0 } + }, + "provenance": { + "notes": "The required one-class output extent proves every full axis slice belongs to its first representative; nonuniform coordinates check outer/inner copy indexing." + } + }, + { + "name": "scalar_f32_metadata_mask7_sorted0_n16385_u13", + "attrs": { "axis": 1, "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 16385, 1], + "data": { "kind": "cycle", "values": [5.0, 2.0, 7.0, 1.0, 3.0, 11.0, 0.0, 4.0, 6.0, 8.0, 9.0, 10.0, 12.0] } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 13, 1] }, + "indices": { "dtype": "uint32", "shape": [13] }, + "inverse_indices": { "dtype": "uint32", "shape": [16385] }, + "counts": { "dtype": "uint32", "shape": [13] } + }, + "provenance": { + "notes": "Natural full-size sibling confirms the default resource-derived parallel selection and all metadata outputs without overriding the crossover." + } + }, + { + "name": "scalar_f32_metadata_mask7_sorted1_n16385_u13", + "attrs": { "axis": 1, "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1, 16385, 1], + "data": { "kind": "cycle", "values": [5.0, 2.0, 7.0, 1.0, 3.0, 11.0, 0.0, 4.0, 6.0, 8.0, 9.0, 10.0, 12.0] } + } + }, + "outputs": { + "y": { "dtype": "float32", "shape": [1, 13, 1] }, + "indices": { "dtype": "uint32", "shape": [13] }, + "inverse_indices": { "dtype": "uint32", "shape": [16385] }, + "counts": { "dtype": "uint32", "shape": [13] } + }, + "provenance": { + "notes": "Natural full-size sibling confirms the default resource-derived parallel selection and all metadata outputs without overriding the crossover." + } + }, + { + "name": "single_class_f32_n65537_mask7", + "inputs": { "x": { "dtype": "float32", "shape": [65537], "data": { "kind": "constant", "value": 3.0 } } }, + "outputs": { + "y": { "dtype": "float32", "shape": [1] }, + "indices": { "dtype": "uint32", "shape": [1] }, + "inverse_indices": { "dtype": "uint32", "shape": [65537] }, + "counts": { "dtype": "uint32", "shape": [1] } + }, + "provenance": { + "notes": "Natural full-size sibling confirms the default resource-derived parallel selection and all metadata outputs without overriding the crossover." + } + }, + { + "name": "flat_global_crossover_i32_n2049_u2049_sorted0", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [2049], + "data": { + "kind": "cycle", + "values": { "$ref": "#/fixtureArrays/flat_global_crossover_int32_n4097_u2049_sorted0_input_x" } + } + } + }, + "outputs": { "y": { "dtype": "int32", "shape": [2049], "tolerance": 0 } }, + "provenance": { + "notes": "Natural flat large-output crossover: first-seen or sorted integer representatives without tuning overrides. The new hash route replaces quadratic duplicate detection." + } + }, + { + "name": "flat_global_crossover_i32_n2049_u2049_sorted1", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [2049], + "data": { + "kind": "cycle", + "values": { "$ref": "#/fixtureArrays/flat_global_crossover_int32_n4097_u2049_sorted0_input_x" } + } + } + }, + "outputs": { "y": { "dtype": "int32", "shape": [2049], "tolerance": 0 } }, + "provenance": { + "notes": "Natural flat large-output crossover: first-seen or sorted integer representatives without tuning overrides. The new hash route replaces quadratic duplicate detection." + } + }, + { + "name": "flat_global_crossover_int32_n4097_u2049_sorted0", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [4097], + "data": { + "kind": "cycle", + "values": { "$ref": "#/fixtureArrays/flat_global_crossover_int32_n4097_u2049_sorted0_input_x" } + } + } + }, + "outputs": { "y": { "dtype": "int32", "shape": [2049], "tolerance": 0 } }, + "provenance": { + "notes": "Natural flat large-output crossover: first-seen or sorted integer representatives without tuning overrides. The new hash route replaces quadratic duplicate detection." + } + }, + { + "name": "flat_global_crossover_int32_n4097_u2049_sorted1", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [4097], + "data": { + "kind": "cycle", + "values": { "$ref": "#/fixtureArrays/flat_global_crossover_int32_n4097_u2049_sorted0_input_x" } + } + } + }, + "outputs": { "y": { "dtype": "int32", "shape": [2049], "tolerance": 0 } }, + "provenance": { + "notes": "Natural flat large-output crossover: first-seen or sorted integer representatives without tuning overrides. The new hash route replaces quadratic duplicate detection." + } + }, + { + "name": "output_span_int32_n257_sorted0", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [257], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/output_span_int32_n257_sorted0_input_x" } } + } + }, + "outputs": { "y": { "dtype": "int32", "shape": [257], "tolerance": 0 } }, + "provenance": { + "notes": "Natural distinct-output boundary across effective sort workgroup widths. Descending first occurrence separates sorted from unsorted behavior; hashing avoids the quadratic or serial fallback without tuning overrides." + } + }, + { + "name": "output_span_int32_n257_sorted1", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [257], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/output_span_int32_n257_sorted0_input_x" } } + } + }, + "outputs": { "y": { "dtype": "int32", "shape": [257], "tolerance": 0 } }, + "provenance": { + "notes": "Natural distinct-output boundary across effective sort workgroup widths. Descending first occurrence separates sorted from unsorted behavior; hashing avoids the quadratic or serial fallback without tuning overrides." + } + }, + { + "name": "output_span_float32_n257_sorted0", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [257], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/output_span_int32_n257_sorted0_input_x" } } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [257], "tolerance": 0 } }, + "provenance": { + "notes": "Natural distinct-output boundary across effective sort workgroup widths. Descending first occurrence separates sorted from unsorted behavior; hashing avoids the quadratic or serial fallback without tuning overrides." + } + }, + { + "name": "output_span_float32_n257_sorted1", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [257], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/output_span_int32_n257_sorted0_input_x" } } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [257], "tolerance": 0 } }, + "provenance": { + "notes": "Natural distinct-output boundary across effective sort workgroup widths. Descending first occurrence separates sorted from unsorted behavior; hashing avoids the quadratic or serial fallback without tuning overrides." + } + }, + { + "name": "output_span_int32_n1025_sorted0", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1025], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/output_span_int32_n1025_sorted0_input_x" } } + } + }, + "outputs": { "y": { "dtype": "int32", "shape": [1025], "tolerance": 0 } }, + "provenance": { + "notes": "Natural distinct-output boundary across effective sort workgroup widths. Descending first occurrence separates sorted from unsorted behavior; hashing avoids the quadratic or serial fallback without tuning overrides." + } + }, + { + "name": "output_span_int32_n1025_sorted1", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [1025], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/output_span_int32_n1025_sorted0_input_x" } } + } + }, + "outputs": { "y": { "dtype": "int32", "shape": [1025], "tolerance": 0 } }, + "provenance": { + "notes": "Natural distinct-output boundary across effective sort workgroup widths. Descending first occurrence separates sorted from unsorted behavior; hashing avoids the quadratic or serial fallback without tuning overrides." + } + }, + { + "name": "output_span_float32_n1025_sorted0", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1025], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/output_span_int32_n1025_sorted0_input_x" } } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [1025], "tolerance": 0 } }, + "provenance": { + "notes": "Natural distinct-output boundary across effective sort workgroup widths. Descending first occurrence separates sorted from unsorted behavior; hashing avoids the quadratic or serial fallback without tuning overrides." + } + }, + { + "name": "output_span_float32_n1025_sorted1", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "float32", + "shape": [1025], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/output_span_int32_n1025_sorted0_input_x" } } + } + }, + "outputs": { "y": { "dtype": "float32", "shape": [1025], "tolerance": 0 } }, + "provenance": { + "notes": "Natural distinct-output boundary across effective sort workgroup widths. Descending first occurrence separates sorted from unsorted behavior; hashing avoids the quadratic or serial fallback without tuning overrides." + } + }, + { + "name": "output_span_int32_n2048_sorted0", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [2048], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/output_span_int32_n2048_sorted0_input_x" } } + } + }, + "outputs": { "y": { "dtype": "int32", "shape": [2048], "tolerance": 0 } }, + "provenance": { + "notes": "Natural distinct-output boundary across effective sort workgroup widths. Descending first occurrence separates sorted from unsorted behavior; hashing avoids the quadratic or serial fallback without tuning overrides." + } + }, + { + "name": "output_span_int32_n2048_sorted1", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { + "dtype": "int32", + "shape": [2048], + "data": { "kind": "cycle", "values": { "$ref": "#/fixtureArrays/output_span_int32_n2048_sorted0_input_x" } } + } + }, + "outputs": { "y": { "dtype": "int32", "shape": [2048], "tolerance": 0 } }, + "provenance": { + "notes": "Natural distinct-output boundary across effective sort workgroup widths. Descending first occurrence separates sorted from unsorted behavior; hashing avoids the quadratic or serial fallback without tuning overrides." + } + }, + { + "name": "float_hash_work_boundary_float32_n15_sorted0", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { "dtype": "float32", "shape": [15], "data": { "kind": "linspace", "start": 14.0, "end": 0.0 } } + }, + "outputs": { "y": { "dtype": "float32", "shape": [15], "tolerance": 0 } }, + "provenance": { + "notes": "Natural comparison-work admission boundary; descending inputs distinguish sorted output from first-occurrence order without tuning overrides." + } + }, + { + "name": "float_hash_work_boundary_float32_n15_sorted1", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { "dtype": "float32", "shape": [15], "data": { "kind": "linspace", "start": 14.0, "end": 0.0 } } + }, + "outputs": { "y": { "dtype": "float32", "shape": [15], "tolerance": 0 } }, + "provenance": { + "notes": "Natural comparison-work admission boundary; descending inputs distinguish sorted output from first-occurrence order without tuning overrides." + } + }, + { + "name": "float_hash_work_boundary_float32_n16_sorted0", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { "dtype": "float32", "shape": [16], "data": { "kind": "linspace", "start": 15.0, "end": 0.0 } } + }, + "outputs": { "y": { "dtype": "float32", "shape": [16], "tolerance": 0 } }, + "provenance": { + "notes": "Natural comparison-work admission boundary; descending inputs distinguish sorted output from first-occurrence order without tuning overrides." + } + }, + { + "name": "float_hash_work_boundary_float32_n16_sorted1", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { "dtype": "float32", "shape": [16], "data": { "kind": "linspace", "start": 15.0, "end": 0.0 } } + }, + "outputs": { "y": { "dtype": "float32", "shape": [16], "tolerance": 0 } }, + "provenance": { + "notes": "Natural comparison-work admission boundary; descending inputs distinguish sorted output from first-occurrence order without tuning overrides." + } + }, + { + "name": "float_hash_work_boundary_float16_n15_sorted0", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { "dtype": "float16", "shape": [15], "data": { "kind": "linspace", "start": 14.0, "end": 0.0 } } + }, + "outputs": { "y": { "dtype": "float16", "shape": [15], "tolerance": 0 } }, + "provenance": { + "notes": "Natural comparison-work admission boundary; descending inputs distinguish sorted output from first-occurrence order without tuning overrides." + } + }, + { + "name": "float_hash_work_boundary_float16_n15_sorted1", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { "dtype": "float16", "shape": [15], "data": { "kind": "linspace", "start": 14.0, "end": 0.0 } } + }, + "outputs": { "y": { "dtype": "float16", "shape": [15], "tolerance": 0 } }, + "provenance": { + "notes": "Natural comparison-work admission boundary; descending inputs distinguish sorted output from first-occurrence order without tuning overrides." + } + }, + { + "name": "float_hash_work_boundary_float16_n16_sorted0", + "attrs": { "sorted": 0 }, + "inputs": { + "x": { "dtype": "float16", "shape": [16], "data": { "kind": "linspace", "start": 15.0, "end": 0.0 } } + }, + "outputs": { "y": { "dtype": "float16", "shape": [16], "tolerance": 0 } }, + "provenance": { + "notes": "Natural comparison-work admission boundary; descending inputs distinguish sorted output from first-occurrence order without tuning overrides." + } + }, + { + "name": "float_hash_work_boundary_float16_n16_sorted1", + "attrs": { "sorted": 1 }, + "inputs": { + "x": { "dtype": "float16", "shape": [16], "data": { "kind": "linspace", "start": 15.0, "end": 0.0 } } + }, + "outputs": { "y": { "dtype": "float16", "shape": [16], "tolerance": 0 } }, + "provenance": { + "notes": "Natural comparison-work admission boundary; descending inputs distinguish sorted output from first-occurrence order without tuning overrides." + } } ] }