Files
smoothlife/tests/fixtures/contract/legacy_packed_fft.json

4858 lines
111 KiB
JSON

{
"format_version": 1,
"description": "Legacy adjacent-real packed unitary 1D/2D/3D FFT with operation-ordered IEEE-f32 stages.",
"operation_order": {
"butterfly_real": "f32(f32(f32(a.r + f32(cos*b.r)) - f32(sin*b.i)) * f32(1/sqrt(2)))",
"butterfly_imag": "f32(f32(f32(a.i + f32(cos*b.i)) + f32(sin*b.r)) * f32(1/sqrt(2)))",
"complex_multiply": "real=f32(f32(ar*br)-f32(ai*bi)); imag=f32(f32(ar*bi)+f32(ai*br))",
"kernel_scaling": "scale each kernel spectrum component first by f32(sqrt(sample_count)/kernel_sum)"
},
"layout": "adjacent x samples become real/imag; spectrum x extent is Nx/2+1; x remains fastest",
"cases": [
{
"shape": [
8
],
"packed_shape": [
5
],
"input_f32": {
"decimal": [
0.0555555559694767,
0.4444444477558136,
0.8333333134651184,
0.1666666716337204,
0.5555555820465088,
0.9444444179534912,
0.2777777910232544,
0.6666666865348816
],
"bits": [
"0x3d638e39",
"0x3ee38e39",
"0x3f555555",
"0x3e2aaaab",
"0x3f0e38e4",
"0x3f71c71c",
"0x3e8e38e4",
"0x3f2aaaab"
]
},
"kernel_f32": {
"decimal": [
0.35384616255760193,
0.7384615540504456,
0.2769230902194977,
0.6615384817123413,
0.20000000298023224,
0.5846154093742371,
0.9692307710647583,
0.5076923370361328
],
"bits": [
"0x3eb52b53",
"0x3f3d0bd1",
"0x3e8dc8dd",
"0x3f295a96",
"0x3e4ccccd",
"0x3f15a95b",
"0x3f781f82",
"0x3f01f820"
]
},
"kernel_sum_f64": 4.292307692307693,
"scales_f32": {
"unitary_butterfly": {
"decimal": 0.7071067690849304,
"bits": "0x3f3504f3"
},
"forward_real_conversion": {
"decimal": 0.3535533845424652,
"bits": "0x3eb504f3"
},
"inverse_real_conversion": {
"decimal": 0.7071067690849304,
"bits": "0x3f3504f3"
},
"spectral_correction": {
"decimal": 0.658952534198761,
"bits": "0x3f28b11d"
}
},
"plans": {
"x_forward_butterflies": [
{
"stage": 1,
"entries": [
{
"output": 0,
"source": [
0,
2
],
"twiddle": {
"decimal": [
1.0,
-0.0
],
"bits": [
"0x3f800000",
"0x80000000"
]
}
},
{
"output": 1,
"source": [
0,
2
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
},
{
"output": 2,
"source": [
1,
3
],
"twiddle": {
"decimal": [
1.0,
-0.0
],
"bits": [
"0x3f800000",
"0x80000000"
]
}
},
{
"output": 3,
"source": [
1,
3
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
}
]
},
{
"stage": 2,
"entries": [
{
"output": 0,
"source": [
0,
2
],
"twiddle": {
"decimal": [
1.0,
-0.0
],
"bits": [
"0x3f800000",
"0x80000000"
]
}
},
{
"output": 1,
"source": [
1,
3
],
"twiddle": {
"decimal": [
6.123234262925839e-17,
-1.0
],
"bits": [
"0x248d3132",
"0xbf800000"
]
}
},
{
"output": 2,
"source": [
0,
2
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
},
{
"output": 3,
"source": [
1,
3
],
"twiddle": {
"decimal": [
-1.8369701465288538e-16,
1.0
],
"bits": [
"0xa553c9ca",
"0x3f800000"
]
}
}
]
}
],
"x_forward_real_conversion": [
{
"output": 0,
"source": [
0,
0
],
"twiddle": {
"decimal": [
6.123234262925839e-17,
-1.0
],
"bits": [
"0x248d3132",
"0xbf800000"
]
}
},
{
"output": 1,
"source": [
1,
3
],
"twiddle": {
"decimal": [
-0.7071067690849304,
-0.7071067690849304
],
"bits": [
"0xbf3504f3",
"0xbf3504f3"
]
}
},
{
"output": 2,
"source": [
2,
2
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
},
{
"output": 3,
"source": [
3,
1
],
"twiddle": {
"decimal": [
-0.7071067690849304,
0.7071067690849304
],
"bits": [
"0xbf3504f3",
"0x3f3504f3"
]
}
},
{
"output": 4,
"source": [
0,
0
],
"twiddle": {
"decimal": [
-1.8369701465288538e-16,
1.0
],
"bits": [
"0xa553c9ca",
"0x3f800000"
]
}
}
],
"x_inverse_real_conversion": [
{
"output": 0,
"source": [
0,
4
],
"twiddle": {
"decimal": [
6.123234262925839e-17,
1.0
],
"bits": [
"0x248d3132",
"0x3f800000"
]
}
},
{
"output": 1,
"source": [
1,
3
],
"twiddle": {
"decimal": [
-0.7071067690849304,
0.7071067690849304
],
"bits": [
"0xbf3504f3",
"0x3f3504f3"
]
}
},
{
"output": 2,
"source": [
2,
2
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
},
{
"output": 3,
"source": [
3,
1
],
"twiddle": {
"decimal": [
-0.7071067690849304,
-0.7071067690849304
],
"bits": [
"0xbf3504f3",
"0xbf3504f3"
]
}
},
{
"output": 4,
"source": [
4,
0
],
"twiddle": {
"decimal": [
-1.8369701465288538e-16,
-1.0
],
"bits": [
"0xa553c9ca",
"0xbf800000"
]
}
}
],
"x_inverse_butterflies": [
{
"stage": 1,
"entries": [
{
"output": 0,
"source": [
0,
2
],
"twiddle": {
"decimal": [
1.0,
0.0
],
"bits": [
"0x3f800000",
"0x00000000"
]
}
},
{
"output": 1,
"source": [
0,
2
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
},
{
"output": 2,
"source": [
1,
3
],
"twiddle": {
"decimal": [
1.0,
0.0
],
"bits": [
"0x3f800000",
"0x00000000"
]
}
},
{
"output": 3,
"source": [
1,
3
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
}
]
},
{
"stage": 2,
"entries": [
{
"output": 0,
"source": [
0,
2
],
"twiddle": {
"decimal": [
1.0,
0.0
],
"bits": [
"0x3f800000",
"0x00000000"
]
}
},
{
"output": 1,
"source": [
1,
3
],
"twiddle": {
"decimal": [
6.123234262925839e-17,
1.0
],
"bits": [
"0x248d3132",
"0x3f800000"
]
}
},
{
"output": 2,
"source": [
0,
2
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
},
{
"output": 3,
"source": [
1,
3
],
"twiddle": {
"decimal": [
-1.8369701465288538e-16,
-1.0
],
"bits": [
"0xa553c9ca",
"0xbf800000"
]
}
}
]
}
]
},
"forward_field_stages": [
{
"name": "adjacent_real_pack",
"values": {
"decimal": [
[
0.0555555559694767,
0.4444444477558136
],
[
0.8333333134651184,
0.1666666716337204
],
[
0.5555555820465088,
0.9444444179534912
],
[
0.2777777910232544,
0.6666666865348816
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3d638e39",
"0x3ee38e39"
],
[
"0x3f555555",
"0x3e2aaaab"
],
[
"0x3f0e38e4",
"0x3f71c71c"
],
[
"0x3e8e38e4",
"0x3f2aaaab"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "x_butterfly_1",
"values": {
"decimal": [
[
0.43212082982063293,
0.9820926785469055
],
[
-0.3535533845424652,
-0.3535533547401428
],
[
0.7856742143630981,
0.589255690574646
],
[
0.3928370773792267,
-0.3535533845424652
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3edd3ef1",
"0x3f7b6a6d"
],
[
"0xbeb504f3",
"0xbeb504f2"
],
[
"0x3f4921f2",
"0x3f16d976"
],
[
"0x3ec921f1",
"0xbeb504f3"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "x_butterfly_2",
"values": {
"decimal": [
[
0.8611111044883728,
1.1111111640930176
],
[
-0.4999999701976776,
-0.5277777314186096
],
[
-0.2499999850988388,
0.27777770161628723
],
[
0.0,
0.027777785435318947
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3f5c71c7",
"0x3f8e38e4"
],
[
"0xbeffffff",
"0xbf071c71"
],
[
"0xbe7fffff",
"0x3e8e38e1"
],
[
"0x00000000",
"0x3ce38e3d"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "x_real_to_half_complex",
"values": {
"decimal": [
[
1.3945717811584473,
4.810867222485138e-17
],
[
-0.1767766773700714,
0.05358143523335457
],
[
-0.1767766773700714,
-0.19641849398612976
],
[
-0.1767766773700714,
0.44641849398612976
],
[
-0.1767767369747162,
-1.4432601005710924e-16
]
],
"bits": [
[
"0x3fb28154",
"0x245ddcb2"
],
[
"0xbe3504f2",
"0x3d5b7835"
],
[
"0xbe3504f2",
"0xbe4921ee"
],
[
"0xbe3504f2",
"0x3ee490f7"
],
[
"0xbe3504f6",
"0xa5266585"
]
]
}
}
],
"field_spectrum": {
"decimal": [
[
1.3945717811584473,
4.810867222485138e-17
],
[
-0.1767766773700714,
0.05358143523335457
],
[
-0.1767766773700714,
-0.19641849398612976
],
[
-0.1767766773700714,
0.44641849398612976
],
[
-0.1767767369747162,
-1.4432601005710924e-16
]
],
"bits": [
[
"0x3fb28154",
"0x245ddcb2"
],
[
"0xbe3504f2",
"0x3d5b7835"
],
[
"0xbe3504f2",
"0xbe4921ee"
],
[
"0xbe3504f2",
"0x3ee490f7"
],
[
"0xbe3504f6",
"0xa5266585"
]
]
},
"kernel_spectrum": {
"decimal": [
[
1.5175600051879883,
5.3955724116135564e-17
],
[
0.054392825812101364,
0.16784465312957764
],
[
-0.2447677105665207,
-0.05439281463623047
],
[
0.054392825812101364,
-0.32169079780578613
],
[
-0.24476774036884308,
-1.6186714918734954e-16
]
],
"bits": [
[
"0x3fc23f68",
"0x2478d3ad"
],
[
"0x3d5ecb03",
"0x3e2bdf78"
],
[
"0xbe7aa463",
"0xbd5ecb00"
],
[
"0x3d5ecb03",
"0xbea4b4a8"
],
[
"0xbe7aa465",
"0xa53a9ec0"
]
]
},
"spectral_product": {
"decimal": [
[
1.3945717811584473,
9.769164499906827e-17
],
[
-0.01226227730512619,
-0.01763131096959114
],
[
0.021472277119755745,
0.03801647573709488
],
[
0.08829525858163834,
0.05347359925508499
],
[
0.02851237542927265,
4.2133883794654307e-17
]
],
"bits": [
[
"0x3fb28154",
"0x24e142f8"
],
[
"0xbc48e7b8",
"0xbc906f8a"
],
[
"0x3cafe6a1",
"0x3d1bb72a"
],
[
"0x3db4d425",
"0x3d5b0722"
],
[
"0x3ce992c9",
"0x24424ee9"
]
]
},
"inverse_product_stages": [
{
"name": "x_half_complex_to_packed_real",
"values": {
"decimal": [
[
1.0062724351882935,
0.9659498929977417
],
[
0.08612105995416641,
-0.1184786781668663
],
[
0.030366385355591774,
-0.05376341566443443
],
[
0.021405814215540886,
-0.017921146005392075
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3f80cd89",
"0x3f77487e"
],
[
"0x3db0603d",
"0xbdf2a4f3"
],
[
"0x3cf8c2ed",
"0xbd5c3707"
],
[
"0x3caf5b3f",
"0xbc92cf5e"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "x_inverse_butterfly_1",
"values": {
"decimal": [
[
0.7330143451690674,
0.6450132727622986
],
[
0.6900697946548462,
0.7210461497306824
],
[
0.07603298127651215,
-0.09644923359155655
],
[
0.045760586857795715,
-0.07110491394996643
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3f3ba6d4",
"0x3f251f97"
],
[
"0x3f30a86a",
"0x3f38967b"
],
[
"0x3d9bb72e",
"0xbdc5872d"
],
[
"0x3d3b6f74",
"0xbd919f74"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "x_inverse_butterfly_2",
"values": {
"decimal": [
[
0.5720828771591187,
0.38789331912994385
],
[
0.5382317900657654,
0.5422142148017883
],
[
0.464555948972702,
0.5242931842803955
],
[
0.43767428398132324,
0.47749900817871094
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3f127406",
"0x3ec699f4"
],
[
"0x3f09c98f",
"0x3f0ace8d"
],
[
"0x3eedda47",
"0x3f063814"
],
[
"0x3ee016d8",
"0x3ef47ac0"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "adjacent_real_unpack",
"values": {
"decimal": [
0.5720828771591187,
0.38789331912994385,
0.5382317900657654,
0.5422142148017883,
0.464555948972702,
0.5242931842803955,
0.43767428398132324,
0.47749900817871094
],
"bits": [
"0x3f127406",
"0x3ec699f4",
"0x3f09c98f",
"0x3f0ace8d",
"0x3eedda47",
"0x3f063814",
"0x3ee016d8",
"0x3ef47ac0"
]
}
}
],
"convolution_f32": {
"decimal": [
0.5720828771591187,
0.38789331912994385,
0.5382317900657654,
0.5422142148017883,
0.464555948972702,
0.5242931842803955,
0.43767428398132324,
0.47749900817871094
],
"bits": [
"0x3f127406",
"0x3ec699f4",
"0x3f09c98f",
"0x3f0ace8d",
"0x3eedda47",
"0x3f063814",
"0x3ee016d8",
"0x3ef47ac0"
]
},
"direct_normalized_f64": [
0.5720828355236958,
0.3878932696136997,
0.538231780167264,
0.5422142572680205,
0.46455595380326553,
0.5242931103146156,
0.43767423337315803,
0.4774990043807247
],
"max_abs_error_to_direct": 7.39657799453397e-08
},
{
"shape": [
4,
4
],
"packed_shape": [
3,
4
],
"input_f32": {
"decimal": [
0.0555555559694767,
0.4444444477558136,
0.8333333134651184,
0.1666666716337204,
0.5555555820465088,
0.9444444179534912,
0.2777777910232544,
0.6666666865348816,
0.0,
0.3888888955116272,
0.7777777910232544,
0.1111111119389534,
0.5,
0.8888888955116272,
0.2222222238779068,
0.6111111044883728
],
"bits": [
"0x3d638e39",
"0x3ee38e39",
"0x3f555555",
"0x3e2aaaab",
"0x3f0e38e4",
"0x3f71c71c",
"0x3e8e38e4",
"0x3f2aaaab",
"0x00000000",
"0x3ec71c72",
"0x3f471c72",
"0x3de38e39",
"0x3f000000",
"0x3f638e39",
"0x3e638e39",
"0x3f1c71c7"
]
},
"kernel_f32": {
"decimal": [
0.35384616255760193,
0.7384615540504456,
0.2769230902194977,
0.6615384817123413,
0.20000000298023224,
0.5846154093742371,
0.9692307710647583,
0.5076923370361328,
0.892307698726654,
0.4307692348957062,
0.8153846263885498,
0.35384616255760193,
0.7384615540504456,
0.2769230902194977,
0.6615384817123413,
0.20000000298023224
],
"bits": [
"0x3eb52b53",
"0x3f3d0bd1",
"0x3e8dc8dd",
"0x3f295a96",
"0x3e4ccccd",
"0x3f15a95b",
"0x3f781f82",
"0x3f01f820",
"0x3f646e47",
"0x3edc8dc9",
"0x3f50bd0c",
"0x3eb52b53",
"0x3f3d0bd1",
"0x3e8dc8dd",
"0x3f295a96",
"0x3e4ccccd"
]
},
"kernel_sum_f64": 8.661538461538463,
"scales_f32": {
"unitary_butterfly": {
"decimal": 0.7071067690849304,
"bits": "0x3f3504f3"
},
"forward_real_conversion": {
"decimal": 0.3535533845424652,
"bits": "0x3eb504f3"
},
"inverse_real_conversion": {
"decimal": 0.7071067690849304,
"bits": "0x3f3504f3"
},
"spectral_correction": {
"decimal": 0.46181172132492065,
"bits": "0x3eec7296"
}
},
"plans": {
"x_forward_butterflies": [
{
"stage": 1,
"entries": [
{
"output": 0,
"source": [
0,
1
],
"twiddle": {
"decimal": [
1.0,
-0.0
],
"bits": [
"0x3f800000",
"0x80000000"
]
}
},
{
"output": 1,
"source": [
0,
1
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
}
]
}
],
"x_forward_real_conversion": [
{
"output": 0,
"source": [
0,
0
],
"twiddle": {
"decimal": [
6.123234262925839e-17,
-1.0
],
"bits": [
"0x248d3132",
"0xbf800000"
]
}
},
{
"output": 1,
"source": [
1,
1
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
},
{
"output": 2,
"source": [
0,
0
],
"twiddle": {
"decimal": [
-1.8369701465288538e-16,
1.0
],
"bits": [
"0xa553c9ca",
"0x3f800000"
]
}
}
],
"x_inverse_real_conversion": [
{
"output": 0,
"source": [
0,
2
],
"twiddle": {
"decimal": [
6.123234262925839e-17,
1.0
],
"bits": [
"0x248d3132",
"0x3f800000"
]
}
},
{
"output": 1,
"source": [
1,
1
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
},
{
"output": 2,
"source": [
2,
0
],
"twiddle": {
"decimal": [
-1.8369701465288538e-16,
-1.0
],
"bits": [
"0xa553c9ca",
"0xbf800000"
]
}
}
],
"x_inverse_butterflies": [
{
"stage": 1,
"entries": [
{
"output": 0,
"source": [
0,
1
],
"twiddle": {
"decimal": [
1.0,
0.0
],
"bits": [
"0x3f800000",
"0x00000000"
]
}
},
{
"output": 1,
"source": [
0,
1
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
}
]
}
],
"y_forward_butterflies": [
{
"stage": 1,
"entries": [
{
"output": 0,
"source": [
0,
2
],
"twiddle": {
"decimal": [
1.0,
-0.0
],
"bits": [
"0x3f800000",
"0x80000000"
]
}
},
{
"output": 1,
"source": [
0,
2
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
},
{
"output": 2,
"source": [
1,
3
],
"twiddle": {
"decimal": [
1.0,
-0.0
],
"bits": [
"0x3f800000",
"0x80000000"
]
}
},
{
"output": 3,
"source": [
1,
3
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
}
]
},
{
"stage": 2,
"entries": [
{
"output": 0,
"source": [
0,
2
],
"twiddle": {
"decimal": [
1.0,
-0.0
],
"bits": [
"0x3f800000",
"0x80000000"
]
}
},
{
"output": 1,
"source": [
1,
3
],
"twiddle": {
"decimal": [
6.123234262925839e-17,
-1.0
],
"bits": [
"0x248d3132",
"0xbf800000"
]
}
},
{
"output": 2,
"source": [
0,
2
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
},
{
"output": 3,
"source": [
1,
3
],
"twiddle": {
"decimal": [
-1.8369701465288538e-16,
1.0
],
"bits": [
"0xa553c9ca",
"0x3f800000"
]
}
}
]
}
],
"y_inverse_butterflies": [
{
"stage": 1,
"entries": [
{
"output": 0,
"source": [
0,
2
],
"twiddle": {
"decimal": [
1.0,
0.0
],
"bits": [
"0x3f800000",
"0x00000000"
]
}
},
{
"output": 1,
"source": [
0,
2
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
},
{
"output": 2,
"source": [
1,
3
],
"twiddle": {
"decimal": [
1.0,
0.0
],
"bits": [
"0x3f800000",
"0x00000000"
]
}
},
{
"output": 3,
"source": [
1,
3
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
}
]
},
{
"stage": 2,
"entries": [
{
"output": 0,
"source": [
0,
2
],
"twiddle": {
"decimal": [
1.0,
0.0
],
"bits": [
"0x3f800000",
"0x00000000"
]
}
},
{
"output": 1,
"source": [
1,
3
],
"twiddle": {
"decimal": [
6.123234262925839e-17,
1.0
],
"bits": [
"0x248d3132",
"0x3f800000"
]
}
},
{
"output": 2,
"source": [
0,
2
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
},
{
"output": 3,
"source": [
1,
3
],
"twiddle": {
"decimal": [
-1.8369701465288538e-16,
-1.0
],
"bits": [
"0xa553c9ca",
"0xbf800000"
]
}
}
]
}
]
},
"forward_field_stages": [
{
"name": "adjacent_real_pack",
"values": {
"decimal": [
[
0.0555555559694767,
0.4444444477558136
],
[
0.8333333134651184,
0.1666666716337204
],
[
0.0,
0.0
],
[
0.5555555820465088,
0.9444444179534912
],
[
0.2777777910232544,
0.6666666865348816
],
[
0.0,
0.0
],
[
0.0,
0.3888888955116272
],
[
0.7777777910232544,
0.1111111119389534
],
[
0.0,
0.0
],
[
0.5,
0.8888888955116272
],
[
0.2222222238779068,
0.6111111044883728
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3d638e39",
"0x3ee38e39"
],
[
"0x3f555555",
"0x3e2aaaab"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f0e38e4",
"0x3f71c71c"
],
[
"0x3e8e38e4",
"0x3f2aaaab"
],
[
"0x00000000",
"0x00000000"
],
[
"0x00000000",
"0x3ec71c72"
],
[
"0x3f471c72",
"0x3de38e39"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f000000",
"0x3f638e39"
],
[
"0x3e638e39",
"0x3f1c71c7"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "x_butterfly_1",
"values": {
"decimal": [
[
0.6285393834114075,
0.43212080001831055
],
[
-0.549971878528595,
0.19641855359077454
],
[
0.0,
0.0
],
[
0.589255690574646,
1.1392276287078857
],
[
0.19641855359077454,
0.19641850888729095
],
[
0.0,
0.0
],
[
0.5499719381332397,
0.3535533845424652
],
[
-0.5499719381332397,
0.19641855359077454
],
[
0.0,
0.0
],
[
0.5106881856918335,
1.0606601238250732
],
[
0.19641855359077454,
0.19641855359077454
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3f20e7f5",
"0x3edd3ef0"
],
[
"0xbf0ccaf5",
"0x3e4921f2"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f16d976",
"0x3f91d236"
],
[
"0x3e4921f2",
"0x3e4921ef"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f0ccaf6",
"0x3eb504f3"
],
[
"0xbf0ccaf6",
"0x3e4921f2"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f02bc76",
"0x3f87c3b6"
],
[
"0x3e4921f2",
"0x3e4921f2"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "x_real_to_half_complex",
"values": {
"decimal": [
[
0.7499999403953552,
1.8709882470051176e-17
],
[
-0.3888888359069824,
-0.1388888955116272
],
[
0.1388889104127884,
-5.612964410143108e-17
],
[
1.2222222089767456,
4.932605378468037e-17
],
[
0.1388888955116272,
-0.13888885080814362
],
[
-0.3888888657093048,
-1.4797815142787377e-16
],
[
0.6388888955116272,
1.5308084002953373e-17
],
[
-0.3888888657093048,
-0.1388888955116272
],
[
0.1388888955116272,
-4.5924253663221344e-17
],
[
1.111111044883728,
4.5924253663221344e-17
],
[
0.1388888955116272,
-0.1388888955116272
],
[
-0.3888888657093048,
-1.3777275437221913e-16
]
],
"bits": [
[
"0x3f3fffff",
"0x23ac9176"
],
[
"0xbec71c70",
"0xbe0e38e4"
],
[
"0x3e0e38e5",
"0xa4816d18"
],
[
"0x3f9c71c7",
"0x246379ed"
],
[
"0x3e0e38e4",
"0xbe0e38e1"
],
[
"0xbec71c71",
"0xa52a9b71"
],
[
"0x3f238e39",
"0x238d3131"
],
[
"0xbec71c71",
"0xbe0e38e4"
],
[
"0x3e0e38e4",
"0xa453c9ca"
],
[
"0x3f8e38e3",
"0x2453c9ca"
],
[
"0x3e0e38e4",
"0xbe0e38e4"
],
[
"0xbec71c71",
"0xa51ed757"
]
]
}
},
{
"name": "y_butterfly_1",
"values": {
"decimal": [
[
0.9820926785469055,
2.405433611242569e-17
],
[
-0.549971878528595,
-0.19641855359077454
],
[
0.19641855359077454,
-7.216300502855462e-17
],
[
0.07856737077236176,
-5.291953812384754e-17
],
[
2.107342389479072e-08,
3.3676067910418006e-17
],
[
1.053671194739536e-08,
-1.9243468559068307e-17
],
[
1.6499156951904297,
6.735214243828091e-17
],
[
0.19641855359077454,
-0.19641850888729095
],
[
-0.549971878528595,
-2.0205640084506313e-16
],
[
0.07856745272874832,
-9.381189661095365e-17
],
[
-1.2027168056212845e-17,
3.161013495400766e-08
],
[
-1.1930515344461692e-32,
2.6459762444478868e-17
]
],
"bits": [
[
"0x3f7b6a6d",
"0x23dddcb2"
],
[
"0xbf0ccaf5",
"0xbe4921f2"
],
[
"0x3e4921f2",
"0xa4a66585"
],
[
"0x3da0e7ee",
"0xa4740c5d"
],
[
"0x32b504f3",
"0x241b4daf"
],
[
"0x323504f3",
"0xa3b17d5b"
],
[
"0x3fd33070",
"0x249b4db0"
],
[
"0x3e4921f2",
"0xbe4921ef"
],
[
"0xbf0ccaf5",
"0xa568f486"
],
[
"0x3da0e7f9",
"0xa4d850c5"
],
[
"0xa35ddcb2",
"0x3307c3b6"
],
[
"0x8a77c980",
"0x23f40c59"
]
]
}
},
{
"name": "y_butterfly_2",
"values": {
"decimal": [
[
1.8611109256744385,
6.463413944199497e-17
],
[
-0.24999995529651642,
-0.2777777314186096
],
[
-0.24999995529651642,
-1.939023984736502e-16
],
[
0.055555518716573715,
-0.05555557832121849
],
[
3.725290298461914e-08,
3.2317069720997485e-17
],
[
7.450580152834618e-09,
-1.360718725094631e-17
],
[
-0.4722221791744232,
-1.7349161759723074e-16
],
[
-0.5277777314186096,
-3.161013495400766e-08
],
[
0.5277777314186096,
1.3947366270475477e-16
],
[
0.055555518716573715,
0.05555557832121849
],
[
-7.4505797087454084e-09,
1.5308079039869698e-17
],
[
7.450580152834618e-09,
-1.360718725094631e-17
]
],
"bits": [
[
"0x3fee38e2",
"0x24950943"
],
[
"0xbe7ffffd",
"0xbe8e38e2"
],
[
"0xbe7ffffd",
"0xa55f8de3"
],
[
"0x3d638e2f",
"0xbd638e3f"
],
[
"0x33200000",
"0x24150943"
],
[
"0x31ffffff",
"0xa37b0220"
],
[
"0xbef1c71b",
"0xa54805b0"
],
[
"0xbf071c71",
"0xb307c3b6"
],
[
"0x3f071c71",
"0x2520cd5c"
],
[
"0x3d638e2f",
"0x3d638e3f"
],
[
"0xb1fffffe",
"0x238d312e"
],
[
"0x31ffffff",
"0xa37b0220"
]
]
}
}
],
"field_spectrum": {
"decimal": [
[
1.8611109256744385,
6.463413944199497e-17
],
[
-0.24999995529651642,
-0.2777777314186096
],
[
-0.24999995529651642,
-1.939023984736502e-16
],
[
0.055555518716573715,
-0.05555557832121849
],
[
3.725290298461914e-08,
3.2317069720997485e-17
],
[
7.450580152834618e-09,
-1.360718725094631e-17
],
[
-0.4722221791744232,
-1.7349161759723074e-16
],
[
-0.5277777314186096,
-3.161013495400766e-08
],
[
0.5277777314186096,
1.3947366270475477e-16
],
[
0.055555518716573715,
0.05555557832121849
],
[
-7.4505797087454084e-09,
1.5308079039869698e-17
],
[
7.450580152834618e-09,
-1.360718725094631e-17
]
],
"bits": [
[
"0x3fee38e2",
"0x24950943"
],
[
"0xbe7ffffd",
"0xbe8e38e2"
],
[
"0xbe7ffffd",
"0xa55f8de3"
],
[
"0x3d638e2f",
"0xbd638e3f"
],
[
"0x33200000",
"0x24150943"
],
[
"0x31ffffff",
"0xa37b0220"
],
[
"0xbef1c71b",
"0xa54805b0"
],
[
"0xbf071c71",
"0xb307c3b6"
],
[
"0x3f071c71",
"0x2520cd5c"
],
[
"0x3d638e2f",
"0x3d638e3f"
],
[
"0xb1fffffe",
"0x238d312e"
],
[
"0x31ffffff",
"0xa37b0220"
]
]
},
"kernel_spectrum": {
"decimal": [
[
2.1653847694396973,
5.746419744938943e-17
],
[
-0.13461536169052124,
-0.07692307233810425
],
[
0.28846150636672974,
-1.723925791132785e-16
],
[
-0.11538457125425339,
-0.09615381807088852
],
[
3.725290076417309e-09,
0.21153844892978668
],
[
-0.42307692766189575,
0.21153847873210907
],
[
0.09615390002727509,
-1.1728349059928064e-16
],
[
0.21153844892978668,
2.63417798684884e-09
],
[
-0.21153844892978668,
-5.887724031131172e-17
],
[
-0.11538457125425339,
0.09615381807088852
],
[
-3.725290076417309e-09,
-0.21153844892978668
],
[
-0.42307692766189575,
-0.21153847873210907
]
],
"bits": [
[
"0x400a95aa",
"0x248480e0"
],
[
"0xbe09d89c",
"0xbd9d89d8"
],
[
"0x3e93b13a",
"0xa546c14f"
],
[
"0xbdec4ebf",
"0xbdc4ec4b"
],
[
"0x317fffff",
"0x3e589d89"
],
[
"0xbed89d8a",
"0x3e589d8b"
],
[
"0x3dc4ec56",
"0xa50737fa"
],
[
"0x3e589d89",
"0x313504f3"
],
[
"0xbe589d89",
"0xa487c2fd"
],
[
"0xbdec4ebf",
"0x3dc4ec4b"
],
[
"0xb17fffff",
"0xbe589d89"
],
[
"0xbed89d8a",
"0xbe589d8b"
]
]
},
"spectral_product": {
"decimal": [
[
1.8611111640930176,
1.1402363136221326e-16
],
[
0.005673965439200401,
0.026149585843086243
],
[
-0.03330371901392937,
-5.927465427352914e-18
],
[
-0.00542727205902338,
0.0004933911841362715
],
[
6.093216209368535e-17,
3.6392708846477717e-09
],
[
-1.4557083316546482e-09,
7.278542213384753e-10
],
[
-0.020969025790691376,
1.7873022189970052e-17
],
[
-0.051559098064899445,
-3.730062037021753e-09
],
[
-0.051559098064899445,
-2.7975691685351724e-17
],
[
-0.00542727205902338,
-0.0004933911841362715
],
[
1.4313308326490976e-17,
7.278540548050216e-10
],
[
-1.4557083316546482e-09,
-7.278542213384753e-10
]
],
"bits": [
[
"0x3fee38e4",
"0x250375d6"
],
[
"0x3bb9ecac",
"0x3cd637a8"
],
[
"0xbd08697b",
"0xa2daaf54"
],
[
"0xbbb1d742",
"0x3a0156ec"
],
[
"0x248c8000",
"0x317a16bb"
],
[
"0xb0c8122f",
"0x30481230"
],
[
"0xbcabc73c",
"0x23a4d97b"
],
[
"0xbd532fa2",
"0xb18029f9"
],
[
"0xbd532fa2",
"0xa40103de"
],
[
"0xbbb1d742",
"0xba0156ec"
],
[
"0x23840458",
"0x3048122d"
],
[
"0xb0c8122f",
"0xb0481230"
]
]
},
"inverse_product_stages": [
{
"name": "y_inverse_butterfly_1",
"values": {
"decimal": [
[
1.301176905632019,
9.32650111120479e-17
],
[
-0.03244568780064583,
0.018490547314286232
],
[
-0.06000706925988197,
-2.3973149989664835e-17
],
[
1.3308316469192505,
6.617292037447022e-17
],
[
0.04046988859772682,
0.01849055103957653
],
[
0.012908502481877804,
1.1125658648177027e-17
],
[
-0.007675321772694588,
0.0
],
[
5.320658303129324e-17,
3.0880236145947038e-09
],
[
-2.058682335714934e-09,
0.0
],
[
4.272551038136911e-20,
0.0006977604934945703
],
[
3.296450729516519e-17,
2.058682557759539e-09
],
[
6.302898176209985e-26,
1.0293412788797696e-09
]
],
"bits": [
[
"0x3fa68cf7",
"0x24d70df2"
],
[
"0xbd04e5c5",
"0x3c97797d"
],
[
"0xbd75c9f9",
"0xa3dd1d00"
],
[
"0x3faa58b1",
"0x24989599"
],
[
"0x3d25c3c1",
"0x3c97797f"
],
[
"0x3c537e2f",
"0x234d3b70"
],
[
"0xbbfb8144",
"0x00000000"
],
[
"0x24755f3f",
"0x31543516"
],
[
"0xb10d78b9",
"0x00000000"
],
[
"0x1f49c3f9",
"0x3a36e9ea"
],
[
"0x2418059f",
"0x310d78ba"
],
[
"0x159c0d5d",
"0x308d78ba"
]
]
}
},
{
"name": "y_inverse_butterfly_2",
"values": {
"decimal": [
[
0.9146437644958496,
6.594831767710492e-17
],
[
-0.022942565381526947,
0.013074793852865696
],
[
-0.04243140667676926,
-1.6951576074810482e-17
],
[
0.9405466914176941,
4.685173819685255e-17
],
[
0.0286165289580822,
0.013074793852865696
],
[
0.009127688594162464,
7.867028601499903e-18
],
[
0.9254982471466064,
6.528367474619611e-17
],
[
-0.022942565381526947,
0.013074788264930248
],
[
-0.04243140295147896,
-1.6951576074810482e-17
],
[
0.9415334463119507,
4.667047976358503e-17
],
[
0.028616534546017647,
0.013074793852865696
],
[
0.009127690456807613,
7.867028601499903e-18
]
],
"bits": [
[
"0x3f6a2618",
"0x24981104"
],
[
"0xbcbbf20c",
"0x3c5637a9"
],
[
"0xbd2dcc8e",
"0xa39c59c7"
],
[
"0x3f70c7ab",
"0x245810c5"
],
[
"0x3cea6d36",
"0x3c5637a9"
],
[
"0x3c158c4d",
"0x23111efe"
],
[
"0x3f6ced74",
"0x249688ae"
],
[
"0xbcbbf20c",
"0x3c5637a3"
],
[
"0xbd2dcc8d",
"0xa39c59c7"
],
[
"0x3f710856",
"0x24573ac7"
],
[
"0x3cea6d39",
"0x3c5637a9"
],
[
"0x3c158c4f",
"0x23111efe"
]
]
}
},
{
"name": "x_half_complex_to_packed_real",
"values": {
"decimal": [
[
0.616747260093689,
0.676754355430603
],
[
-0.03244568780064583,
-0.01849055103957653
],
[
0.0,
0.0
],
[
0.6715211868286133,
0.6586126685142517
],
[
0.040469881147146225,
-0.01849055103957653
],
[
0.0,
0.0
],
[
0.624422550201416,
0.6844295859336853
],
[
-0.03244568780064583,
-0.018490541726350784
],
[
0.0,
0.0
],
[
0.672218918800354,
0.6593104600906372
],
[
0.04046989232301712,
-0.01849055103957653
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3f1de326",
"0x3f2d3fc6"
],
[
"0xbd04e5c5",
"0xbc97797f"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f2be8d0",
"0x3f289ad7"
],
[
"0x3d25c3bf",
"0xbc97797f"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f1fda28",
"0x3f2f36c7"
],
[
"0xbd04e5c5",
"0xbc97797a"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f2c168a",
"0x3f28c892"
],
[
"0x3d25c3c2",
"0xbc97797f"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "x_inverse_butterfly_1",
"values": {
"decimal": [
[
0.41316360235214233,
0.4654628038406372
],
[
0.45904871821403503,
0.49161237478256226
],
[
0.0,
0.0
],
[
0.5034537315368652,
0.45263469219207764
],
[
0.44622063636779785,
0.4787842631340027
],
[
0.0,
0.0
],
[
0.41859087347984314,
0.47088998556137085
],
[
0.46447595953941345,
0.4970395863056183
],
[
0.0,
0.0
],
[
0.5039470791816711,
0.4531280994415283
],
[
0.44671401381492615,
0.47927767038345337
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3ed38a2e",
"0x3eee5124"
],
[
"0x3eeb086f",
"0x3efbb49e"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f00e258",
"0x3ee7bfbc"
],
[
"0x3ee47708",
"0x3ef52336"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3ed6518b",
"0x3ef1187e"
],
[
"0x3eedcfcb",
"0x3efe7bf9"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f0102ad",
"0x3ee80068"
],
[
"0x3ee4b7b3",
"0x3ef563e2"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "adjacent_real_unpack",
"values": {
"decimal": [
0.41316360235214233,
0.4654628038406372,
0.45904871821403503,
0.49161237478256226,
0.5034537315368652,
0.45263469219207764,
0.44622063636779785,
0.4787842631340027,
0.41859087347984314,
0.47088998556137085,
0.46447595953941345,
0.4970395863056183,
0.5039470791816711,
0.4531280994415283,
0.44671401381492615,
0.47927767038345337
],
"bits": [
"0x3ed38a2e",
"0x3eee5124",
"0x3eeb086f",
"0x3efbb49e",
"0x3f00e258",
"0x3ee7bfbc",
"0x3ee47708",
"0x3ef52336",
"0x3ed6518b",
"0x3ef1187e",
"0x3eedcfcb",
"0x3efe7bf9",
"0x3f0102ad",
"0x3ee80068",
"0x3ee4b7b3",
"0x3ef563e2"
]
}
}
],
"convolution_f32": {
"decimal": [
0.41316360235214233,
0.4654628038406372,
0.45904871821403503,
0.49161237478256226,
0.5034537315368652,
0.45263469219207764,
0.44622063636779785,
0.4787842631340027,
0.41859087347984314,
0.47088998556137085,
0.46447595953941345,
0.4970395863056183,
0.5039470791816711,
0.4531280994415283,
0.44671401381492615,
0.47927767038345337
],
"bits": [
"0x3ed38a2e",
"0x3eee5124",
"0x3eeb086f",
"0x3efbb49e",
"0x3f00e258",
"0x3ee7bfbc",
"0x3ee47708",
"0x3ef52336",
"0x3ed6518b",
"0x3ef1187e",
"0x3eedcfcb",
"0x3efe7bf9",
"0x3f0102ad",
"0x3ee80068",
"0x3ee4b7b3",
"0x3ef563e2"
]
},
"direct_normalized_f64": [
0.41316360765739096,
0.4654627985000987,
0.459048746792974,
0.49161239392145245,
0.50345372014999,
0.4526346950858496,
0.4462206433787251,
0.47878429050720345,
0.41859088217880397,
0.47089007302151165,
0.46447602131438714,
0.4970396684428655,
0.5039471087428458,
0.4531280836787053,
0.4467140319715808,
0.4792776791000592
],
"max_abs_error_to_direct": 8.746014079630271e-08
},
{
"shape": [
4,
2,
2
],
"packed_shape": [
3,
2,
2
],
"input_f32": {
"decimal": [
0.0555555559694767,
0.4444444477558136,
0.8333333134651184,
0.1666666716337204,
0.5555555820465088,
0.9444444179534912,
0.2777777910232544,
0.6666666865348816,
0.0,
0.3888888955116272,
0.7777777910232544,
0.1111111119389534,
0.5,
0.8888888955116272,
0.2222222238779068,
0.6111111044883728
],
"bits": [
"0x3d638e39",
"0x3ee38e39",
"0x3f555555",
"0x3e2aaaab",
"0x3f0e38e4",
"0x3f71c71c",
"0x3e8e38e4",
"0x3f2aaaab",
"0x00000000",
"0x3ec71c72",
"0x3f471c72",
"0x3de38e39",
"0x3f000000",
"0x3f638e39",
"0x3e638e39",
"0x3f1c71c7"
]
},
"kernel_f32": {
"decimal": [
0.35384616255760193,
0.7384615540504456,
0.2769230902194977,
0.6615384817123413,
0.20000000298023224,
0.5846154093742371,
0.9692307710647583,
0.5076923370361328,
0.892307698726654,
0.4307692348957062,
0.8153846263885498,
0.35384616255760193,
0.7384615540504456,
0.2769230902194977,
0.6615384817123413,
0.20000000298023224
],
"bits": [
"0x3eb52b53",
"0x3f3d0bd1",
"0x3e8dc8dd",
"0x3f295a96",
"0x3e4ccccd",
"0x3f15a95b",
"0x3f781f82",
"0x3f01f820",
"0x3f646e47",
"0x3edc8dc9",
"0x3f50bd0c",
"0x3eb52b53",
"0x3f3d0bd1",
"0x3e8dc8dd",
"0x3f295a96",
"0x3e4ccccd"
]
},
"kernel_sum_f64": 8.661538461538463,
"scales_f32": {
"unitary_butterfly": {
"decimal": 0.7071067690849304,
"bits": "0x3f3504f3"
},
"forward_real_conversion": {
"decimal": 0.3535533845424652,
"bits": "0x3eb504f3"
},
"inverse_real_conversion": {
"decimal": 0.7071067690849304,
"bits": "0x3f3504f3"
},
"spectral_correction": {
"decimal": 0.46181172132492065,
"bits": "0x3eec7296"
}
},
"plans": {
"x_forward_butterflies": [
{
"stage": 1,
"entries": [
{
"output": 0,
"source": [
0,
1
],
"twiddle": {
"decimal": [
1.0,
-0.0
],
"bits": [
"0x3f800000",
"0x80000000"
]
}
},
{
"output": 1,
"source": [
0,
1
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
}
]
}
],
"x_forward_real_conversion": [
{
"output": 0,
"source": [
0,
0
],
"twiddle": {
"decimal": [
6.123234262925839e-17,
-1.0
],
"bits": [
"0x248d3132",
"0xbf800000"
]
}
},
{
"output": 1,
"source": [
1,
1
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
},
{
"output": 2,
"source": [
0,
0
],
"twiddle": {
"decimal": [
-1.8369701465288538e-16,
1.0
],
"bits": [
"0xa553c9ca",
"0x3f800000"
]
}
}
],
"x_inverse_real_conversion": [
{
"output": 0,
"source": [
0,
2
],
"twiddle": {
"decimal": [
6.123234262925839e-17,
1.0
],
"bits": [
"0x248d3132",
"0x3f800000"
]
}
},
{
"output": 1,
"source": [
1,
1
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
},
{
"output": 2,
"source": [
2,
0
],
"twiddle": {
"decimal": [
-1.8369701465288538e-16,
-1.0
],
"bits": [
"0xa553c9ca",
"0xbf800000"
]
}
}
],
"x_inverse_butterflies": [
{
"stage": 1,
"entries": [
{
"output": 0,
"source": [
0,
1
],
"twiddle": {
"decimal": [
1.0,
0.0
],
"bits": [
"0x3f800000",
"0x00000000"
]
}
},
{
"output": 1,
"source": [
0,
1
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
}
]
}
],
"y_forward_butterflies": [
{
"stage": 1,
"entries": [
{
"output": 0,
"source": [
0,
1
],
"twiddle": {
"decimal": [
1.0,
-0.0
],
"bits": [
"0x3f800000",
"0x80000000"
]
}
},
{
"output": 1,
"source": [
0,
1
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
}
]
}
],
"y_inverse_butterflies": [
{
"stage": 1,
"entries": [
{
"output": 0,
"source": [
0,
1
],
"twiddle": {
"decimal": [
1.0,
0.0
],
"bits": [
"0x3f800000",
"0x00000000"
]
}
},
{
"output": 1,
"source": [
0,
1
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
}
]
}
],
"z_forward_butterflies": [
{
"stage": 1,
"entries": [
{
"output": 0,
"source": [
0,
1
],
"twiddle": {
"decimal": [
1.0,
-0.0
],
"bits": [
"0x3f800000",
"0x80000000"
]
}
},
{
"output": 1,
"source": [
0,
1
],
"twiddle": {
"decimal": [
-1.0,
-1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0xa50d3132"
]
}
}
]
}
],
"z_inverse_butterflies": [
{
"stage": 1,
"entries": [
{
"output": 0,
"source": [
0,
1
],
"twiddle": {
"decimal": [
1.0,
0.0
],
"bits": [
"0x3f800000",
"0x00000000"
]
}
},
{
"output": 1,
"source": [
0,
1
],
"twiddle": {
"decimal": [
-1.0,
1.2246468525851679e-16
],
"bits": [
"0xbf800000",
"0x250d3132"
]
}
}
]
}
]
},
"forward_field_stages": [
{
"name": "adjacent_real_pack",
"values": {
"decimal": [
[
0.0555555559694767,
0.4444444477558136
],
[
0.8333333134651184,
0.1666666716337204
],
[
0.0,
0.0
],
[
0.5555555820465088,
0.9444444179534912
],
[
0.2777777910232544,
0.6666666865348816
],
[
0.0,
0.0
],
[
0.0,
0.3888888955116272
],
[
0.7777777910232544,
0.1111111119389534
],
[
0.0,
0.0
],
[
0.5,
0.8888888955116272
],
[
0.2222222238779068,
0.6111111044883728
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3d638e39",
"0x3ee38e39"
],
[
"0x3f555555",
"0x3e2aaaab"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f0e38e4",
"0x3f71c71c"
],
[
"0x3e8e38e4",
"0x3f2aaaab"
],
[
"0x00000000",
"0x00000000"
],
[
"0x00000000",
"0x3ec71c72"
],
[
"0x3f471c72",
"0x3de38e39"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f000000",
"0x3f638e39"
],
[
"0x3e638e39",
"0x3f1c71c7"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "x_butterfly_1",
"values": {
"decimal": [
[
0.6285393834114075,
0.43212080001831055
],
[
-0.549971878528595,
0.19641855359077454
],
[
0.0,
0.0
],
[
0.589255690574646,
1.1392276287078857
],
[
0.19641855359077454,
0.19641850888729095
],
[
0.0,
0.0
],
[
0.5499719381332397,
0.3535533845424652
],
[
-0.5499719381332397,
0.19641855359077454
],
[
0.0,
0.0
],
[
0.5106881856918335,
1.0606601238250732
],
[
0.19641855359077454,
0.19641855359077454
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3f20e7f5",
"0x3edd3ef0"
],
[
"0xbf0ccaf5",
"0x3e4921f2"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f16d976",
"0x3f91d236"
],
[
"0x3e4921f2",
"0x3e4921ef"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f0ccaf6",
"0x3eb504f3"
],
[
"0xbf0ccaf6",
"0x3e4921f2"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f02bc76",
"0x3f87c3b6"
],
[
"0x3e4921f2",
"0x3e4921f2"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "x_real_to_half_complex",
"values": {
"decimal": [
[
0.7499999403953552,
1.8709882470051176e-17
],
[
-0.3888888359069824,
-0.1388888955116272
],
[
0.1388889104127884,
-5.612964410143108e-17
],
[
1.2222222089767456,
4.932605378468037e-17
],
[
0.1388888955116272,
-0.13888885080814362
],
[
-0.3888888657093048,
-1.4797815142787377e-16
],
[
0.6388888955116272,
1.5308084002953373e-17
],
[
-0.3888888657093048,
-0.1388888955116272
],
[
0.1388888955116272,
-4.5924253663221344e-17
],
[
1.111111044883728,
4.5924253663221344e-17
],
[
0.1388888955116272,
-0.1388888955116272
],
[
-0.3888888657093048,
-1.3777275437221913e-16
]
],
"bits": [
[
"0x3f3fffff",
"0x23ac9176"
],
[
"0xbec71c70",
"0xbe0e38e4"
],
[
"0x3e0e38e5",
"0xa4816d18"
],
[
"0x3f9c71c7",
"0x246379ed"
],
[
"0x3e0e38e4",
"0xbe0e38e1"
],
[
"0xbec71c71",
"0xa52a9b71"
],
[
"0x3f238e39",
"0x238d3131"
],
[
"0xbec71c71",
"0xbe0e38e4"
],
[
"0x3e0e38e4",
"0xa453c9ca"
],
[
"0x3f8e38e3",
"0x2453c9ca"
],
[
"0x3e0e38e4",
"0xbe0e38e4"
],
[
"0xbec71c71",
"0xa51ed757"
]
]
}
},
{
"name": "y_butterfly_1",
"values": {
"decimal": [
[
1.3945715427398682,
4.810867222485138e-17
],
[
-0.17677664756774902,
-0.19641850888729095
],
[
-0.17677666246891022,
-1.4432601005710924e-16
],
[
-0.33391156792640686,
-1.27487974447539e-16
],
[
-0.37319520115852356,
-3.161013495400766e-08
],
[
0.37319526076316833,
9.862277243611716e-17
],
[
1.2374368906021118,
4.329779970841032e-17
],
[
-0.1767766773700714,
-0.19641855359077454
],
[
-0.1767766773700714,
-1.2989340243395341e-16
],
[
-0.3339114785194397,
-1.178662360321018e-16
],
[
-0.37319526076316833,
-1.2027168056212845e-17
],
[
0.37319526076316833,
9.862275920122736e-17
]
],
"bits": [
[
"0x3fb28152",
"0x245ddcb2"
],
[
"0xbe3504f0",
"0xbe4921ef"
],
[
"0xbe3504f1",
"0xa5266585"
],
[
"0xbeaaf675",
"0xa512fbcf"
],
[
"0xbebf1371",
"0xb307c3b6"
],
[
"0x3ebf1373",
"0x24e3689c"
],
[
"0x3f9e6455",
"0x2447ad05"
],
[
"0xbe3504f2",
"0xbe4921f2"
],
[
"0xbe3504f2",
"0xa515c1c4"
],
[
"0xbeaaf672",
"0xa507e3f9"
],
[
"0xbebf1373",
"0xa35ddcb2"
],
[
"0x3ebf1373",
"0x24e3689a"
]
]
}
},
{
"name": "z_butterfly_1",
"values": {
"decimal": [
[
1.861111044883728,
6.463413944199497e-17
],
[
-0.24999995529651642,
-0.2777777314186096
],
[
-0.2499999701976776,
-1.939023984736502e-16
],
[
-0.4722222089767456,
-1.7349161759723074e-16
],
[
-0.5277777314186096,
-2.2351740014414645e-08
],
[
0.5277777910232544,
1.3947364946986497e-16
],
[
0.11111097782850266,
-1.0375479947974316e-16
],
[
2.107342389479072e-08,
3.161013495400766e-08
],
[
1.053671194739536e-08,
5.102689015250272e-18
],
[
-6.322026990801533e-08,
2.2111671010981627e-17
],
[
4.214684778958144e-08,
-2.2351740014414645e-08
],
[
8.540297801194057e-33,
-3.2317063103552585e-17
]
],
"bits": [
[
"0x3fee38e3",
"0x24950943"
],
[
"0xbe7ffffd",
"0xbe8e38e2"
],
[
"0xbe7ffffe",
"0xa55f8de3"
],
[
"0xbef1c71c",
"0xa54805b0"
],
[
"0xbf071c71",
"0xb2bfffff"
],
[
"0x3f071c72",
"0x2520cd5b"
],
[
"0x3de38e27",
"0xa4ef3e06"
],
[
"0x32b504f3",
"0x3307c3b6"
],
[
"0x323504f3",
"0x22bc4189"
],
[
"0xb387c3b6",
"0x23cbf1b5"
],
[
"0x333504f3",
"0xb2bfffff"
],
[
"0x0a316003",
"0xa4150941"
]
]
}
}
],
"field_spectrum": {
"decimal": [
[
1.861111044883728,
6.463413944199497e-17
],
[
-0.24999995529651642,
-0.2777777314186096
],
[
-0.2499999701976776,
-1.939023984736502e-16
],
[
-0.4722222089767456,
-1.7349161759723074e-16
],
[
-0.5277777314186096,
-2.2351740014414645e-08
],
[
0.5277777910232544,
1.3947364946986497e-16
],
[
0.11111097782850266,
-1.0375479947974316e-16
],
[
2.107342389479072e-08,
3.161013495400766e-08
],
[
1.053671194739536e-08,
5.102689015250272e-18
],
[
-6.322026990801533e-08,
2.2111671010981627e-17
],
[
4.214684778958144e-08,
-2.2351740014414645e-08
],
[
8.540297801194057e-33,
-3.2317063103552585e-17
]
],
"bits": [
[
"0x3fee38e3",
"0x24950943"
],
[
"0xbe7ffffd",
"0xbe8e38e2"
],
[
"0xbe7ffffe",
"0xa55f8de3"
],
[
"0xbef1c71c",
"0xa54805b0"
],
[
"0xbf071c71",
"0xb2bfffff"
],
[
"0x3f071c72",
"0x2520cd5b"
],
[
"0x3de38e27",
"0xa4ef3e06"
],
[
"0x32b504f3",
"0x3307c3b6"
],
[
"0x323504f3",
"0x22bc4189"
],
[
"0xb387c3b6",
"0x23cbf1b5"
],
[
"0x333504f3",
"0xb2bfffff"
],
[
"0x0a316003",
"0xa4150941"
]
]
},
"kernel_spectrum": {
"decimal": [
[
2.1653847694396973,
5.746419744938943e-17
],
[
-0.13461536169052124,
-0.07692307233810425
],
[
0.28846150636672974,
-1.723925791132785e-16
],
[
0.09615381807088852,
-1.1728349059928064e-16
],
[
0.21153844892978668,
3.725290076417309e-09
],
[
-0.2115384191274643,
-5.887724031131172e-17
],
[
-0.0192306786775589,
-1.1492838166388906e-16
],
[
-0.21153844892978668,
2.63417798684884e-09
],
[
-0.634615421295166,
-1.1304431569139948e-16
],
[
-0.2115384042263031,
-3.0616164697184296e-17
],
[
0.21153844892978668,
-3.725290076417309e-09
],
[
-0.2115384191274643,
2.5905993148515443e-17
]
],
"bits": [
[
"0x400a95aa",
"0x248480e0"
],
[
"0xbe09d89c",
"0xbd9d89d8"
],
[
"0x3e93b13a",
"0xa546c14f"
],
[
"0x3dc4ec4b",
"0xa50737fa"
],
[
"0x3e589d89",
"0x317fffff"
],
[
"0xbe589d87",
"0xa487c2fd"
],
[
"0xbc9d89a8",
"0xa50480df"
],
[
"0xbe589d89",
"0x313504f3"
],
[
"0xbf227628",
"0xa50254cb"
],
[
"0xbe589d86",
"0xa40d3130"
],
[
"0x3e589d89",
"0xb17fffff"
],
[
"0xbe589d87",
"0x23eef0cc"
]
]
},
"spectral_product": {
"decimal": [
[
1.8611112833023071,
1.1402364459710306e-16
],
[
0.005673965439200401,
0.026149585843086243
],
[
-0.033303722739219666,
-5.927463772991689e-18
],
[
-0.020969009026885033,
1.7873030461776178e-17
],
[
-0.051559098064899445,
-3.091541911359741e-09
],
[
-0.05155910179018974,
-2.7975691685351724e-17
],
[
-0.0009867713088169694,
-4.9758040587780065e-18
],
[
-2.058682335714934e-09,
-3.0880236145947038e-09
],
[
-3.0880242807285185e-09,
-1.4954601396273484e-18
],
[
6.176046341010988e-09,
-2.1601085506077146e-18
],
[
4.117364671429868e-09,
-2.183562219926216e-09
],
[
-4.476782532207851e-34,
3.1570837003188897e-18
]
],
"bits": [
[
"0x3fee38e5",
"0x250375d7"
],
[
"0x3bb9ecac",
"0x3cd637a8"
],
[
"0xbd08697c",
"0xa2daaf50"
],
[
"0xbcabc733",
"0x23a4d980"
],
[
"0xbd532fa2",
"0xb15472fb"
],
[
"0xbd532fa3",
"0xa40103de"
],
[
"0xba81568d",
"0xa2b79324"
],
[
"0xb10d78b9",
"0xb1543516"
],
[
"0xb1543519",
"0xa1dcb0e3"
],
[
"0x31d43514",
"0xa21f634c"
],
[
"0x318d78b9",
"0xb1160da2"
],
[
"0x8814c441",
"0x2268f3a0"
]
]
},
"inverse_product_stages": [
{
"name": "z_inverse_butterfly_1",
"values": {
"decimal": [
[
1.315306544303894,
7.710846644810296e-17
],
[
0.00401209807023406,
0.018490547314286232
],
[
-0.023549290373921394,
-5.248799717109801e-18
],
[
-0.014827324077486992,
1.1110713148869419e-17
],
[
-0.03645778447389603,
-3.730061592932543e-09
],
[
-0.036457788199186325,
-1.7549405973282156e-17
],
[
1.316702127456665,
8.405986070542709e-17
],
[
0.004012100864201784,
0.01849055103957653
],
[
-0.023549284785985947,
-3.1338998957005597e-18
],
[
-0.014827332459390163,
1.416556890600533e-17
],
[
-0.036457788199186325,
-6.420385889605029e-10
],
[
-0.036457788199186325,
-2.201419604759838e-17
]
],
"bits": [
[
"0x3fa85bf7",
"0x24b1ccce"
],
[
"0x3b8377eb",
"0x3c97797d"
],
[
"0xbcc0ea71",
"0xa2c1a583"
],
[
"0xbc72ee4e",
"0x234cf4dc"
],
[
"0xbd1554c2",
"0xb18029f8"
],
[
"0xbd1554c3",
"0xa3a1dd5d"
],
[
"0x3fa889b2",
"0x24c1d42f"
],
[
"0x3b8377f1",
"0x3c97797f"
],
[
"0xbcc0ea6e",
"0xa2673db2"
],
[
"0xbc72ee57",
"0x2382a781"
],
[
"0xbd1554c3",
"0xb0307b73"
],
[
"0xbd1554c3",
"0xa3cb0b8d"
]
]
}
},
{
"name": "y_inverse_butterfly_1",
"values": {
"decimal": [
[
0.9195775985717773,
6.238038329269829e-17
],
[
-0.022942565381526947,
0.013074788264930248
],
[
-0.042431414127349854,
-1.612076579372957e-17
],
[
0.9405466914176941,
4.5383472757236227e-17
],
[
0.02861652709543705,
0.013074793852865696
],
[
0.00912768580019474,
5.540757250213455e-18
],
[
0.9205644726753235,
6.945586787679517e-17
],
[
-0.022942565381526947,
0.013074793852865696
],
[
-0.04243140667676926,
-1.7782388010252617e-17
],
[
0.9415335059165955,
4.813874520320136e-17
],
[
0.028616532683372498,
0.013074793852865696
],
[
0.009127690456807613,
1.019330119355727e-17
]
],
"bits": [
[
"0x3f6b6970",
"0x248fd6e1"
],
[
"0xbcbbf20c",
"0x3c5637a3"
],
[
"0xbd2dcc90",
"0xa394b015"
],
[
"0x3f70c7ab",
"0x24514b59"
],
[
"0x3cea6d35",
"0x3c5637a9"
],
[
"0x3c158c4a",
"0x22cc6af9"
],
[
"0x3f6baa1d",
"0x24a02782"
],
[
"0xbcbbf20c",
"0x3c5637a9"
],
[
"0xbd2dcc8e",
"0xa3a4037a"
],
[
"0x3f710857",
"0x245e0033"
],
[
"0x3cea6d38",
"0x3c5637a9"
],
[
"0x3c158c4f",
"0x233c0881"
]
]
}
},
{
"name": "x_half_complex_to_packed_real",
"values": {
"decimal": [
[
0.6202359795570374,
0.6802430748939514
],
[
-0.03244568780064583,
-0.018490541726350784
],
[
0.0,
0.0
],
[
0.6715211868286133,
0.6586126685142517
],
[
0.040469881147146225,
-0.01849055103957653
],
[
0.0,
0.0
],
[
0.6209338307380676,
0.6809409260749817
],
[
-0.03244568780064583,
-0.01849055103957653
],
[
0.0,
0.0
],
[
0.6722189784049988,
0.6593104600906372
],
[
0.04046988859772682,
-0.01849055103957653
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3f1ec7c9",
"0x3f2e2469"
],
[
"0xbd04e5c5",
"0xbc97797a"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f2be8d0",
"0x3f289ad7"
],
[
"0x3d25c3bf",
"0xbc97797f"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f1ef585",
"0x3f2e5225"
],
[
"0xbd04e5c5",
"0xbc97797f"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f2c168b",
"0x3f28c892"
],
[
"0x3d25c3c1",
"0xbc97797f"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "x_inverse_butterfly_1",
"values": {
"decimal": [
[
0.4156305193901062,
0.4679296910762787
],
[
0.4615156054496765,
0.4940792918205261
],
[
0.0,
0.0
],
[
0.5034537315368652,
0.45263469219207764
],
[
0.44622063636779785,
0.4787842631340027
],
[
0.0,
0.0
],
[
0.4161239564418793,
0.46842315793037415
],
[
0.462009072303772,
0.4945727288722992
],
[
0.0,
0.0
],
[
0.5039471387863159,
0.4531280994415283
],
[
0.4467140734195709,
0.47927767038345337
],
[
0.0,
0.0
]
],
"bits": [
[
"0x3ed4cd86",
"0x3eef947b"
],
[
"0x3eec4bc6",
"0x3efcf7f6"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f00e258",
"0x3ee7bfbc"
],
[
"0x3ee47708",
"0x3ef52336"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3ed50e33",
"0x3eefd529"
],
[
"0x3eec8c74",
"0x3efd38a3"
],
[
"0x00000000",
"0x00000000"
],
[
"0x3f0102ae",
"0x3ee80068"
],
[
"0x3ee4b7b5",
"0x3ef563e2"
],
[
"0x00000000",
"0x00000000"
]
]
}
},
{
"name": "adjacent_real_unpack",
"values": {
"decimal": [
0.4156305193901062,
0.4679296910762787,
0.4615156054496765,
0.4940792918205261,
0.5034537315368652,
0.45263469219207764,
0.44622063636779785,
0.4787842631340027,
0.4161239564418793,
0.46842315793037415,
0.462009072303772,
0.4945727288722992,
0.5039471387863159,
0.4531280994415283,
0.4467140734195709,
0.47927767038345337
],
"bits": [
"0x3ed4cd86",
"0x3eef947b",
"0x3eec4bc6",
"0x3efcf7f6",
"0x3f00e258",
"0x3ee7bfbc",
"0x3ee47708",
"0x3ef52336",
"0x3ed50e33",
"0x3eefd529",
"0x3eec8c74",
"0x3efd38a3",
"0x3f0102ae",
"0x3ee80068",
"0x3ee4b7b5",
"0x3ef563e2"
]
}
}
],
"convolution_f32": {
"decimal": [
0.4156305193901062,
0.4679296910762787,
0.4615156054496765,
0.4940792918205261,
0.5034537315368652,
0.45263469219207764,
0.44622063636779785,
0.4787842631340027,
0.4161239564418793,
0.46842315793037415,
0.462009072303772,
0.4945727288722992,
0.5039471387863159,
0.4531280994415283,
0.4467140734195709,
0.47927767038345337
],
"bits": [
"0x3ed4cd86",
"0x3eef947b",
"0x3eec4bc6",
"0x3efcf7f6",
"0x3f00e258",
"0x3ee7bfbc",
"0x3ee47708",
"0x3ef52336",
"0x3ed50e33",
"0x3eefd529",
"0x3eec8c74",
"0x3efd38a3",
"0x3f0102ae",
"0x3ee80068",
"0x3ee4b7b5",
"0x3ef563e2"
]
},
"direct_normalized_f64": [
0.4156305506216696,
0.46792974146437727,
0.46151568975725277,
0.494079336885731,
0.50345372014999,
0.4526346950858496,
0.4462206433787251,
0.47878429050720345,
0.41612393921452534,
0.46842313005723296,
0.46200907835010846,
0.4945727254785868,
0.5039471087428458,
0.4531280836787053,
0.4467140319715808,
0.4792776791000592
],
"max_abs_error_to_direct": 8.430757625355056e-08
}
]
}