{ "op": "ai.onnx.HammingWindow", "cases": [ { "name": "periodic_f32_size16", "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [16] } } }, "outputs": { "y": { "dtype": "float32", "shape": [16], "tolerance": 0.00001 } } }, { "name": "symmetric_f32_size16", "attrs": { "periodic": 0 }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [16] } } }, "outputs": { "y": { "dtype": "float32", "shape": [16], "tolerance": 0.00001 } } }, { "name": "periodic_f32_size10", "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_hammingwindow" }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [10] } } }, "outputs": { "y": { "dtype": "float32", "shape": [10], "tolerance": 0.00001 } } }, { "name": "symmetric_f32_size10_onnx_backend", "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_hammingwindow_symmetric" }, "attrs": { "periodic": 0 }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [10] } } }, "outputs": { "y": { "dtype": "float32", "shape": [10], "tolerance": 0.00001 } } }, { "name": "periodic_f32_size0_empty", "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [0], "tolerance": 0 } } }, { "name": "periodic_f32_size1_boundary", "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1], "tolerance": 0.00001 } } }, { "name": "symmetric_f32_size1_nan_boundary", "provenance": { "source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc", "test": "SignalOpsTest.HammingWindowFloat", "notes": "Additional ORT-validated edge: symmetric size 1 uses denominator length - 1 = 0 and produces NaN." }, "attrs": { "periodic": 0 }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1], "tolerance": 0, "allowNaN": true, "data": { "kind": "values", "values": ["NaN"] } } } }, { "name": "symmetric_f32_odd_size7", "attrs": { "periodic": 0 }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [7] } } }, "outputs": { "y": { "dtype": "float32", "shape": [7], "tolerance": 0.00001 } } }, { "name": "periodic_f16_size32", "attrs": { "output_datatype": 10 }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [32] } } }, "outputs": { "y": { "dtype": "float16", "shape": [32], "tolerance": 0.002 } } }, { "name": "ort_periodic_int16_output_size8", "provenance": { "source": "ONNX Runtime CPUExecutionProvider", "notes": "ONNX HammingWindow computes in float and applies output_datatype=INT16 as a final cast." }, "attrs": { "output_datatype": 5 }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } } }, "outputs": { "y": { "dtype": "int16", "shape": [8], "tolerance": 0, "data": { "kind": "values", "values": [0, 0, 0, 0, 1, 0, 0, 0] } } } }, { "name": "ort_symmetric_uint32_output_size1_zero_cast", "provenance": { "source": "ONNX Runtime CPUExecutionProvider", "notes": "The symmetric size-one formula produces NaN in float; ONNX Cast to UINT32 maps that value to zero." }, "attrs": { "output_datatype": 12, "periodic": 0 }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } } }, "outputs": { "y": { "dtype": "uint32", "shape": [1], "tolerance": 0, "data": { "kind": "values", "values": [0] } } } }, { "name": "onnx_standard_periodic_int8_output_size8", "attrs": { "output_datatype": 3 }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } } }, "outputs": { "y": { "dtype": "int8", "shape": [8], "tolerance": 0, "data": { "kind": "values", "values": [0, 0, 0, 0, 1, 0, 0, 0] } } } }, { "name": "onnx_standard_periodic_uint8_output_size8", "attrs": { "output_datatype": 2 }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } } }, "outputs": { "y": { "dtype": "uint8", "shape": [8], "tolerance": 0, "data": { "kind": "values", "values": [0, 0, 0, 0, 1, 0, 0, 0] } } } }, { "name": "onnx_standard_periodic_int32_output_size8", "attrs": { "output_datatype": 6 }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } } }, "outputs": { "y": { "dtype": "int32", "shape": [8], "tolerance": 0, "data": { "kind": "values", "values": [0, 0, 0, 0, 1, 0, 0, 0] } } } }, { "name": "periodic_f32_size257_phase_accuracy_gpu_gap", "skipGpu": { "category": "todo", "reason": "The current f32 cosine and range-reduction path crosses the final rounding boundary for this periodic size-257 window. A correctly rounded approximation or software-extended precision could close this implementable gap." }, "provenance": { "source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc", "test": "SignalOpsTest.HammingWindowFloat", "notes": "Medium odd-sized periodic window stresses f32 phase formation across many non-cardinal cosine positions; CPU and ORT agree more tightly than the current WGSL f32 cosine-sum path." }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [257] } } }, "outputs": { "y": { "dtype": "float32", "shape": [257], "tolerance": 6e-8, "relTolerance": 0 } } }, { "name": "symmetric_f32_size257_phase_accuracy_gpu_gap", "skipGpu": { "category": "todo", "reason": "The current f32 cosine and range-reduction path crosses the final rounding boundary for this symmetric size-257 window. A correctly rounded approximation or software-extended precision could close this implementable gap." }, "provenance": { "source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc", "test": "SignalOpsTest.HammingWindowFloat", "notes": "Symmetric odd-sized companion to the periodic phase edge; the length-1 denominator shifts every non-cardinal cosine sample and exposes f32 phase drift in the WGSL path." }, "attrs": { "periodic": 0 }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [257] } } }, "outputs": { "y": { "dtype": "float32", "shape": [257], "tolerance": 6e-8, "relTolerance": 0 } } }, { "name": "ort_periodic_f32_size32", "provenance": { "source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc", "test": "SignalOpsTest.HammingWindowFloat" }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [32] } } }, "outputs": { "y": { "dtype": "float32", "shape": [32], "tolerance": 0.00001, "data": { "kind": "values", "values": [0.086957, 0.095728, 0.121707, 0.163894, 0.220669, 0.289848, 0.368775, 0.454415, 0.543478, 0.632541, 0.718182, 0.797108, 0.866288, 0.923062, 0.965249, 0.991228, 1.0, 0.991228, 0.965249, 0.923062, 0.866288, 0.797108, 0.718182, 0.632541, 0.543478, 0.454415, 0.368775, 0.289848, 0.220669, 0.163894, 0.121707, 0.095728] } } } }, { "name": "periodic_int32_size8", "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } } }, "outputs": { "y": { "dtype": "float32", "shape": [8], "tolerance": 0.00001 } } }, { "name": "symmetric_f32_size2_denom1", "attrs": { "periodic": 0 }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [2] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2], "tolerance": 0.00001 } } }, { "name": "symmetric_f16_size16", "attrs": { "output_datatype": 10, "periodic": 0 }, "requires": { "features": ["shader-f16"] }, "inputs": { "size": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [16] } } }, "outputs": { "y": { "dtype": "float16", "shape": [16], "tolerance": 0.002 } } } ] }