{
  "runtime": "3.12.14",
  "numpy": "2.3.5",
  "a": [
    1,
    2,
    3
  ],
  "b": [
    1,
    -1
  ],
  "linear_loop": [
    1,
    1,
    1,
    -3
  ],
  "numpy_convolve_full": [
    1,
    1,
    1,
    -3
  ],
  "fft_length3_circular": [
    -2.0,
    1.0,
    1.0
  ],
  "folded_linear_length3_oracle": [
    -2,
    1,
    1
  ],
  "fft_length4_zero_padded": [
    1.0,
    1.0,
    1.0,
    -3.0
  ],
  "absolute_tolerance": 1e-12,
  "impulses": [
    {
      "a": [
        1,
        0,
        0
      ],
      "b": [
        2,
        -1
      ],
      "fft": [
        2.0,
        -1.0,
        0.0,
        0.0
      ],
      "direct": [
        2,
        -1,
        0,
        0
      ]
    },
    {
      "a": [
        0,
        1,
        0
      ],
      "b": [
        2,
        -1
      ],
      "fft": [
        0.0,
        2.0,
        -1.0,
        0.0
      ],
      "direct": [
        0,
        2,
        -1,
        0
      ]
    },
    {
      "a": [
        1
      ],
      "b": [
        1,
        -1
      ],
      "fft": [
        1.0,
        -1.0
      ],
      "direct": [
        1,
        -1
      ]
    }
  ],
  "rejected": [
    "ValueError",
    "ValueError",
    "ValueError"
  ],
  "scope": "Tiny real-valued fixtures, no FFT speed benchmark/SciPy run/audio filtering/model training; padding length at least N+M-1 for full linear result."
}
