ai.onnx.DFT / build /webgpu /test.json
Xenova's picture
Xenova HF Staff
sync 6fdf6301e2bb
7e9cd39 verified
Raw History Blame
116 kB
{
"fixtureArrays": {
"ort_rank2_complex_axis0_output_output": [36, 0, -4, 9.65685, -4, 4, -4, 1.65685, -4, 0, -4, -1.65685, -4, -4, -4, -9.65685]
},
"cases": [
{
"name": "dispatch_cliff_batch_axis1_over_8m_elements",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": { "input": { "dtype": "float32", "shape": [2099200, 4, 1] } },
"outputs": { "output": { "dtype": "float32", "shape": [2099200, 4, 2], "tolerance": 0.001 } }
},
{
"name": "dispatch_cliff_rank4_axis1_over_8m_elements",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": { "dtype": "float32", "shape": [1050000, 4, 2, 1] },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [1050000, 4, 2, 2], "tolerance": 0.001 } }
},
{
"name": "dispatch_cliff_rank4_axis2_over_8m_elements",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": { "input": { "dtype": "float32", "shape": [1050000, 2, 4, 1] } },
"outputs": { "output": { "dtype": "float32", "shape": [1050000, 2, 4, 2], "tolerance": 0.001 } }
},
{
"name": "real_full_default_axis",
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 0.0, -1.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0.00001 } }
},
{
"name": "default_axis_minus2_rank2",
"provenance": {
"source": "ONNX DFT-20 schema",
"notes": "Omitting the optional axis input must use -2. For rank 2 that normalizes to axis 0, the only signal axis."
},
"inputs": {
"input": { "dtype": "float32", "shape": [4, 1], "data": { "kind": "values", "values": [1.0, 0.0, 0.0, 0.0] } }
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [4, 2],
"tolerance": 0.00001,
"data": { "kind": "values", "values": [1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0] }
}
}
},
{
"name": "default_axis_minus2_rank4",
"provenance": {
"source": "ONNX DFT-20 schema",
"notes": "Omitting the optional axis input must use -2. For rank 4 that is axis 2, independently transforming each [batch, inner] signal."
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 2, 4, 1],
"data": { "kind": "values", "values": [1.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0] }
}
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [1, 2, 4, 2],
"tolerance": 0.00001,
"data": {
"kind": "values",
"values": [1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 2.0, 0.0, 2.0, 0.0, 2.0, 0.0, 2.0, 0.0]
}
}
}
},
{
"name": "real_subnormal_impulse_preserves_all_bins_gpu_gap",
"skipGpu": {
"category": "permanent",
"reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal FTZ: subnormal 1e-40 input flushes to zero on GPU, every output bin reads 0 instead of the subnormal value (tolerance 0)."
},
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_radix2",
"notes": "Focused amplitude edge: a real impulse of 1e-40 has a DFT with every real frequency bin equal to that subnormal value."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 1],
"data": { "kind": "values", "values": [1e-40, 0.0, 0.0, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0 } }
},
{
"name": "complex_subnormal_impulse_preserves_all_bins_gpu_gap",
"skipGpu": {
"category": "permanent",
"reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal FTZ: subnormal 1e-40 input flushes to zero on GPU, every output bin reads 0 instead of the subnormal value (tolerance 0)."
},
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_radix2",
"notes": "A subnormal complex impulse at sample zero must appear unchanged in every frequency bin."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 2],
"data": { "kind": "values", "values": [1e-40, -1e-40, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0 } }
},
{
"name": "complex_inverse_subnormal_dc_preserves_time_signal_gpu_gap",
"skipGpu": {
"category": "permanent",
"reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal FTZ: subnormal 1e-40 input flushes to zero on GPU, every output bin reads 0 instead of the subnormal value (tolerance 0)."
},
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_inverse",
"notes": "An inverse transform of a subnormal DC bin, scaled by 1/N, must produce a finite subnormal constant signal."
},
"attrs": { "inverse": 1, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 2],
"data": { "kind": "values", "values": [4e-40, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0 } }
},
{
"name": "rank2_axis0_subnormal_impulse_preserves_all_bins_gpu_gap",
"skipGpu": {
"category": "permanent",
"reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal FTZ: subnormal 1e-40 input flushes to zero on GPU, every output bin reads 0 instead of the subnormal value (tolerance 0)."
},
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_radix2",
"notes": "A rank-2 axis-0 FFT of a real subnormal impulse must preserve that real value in every bin."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": { "dtype": "float32", "shape": [4, 1], "data": { "kind": "values", "values": [1e-40, 0.0, 0.0, 0.0] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [4, 2], "tolerance": 0 } }
},
{
"name": "rank4_axis1_subnormal_impulse_preserves_all_bins_gpu_gap",
"skipGpu": {
"category": "permanent",
"reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal FTZ: subnormal 1e-40 input flushes to zero on GPU, every output bin reads 0 instead of the subnormal value (tolerance 0)."
},
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_radix2",
"notes": "A rank-4 axis-1 FFT places a subnormal impulse along the first signal axis with one inner position."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [1, 4, 1, 1],
"data": { "kind": "values", "values": [1e-40, 0.0, 0.0, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 1, 2], "tolerance": 0 } }
},
{
"name": "rank4_axis2_subnormal_impulse_preserves_all_bins_gpu_gap",
"skipGpu": {
"category": "permanent",
"reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: Metal FTZ: subnormal 1e-40 input flushes to zero on GPU, every output bin reads 0 instead of the subnormal value (tolerance 0)."
},
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_radix2",
"notes": "A rank-4 axis-2 FFT places a subnormal impulse along the second signal axis with one outer channel."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 1, 4, 1],
"data": { "kind": "values", "values": [1e-40, 0.0, 0.0, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 1, 4, 2], "tolerance": 0 } }
},
{
"name": "negative_axis_minus2_rank3",
"provenance": {
"source": "https://github.com/onnx/onnx/blob/main/docs/Operators.md#DFT",
"notes": "DFT axis accepts negative values in [-r, -2]; for rank 3, axis=-2 is the last signal axis and matches axis=1."
},
"attrs": {},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 0.0, -1.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0.00001 } }
},
{
"name": "ort_axis_input_overrides_default_axis0",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_invertible_real",
"notes": "In opset 20 the axis is an input tensor; axis=0 must override the operator's default axis on this shape."
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [4, 3, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.09, "cosStep": 0.21, "scale": 4.0 }
},
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [0] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [4, 3, 2], "tolerance": 0.0001 } }
},
{
"name": "ort_axis_input_overrides_default_rank4_axis2",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_invertible_real",
"notes": "The axis input is set to 2 on a rank-4 tensor whose dimensions 1 and 2 are both size 4, so decoding the wrong axis would still produce a matching output shape; only the values reveal an incorrect axis."
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 4, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.07, "cosStep": 0.17, "scale": 3.0 }
},
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [2] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 4, 2], "tolerance": 0.0001 } }
},
{
"name": "real_onesided_even",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 0.0, -1.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 3, 2], "tolerance": 0.00001 } }
},
{
"name": "complex_inverse",
"attrs": { "inverse": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 2],
"data": { "kind": "values", "values": [2.0, 0.0, 1.0, -1.0, 0.0, 0.0, 1.0, 1.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0.00001 } }
},
{
"name": "real_onesided_odd_length",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 5, 1],
"data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0, 4.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 3, 2], "tolerance": 0.00001 } }
},
{
"name": "real_full_batch2",
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 4, 1],
"data": { "kind": "values", "values": [1.0, 0.0, -1.0, 0.0, 0.0, 2.0, 0.0, -2.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 4, 2], "tolerance": 0.00001 } }
},
{
"name": "complex_inverse_length3",
"attrs": { "inverse": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 3, 2],
"data": { "kind": "values", "values": [6.0, 0.0, -3.0, 1.7320508, -3.0, -1.7320508] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 3, 2], "tolerance": 0.00001 } }
},
{
"name": "real_radix2_onesided_length8_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_radix2_onesided"
},
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 8, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 5, 2], "tolerance": 0.00002 } }
},
{
"name": "fft_batch_axis1_len256_batch4_real_onesided_perf_compact",
"provenance": {
"notes": "A compact real-input FFT along batch axis 1 uses a power-of-two length and one-sided output without benchmark-scale tensors."
},
"attrs": { "onesided": 1 },
"inputs": { "input": { "dtype": "float32", "shape": [4, 256, 1] } },
"outputs": { "output": { "dtype": "float32", "shape": [4, 129, 2], "tolerance": 0.0002 } }
},
{
"name": "complex_full_batch2_length3",
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 3, 2],
"data": { "kind": "values", "values": [1.0, 0.0, 0.0, 1.0, -1.0, 0.0, 2.0, 0.0, 0.0, -1.0, 1.0, 1.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 3, 2], "tolerance": 0.00001 } }
},
{
"name": "real_naive_length5_full_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_naive"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 5, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 5, 2], "tolerance": 0.00002 } }
},
{
"name": "real_radix2_length8_full_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_radix2"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 8, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 8, 2], "tolerance": 0.00004 } }
},
{
"name": "real_naive_length5_onesided_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_naive_onesided"
},
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 5, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 3, 2], "tolerance": 0.00002 } }
},
{
"name": "ort_dft_length_truncates_forward",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_Float_naive",
"notes": "Valid opset-20 dft_length input that truncates the transform length below the input extent."
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 5, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [3] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [1, 3, 2],
"tolerance": 0.00002,
"data": { "kind": "values", "values": [6.0, 0.0, -1.5, 0.866025, -1.5, -0.866025] }
}
}
},
{
"name": "ort_dft_length_zero_pads_forward",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_Float_naive",
"notes": "Valid opset-20 dft_length input that zero-pads the transform length beyond the input extent."
},
"inputs": {
"input": { "dtype": "float32", "shape": [1, 3, 1], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } },
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [5] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [1, 5, 2],
"tolerance": 0.00002,
"data": {
"kind": "values",
"values": [6.0, 0.0, -0.809017, -3.665469, 0.309017, 1.677599, 0.309017, -1.677599, -0.809017, 3.665469]
}
}
}
},
{
"name": "complex_inverse_length5_ort",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_inverse"
},
"attrs": { "inverse": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 5, 2],
"data": {
"kind": "values",
"values": [15.0, 0.0, -2.499999, 3.440955, -2.5, 0.8123, -2.499999, -0.812299, -2.500003, -3.440953]
}
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 5, 2], "tolerance": 0.0001 } }
},
{
"name": "ort_irfft_radix2_even_length",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_IRFFT_radix2"
},
"attrs": { "onesided": 1, "inverse": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 5, 2],
"data": { "kind": "values", "values": [36.0, 0.0, -4.0, 9.65685, -4.0, 4.0, -4.0, 1.65685, -4.0, 0.0] }
}
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [1, 8, 1],
"tolerance": 0.0001,
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
}
},
{
"name": "ort_irfft_radix2_rank3_axis0",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_IRFFT_radix2",
"notes": "Axis-0 rank-3 projection of ORT's even-length IRFFT case."
},
"attrs": { "onesided": 1, "inverse": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [5, 1, 2],
"data": { "kind": "values", "values": [36.0, 0.0, -4.0, 9.65685, -4.0, 4.0, -4.0, 1.65685, -4.0, 0.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [0] } }
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [8, 1, 1],
"tolerance": 0.0001,
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
}
},
{
"name": "ort_irfft_naive_odd_length",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_IRFFT_naive",
"notes": "Odd-length IRFFT needs explicit dft_length to disambiguate from the even default."
},
"attrs": { "onesided": 1, "inverse": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 3, 2],
"data": { "kind": "values", "values": [15.0, 0.0, -2.499999, 3.440955, -2.5, 0.8123] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [5] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [1, 5, 1],
"tolerance": 0.0001,
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] }
}
}
},
{
"name": "ort_invertible_real_rank4_axis1_projection",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_invertible_real",
"notes": "Single forward DFT projection from ORT's rank-4 real invertibility sweep."
},
"attrs": {},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [2, 3, 2, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.19, "scale": 8.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 3, 2, 2], "tolerance": 0.0001 } }
},
{
"name": "ort_invertible_complex_rank4_axis2_projection",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_invertible_complex",
"notes": "Single forward DFT projection from ORT's rank-4 complex invertibility sweep."
},
"attrs": {},
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2, 4, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.11, "cosStep": 0.23, "scale": 5.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2, 4, 2], "tolerance": 0.0001 } }
},
{
"name": "ort_invertible_complex_rank4_axis0",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_invertible_complex",
"notes": "Single forward DFT projection from ORT's rank-4 complex invertibility sweep."
},
"attrs": {},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [0] } },
"input": {
"dtype": "float32",
"shape": [4, 2, 3, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.07, "cosStep": 0.17, "scale": 3.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [4, 2, 3, 2], "tolerance": 0.0001 } }
},
{
"name": "ort_invertible_real_rank3_axis0",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_invertible_real",
"notes": "Single forward DFT projection from ORT's axis-0 invertibility sweep."
},
"attrs": {},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [0] } },
"input": {
"dtype": "float32",
"shape": [4, 3, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.09, "cosStep": 0.21, "scale": 4.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [4, 3, 2], "tolerance": 0.0001 } }
},
{
"name": "ort_rank2_complex_axis0",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_2D_complex"
},
"attrs": {},
"inputs": {
"input": {
"dtype": "float32",
"shape": [8, 2],
"data": {
"kind": "values",
"values": [1.0, 0.0, 2.0, 0.0, 3.0, 0.0, 4.0, 0.0, 5.0, 0.0, 6.0, 0.0, 7.0, 0.0, 8.0, 0.0]
}
}
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [8, 2],
"tolerance": 0.0001,
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_rank2_complex_axis0_output_output" } }
}
}
},
{
"name": "ort_rank2_real_onesided_axis0",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_2D_real"
},
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [8, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [5, 2],
"tolerance": 0.0001,
"data": { "kind": "values", "values": [36.0, 0.0, -4.0, 9.65685, -4.0, 4.0, -4.0, 1.65685, -4.0, 0.0] }
}
}
},
{
"name": "ort_rank2_real_full_axis0",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_2D_real"
},
"attrs": {},
"inputs": {
"input": {
"dtype": "float32",
"shape": [8, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [0] } }
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [8, 2],
"tolerance": 0.0001,
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_rank2_complex_axis0_output_output" } }
}
}
},
{
"name": "ort_rank2_irfft_even_axis0",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_2D_complex_onesided_inverse"
},
"attrs": { "onesided": 1, "inverse": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [5, 2],
"data": { "kind": "values", "values": [36.0, 0.0, -4.0, 9.65685, -4.0, 4.0, -4.0, 1.65685, -4.0, 0.0] }
}
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [8, 1],
"tolerance": 0.0001,
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
}
},
{
"name": "ort_rank2_irfft_odd_axis0",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_IRFFT_naive",
"notes": "Rank-2 axis-0 projection of ORT's odd-length IRFFT case; explicit output length disambiguates odd from even."
},
"attrs": { "onesided": 1, "inverse": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [3, 2],
"data": { "kind": "values", "values": [15.0, 0.0, -2.499999, 3.440955, -2.5, 0.8123] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [5] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [0] } }
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [5, 1],
"tolerance": 0.0001,
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] }
}
}
},
{
"name": "onnx_backend_dft_axis1_rank4",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_dft",
"notes": "Uses the official shape and attributes with deterministic generated data to avoid committing the large random tensor literal."
},
"attrs": {},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [1, 10, 10, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.031, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 10, 10, 2], "tolerance": 0.0001 } }
},
{
"name": "onnx_backend_dft_axis2_rank4",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_dft_axis",
"notes": "Uses the official shape and attributes with deterministic generated data to avoid committing the large random tensor literal."
},
"attrs": {},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 10, 10, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.031, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 10, 10, 2], "tolerance": 0.0001 } }
},
{
"name": "onnx_backend_dft_inverse_axis1_rank4",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_dft_inverse",
"notes": "Uses the official shape and attributes with deterministic generated data to avoid committing the large random tensor literal."
},
"attrs": { "inverse": 1 },
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [1, 10, 10, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.029, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 10, 10, 2], "tolerance": 0.0001 } }
},
{
"name": "onnx_backend_dft_irfft_axis1_rank4",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_dft_irfft",
"notes": "Uses the official shape and attributes with deterministic generated data to avoid committing the large random tensor literal."
},
"attrs": { "inverse": 1, "onesided": 1 },
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [1, 6, 10, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.023, "cosStep": 0.037, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 10, 10, 1], "tolerance": 0.0001 } }
},
{
"name": "onnx_backend_dft_rfft_axis1_rank4",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_dft_rfft",
"notes": "Uses the official shape and attributes with deterministic generated data to avoid committing the large random tensor literal."
},
"attrs": { "onesided": 1 },
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [1, 10, 10, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.021, "cosStep": 0.034, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 6, 10, 2], "tolerance": 0.0001 } }
},
{
"name": "onnx_backend_dft_opset19_axis1_rank4",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_dft_opset19",
"notes": "Uses the official shape and attributes with deterministic generated data to avoid committing the large random tensor literal."
},
"attrs": {},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [1, 10, 10, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.026, "cosStep": 0.041, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 10, 10, 2], "tolerance": 0.0001 } }
},
{
"name": "onnx_backend_dft_axis_opset19_axis2_rank4",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_dft_axis_opset19",
"notes": "Uses the official shape and attributes with deterministic generated data to avoid committing the large random tensor literal."
},
"attrs": {},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 10, 10, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.026, "cosStep": 0.041, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 10, 10, 2], "tolerance": 0.0001 } }
},
{
"name": "onnx_backend_dft_inverse_opset19_axis1_rank4",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_dft_inverse_opset19",
"notes": "Uses the official shape and attributes with deterministic generated data to avoid committing the large random tensor literal."
},
"attrs": { "inverse": 1 },
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [1, 10, 10, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.027, "cosStep": 0.039, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 10, 10, 2], "tolerance": 0.0001 } }
},
{
"name": "onnx_backend_dft_irfft_opset19_axis1_rank4",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_dft_irfft_opset19",
"notes": "Uses the official shape and attributes with deterministic generated data to avoid committing the large random tensor literal."
},
"attrs": { "inverse": 1, "onesided": 1 },
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [1, 6, 10, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.025, "cosStep": 0.043, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 10, 10, 1], "tolerance": 0.0001 } }
},
{
"name": "onnx_backend_dft_rfft_opset19_axis1_rank4",
"provenance": {
"source": "cmake/external/onnx/onnx/backend/test/data/node/test_dft_rfft_opset19",
"notes": "Uses the official shape and attributes with deterministic generated data to avoid committing the large random tensor literal."
},
"attrs": { "onesided": 1 },
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [1, 10, 10, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.029, "cosStep": 0.046, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 6, 10, 2], "tolerance": 0.0001 } }
},
{
"name": "fft_rank2_axis0_real_onesided_len256",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [256, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.021, "cosStep": 0.031, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [129, 2], "tolerance": 0.001, "relTolerance": 0.0001 } }
},
{
"name": "fft_rank2_axis0_complex_full_len512",
"attrs": {},
"inputs": {
"input": {
"dtype": "float32",
"shape": [512, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.029, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [512, 2], "tolerance": 0.02, "relTolerance": 0.0001 } }
},
{
"name": "fft_batch_axis1_real_full_len1024_batch2",
"attrs": {},
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 1024, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.041, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 1024, 2], "tolerance": 0.1, "relTolerance": 0.0001 } }
},
{
"name": "tiled_real_nonpow2_len513_full",
"provenance": {
"notes": "Compact non-power-of-two DFT with a partial final frequency block and nontrivial twiddle factors."
},
"tunables": { "WORKGROUP_SIZE": 64 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 513, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.5 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 513, 2], "tolerance": 0.03, "relTolerance": 0.0002 } }
},
{
"name": "tiled_real_nonpow2_len4095_full_boundary",
"provenance": {
"notes": "A length-4095 real DFT, one below the 4096 power-of-two boundary, exercises non-power-of-two handling with many twiddle-factor resets across the transform."
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4095, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.0013, "cosStep": 0.0027, "scale": 0.05 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4095, 2], "tolerance": 0.1, "relTolerance": 0.0005 } }
},
{
"name": "fft_batch_axis1_complex_inverse_len512",
"attrs": { "inverse": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 512, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.023, "cosStep": 0.037, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 512, 2], "tolerance": 0.0001, "relTolerance": 0.0001 } }
},
{
"name": "fft_batch_axis1_real_onesided_len2048",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 2048, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.019, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 1025, 2], "tolerance": 0.06, "relTolerance": 0.0001 } }
},
{
"name": "fft_batch_axis1_real_full_len4096_storage_inplace",
"provenance": {
"notes": "Locks the portable single-dispatch storage-buffer radix-2 route above the shared Stockham size ceiling."
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4096, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.009, "cosStep": 0.017, "scale": 0.5 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4096, 2], "tolerance": 0.35, "relTolerance": 0.001 } }
},
{
"name": "fft_batch_axis1_complex_inverse_len4096_storage_inplace",
"provenance": {
"notes": "The storage-buffer radix-2 route only takes over above the shared-memory ceiling at length 2048, and every case that long was a forward transform of a real signal. This one is the inverse of a complex signal, which is the route's other three knobs at once: the twiddle sign, the two-component load, and the 1/N scaling."
},
"attrs": { "inverse": 1, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4096, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.009, "cosStep": 0.017, "scale": 0.5 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4096, 2], "tolerance": 0.0001, "relTolerance": 0.001 } }
},
{
"name": "fft_batch_axis1_real_onesided_len4096_storage_scratch",
"provenance": {
"notes": "Covers the one-dispatch storage-buffer DIT route when a onesided output is too small to serve as its own FFT scratch."
},
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4096, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.009, "cosStep": 0.017, "scale": 0.5 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 2049, 2], "tolerance": 0.35, "relTolerance": 0.001 } }
},
{
"name": "fft_rank4_axis1_real_full_len256_inner3",
"attrs": {},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [2, 256, 3, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.027, "cosStep": 0.033, "scale": 1.0 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 256, 3, 2], "tolerance": 0.015, "relTolerance": 0.0001 }
}
},
{
"name": "fft_rank4_axis1_real_onesided_len16_inner5",
"attrs": { "onesided": 1 },
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [1, 16, 5, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.043, "cosStep": 0.021, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 9, 5, 2], "tolerance": 0.0001 } }
},
{
"name": "fft_rank4_axis2_real_onesided_len512",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 3, 512, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.023, "cosStep": 0.039, "scale": 1.0 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 3, 257, 2], "tolerance": 0.002, "relTolerance": 0.0001 }
}
},
{
"name": "empty_zero_dim",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": { "input": { "dtype": "float32", "shape": [0, 4, 1], "data": { "kind": "values", "values": [] } } },
"outputs": { "output": { "dtype": "float32", "shape": [0, 4, 2], "tolerance": 0 } }
},
{
"name": "ort_caseB_empty",
"attrs": { "onesided": 1 },
"inputs": { "input": { "dtype": "float32", "shape": [1, 0, 1], "data": { "kind": "values", "values": [] } } },
"outputs": {
"output": {
"dtype": "float32",
"shape": [1, 1, 2],
"data": { "kind": "values", "values": [0.0, 0.0] },
"tolerance": 0.001
}
}
},
{
"name": "irfft_naive_axis1_over_128_dispatch_guard",
"provenance": {
"source": "synthetic",
"test": "naive batch_axis1 IRFFT, numel(output) > 128 dispatch coverage",
"notes": "An inverse one-sided DFT with an explicit 255-sample dft_length reconstructs a real length-255 signal from a 128-bin complex input; verifies every output index, including those past the 128th, matches the reference."
},
"attrs": { "inverse": 1, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 128, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.019, "scale": 1.0 }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [255] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 255, 1], "tolerance": 0.01, "relTolerance": 0.01 } }
},
{
"name": "dft_length_default_axis_no_axis_input",
"provenance": {
"notes": "dft_length input present, axis input omitted (default transform axis 1). Exercises the general_len variant: forward DFT of a real rank-3 signal where dft_length matches the signal extent."
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 0.0, -1.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [4] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0.00001 } }
},
{
"name": "general_axis_input_len2048_naive_vs_fft_batch32",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [32, 2048, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.0007, "cosStep": 0.0013, "scale": 1.0 }
},
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [32, 2048, 2], "tolerance": 0.05, "relTolerance": 0.01 } }
},
{
"name": "general_axis_input_gidy_fold_over_8m_rows",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2099200, 4, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.019, "scale": 1.0 }
},
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": {
"output": { "dtype": "float32", "shape": [2099200, 4, 2], "tolerance": 0.0001, "relTolerance": 0.0001 }
}
},
{
"name": "whisper_nfft400_naive_batch_axis1_onesided",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [200, 400, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [200, 201, 2], "tolerance": 0.02, "relTolerance": 0.001 } }
},
{
"name": "irfft_batch_axis1_len512_reconstruct_real",
"attrs": { "inverse": 1, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [8, 257, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.023, "cosStep": 0.031, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [8, 512, 1], "tolerance": 0.02, "relTolerance": 0.01 } }
},
{
"name": "general_len_rank4_axis1_dftlength_zeropad_len6",
"provenance": {
"notes": "dft_length=6 zero-pads a rank-4 axis-1 signal from four to six samples, exercising rank-4 coordinate decoding and the zero-pad boundary."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [2, 4, 3, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.037, "cosStep": 0.061, "scale": 2.0 }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [6] } }
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 6, 3, 2], "tolerance": 0.0002, "relTolerance": 0.0001 }
}
},
{
"name": "general_irfft_rank4_axis2_odd_len5_no_nyquist",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_IRFFT_naive",
"notes": "Rank-4 axis-2 odd-length IRFFT via general_axis_len: odd output length 5 has no exact Nyquist bin, so no weight-2 doubling should occur. Exercises the general kernel onesided_inverse branch + rank-4 coordinate decode."
},
"attrs": { "inverse": 1, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2, 3, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.029, "cosStep": 0.047, "scale": 3.0 }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [5] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [2] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2, 5, 1], "tolerance": 0.0005, "relTolerance": 0.001 } }
},
{
"name": "general_axis_len_negative_axis_rank3_dftlength_truncate",
"provenance": {
"notes": "For rank 3, axis=-2 resolves to axis 1; dft_length=4 then truncates the six-sample signal on the general runtime-axis path."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [3, 6, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.033, "cosStep": 0.052, "scale": 2.0 }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [4] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [-2] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [3, 4, 2], "tolerance": 0.0002, "relTolerance": 0.0001 } }
},
{
"name": "general_len_rank2_axis0_dftlength_zeropad_odd",
"provenance": {
"notes": "A length-3 real signal is zero-padded to dft_length 5 along the default axis of a rank-2 (no batch dimension) input; checks zero-padding and the resulting 5-point coordinate mapping."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": { "dtype": "float32", "shape": [3, 1], "data": { "kind": "values", "values": [1.0, 2.0, 3.0] } },
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [5] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [5, 2], "tolerance": 0.00002 } }
},
{
"name": "fft_explicit_equal_length128_batch4_onesided",
"provenance": {
"notes": "An explicit dft_length equal to the 128-sample signal length exercises the optimized power-of-two path without padding or truncation."
},
"attrs": { "inverse": 0, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [4, 128, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.033, "cosStep": 0.052, "scale": 2.0 }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [128] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [4, 65, 2], "tolerance": 0.002, "relTolerance": 0.001 } }
},
{
"name": "fft_runtime_axis1_full_len16_batch2",
"provenance": {
"notes": "A scalar axis value of one checks length-16 FFTs across two batches and axis-specific output indexing."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 16, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.031, "cosStep": 0.047, "scale": 1.5 }
},
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 16, 2], "tolerance": 0.00002, "relTolerance": 0.00001 }
}
},
{
"name": "fft_batch_axis1_real_full_len8192_storage_inplace_generic",
"provenance": {
"notes": "A length-8192 real-input radix-2 transform checks the complete (non-onesided) frequency output."
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 8192, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.0045, "cosStep": 0.0085, "scale": 0.25 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 8192, 2], "tolerance": 0.7, "relTolerance": 0.002 } }
},
{
"name": "fft_batch_axis1_real_onesided_len8192_storage_scratch_generic",
"provenance": { "notes": "A length-8192 one-sided radix-2 transform checks its 4097-point frequency output." },
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 8192, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.0045, "cosStep": 0.0085, "scale": 0.25 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4097, 2], "tolerance": 0.7, "relTolerance": 0.002 } }
},
{
"name": "tiled_real_nonpow2_len4097_onesided_above_boundary",
"provenance": {
"notes": "A length-4097 real one-sided DFT, one sample above the 4096 power-of-two boundary, produces a 2049-point spectrum; complements the 4095-sample case in this file just below the boundary."
},
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4097, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.0013, "cosStep": 0.0027, "scale": 0.05 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 2049, 2], "tolerance": 0.15, "relTolerance": 0.001 } }
},
{
"name": "rank5_batched_axis3",
"provenance": {
"notes": "ONNX DFT permits arbitrary batch rank around the transformed axis. With the axis given as an attribute the general kernel needs only (outer, axis, inner), so the batch rank never reaches it."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 1, 2, 4, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.29, "scale": 0.5 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 1, 2, 4, 2], "tolerance": 0.00001 } }
},
{
"name": "rank6_axis2_batch_and_inner",
"provenance": {
"notes": "A rank-6 input with batch dimensions on both sides of the transform axis exercises coordinate decoding with outer size 4 and inner size 2."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [2] } },
"input": {
"dtype": "float32",
"shape": [2, 2, 3, 1, 2, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.41, "scale": 0.6 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [2, 2, 3, 1, 2, 2], "tolerance": 0.00001 } }
},
{
"name": "rank8_default_axis_contract_ceiling",
"provenance": { "notes": "Exercises the manifest's advertised rank-8 ceiling with the ONNX default axis (-2)." },
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 1, 1, 1, 1, 1, 2, 1],
"data": { "kind": "values", "values": [1.0, 2.0] }
}
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [1, 1, 1, 1, 1, 1, 2, 2],
"tolerance": 0.00001,
"data": { "kind": "values", "values": [3.0, 0.0, -1.0, 0.0] }
}
}
},
{
"name": "runtime_axis_fft_rank4_axis1_real_len64_inner3",
"attrs": {},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [2, 64, 3, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.027, "cosStep": 0.033, "scale": 1.0 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 64, 3, 2], "tolerance": 0.005, "relTolerance": 0.0001 }
}
},
{
"name": "runtime_axis_fft_rank4_axis0_complex_inverse_len128",
"attrs": { "inverse": 1 },
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [0] } },
"input": {
"dtype": "float32",
"shape": [128, 2, 3, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.07, "cosStep": 0.17, "scale": 3.0 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [128, 2, 3, 2], "tolerance": 0.005, "relTolerance": 0.0001 }
}
},
{
"name": "runtime_axis_fft_rank2_axis0_real_len256",
"attrs": {},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [0] } },
"input": {
"dtype": "float32",
"shape": [256, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.041, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [256, 2], "tolerance": 0.01, "relTolerance": 0.0001 } }
},
{
"name": "runtime_axis_fft_rank5_axis2_len64_batch_and_inner",
"attrs": {},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [2] } },
"input": {
"dtype": "float32",
"shape": [2, 2, 64, 3, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.031, "cosStep": 0.023, "scale": 1.0 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 2, 64, 3, 2], "tolerance": 0.005, "relTolerance": 0.0001 }
}
},
{
"name": "runtime_axis_general_len10_beside_fft_candidate_axis0",
"attrs": {},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float32",
"shape": [64, 10, 2, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.05, "cosStep": 0.02, "scale": 1.0 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [64, 10, 2, 2], "tolerance": 0.002, "relTolerance": 0.0001 }
}
},
{
"name": "runtime_axis_fft_shorter_candidate_axis2_len64_beside_len1024",
"attrs": {},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [2] } },
"input": {
"dtype": "float32",
"shape": [2, 1024, 64, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.011, "cosStep": 0.017, "scale": 1.0 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 1024, 64, 2], "tolerance": 0.005, "relTolerance": 0.0001 }
}
},
{
"name": "runtime_axis_fft_negative_axis_rank4_len256_complex",
"attrs": {},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [-3] } },
"input": {
"dtype": "float32",
"shape": [3, 256, 2, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.037, "scale": 2.0 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [3, 256, 2, 2], "tolerance": 0.02, "relTolerance": 0.0001 }
}
},
{
"name": "strict_fft_fft_rank2_axis0_len512_single",
"provenance": {
"notes": "A single transform with fixed length and window values exposes twiddle and accumulation error under a strict comparison tolerance."
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [512, 1],
"data": {
"kind": "values",
"values": [0.47085124254226685, 0.6343972086906433, -1.1441657543182373, -0.7520811557769775, 1.347051978111267, -1.5881239175796509, 0.8293575048446655, 0.048850174993276596, -1.6475651264190674, 0.055246882140636444, 0.1744186282157898, 0.8122554421424866, 0.0013736382825300097, -0.935089647769928, -0.08401881158351898, -1.4841830730438232, 0.6150989532470703, -1.071344256401062, 1.2388153076171875, -0.6111907362937927, -0.5548782348632812, -0.367188423871994, 0.23288972675800323, -0.6296871304512024, -0.09209730476140976, 0.5591108202934265, 0.9632222056388855, 1.1987402439117432, -0.5864115953445435, -1.6481082439422607, -0.33785784244537354, -0.7908935546875, 0.5767853856086731, 0.0014391053700819612, -1.1475013494491577, -0.8722920417785645, 0.09505518525838852, 0.3113830089569092, -0.18482652306556702, -0.009203936904668808, 1.240989089012146, -0.29400739073753357, 0.38599175214767456, -0.6975995898246765, -0.983814537525177, 0.4323732554912567, 1.010870337486267, -0.464330792427063, -1.1357476711273193, -0.612619936466217, -0.6082793474197388, -0.5178468227386475, 1.6494985818862915, -1.5413367748260498, 0.8169042468070984, 0.4868209660053253, 2.199187994003296, -1.137480616569519, -0.09674955904483795, -0.10039588063955307, -0.5427590012550354, -0.8729526996612549, -0.7240892648696899, 0.6810178756713867, 0.145661860704422, 2.3122634887695312, -0.6435166597366333, -0.703028678894043, 1.4439829587936401, -0.3826243579387665, -0.9085003137588501, -0.4690343141555786, 0.999311089515686, 0.19013671576976776, -2.343946695327759, 1.077008605003357, 1.7280077934265137, -1.2639453411102295, 0.1679292619228363, 0.5933262705802917, 1.1325770616531372, -0.8739149570465088, -0.24762053787708282, 0.9700124263763428, -1.3248523473739624, 1.1689649820327759, -0.49627581238746643, 0.7098882794380188, 2.3384578227996826, 0.735585629940033, 2.0956168174743652, 0.6634565591812134, -0.5527646541595459, 0.2748326063156128, -0.9678656458854675, 0.1265537589788437, -0.18737728893756866, -0.7161715030670166, 0.10739780962467194, -0.985418438911438, 0.5730046629905701, -0.6308065056800842, -1.5790268182754517, -0.9943796992301941, 0.7897449731826782, 1.1783390045166016, -0.2768634259700775, -1.6567593812942505, -1.3003484010696411, -1.8229548931121826, 0.1706244796514511, -0.32691875100135803, 0.3424372375011444, 1.754302978515625, -2.2419910430908203, 1.5292303562164307, 0.6884847283363342, -1.1635326147079468, -1.1782338619232178, -0.18515750765800476, 0.0554298460483551, -0.15475474298000336, -0.6394355297088623, -0.3092099726200104, -0.607693076133728, -2.1792242527008057, -0.9750306010246277, 0.581595778465271, 0.10474342852830887, 0.39941954612731934, 0.1465892195701599, 0.20633050799369812, -0.24110914766788483, 1.2622594833374023, 1.514374852180481, 1.5958940982818604, 0.11226315796375275, -0.19277675449848175, 0.7172055244445801, 0.17488010227680206, 0.13700102269649506, 1.8554224967956543, -0.37425193190574646, 0.9798089265823364, -0.6272968649864197, 0.2294420599937439, 2.0346503257751465, 1.5696473121643066, 0.7629587650299072, -2.349259376525879, -0.3794490396976471, -0.002676798962056637, 0.1252404898405075, -1.530295729637146, 0.09238391369581223, -0.2893736958503723, 0.5335565209388733, -0.47424808144569397, 1.1189578771591187, -0.11779775470495224, -0.18178561329841614, 0.4315151870250702, -0.927902340888977, -0.9674974679946899, -0.22332565486431122, 1.2009732723236084, -3.052520513534546, -0.8209419250488281, -1.680700421333313, 0.2919081747531891, 0.593853771686554, -1.6461660861968994, -0.6552794575691223, 1.2967982292175293, -0.7018902897834778, 0.6449460983276367, 1.5989826917648315, -0.4030701816082001, 0.3225683867931366, 0.11343583464622498, -0.32675600051879883, -1.8187822103500366, -0.5627918243408203, -1.730384111404419, -0.7807947397232056, 1.4028652906417847, -1.102853536605835, -0.0924517810344696, -1.7651798725128174, -0.032968148589134216, -0.7599807381629944, 0.31100478768348694, -0.02373133786022663, -0.27708789706230164, -1.5137460231781006, 0.9782990217208862, 0.7261460423469543, -0.832298219203949, -1.0840362310409546, 0.9399347901344299, 0.15347719192504883, 0.2796500325202942, 0.4624989926815033, -0.5982999801635742, 0.7883890271186829, 1.4344043731689453, 1.1782517433166504, -0.055412206798791885, 1.181360125541687, 1.0070747137069702, 0.010566162876784801, 0.7430671453475952, -1.3094271421432495, -0.5846343636512756, -1.6623209714889526, 0.026684843003749847, -1.4124529361724854, -2.281818389892578, 0.0564417764544487, 1.2658796310424805, 0.011220576241612434, 0.9789371490478516, 0.9557904005050659, 0.8490694761276245, -0.1302262395620346, 0.9075390696525574, -0.49358880519866943, -0.5958321690559387, -1.5486817359924316, -0.041810132563114166, 1.1898596286773682, 0.2959068715572357, 2.6918270587921143, 2.223395347595215, -1.3701452016830444, -0.2624049484729767, -1.517691731452942, 0.8881090879440308, 1.1544606685638428, 0.7128172516822815, -1.315514326095581, 0.48933160305023193, -0.700773298740387, -0.029375918209552765, 0.579391360282898, 1.2633326053619385, 0.21896147727966309, -0.11156681925058365, -0.7080766558647156, 0.2702360153198242, -2.108222246170044, -0.3397693634033203, -0.42243435978889465, 1.050044059753418, 0.04613560438156128, -0.4944057762622833, -0.13440421223640442, -0.37816929817199707, -0.7152981758117676, 0.8084089159965515, -1.2225075960159302, -0.10255293548107147, 1.9826668500900269, -1.467454195022583, 1.9773476123809814, -1.729110836982727, 1.1601192951202393, -1.348475694656372, 0.22093775868415833, -0.6672937273979187, -0.4173099100589752, -1.0660319328308105, -1.4111077785491943, -1.2239099740982056, -1.5288121700286865, -0.45576322078704834, 0.48872265219688416, -0.6226893663406372, -1.1450115442276, 0.5241085290908813, -0.5726991891860962, 0.40351852774620056, 0.20990529656410217, -1.548029899597168, -1.0206453800201416, 0.4700680077075958, 0.4427017867565155, 0.09577658027410507, -0.19725355505943298, -0.3101944625377655, -0.34652480483055115, 0.7520092725753784, 0.941413164138794, 0.9649139642715454, -0.6088101267814636, -0.20167136192321777, -1.6925978660583496, -0.5981467962265015, -1.3448660373687744, -0.5514708161354065, -0.028670119121670723, -1.3426015377044678, 0.08072619885206223, 1.5958545207977295, -1.6503337621688843, -0.055436551570892334, -1.6728674173355103, 0.23774336278438568, -0.3833022117614746, -0.42257073521614075, 1.0461689233779907, 0.08741367608308792, 0.018965862691402435, -0.0977509394288063, 0.17908397316932678, 1.0398974418640137, -1.1750295162200928, -0.18205787241458893, 0.03236836940050125, -0.8523097634315491, 0.5173633694648743, 0.13369518518447876, -2.498872995376587, 0.14082589745521545, -1.5994393825531006, -0.7628002166748047, 0.2252468466758728, -0.4701251983642578, -0.3071575164794922, -0.5329377055168152, 1.0012000799179077, 0.7104296684265137, 1.1649945974349976, -1.8296258449554443, -0.9256182909011841, -1.5071704387664795, -0.7950112223625183, -0.05482817441225052, 0.8518872857093811, -0.059552282094955444, -1.3565099239349365, 0.29492467641830444, -1.0600460767745972, 0.15583008527755737, 0.9166878461837769, -0.6060828566551208, -1.0624068975448608, -1.80398690700531, 0.5633828043937683, 0.9178082346916199, 2.3891701698303223, -1.4798988103866577, -0.2543520927429199, -1.8974472284317017, -0.36873114109039307, -0.0008959806291386485, 0.29812905192375183, -0.10906799882650375, -0.7375704050064087, 0.28655993938446045, -1.0836763381958008, 0.32602182030677795, -0.6592925786972046, -0.6699185371398926, 0.9233161807060242, -1.7864612340927124, 0.1649598330259323, 0.031419798731803894, -0.8952499032020569, -0.4260540008544922, 2.468506097793579, -0.37541595101356506, -0.564963698387146, -0.5958048105239868, 0.3556337356567383, -1.032448172569275, 0.6945527195930481, 1.1832174062728882, 2.033055543899536, 1.226041316986084, 2.4330198764801025, -0.9627496004104614, 0.7053537368774414, -0.9688326120376587, 0.1341027319431305, -0.5872076749801636, 0.6283500790596008, 0.9987279176712036, -0.23536956310272217, -1.0869905948638916, 1.8072407245635986, -0.9214645624160767, 1.0676264762878418, 0.9178371429443359, 0.7415062189102173, 0.5014165639877319, -0.6044051051139832, -0.9494964480400085, 1.0019569396972656, 0.7716742753982544, 0.17787553369998932, 1.9466439485549927, -2.139784097671509, -0.7951738238334656, -0.22445464134216309, 1.3993936777114868, 0.2631853520870209, -1.156148076057434, -1.5708249807357788, -0.41321060061454773, 0.3070930242538452, 1.7916160821914673, -1.717332124710083, 1.3717986345291138, -1.5348410606384277, 2.8867580890655518, 0.5856883525848389, -0.3741852343082428, -1.4498015642166138, -1.155085563659668, -0.5432812571525574, 0.3923255205154419, 1.7406647205352783, 1.5097085237503052, 1.6401309967041016, 2.6188974380493164, -0.04025779664516449, -1.4336323738098145, 1.741952657699585, 0.2239999771118164, -1.229435682296753, 0.7114067673683167, 2.3705008029937744, 1.910966396331787, -0.3616941571235657, 0.34938541054725647, -0.1468294858932495, 0.033067524433135986, 1.0386029481887817, -0.25609803199768066, 1.1302543878555298, 0.44084951281547546, -2.5435290336608887, -0.028109919279813766, 0.08879854530096054, 0.45148712396621704, -0.7699130177497864, -0.5347936153411865, 0.11504659801721573, -0.5765517354011536, -0.22579294443130493, -0.3402968943119049, 1.175040602684021, 1.126602292060852, 0.3346193730831146, 0.2197839617729187, -1.2185395956039429, 0.0555141419172287, 0.6441340446472168, -1.0810579061508179, 2.281262159347534, -0.48565414547920227, -1.357832670211792, -1.5197396278381348, -0.26663246750831604, -1.1628271341323853, -0.816174328327179, 1.480186104774475, -1.2733838558197021, 0.020608140155673027, 1.1754716634750366, 1.9318090677261353, -2.038297176361084, -0.5877658128738403, -0.18987376987934113, -0.5280963182449341, 2.3893826007843018, 0.5485718250274658, 0.3532811105251312, -1.0893117189407349, 0.20326124131679535, 0.27715161442756653, -0.26697129011154175, 0.8979341983795166, -1.207026481628418, 1.3066307306289673, -0.5015128254890442, -0.5938025712966919, -0.4349900782108307, 1.2381590604782104, 0.6074619293212891, 0.22340331971645355, -2.3131308555603027, 0.5908739566802979, -2.388575315475464, 1.9312057495117188, 0.006335415877401829, -0.7142340540885925, 0.7446445226669312, -0.8874133825302124, 1.0683947801589966, 0.1281774938106537, 0.9259398579597473, -0.5230108499526978, 0.8746739625930786, 0.9119604229927063, -0.5506512522697449, 1.136763095855713, -1.1632018089294434, -0.05478619411587715, -1.2963414192199707, 0.49491798877716064]
}
}
},
"outputs": { "output": { "dtype": "float32", "shape": [512, 2], "tolerance": 0.000002, "relTolerance": 0.00002 } }
},
{
"name": "fft_runtime_axis1_inverse_complex_len16_batch2",
"provenance": {
"notes": "Runtime axis 1 with interleaved complex input and inverse normalization exercises the still-supported shared Stockham branch after the generic FFT path moved to residual arithmetic."
},
"attrs": { "inverse": 1, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 16, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.031, "cosStep": 0.047, "scale": 1.5 }
},
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 16, 2], "tolerance": 0.00002, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n600-b2-half0-fixture",
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 600, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 600, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n672-b2-half1-fixture",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 672, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 337, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n720-b2-half0-fixture",
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 720, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 720, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n768-b2-half0-fixture",
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 768, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 768, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n896-b2-half1-fixture",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 896, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 449, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n960-b2-half0-fixture",
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 960, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 960, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n1000-b2-half1-fixture",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 1000, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 501, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n1152-b2-half1-fixture",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 1152, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 577, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n1344-b2-half0-fixture",
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 1344, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 1344, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n1408-b2-half0-fixture",
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 1408, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 1408, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n1536-b2-half0-fixture",
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 1536, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 1536, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n1792-b2-half1-fixture",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 1792, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 897, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n1920-b2-half0-fixture",
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 1920, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 1920, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n2000-b2-half1-fixture",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2000, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 1001, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n2048-b2-half0-fixture",
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2048, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 2048, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n2052-b2-half1-fixture",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 2052, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 1027, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n600-half0-cycle-cancellation",
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 600, 1],
"data": { "kind": "cycle", "values": [0.125, -0.25, 0.5, -0.125, 0.25, -0.5] }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [1, 600, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n1000-half0-constant-cancellation",
"attrs": { "onesided": 0 },
"inputs": {
"input": { "dtype": "float32", "shape": [1, 1000, 1], "data": { "kind": "constant", "value": 0.125 } }
},
"outputs": {
"output": { "dtype": "float32", "shape": [1, 1000, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n1000-half1-cycle-cancellation",
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 1000, 1],
"data": { "kind": "cycle", "values": [0.125, -0.25, 0.5, -0.125, 0.25, -0.5] }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [1, 501, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "mixed-n1920-half0-cycle-cancellation",
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 1920, 1],
"data": { "kind": "cycle", "values": [0.125, -0.25, 0.5, -0.125, 0.25, -0.5] }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [1, 1920, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "residual_storage_n8192_b4_half1_strict",
"attrs": { "inverse": 0, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [4, 8192, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [4, 4097, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "residual_storage_n8192_b2_half0_strict",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 8192, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 8192, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "residual_storage_n16384_b1_half0_strict",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 16384, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [1, 16384, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "residual_storage_n32768_b1_half1_strict",
"attrs": { "inverse": 0, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 32768, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [1, 16385, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "residual_storage_n8192_half0_cancellation",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 8192, 1],
"data": { "kind": "cycle", "values": [0.125, -0.25, 0.5, -0.125, 0.25, -0.5] }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [1, 8192, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "residual_storage_n32768_half1_cancellation",
"attrs": { "inverse": 0, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 32768, 1],
"data": { "kind": "cycle", "values": [0.125, -0.25, 0.5, -0.125, 0.25, -0.5] }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [1, 16385, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "residual_storage_n4096_b8_half0_strict",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [8, 4096, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [8, 4096, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "residual_storage_n4096_b8_half1_strict",
"attrs": { "inverse": 0, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [8, 4096, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [8, 2049, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "complex_storage_n4096_b1_c1_inv1",
"attrs": { "inverse": 1, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4096, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [1, 4096, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "complex_storage_n4096_b1_c2_inv0",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4096, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [1, 4096, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "complex_storage_n8192_b2_c2_inv0",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 8192, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 8192, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "complex_storage_n16384_b1_c2_inv0",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 16384, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [1, 16384, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
}
},
{
"name": "complex_batch_tiles_n4096_b2",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [2, 4096, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [2, 4096, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
},
"provenance": {
"notes": "Paired complex sin/cos input checks the batch-aware tile budget, including neighboring batches, both sides of the split boundary, and dense-batch controls, at the strict DFT tolerance."
}
},
{
"name": "complex_batch_tiles_n4096_b3",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [3, 4096, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [3, 4096, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
},
"provenance": {
"notes": "Paired complex sin/cos input checks the batch-aware tile budget, including neighboring batches, both sides of the split boundary, and dense-batch controls, at the strict DFT tolerance."
}
},
{
"name": "complex_batch_tiles_n4096_b4",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [4, 4096, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [4, 4096, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
},
"provenance": {
"notes": "Paired complex sin/cos input checks the batch-aware tile budget, including neighboring batches, both sides of the split boundary, and dense-batch controls, at the strict DFT tolerance."
}
},
{
"name": "complex_batch_tiles_n4096_b6",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [6, 4096, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [6, 4096, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
},
"provenance": {
"notes": "Paired complex sin/cos input checks the batch-aware tile budget, including neighboring batches, both sides of the split boundary, and dense-batch controls, at the strict DFT tolerance."
}
},
{
"name": "complex_batch_tiles_n4096_b7",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [7, 4096, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [7, 4096, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
},
"provenance": {
"notes": "Paired complex sin/cos input checks the batch-aware tile budget, including neighboring batches, both sides of the split boundary, and dense-batch controls, at the strict DFT tolerance."
}
},
{
"name": "complex_batch_tiles_n4096_b16",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [16, 4096, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [16, 4096, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
},
"provenance": {
"notes": "Paired complex sin/cos input checks the batch-aware tile budget, including neighboring batches, both sides of the split boundary, and dense-batch controls, at the strict DFT tolerance."
}
},
{
"name": "complex_batch_tiles_n8192_b1",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 8192, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [1, 8192, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
},
"provenance": {
"notes": "Paired complex sin/cos input checks the batch-aware tile budget, including neighboring batches, both sides of the split boundary, and dense-batch controls, at the strict DFT tolerance."
}
},
{
"name": "complex_batch_tiles_n8192_b3",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [3, 8192, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [3, 8192, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
},
"provenance": {
"notes": "Paired complex sin/cos input checks the batch-aware tile budget, including neighboring batches, both sides of the split boundary, and dense-batch controls, at the strict DFT tolerance."
}
},
{
"name": "complex_batch_tiles_n8192_b4",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [4, 8192, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [4, 8192, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
},
"provenance": {
"notes": "Paired complex sin/cos input checks the batch-aware tile budget, including neighboring batches, both sides of the split boundary, and dense-batch controls, at the strict DFT tolerance."
}
},
{
"name": "complex_batch_tiles_n8192_b16",
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [16, 8192, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float32", "shape": [16, 8192, 2], "tolerance": 0.00001, "relTolerance": 0.00001 }
},
"provenance": {
"notes": "Paired complex sin/cos input checks the batch-aware tile budget, including neighboring batches, both sides of the split boundary, and dense-batch controls, at the strict DFT tolerance."
}
},
{
"name": "ort_irfft_overprovided_spectrum_radix2",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_IRFFT_overprovided_spectrum_radix2",
"notes": "Seven half-spectrum bins for dft_length 8, whose one-sided inverse has floor(8/2)+1 = 5 bins: the two extra bins must be ignored, not folded in with weight two. Upstream excludes its CPU provider from this case because that provider's radix-2 path does not trim, so the pinned values are the upstream WebGPU expectation; numpy.fft.irfft on the first five bins reproduces them."
},
"attrs": { "inverse": 1, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 7, 2],
"data": {
"kind": "values",
"values": [1.0, 0.0, 2.0, 1.0, 3.0, -2.0, 4.0, 0.5, -1.0, 0.0, 5.0, 5.0, 6.0, -6.0]
}
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": {
"output": {
"dtype": "float32",
"shape": [1, 8, 1],
"tolerance": 0.001,
"data": {
"kind": "values",
"values": [2.25, 0.131282, -0.875, -0.161612, -0.75, 1.368718, -0.625, -0.338388]
}
}
}
},
{
"name": "irfft_overprovided_spectrum_odd_length",
"provenance": {
"source": "synthetic",
"test": "one-sided inverse given more bins than floor(dft_length/2)+1, odd length",
"notes": "Five bins for dft_length 7, of which floor(7/2)+1 = 4 form the spectrum; the fifth must be ignored. The odd length keeps ONNX Runtime's CPU provider on its Bluestein path, which trims excess bins."
},
"attrs": { "inverse": 1, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 5, 2],
"data": { "kind": "values", "values": [1.0, 0.0, 2.0, 1.0, 3.0, -2.0, 4.0, 0.5, 9.0, 9.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [7] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 7, 1], "tolerance": 0.0001 } }
},
{
"name": "ort_complex_forward_length4_axis1",
"provenance": {
"source": "js/web/test/data/ops/dft.jsonc",
"test": "DFT forward (axis attribute, opset 17) / complex-to-complex, N = 4"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 2],
"data": { "kind": "values", "values": [1.0, 0.0, 2.0, -1.0, 0.0, 0.0, -1.0, 2.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0.00002 } }
},
{
"name": "ort_complex_forward_prime_length7",
"provenance": {
"source": "js/web/test/data/ops/dft.jsonc",
"test": "DFT forward (axis attribute, opset 17) / prime length N = 7 (direct-DFT fallback)"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 7, 2],
"data": {
"kind": "values",
"values": [1.0, 0.0, 0.0, 1.0, 2.0, -1.0, 3.0, 0.0, -1.0, 0.0, 0.0, -2.0, 1.0, 1.0]
}
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 7, 2], "tolerance": 0.00002 } }
},
{
"name": "ort_complex_forward_rank4_axis1_inner2",
"provenance": {
"source": "js/web/test/data/ops/dft.jsonc",
"test": "DFT forward (axis attribute, opset 17) / inner > 1: middle axis of [1, 3, 2, 2]",
"notes": "ORT spells the transform axis as an opset-17 attribute; this package takes it as the optional `axis` input."
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 3, 2, 2],
"data": { "kind": "values", "values": [1.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.0, 2.0, 3.0, 0.0, 0.0, 3.0] }
},
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 3, 2, 2], "tolerance": 0.00002 } }
},
{
"name": "ort_real_onesided_length6",
"provenance": {
"source": "js/web/test/data/ops/dft.jsonc",
"test": "DFT one-sided forward / RFFT (opset 17) / real input, N = 6"
},
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 6, 1],
"data": { "kind": "values", "values": [0.0, 1.0, 2.0, 3.0, 4.0, 5.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0.00002 } }
},
{
"name": "ort_irfft_length6_from_four_bins",
"provenance": {
"source": "js/web/test/data/ops/dft.jsonc",
"test": "DFT one-sided inverse / IRFFT (opset 17) / half spectrum (L = 4) -> full real signal (N = 6)"
},
"attrs": { "inverse": 1, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 2],
"data": { "kind": "values", "values": [15.0, 0.0, -3.0, 5.196152, -3.0, 1.732051, -3.0, 0.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 6, 1], "tolerance": 0.0001 } }
},
{
"name": "ort_complex_dft_length8_zero_pad_axis1",
"provenance": {
"source": "js/web/test/data/ops/dft.jsonc",
"test": "DFT with dft_length and axis inputs (opset 20) / complex input N = 5, dft_length = 8 (zero-padded), axis = 1"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 5, 2],
"data": { "kind": "values", "values": [1.0, 0.0, 2.0, 0.0, 3.0, 0.0, 2.0, 0.0, 1.0, 0.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 8, 2], "tolerance": 0.00002 } }
},
{
"name": "ort_negative_axis_input_minus2_rank3",
"provenance": {
"source": "js/web/test/data/ops/dft.jsonc",
"test": "DFT with dft_length and axis inputs (opset 20) / axis = -2 via input (default), no dft_length"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 4, 2],
"data": { "kind": "values", "values": [1.0, 0.0, 2.0, -1.0, 0.0, 0.0, -1.0, 2.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [4] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [-2] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0.00002 } }
},
{
"name": "ort_real_prime_length7_full",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_prime_length"
},
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 7, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 7, 2], "tolerance": 0.0002 } }
},
{
"name": "ort_real_prime_length7_onesided",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_prime_length_onesided"
},
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 7, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] }
}
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 4, 2], "tolerance": 0.0002 } }
},
{
"name": "ort_real_length5_zero_padded_to_8",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_zero_padded_radix2"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 5, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 8, 2], "tolerance": 0.0002 } }
},
{
"name": "ort_real_length5_zero_padded_to_7",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_zero_padded_prime"
},
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 5, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [7] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 7, 2], "tolerance": 0.0002 } }
},
{
"name": "ort_irfft_underprovided_spectrum_to_8",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_IRFFT_underprovided_spectrum_radix2",
"notes": "Fewer half-spectrum bins than floor(dft_length/2)+1; the missing bins are zero."
},
"attrs": { "inverse": 1, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 3, 2],
"data": { "kind": "values", "values": [1.0, 0.0, 2.0, 1.0, 3.0, -2.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 8, 1], "tolerance": 0.001 } }
},
{
"name": "ort_irfft_underprovided_spectrum_to_7",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_IRFFT_underprovided_spectrum_prime"
},
"attrs": { "inverse": 1, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float32",
"shape": [1, 3, 2],
"data": { "kind": "values", "values": [1.0, 0.0, 2.0, 1.0, 3.0, -2.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [7] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": { "output": { "dtype": "float32", "shape": [1, 7, 1], "tolerance": 0.001 } }
},
{
"name": "ort_f16_radix2_length8_full",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float16_radix2",
"notes": "Half-precision input and output with the transform evaluated in f32; the tolerance is onnxruntime's own absolute bound for this case."
},
"inputs": {
"input": {
"dtype": "float16",
"shape": [1, 8, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
},
"outputs": {
"output": {
"dtype": "float16",
"shape": [1, 8, 2],
"tolerance": 0.05,
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_rank2_complex_axis0_output_output" } }
}
}
},
{
"name": "ort_f16_radix2_length8_dft_length_axis",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_Float16_radix2",
"notes": "The opset-20 spelling of the same half-precision transform: dft_length and axis arrive as tensors."
},
"inputs": {
"input": {
"dtype": "float16",
"shape": [1, 8, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [8] } },
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": {
"output": {
"dtype": "float16",
"shape": [1, 8, 2],
"tolerance": 0.05,
"data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/ort_rank2_complex_axis0_output_output" } }
}
}
},
{
"name": "f16_naive_batch_axis1_length5_full",
"provenance": { "notes": "Half-precision twin of the prime-length naive contiguous route." },
"inputs": {
"input": {
"dtype": "float16",
"shape": [1, 5, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] }
}
},
"outputs": { "output": { "dtype": "float16", "shape": [1, 5, 2], "tolerance": 0.00002, "relTolerance": 0.001 } }
},
{
"name": "f16_rank2_irfft_even_axis0",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT20_2D_complex_onesided_inverse",
"notes": "Half-precision twin of the rank-2 one-sided inverse: the ramp is recovered exactly at half precision, and the tolerance covers the half-precision quantization of the input spectrum."
},
"attrs": { "onesided": 1, "inverse": 1 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [5, 2],
"data": { "kind": "values", "values": [36.0, 0.0, -4.0, 9.65685, -4.0, 4.0, -4.0, 1.65685, -4.0, 0.0] }
}
},
"outputs": {
"output": {
"dtype": "float16",
"shape": [8, 1],
"tolerance": 0.001,
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0] }
}
}
},
{
"name": "f16_rank4_axis2_naive_len5_onesided",
"provenance": {
"notes": "Half-precision twin of the rank-4 default-axis route with a one-sided prime-length spectrum."
},
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [1, 2, 5, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.031, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float16", "shape": [1, 2, 3, 2], "tolerance": 0.0001, "relTolerance": 0.001 } }
},
{
"name": "f16_general_attr_rank5_axis3",
"provenance": {
"notes": "Half-precision twin of the attribute-axis general kernel at a batch rank the fixed-layout routes do not serve."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [2, 1, 2, 4, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.29, "scale": 0.5 }
}
},
"outputs": {
"output": { "dtype": "float16", "shape": [2, 1, 2, 4, 2], "tolerance": 0.00002, "relTolerance": 0.001 }
}
},
{
"name": "f16_general_axis_rank4_axis1_len5",
"provenance": {
"notes": "Float16 DFT over a prime-length axis in a rank-four tensor checks general axis indexing."
},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } },
"input": {
"dtype": "float16",
"shape": [1, 5, 3, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.037, "cosStep": 0.061, "scale": 2.0 }
}
},
"outputs": { "output": { "dtype": "float16", "shape": [1, 5, 3, 2], "tolerance": 0.0001, "relTolerance": 0.001 } }
},
{
"name": "f16_general_len_length5_zero_padded_to_7",
"provenance": {
"source": "onnxruntime/test/providers/cpu/signal/signal_ops_test.cc",
"test": "SignalOpsTest.DFT17_Float_zero_padded_prime",
"notes": "Half-precision twin of the dft_length-only zero-padded transform."
},
"inputs": {
"input": {
"dtype": "float16",
"shape": [1, 5, 1],
"data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0] }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [7] } }
},
"outputs": { "output": { "dtype": "float16", "shape": [1, 7, 2], "tolerance": 0.0002, "relTolerance": 0.001 } }
},
{
"name": "f16_fft_explicit_equal_length16_batch2_onesided",
"provenance": {
"notes": "Half-precision twin of the explicit dft_length equal to the signal length on the shared Stockham route."
},
"attrs": { "inverse": 0, "onesided": 1 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [2, 16, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.033, "cosStep": 0.052, "scale": 2.0 }
},
"dft_length": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [16] } }
},
"outputs": { "output": { "dtype": "float16", "shape": [2, 9, 2], "tolerance": 0.002, "relTolerance": 0.001 } }
},
{
"name": "f16_fft_runtime_axis1_inverse_complex_len16_batch2",
"provenance": {
"notes": "Half-precision twin of the rank-3 runtime-axis shared Stockham route with complex input and inverse normalization."
},
"attrs": { "inverse": 1, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [2, 16, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.031, "cosStep": 0.047, "scale": 1.5 }
},
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [1] } }
},
"outputs": { "output": { "dtype": "float16", "shape": [2, 16, 2], "tolerance": 0.00002, "relTolerance": 0.001 } }
},
{
"name": "f16_runtime_axis_fft_rank2_axis0_real_len64",
"provenance": {
"notes": "Half-precision twin of the any-rank runtime-axis shared FFT at the smallest admissible power-of-two length."
},
"inputs": {
"axis": { "dtype": "int32", "shape": [], "data": { "kind": "values", "values": [0] } },
"input": {
"dtype": "float16",
"shape": [64, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.019, "cosStep": 0.041, "scale": 1.0 }
}
},
"outputs": { "output": { "dtype": "float16", "shape": [64, 2], "tolerance": 0.002, "relTolerance": 0.001 } }
},
{
"name": "f16_mixed_fft_n600_real_full",
"provenance": {
"notes": "Half-precision twin of the compensated mixed-factor FFT for a non-power-of-two real signal."
},
"attrs": { "onesided": 0 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [1, 600, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.017, "cosStep": 0.037, "scale": 0.5 }
}
},
"outputs": { "output": { "dtype": "float16", "shape": [1, 600, 2], "tolerance": 0.00002, "relTolerance": 0.001 } }
},
{
"name": "f16_tiled_real_nonpow2_len513_onesided",
"provenance": {
"notes": "Half-precision twin of the tiled direct transform for large odd real signals, where no small radix factor exists."
},
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [1, 513, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.5 }
}
},
"outputs": { "output": { "dtype": "float16", "shape": [1, 257, 2], "tolerance": 0.03, "relTolerance": 0.001 } }
},
{
"name": "f16_fft_real_packed_len4096_onesided",
"provenance": {
"notes": "Half-precision twin of the half-length packed real FFT, whose paired-root table and residual pairs stay in f32 while only the signal and spectrum are half precision."
},
"attrs": { "onesided": 1 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [1, 4096, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.009, "cosStep": 0.017, "scale": 0.3 }
}
},
"outputs": { "output": { "dtype": "float16", "shape": [1, 2049, 2], "tolerance": 0.35, "relTolerance": 0.001 } }
},
{
"name": "f16_residual_tiles_real_len8192_full",
"provenance": {
"notes": "Half-precision twin of the residue-class tiled real FFT and its paired-root gather; the tile scratch and twiddles remain f32."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [1, 8192, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": { "output": { "dtype": "float16", "shape": [1, 8192, 2], "tolerance": 0.0001, "relTolerance": 0.001 } }
},
{
"name": "f16_residual_tiles_complex_len4096_b2",
"provenance": {
"notes": "Half-precision twin of the complex residue-class tiled FFT with batches supplying the parallel tiles."
},
"attrs": { "inverse": 0, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [2, 4096, 2],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": { "output": { "dtype": "float16", "shape": [2, 4096, 2], "tolerance": 0.0001, "relTolerance": 0.001 } }
},
{
"name": "f16_inverse_len4096_off_storage_inplace_route",
"provenance": {
"notes": "An inverse 4,096-point float16 DFT checks intermediate precision before float16 output rounding."
},
"attrs": { "inverse": 1, "onesided": 0 },
"inputs": {
"input": {
"dtype": "float16",
"shape": [1, 4096, 1],
"data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.31, "scale": 0.3 }
}
},
"outputs": {
"output": { "dtype": "float16", "shape": [1, 4096, 2], "tolerance": 0.00001, "relTolerance": 0.001 }
}
}
]
}