diff --git a/.idea/misc.xml b/.idea/misc.xml
index 8dd79e9..009e102 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,5 +3,5 @@
-
+
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..c922276
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,4 @@
+{
+ "stm32-for-vscode.openOCDPath": "/home/toxotes/.config/Code - OSS/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/openocd/0.12.0-7.1/.content/bin/openocd",
+ "stm32-for-vscode.armToolchainPath": "/home/toxotes/.config/Code - OSS/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-none-eabi-gcc/14.2.1-1.1.1/.content/bin"
+}
\ No newline at end of file
diff --git a/PyCharmMiscProject.iml b/PyCharmMiscProject.iml
index 154f14f..4de8e67 100644
--- a/PyCharmMiscProject.iml
+++ b/PyCharmMiscProject.iml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/__pycache__/experiment_loader.cpython-313.pyc b/__pycache__/experiment_loader.cpython-313.pyc
index c76bdb5..eb327f2 100644
Binary files a/__pycache__/experiment_loader.cpython-313.pyc and b/__pycache__/experiment_loader.cpython-313.pyc differ
diff --git a/__pycache__/modeling.cpython-313.pyc b/__pycache__/modeling.cpython-313.pyc
index c8f6b45..92dd163 100644
Binary files a/__pycache__/modeling.cpython-313.pyc and b/__pycache__/modeling.cpython-313.pyc differ
diff --git a/channel_experiments.ipynb b/channel_experiments.ipynb
index dd85f38..1ee1216 100644
--- a/channel_experiments.ipynb
+++ b/channel_experiments.ipynb
@@ -5,8 +5,8 @@
"id": "a853eaac-8442-45f9-a83a-65680038469c",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-10-13T13:42:40.501791Z",
- "start_time": "2025-10-13T13:42:40.068568Z"
+ "end_time": "2025-11-18T15:02:34.754882Z",
+ "start_time": "2025-11-18T15:02:34.752303Z"
}
},
"source": [
@@ -16,18 +16,19 @@
"import pandas as pd\n",
"from plotly.subplots import make_subplots\n",
"PLOT_WIDTH = 2000\n",
- "PLOT_HEIGHT = 1000"
+ "PLOT_HEIGHT = 1000\n",
+ "import scipy"
],
"outputs": [],
- "execution_count": 2
+ "execution_count": 24
},
{
"cell_type": "code",
"id": "dd678982",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-10-13T13:42:41.593589Z",
- "start_time": "2025-10-13T13:42:41.585944Z"
+ "end_time": "2025-11-18T14:39:25.323995Z",
+ "start_time": "2025-11-18T14:39:25.320393Z"
}
},
"source": [
@@ -50,8 +51,8 @@
"id": "81811eea-db29-4f40-989c-20e6a5ad0a52",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-10-13T13:42:42.955501Z",
- "start_time": "2025-10-13T13:42:41.737881Z"
+ "end_time": "2025-11-18T14:39:26.262622Z",
+ "start_time": "2025-11-18T14:39:25.556956Z"
}
},
"source": [
@@ -2980,21 +2981,87 @@
}
},
"metadata": {},
- "output_type": "display_data"
+ "output_type": "display_data",
+ "jetTransient": {
+ "display_id": null
+ }
}
],
"execution_count": 4
},
{
"cell_type": "code",
- "execution_count": 3,
"id": "284d739a-7a6b-4002-994a-86b62d793df2",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T13:38:23.827369Z",
- "start_time": "2025-09-16T13:38:21.931485Z"
+ "end_time": "2025-11-18T15:05:17.388487Z",
+ "start_time": "2025-11-18T15:05:16.113407Z"
}
},
+ "source": [
+ "upper_sampled_channels = [7, 993]\n",
+ "lower_sampled_channels = [1, 992]\n",
+ "\n",
+ "upper_sampled_channel_meas = [channel_meas[channels.index(c)] for c in upper_sampled_channels]\n",
+ "lower_sampled_channel_meas = [channel_meas[channels.index(c)] for c in lower_sampled_channels]\n",
+ "\n",
+ "upper_m, upper_b = lin_interpol(upper_sampled_channels[0], upper_sampled_channels[1], \n",
+ " upper_sampled_channel_meas[0], upper_sampled_channel_meas[1])\n",
+ "lower_m, lower_b = lin_interpol(lower_sampled_channels[0], lower_sampled_channels[1], \n",
+ " lower_sampled_channel_meas[0], lower_sampled_channel_meas[1])\n",
+ "\n",
+ "r_c = list(range(0, 1050))\n",
+ "\n",
+ "r_v_upper = [calc_upper(c, upper_m, upper_b) for c in r_c]\n",
+ "r_v_lower = [calc_lower(c, lower_m, lower_b) for c in r_c]\n",
+ "r_v_rect = [calc_rect(c, upper_m, upper_b, lower_m, lower_b) for c in r_c]\n",
+ "\n",
+ "print(upper_m)\n",
+ "print(lower_m)\n",
+ "\n",
+ "fig = make_subplots(specs=[[{\"secondary_y\": True}]])\n",
+ "lv = channel_meas[0]\n",
+ "deltas = []\n",
+ "for meas in channel_meas[1:]:\n",
+ " deltas.append((meas / lv) * 10 - 10 )\n",
+ " lv = meas\n",
+ "\n",
+ "fig.update_layout(\n",
+ " scene=dict(\n",
+ " xaxis_title='channels',\n",
+ " yaxis_title='filters',\n",
+ " zaxis_title='ms'\n",
+ " ),\n",
+ " width=PLOT_WIDTH,\n",
+ " height=PLOT_HEIGHT / 3 * 1,\n",
+ " template='plotly_white',\n",
+ ")\n",
+ "fig.add_trace(go.Scatter(x=channels, y=channel_meas, name=\"Layer Execution Time\", mode=\"markers\", marker=dict(size=4)), secondary_y=False)\n",
+ "fig.add_trace(go.Scatter(x=r_c, y=r_v_rect, name=\"Stepwise Approximation\", line=dict(dash=\"dot\", width=0.75,color=\"blue\" )))\n",
+ "mean_var = np.mean(deltas)\n",
+ "smoothed_deltas = [delta**2 for delta in deltas]\n",
+ "fig.add_trace(go.Scatter(x=channels[1:], y=deltas, name=\"Point to point variance\", line=dict(color=\"lightgreen\")), secondary_y=True)\n",
+ "fig.add_trace(go.Scatter(x=channels[1:], y=smoothed_deltas, name=\"Point to point variance\", line=dict(color=\"lightgreen\")), secondary_y=True)\n",
+ "\n",
+ "fig.update_layout(\n",
+ " title_text=\"Latency Measurements for a Singular Neural Network Layer With Changing Input Channels\",\n",
+ " autosize=False,\n",
+ " width=PLOT_WIDTH,\n",
+ " height=PLOT_HEIGHT / 3 * 2,\n",
+ " legend_x=0,\n",
+ " legend_y=1,\n",
+ " template='plotly_white',\n",
+ "\n",
+ " font=dict(\n",
+ " size=16,\n",
+ " )\n",
+ ")\n",
+ "fig.update_xaxes(title_text=\"#Channels\")\n",
+ "fig.update_yaxes(title_text=f\"\"\"Layer Execution Time (ms)\"\"\", secondary_y=False, range=[-10, 40])\n",
+ "fig.update_yaxes(title_text=f\"\"\"Point to point variance (%)\"\"\", secondary_y=True, range=[-4, 40],)\n",
+ "fig.write_image(\"images/sweep.svg\", width=PLOT_WIDTH/ 3 * 2, height=PLOT_HEIGHT / 3 * 2, scale=2)\n",
+ "fig.show()"
+ ],
"outputs": [
{
"name": "stdout",
@@ -3007,9 +3074,6 @@
{
"data": {
"application/vnd.plotly.v1+json": {
- "config": {
- "plotlyServerURL": "https://plot.ly"
- },
"data": [
{
"marker": {
@@ -3017,7 +3081,6 @@
},
"mode": "markers",
"name": "Layer Execution Time",
- "type": "scatter",
"x": [
1,
2,
@@ -4069,7 +4132,6 @@
1048,
1049
],
- "xaxis": "x",
"y": [
0.7428208023309708,
0.9806959956884385,
@@ -5121,6 +5183,8 @@
33.583977699279785,
37.376403427124025
],
+ "type": "scatter",
+ "xaxis": "x",
"yaxis": "y"
},
{
@@ -5130,7 +5194,6 @@
"width": 0.75
},
"name": "Stepwise Approximation",
- "type": "scatter",
"x": [
0,
1,
@@ -7234,14 +7297,14 @@
33.35284101004946,
33.35284101004946,
37.170577242692396
- ]
+ ],
+ "type": "scatter"
},
{
"line": {
"color": "lightgreen"
},
"name": "Point to point variance",
- "type": "scatter",
"x": [
2,
3,
@@ -8292,7 +8355,6 @@
1048,
1049
],
- "xaxis": "x",
"y": [
3.2023227218599093,
-1.7693719252060696,
@@ -9343,38 +9405,2139 @@
6.966907063663541E-4,
1.129236614495957
],
+ "type": "scatter",
+ "xaxis": "x",
+ "yaxis": "y2"
+ },
+ {
+ "line": {
+ "color": "lightgreen"
+ },
+ "name": "Point to point variance",
+ "x": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500,
+ 501,
+ 502,
+ 503,
+ 504,
+ 505,
+ 506,
+ 507,
+ 508,
+ 509,
+ 510,
+ 511,
+ 512,
+ 513,
+ 514,
+ 515,
+ 516,
+ 517,
+ 518,
+ 519,
+ 520,
+ 521,
+ 522,
+ 523,
+ 524,
+ 525,
+ 526,
+ 527,
+ 528,
+ 529,
+ 530,
+ 531,
+ 532,
+ 533,
+ 534,
+ 535,
+ 536,
+ 537,
+ 538,
+ 539,
+ 540,
+ 541,
+ 542,
+ 543,
+ 544,
+ 545,
+ 546,
+ 547,
+ 548,
+ 549,
+ 550,
+ 551,
+ 552,
+ 553,
+ 554,
+ 555,
+ 556,
+ 557,
+ 558,
+ 559,
+ 560,
+ 561,
+ 562,
+ 563,
+ 564,
+ 565,
+ 566,
+ 567,
+ 568,
+ 569,
+ 570,
+ 571,
+ 572,
+ 573,
+ 574,
+ 575,
+ 576,
+ 577,
+ 578,
+ 579,
+ 580,
+ 581,
+ 582,
+ 583,
+ 584,
+ 585,
+ 586,
+ 587,
+ 588,
+ 589,
+ 590,
+ 591,
+ 592,
+ 593,
+ 594,
+ 595,
+ 596,
+ 597,
+ 598,
+ 599,
+ 600,
+ 601,
+ 602,
+ 603,
+ 604,
+ 605,
+ 606,
+ 607,
+ 608,
+ 609,
+ 610,
+ 611,
+ 612,
+ 613,
+ 614,
+ 615,
+ 616,
+ 617,
+ 618,
+ 619,
+ 620,
+ 621,
+ 622,
+ 623,
+ 624,
+ 625,
+ 626,
+ 627,
+ 628,
+ 629,
+ 630,
+ 631,
+ 632,
+ 633,
+ 634,
+ 635,
+ 636,
+ 637,
+ 638,
+ 639,
+ 640,
+ 641,
+ 642,
+ 643,
+ 644,
+ 645,
+ 646,
+ 647,
+ 648,
+ 649,
+ 650,
+ 651,
+ 652,
+ 653,
+ 654,
+ 655,
+ 656,
+ 657,
+ 658,
+ 659,
+ 660,
+ 661,
+ 662,
+ 663,
+ 664,
+ 665,
+ 666,
+ 667,
+ 668,
+ 669,
+ 670,
+ 671,
+ 672,
+ 673,
+ 674,
+ 675,
+ 676,
+ 677,
+ 678,
+ 679,
+ 680,
+ 681,
+ 682,
+ 683,
+ 684,
+ 685,
+ 686,
+ 687,
+ 688,
+ 689,
+ 690,
+ 691,
+ 692,
+ 693,
+ 694,
+ 695,
+ 696,
+ 697,
+ 698,
+ 699,
+ 700,
+ 701,
+ 702,
+ 703,
+ 704,
+ 705,
+ 706,
+ 707,
+ 708,
+ 709,
+ 710,
+ 711,
+ 712,
+ 713,
+ 714,
+ 715,
+ 716,
+ 717,
+ 718,
+ 719,
+ 720,
+ 721,
+ 722,
+ 723,
+ 724,
+ 725,
+ 726,
+ 727,
+ 728,
+ 729,
+ 730,
+ 731,
+ 732,
+ 733,
+ 734,
+ 735,
+ 736,
+ 737,
+ 738,
+ 739,
+ 740,
+ 741,
+ 742,
+ 743,
+ 744,
+ 745,
+ 746,
+ 747,
+ 748,
+ 749,
+ 750,
+ 751,
+ 752,
+ 753,
+ 754,
+ 755,
+ 756,
+ 757,
+ 758,
+ 759,
+ 760,
+ 761,
+ 762,
+ 763,
+ 764,
+ 765,
+ 766,
+ 767,
+ 768,
+ 769,
+ 770,
+ 771,
+ 772,
+ 773,
+ 774,
+ 775,
+ 776,
+ 777,
+ 778,
+ 779,
+ 780,
+ 781,
+ 782,
+ 783,
+ 784,
+ 785,
+ 786,
+ 787,
+ 788,
+ 789,
+ 790,
+ 791,
+ 792,
+ 793,
+ 794,
+ 795,
+ 796,
+ 797,
+ 798,
+ 799,
+ 800,
+ 801,
+ 802,
+ 803,
+ 804,
+ 805,
+ 806,
+ 807,
+ 808,
+ 809,
+ 810,
+ 811,
+ 812,
+ 813,
+ 814,
+ 815,
+ 816,
+ 817,
+ 818,
+ 819,
+ 820,
+ 821,
+ 822,
+ 823,
+ 824,
+ 825,
+ 826,
+ 827,
+ 828,
+ 829,
+ 830,
+ 831,
+ 832,
+ 833,
+ 834,
+ 835,
+ 836,
+ 837,
+ 838,
+ 839,
+ 840,
+ 841,
+ 842,
+ 843,
+ 844,
+ 845,
+ 846,
+ 847,
+ 848,
+ 849,
+ 850,
+ 851,
+ 852,
+ 853,
+ 854,
+ 855,
+ 856,
+ 857,
+ 858,
+ 859,
+ 860,
+ 861,
+ 862,
+ 863,
+ 864,
+ 865,
+ 866,
+ 867,
+ 868,
+ 869,
+ 870,
+ 871,
+ 872,
+ 873,
+ 874,
+ 875,
+ 876,
+ 877,
+ 878,
+ 879,
+ 880,
+ 881,
+ 882,
+ 883,
+ 884,
+ 885,
+ 886,
+ 887,
+ 888,
+ 889,
+ 890,
+ 891,
+ 892,
+ 893,
+ 894,
+ 895,
+ 896,
+ 897,
+ 898,
+ 899,
+ 900,
+ 901,
+ 902,
+ 903,
+ 904,
+ 905,
+ 906,
+ 907,
+ 908,
+ 909,
+ 910,
+ 911,
+ 912,
+ 913,
+ 914,
+ 915,
+ 916,
+ 917,
+ 918,
+ 919,
+ 920,
+ 921,
+ 922,
+ 923,
+ 924,
+ 925,
+ 926,
+ 927,
+ 928,
+ 929,
+ 930,
+ 931,
+ 932,
+ 933,
+ 934,
+ 935,
+ 936,
+ 937,
+ 938,
+ 939,
+ 940,
+ 941,
+ 942,
+ 943,
+ 944,
+ 945,
+ 946,
+ 947,
+ 948,
+ 949,
+ 950,
+ 951,
+ 952,
+ 953,
+ 954,
+ 955,
+ 956,
+ 957,
+ 958,
+ 959,
+ 960,
+ 961,
+ 962,
+ 963,
+ 964,
+ 965,
+ 966,
+ 967,
+ 968,
+ 969,
+ 970,
+ 971,
+ 972,
+ 973,
+ 974,
+ 975,
+ 976,
+ 977,
+ 978,
+ 979,
+ 980,
+ 981,
+ 982,
+ 983,
+ 984,
+ 985,
+ 986,
+ 987,
+ 988,
+ 989,
+ 990,
+ 991,
+ 992,
+ 993,
+ 994,
+ 995,
+ 996,
+ 997,
+ 998,
+ 999,
+ 1000,
+ 1001,
+ 1002,
+ 1003,
+ 1004,
+ 1005,
+ 1006,
+ 1007,
+ 1008,
+ 1009,
+ 1010,
+ 1011,
+ 1012,
+ 1013,
+ 1014,
+ 1015,
+ 1016,
+ 1017,
+ 1018,
+ 1019,
+ 1020,
+ 1021,
+ 1022,
+ 1023,
+ 1024,
+ 1025,
+ 1026,
+ 1027,
+ 1028,
+ 1029,
+ 1030,
+ 1031,
+ 1032,
+ 1033,
+ 1034,
+ 1035,
+ 1036,
+ 1037,
+ 1038,
+ 1039,
+ 1040,
+ 1041,
+ 1042,
+ 1043,
+ 1044,
+ 1045,
+ 1046,
+ 1047,
+ 1048,
+ 1049
+ ],
+ "y": [
+ 10.254870814940258,
+ 3.130677009707433,
+ 1.6351898778593667E-5,
+ 50.42956100827989,
+ 2.456848423821806,
+ 0.5734654704192029,
+ 10.80939334875027,
+ 12.12065145306428,
+ 4.041496375476774,
+ 0.4925447225343492,
+ 2.917675552057574,
+ 12.113194809574257,
+ 59.82091772660756,
+ 2.015311795427033E-5,
+ 15.583296166031653,
+ 24.398786741261357,
+ 5.846089531466992E-4,
+ 0.0015928329871048924,
+ 4.6384813120201284E-4,
+ 0.5378454475236216,
+ 2.5387924929283323E-5,
+ 3.475006682700658E-6,
+ 0.33996661011562174,
+ 5.506119058446815,
+ 6.754358939963694E-5,
+ 2.8949083409302383,
+ 4.183564608588543,
+ 1.7023611824144531,
+ 0.8187068681807395,
+ 25.878794238184554,
+ 11.347010118505372,
+ 36.44350518664966,
+ 2.2117303469414286E-5,
+ 1.8948991419434687E-6,
+ 9.150921914880375E-8,
+ 1.435634320477263,
+ 0.28776348209628005,
+ 7.674315733391423E-5,
+ 7.187172977251288E-5,
+ 1.7841436956695884,
+ 0.10908246018900923,
+ 2.0823906985524385E-5,
+ 0.12858227960033594,
+ 2.059168020097015,
+ 1.4664184869613078E-5,
+ 0.1564291279874314,
+ 0.1462286841101659,
+ 14.561132509469264,
+ 1.9794277840486003,
+ 9.446368566977197E-5,
+ 1.0357562362792252E-4,
+ 0.9096150937165316,
+ 1.242739382064506E-4,
+ 0.004657883291714416,
+ 0.004684058355870092,
+ 0.4703617860852337,
+ 7.173525231446688,
+ 1.869135679738119,
+ 0.6940840445438299,
+ 2.8113719505236454,
+ 1.854716042973223E-6,
+ 0.48330482026421145,
+ 0.559678483935704,
+ 13.734982166741313,
+ 1.4168304925609147E-6,
+ 3.839550635202983E-5,
+ 1.78766198837295E-5,
+ 0.10239037678992494,
+ 0.05268759623405803,
+ 5.333830730025338E-6,
+ 0.055808459196867215,
+ 0.1406923391002967,
+ 1.1774419701698833E-5,
+ 4.304937141271095E-6,
+ 3.7266039059137115E-6,
+ 0.6079974813816613,
+ 5.76526915368327E-7,
+ 7.840707102414518E-6,
+ 4.101890484435297E-6,
+ 0.9082780528846854,
+ 9.460898992568663E-5,
+ 1.0297272619874947E-4,
+ 4.781125014770782E-5,
+ 0.42781700696375696,
+ 1.8524766242575926E-6,
+ 1.7458109813829092E-8,
+ 0.248710790401532,
+ 0.12727904028441986,
+ 1.685377409071156E-6,
+ 3.933816875420396E-8,
+ 2.5928776692638565E-4,
+ 0.8093617780992973,
+ 1.3707336675727117E-5,
+ 1.4105386516446676E-5,
+ 1.2582553695141336E-6,
+ 14.361549167506636,
+ 1.1020050134568477E-4,
+ 1.6106267407944792E-4,
+ 2.0325694327222101E-4,
+ 0.4402388304894366,
+ 1.0996765063362014E-5,
+ 2.558563051145948E-6,
+ 2.9487243234691343E-7,
+ 0.5482364196668867,
+ 7.283559745386485E-10,
+ 1.3623394456749249E-6,
+ 4.293686480989807E-6,
+ 0.6901601077949445,
+ 2.7188910623814654E-6,
+ 2.607952643760146E-6,
+ 3.1249423738331986E-6,
+ 0.940646630083222,
+ 2.6587974159129337E-6,
+ 9.599670773173082E-6,
+ 9.797695745348836E-6,
+ 0.5294553894664865,
+ 1.072882198762174E-5,
+ 3.414649996708658E-5,
+ 5.1365756333117284E-5,
+ 0.8499223137418175,
+ 9.63780138550702E-6,
+ 7.889312010241823E-7,
+ 1.9746775499947353E-6,
+ 0.8618884933098172,
+ 1.481926080902394E-6,
+ 2.6794955414067146E-7,
+ 1.2363615952217495E-6,
+ 10.338149866720599,
+ 3.0249388356590605E-7,
+ 7.664521435838353E-6,
+ 2.6568456150354428E-5,
+ 0.5379084794559622,
+ 2.6894598440420222E-5,
+ 8.91648715914253E-6,
+ 1.657774122265624E-5,
+ 0.6647000546788754,
+ 1.7763686747737775E-10,
+ 1.5892536253284775E-9,
+ 9.91411603872228E-7,
+ 0.5737400611239117,
+ 2.434409098878336E-6,
+ 2.991072435128953E-5,
+ 2.3012809939652418E-5,
+ 0.7635186900596835,
+ 1.4562511349409636E-5,
+ 9.377569224755752E-6,
+ 5.942572409664933E-6,
+ 0.6084510992127217,
+ 1.009869790884097E-5,
+ 2.3647532178248642E-5,
+ 1.0722353221450422E-5,
+ 0.9686354207811532,
+ 3.9303991014559514E-7,
+ 2.6042743873748097E-6,
+ 1.0764788424865195E-6,
+ 0.9261172264065116,
+ 1.1299432715681848E-6,
+ 1.2131386843241501E-5,
+ 5.71667612838058E-6,
+ 8.16188980462039,
+ 8.048727806110858E-8,
+ 1.2326329612757487E-6,
+ 1.5073065507498507E-5,
+ 0.6298261302188318,
+ 5.055254034991638E-8,
+ 3.0146587847675108E-5,
+ 2.8138106691908533E-5,
+ 0.7355799628372437,
+ 1.2685707266084591E-5,
+ 3.879091010911899E-6,
+ 1.6467218579389348E-6,
+ 0.6215500453729114,
+ 1.4523497041347343E-5,
+ 3.3280725395179694E-5,
+ 5.717569550814355E-5,
+ 0.844431510318198,
+ 1.3560156531165936E-5,
+ 3.829536662977826E-7,
+ 2.763658420249834E-5,
+ 0.6688802317237422,
+ 1.1292060454927954E-6,
+ 6.099052820042721E-6,
+ 3.691048966709476E-6,
+ 1.0224707510529623,
+ 4.559609265917348E-10,
+ 3.542353377514449E-7,
+ 1.5304845539789412E-6,
+ 0.9488428442618255,
+ 4.9314136008689E-6,
+ 2.2307208768309265E-5,
+ 7.288130165903984E-6,
+ 6.801591444786928,
+ 3.3001731996936923E-7,
+ 7.343351495446741E-6,
+ 1.7345286643637577E-6,
+ 0.682536534665606,
+ 9.253635084313517E-6,
+ 2.3152268207708984E-6,
+ 1.7832441998121146E-5,
+ 0.8074308238373226,
+ 1.3695402785599475E-5,
+ 6.572077868209458E-5,
+ 6.643787947510568E-5,
+ 0.6826441547789235,
+ 1.7550111068600575E-5,
+ 1.6439225611212614E-5,
+ 2.4968014239826174E-7,
+ 0.894548231294726,
+ 2.132998330174448E-6,
+ 1.951175897440683E-5,
+ 3.4110073426928257E-6,
+ 0.7199815601218089,
+ 3.432254346945653E-7,
+ 8.699039878788669E-7,
+ 9.052890018932171E-8,
+ 1.0684479572712702,
+ 8.660929929675324E-6,
+ 1.3637644211101573E-5,
+ 2.8832279197369066E-5,
+ 0.9700915759042593,
+ 1.3680248331534047E-6,
+ 1.392036640151097E-6,
+ 8.607801487438014E-8,
+ 5.786354782363679,
+ 8.30587468851698E-6,
+ 3.140065936996979E-7,
+ 5.290291662837921E-6,
+ 0.7111142247628565,
+ 9.198413386669604E-6,
+ 1.0185109093211518E-6,
+ 1.3377985348067853E-5,
+ 0.8574128923640157,
+ 6.034280980025747E-8,
+ 7.184005645090836E-10,
+ 5.577486423701733E-6,
+ 0.7191950741689602,
+ 1.9006412682886828E-7,
+ 1.1456635977868945E-7,
+ 2.1353899720003863E-9,
+ 0.9247474535999154,
+ 2.734638624909144E-6,
+ 8.606336058021155E-6,
+ 1.2076408886049755E-6,
+ 0.7508247338665569,
+ 1.234010383626521E-5,
+ 1.2357353492947983E-6,
+ 1.2119709237095213E-5,
+ 1.0921477627103413,
+ 1.8283123093658867E-7,
+ 3.203266992225189E-6,
+ 5.637838438758511E-10,
+ 0.9821722297117703,
+ 1.491061279328808E-7,
+ 1.2488756856191016E-7,
+ 2.769543882070816E-7,
+ 5.152536234367156,
+ 2.660011264403571E-5,
+ 1.615599825655426E-5,
+ 3.5901521719387846E-6,
+ 0.7699727604184345,
+ 2.3486273430914284E-8,
+ 6.076845085869371E-6,
+ 1.3824593308472995E-5,
+ 0.912522373810114,
+ 1.6730271968427612E-6,
+ 6.3030822950505235E-6,
+ 1.046807469589311E-7,
+ 0.755850826422649,
+ 3.722787138574015E-6,
+ 2.207526243212371E-6,
+ 1.858975999808346E-6,
+ 0.9805360560852662,
+ 4.184175651580984E-8,
+ 4.6454703551828845E-6,
+ 7.172860392792031E-8,
+ 0.796045525127507,
+ 4.807255552983736E-7,
+ 1.8664244906449143E-6,
+ 1.968105016814078E-8,
+ 1.1517031402912832,
+ 1.1159618649262063E-7,
+ 4.3269097082238816E-9,
+ 1.8236426331931637E-8,
+ 1.0100441389431771,
+ 6.43587386710239E-6,
+ 1.956837998440872E-6,
+ 2.7338853427562595E-8,
+ 4.6777132231415095,
+ 1.7656661355008527E-6,
+ 8.387368715259586E-6,
+ 2.2863555707113102E-5,
+ 0.7981096510831075,
+ 1.3739244217909336E-6,
+ 2.321937810656099E-7,
+ 3.3685345920992073E-8,
+ 0.9384568854152316,
+ 4.294889625996397E-6,
+ 5.745037151161007E-8,
+ 2.2403676424008638E-6,
+ 0.7841881164331643,
+ 5.045267968023472E-7,
+ 5.584689623669112E-6,
+ 3.7250393911429188E-6,
+ 1.006297655613526,
+ 1.2349985936317365E-5,
+ 1.7201287445629484E-6,
+ 8.76844522635044E-7,
+ 0.8180690179414459,
+ 1.1339200597763994E-8,
+ 6.520068255040325E-6,
+ 9.105918859543518E-6,
+ 1.1818106062081033,
+ 8.015249241619318E-7,
+ 2.1928412698995536E-7,
+ 6.578712098540083E-7,
+ 1.0238815065758822,
+ 3.237695958608124E-11,
+ 1.0063870304721336E-6,
+ 1.8420278640285292E-8,
+ 4.339112084889391,
+ 1.6602622299226684E-5,
+ 6.775029932140205E-8,
+ 3.4618335540384384E-6,
+ 0.8438843267146515,
+ 1.2421082306826118E-5,
+ 4.641184326640745E-6,
+ 1.207594708623562E-6,
+ 0.9696863340911042,
+ 7.774449564267547E-7,
+ 2.388433594456484E-6,
+ 3.4868257102149445E-7,
+ 0.8167683204621963,
+ 7.005193822041798E-7,
+ 8.745060047915221E-7,
+ 3.7061785592459682E-6,
+ 1.0346464016839723,
+ 5.394591057883062E-6,
+ 2.1332657316333107E-6,
+ 5.335665986381749E-6,
+ 0.8354917300706544,
+ 1.2497113862057012E-6,
+ 9.588270701950562E-7,
+ 2.0498772737901813E-7,
+ 1.1958996423740735,
+ 9.726581285922477E-8,
+ 1.0590709188111659E-6,
+ 7.830827132343201E-6,
+ 1.0329312219748292,
+ 1.6794558074599297E-8,
+ 1.352518070275078E-7,
+ 4.6677692962291775E-8,
+ 4.002426195243257,
+ 1.0644089866972591E-5,
+ 1.529767959148241E-7,
+ 1.5680821420653534E-7,
+ 0.8605393448087117,
+ 3.2488952739901786E-6,
+ 3.432545029559747E-6,
+ 4.986187897414898E-7,
+ 0.9987600027979998,
+ 1.457534373593324E-6,
+ 5.872720666235292E-7,
+ 3.6119548672880507E-6,
+ 0.8371621481710191,
+ 7.574240198688195E-7,
+ 1.6061924354653294E-6,
+ 1.0713411307045175E-6,
+ 1.0593154243629879,
+ 3.947435788789381E-6,
+ 1.5213913035562638E-6,
+ 5.986596783752099E-7,
+ 0.8577404085605211,
+ 8.086952864637208E-6,
+ 5.587269024576494E-8,
+ 2.95171536315584E-7,
+ 1.21027947260648,
+ 2.585614544839351E-6,
+ 8.824365117594816E-6,
+ 4.396801357743404E-6,
+ 1.045887642042592,
+ 7.373794251870476E-6,
+ 2.778797048052653E-7,
+ 4.712718752781979E-6,
+ 3.784049938512443,
+ 2.089836182909302E-6,
+ 4.1654534915004585E-6,
+ 1.7828019247096987E-7,
+ 0.8757075691550656,
+ 1.693524294139358E-7,
+ 4.0270290523958935E-6,
+ 6.881850649191026E-7,
+ 1.0199361388022476,
+ 1.626836928382598E-5,
+ 3.5053574473525303E-6,
+ 6.442748464553971E-7,
+ 0.8511717692496712,
+ 3.4122722500636595E-6,
+ 3.4819713603709036E-6,
+ 4.7230039344326335E-6,
+ 1.0880871441349222,
+ 8.258994298444062E-6,
+ 1.3082458834133016E-5,
+ 1.1447691754555556E-6,
+ 0.8700021342493679,
+ 2.8647350586274695E-6,
+ 3.183126005405812E-6,
+ 4.104694415359323E-10,
+ 1.2244853533789495,
+ 7.1301008738603795E-6,
+ 5.069190919935673E-6,
+ 2.5118679189945144E-6,
+ 1.0587254216380675,
+ 4.17485945205077E-7,
+ 1.898404382341617E-8,
+ 4.1617806179507385E-10,
+ 3.551434271211338,
+ 1.8898784902364042E-6,
+ 2.4510881079586332E-6,
+ 1.384561996862939E-7,
+ 0.8956910458842563,
+ 5.377051787862423E-8,
+ 2.118145764172687E-6,
+ 1.8238476064009745E-6,
+ 1.0391713682594963,
+ 6.114145241037666E-10,
+ 5.409549052878838E-6,
+ 7.078190276663196E-7,
+ 0.8673196790191462,
+ 1.0175790200573447E-6,
+ 3.4367790528420453E-6,
+ 2.1909689360991572E-5,
+ 1.0802740962661026,
+ 4.911107723150465E-7,
+ 7.910161340514868E-7,
+ 5.004985566951294E-6,
+ 0.876091782711211,
+ 7.446464672544251E-7,
+ 1.044331227027148E-6,
+ 2.819022409588353E-7,
+ 1.2379312037973567,
+ 5.2636112509288305E-8,
+ 1.5964965148371849E-6,
+ 1.084195892684042E-6,
+ 1.062893220391778,
+ 4.102565459296045E-7,
+ 1.0836606544821592E-6,
+ 5.801034459887543E-8,
+ 3.36498385978177,
+ 4.008004508123152E-8,
+ 1.9517108353059168E-8,
+ 8.171995554905445E-6,
+ 0.9073333583172289,
+ 2.950640482180062E-6,
+ 4.288460256584399E-6,
+ 1.3137941070937902E-6,
+ 1.070922622556905,
+ 2.399296513923013E-7,
+ 5.294493265569665E-10,
+ 1.250090351023486E-6,
+ 0.8945991422367542,
+ 1.566297232913176E-5,
+ 1.1369327152259302E-5,
+ 2.7043432014049105E-6,
+ 1.1210528518880398,
+ 2.5177741117476744E-6,
+ 2.920502144059251E-7,
+ 1.657063212317606E-7,
+ 0.8934311436971653,
+ 2.797818579228506E-7,
+ 4.7324089237604036E-6,
+ 1.3062891219256891E-5,
+ 1.2612845325263133,
+ 5.679732208916121E-8,
+ 1.460327770933769E-7,
+ 5.20041726747935E-7,
+ 1.0771373698563325,
+ 7.042377447961714E-7,
+ 2.264164267758114E-7,
+ 5.229087225080636E-6,
+ 3.2505097612393246,
+ 1.53040563360139E-6,
+ 4.394955796307638E-6,
+ 2.5076368526754756E-7,
+ 0.9269945116039258,
+ 5.972071607375683E-7,
+ 1.3649824061330678E-7,
+ 2.4813753714753003E-8,
+ 1.065925715445947,
+ 9.962811345441444E-6,
+ 4.963508631118491E-7,
+ 8.425011920023806E-6,
+ 0.8938148611948384,
+ 3.8521169858496647E-7,
+ 3.4715510856571835E-10,
+ 3.7880649263177834E-7,
+ 1.124796043688597,
+ 8.713281036309943E-7,
+ 4.882255405250114E-6,
+ 2.5264254769293113E-6,
+ 0.89770828037889,
+ 6.39190701414643E-6,
+ 1.6361358399655668E-5,
+ 3.2239333667491052E-6,
+ 1.250289551961724,
+ 1.5611743518379835E-7,
+ 2.88988390270886E-7,
+ 1.8028253035743115E-6,
+ 1.0666298539108356,
+ 7.1258468585125676E-6,
+ 7.73039928996114E-9,
+ 2.501196926615209E-6,
+ 3.092663383604574,
+ 1.1535075997801257E-5,
+ 2.185020517700301E-6,
+ 1.862295837788663E-5,
+ 0.9234295127320871,
+ 3.0095175168186973E-6,
+ 3.0032277677134363E-6,
+ 3.3784066762170986E-6,
+ 1.0745274946891796,
+ 1.1103866355948748E-5,
+ 6.106011735038804E-6,
+ 2.9852713708544455E-6,
+ 0.9028999939342486,
+ 8.40113334562801E-8,
+ 9.366831295784811E-7,
+ 1.7742314000500307E-6,
+ 1.143661598814418,
+ 6.782281927805012E-7,
+ 4.323229729507147E-10,
+ 6.260680729978561E-7,
+ 0.9092608227279281,
+ 5.518308567273855E-7,
+ 7.507077364902269E-7,
+ 4.125885970284922E-7,
+ 1.2796528951522723,
+ 2.0736157972793463E-6,
+ 1.5990446046012807E-7,
+ 2.4443712723970264E-7,
+ 1.0887378772149592,
+ 5.7535679059990595E-6,
+ 1.8228696670581231E-6,
+ 1.232977201954302E-6,
+ 3.022886075104071,
+ 6.799139677458584E-7,
+ 1.2632939333530465E-7,
+ 9.450366566657426E-6,
+ 0.9399432096311605,
+ 9.605218428463596E-8,
+ 3.482514314707979E-6,
+ 2.0692237861009842E-6,
+ 1.0936262465745175,
+ 1.8607041584407648E-7,
+ 1.4845272207502467E-6,
+ 1.7303478444219201E-6,
+ 0.916775478891657,
+ 7.197727380848962E-8,
+ 1.6889267352019023E-7,
+ 1.278627780228052E-6,
+ 1.1517380850241687,
+ 3.891763361079843E-6,
+ 5.965647935527906E-6,
+ 2.539185000648399E-7,
+ 0.9118692346782936,
+ 1.0931982670246264E-5,
+ 3.5132244205041254E-6,
+ 1.5595323013982103E-6,
+ 1.273245835685381,
+ 8.713080535993961E-7,
+ 6.813043436526552E-7,
+ 7.040833092411689E-7,
+ 1.0924822507025496,
+ 3.675186174855754E-8,
+ 4.315407792950049E-6,
+ 4.453567305284111E-6,
+ 2.9078374487823204,
+ 1.8711953572442368E-6,
+ 6.861851335233885E-6,
+ 5.994340496942136E-6,
+ 0.9474423492334286,
+ 1.7778408399802303E-6,
+ 1.4881974685653591E-10,
+ 1.7116197956157118E-6,
+ 1.0937035857227897,
+ 2.3789393421516175E-7,
+ 2.0086255386774093E-6,
+ 1.8396207316869004E-6,
+ 0.9257355926997252,
+ 5.267143667878464E-6,
+ 3.905229186434675E-8,
+ 1.1359359330236295E-7,
+ 1.1653235740847523,
+ 1.5656822836426396E-6,
+ 1.8687364663920637E-6,
+ 1.01447910380055E-6,
+ 0.9205302329231637,
+ 1.998600584355007E-7,
+ 1.1063343975822268E-6,
+ 3.354591041709638E-8,
+ 1.287623227303246,
+ 1.07640645291503E-7,
+ 3.2004301919706184E-7,
+ 1.1701840629619417E-6,
+ 1.0911874622701083,
+ 1.4153895497636725E-5,
+ 7.4963759330011915E-6,
+ 5.697425240657414E-7,
+ 2.8341772022035734,
+ 5.489306796333719E-6,
+ 6.375216002358171E-6,
+ 2.0550947869433775E-8,
+ 0.9658068557150008,
+ 4.819737407017581E-7,
+ 4.33318682588824E-8,
+ 3.708361571349922E-7,
+ 1.114373207827163,
+ 2.3092914254818645E-6,
+ 6.15411283306806E-6,
+ 3.79435947897892E-7,
+ 0.9388379665499345,
+ 1.1980747918500616E-7,
+ 3.110431001378668E-8,
+ 8.836823949253164E-7,
+ 1.1871745871960284,
+ 2.308897523491192E-6,
+ 3.806870770243997E-10,
+ 4.0832477407341346E-7,
+ 0.9215215777182088,
+ 4.14434873195856E-6,
+ 9.677695542896193E-6,
+ 5.305362543070242E-6,
+ 1.2779600587425117,
+ 1.0656326107248712E-6,
+ 3.973528140797651E-6,
+ 1.2207026468947447E-6,
+ 1.0928469560507896,
+ 4.8975088399560815E-8,
+ 5.270065598679285E-7,
+ 4.614223467677721E-6,
+ 2.7602974055798244,
+ 1.158760018959589E-6,
+ 1.2542102780509296E-9,
+ 3.3706596373337337E-6,
+ 0.9557517171506252,
+ 1.8554677648140977E-7,
+ 1.980574417574916E-6,
+ 9.81721895985942E-7,
+ 1.1244879408969886,
+ 1.6951407035157574E-5,
+ 7.580205037305471E-6,
+ 1.2796372093373054E-6,
+ 0.9417958788880532,
+ 3.4928229600676437E-6,
+ 5.39197645606512E-7,
+ 6.696142948508067E-7,
+ 1.1917795512341742,
+ 6.434934197440082E-6,
+ 4.880481405341587E-6,
+ 1.8405073199085699E-6,
+ 0.9335791686695755,
+ 8.807503510691185E-7,
+ 1.6944481694707613E-7,
+ 1.2100247750190438E-8,
+ 1.2952922486267686,
+ 1.7820357476709605E-8,
+ 8.225859306675694E-7,
+ 1.1429355633518122E-6,
+ 1.1037583557076536,
+ 6.694330216831006E-7,
+ 4.024387087139082E-9,
+ 3.0569865618831246E-6,
+ 2.700168577014972,
+ 6.292415217767318E-6,
+ 8.893392245407561E-8,
+ 3.344869064448592E-7,
+ 0.9702955580982318,
+ 2.093114352499352E-7,
+ 6.70083189690888E-7,
+ 7.55936528127921E-7,
+ 1.1217042827102273,
+ 1.3824883736032422E-6,
+ 8.7028631565179E-8,
+ 1.6571852907870865E-6,
+ 0.9464039658228217,
+ 3.1349317965145484E-6,
+ 3.157482521077736E-7,
+ 4.4090660976502446E-7,
+ 1.1855200177773735,
+ 5.171968263325449E-6,
+ 5.556483837223367E-6,
+ 1.9795761751318512E-7,
+ 0.9274401156134573,
+ 1.9442852290621395E-8,
+ 2.3136074902786485E-6,
+ 2.7812357401917824E-6,
+ 1.3020246236796176,
+ 5.6156118317967864E-6,
+ 1.6492136057492635E-6,
+ 4.949865009396889E-7,
+ 1.1007008009304458,
+ 2.6927553124907298E-6,
+ 3.130535933151559E-6,
+ 6.400358700355678E-7,
+ 2.613909235649669,
+ 1.6819986750347978E-7,
+ 5.909413038679208E-7,
+ 2.265662503729857E-6,
+ 0.9702989123832572,
+ 2.0075044888344248E-7,
+ 4.412928115361354E-7,
+ 2.0534298080418385E-7,
+ 1.122538152524151,
+ 4.924398457252324E-7,
+ 4.467255914929295E-6,
+ 6.323899353873789E-6,
+ 0.952855356952556,
+ 4.2351895730387984E-7,
+ 8.856272649006075E-8,
+ 6.090052582014157E-7,
+ 1.1996541923515234,
+ 1.7010987141547765E-6,
+ 3.810979934835473E-6,
+ 1.4601242299115591E-7,
+ 0.9308641011807378,
+ 7.1270812264600534E-6,
+ 2.0976364447047524E-8,
+ 5.934895562872973E-7,
+ 1.3023935114963918,
+ 1.2776021414129642E-6,
+ 1.0296246297905531E-6,
+ 4.304588042721168E-6,
+ 1.1134114826187074,
+ 3.023264015964841E-8,
+ 9.86034185770216E-7,
+ 2.4502505210439656E-7,
+ 2.5740504548812564,
+ 3.322646990084215E-8,
+ 9.420207706288491E-7,
+ 9.890610050591965E-7,
+ 0.9812892786759329,
+ 6.888193426559003E-8,
+ 3.3848280769290765E-6,
+ 1.3735791353996583E-7,
+ 1.1365542826628388,
+ 6.730304540390989E-8,
+ 4.814138237093265E-6,
+ 4.685143690041071E-6,
+ 0.9655165510239889,
+ 1.0868746574060499E-5,
+ 3.718797371330314E-8,
+ 1.0459207365668385E-6,
+ 1.214959867796336,
+ 2.6493301460254684E-7,
+ 3.5083834112864303E-6,
+ 3.125548654791236E-7,
+ 0.9378056028972357,
+ 2.3597039178890324E-6,
+ 1.9582623956688714E-8,
+ 1.223606702003759E-7,
+ 1.292325918218531,
+ 3.05454286463271E-7,
+ 1.0105339540718684E-7,
+ 2.3545406486421375E-6,
+ 1.1082249510017375,
+ 1.4129553454544658E-7,
+ 5.467282092635642E-8,
+ 4.0783294530691133E-7,
+ 2.5208586125082304,
+ 1.6775775885045935E-6,
+ 5.443194104472434E-6,
+ 2.2396766570623276E-7,
+ 0.9730314414476188,
+ 7.38825297725985E-6,
+ 1.4660199416279085E-7,
+ 6.021765545762668E-6,
+ 1.1405354179076306,
+ 6.997443205781309E-7,
+ 4.314172968792871E-6,
+ 1.084749985115351E-6,
+ 0.9719083052978572,
+ 3.012659865394299E-7,
+ 1.7241984126721024E-9,
+ 1.304200071599512E-7,
+ 1.2249623935055716,
+ 4.355119834602835E-7,
+ 1.5973480860343668E-6,
+ 2.3680857375114496E-6,
+ 0.9411863927107951,
+ 2.359433401223309E-6,
+ 9.57667188397104E-7,
+ 6.513064101934279E-7,
+ 1.3094581551702782,
+ 3.8406613312742814E-7,
+ 2.1226202185723546E-6,
+ 1.5872422257177691E-6,
+ 1.1215996664960934,
+ 5.922405876109907E-7,
+ 2.4631727948725923E-6,
+ 1.7397265676732895E-6,
+ 2.511366933189997,
+ 1.0258638551091126E-5,
+ 1.112541150794871E-5,
+ 1.0341470721400782E-7,
+ 0.9815966790406504,
+ 2.3341663278222182E-6,
+ 1.0460244815745152E-5,
+ 2.624985034678019E-9,
+ 1.131764713316714,
+ 1.7565842680058561E-6,
+ 4.4410327293493535E-7,
+ 2.8774946642173203E-7,
+ 0.9814800607066355,
+ 4.162293609086431E-5,
+ 7.984397451464375E-7,
+ 2.181787338791949E-5,
+ 1.2290810800249445,
+ 1.3669494838789134E-6,
+ 7.321390740570549E-6,
+ 2.005044396263199E-5,
+ 0.9426602618292502,
+ 4.828212764542342E-6,
+ 2.173713153214471E-6,
+ 1.6109675372663408E-5,
+ 1.282587778704491,
+ 2.1757533308183725E-5,
+ 2.912192745356809E-5,
+ 1.0557652796998587E-5,
+ 1.126981046032727,
+ 4.5473658348293697E-5,
+ 1.343218759754257E-5,
+ 1.7536004603694603E-7,
+ 2.432548361307924,
+ 1.12980612903946E-5,
+ 7.073307259959521E-7,
+ 3.430341268884413E-9,
+ 0.9904234076146202,
+ 3.1656711948551056E-7,
+ 4.3666365808795154E-7,
+ 4.1133074023693046E-5,
+ 1.1164337328563267,
+ 1.465308577325884E-5,
+ 1.973755857178628E-5,
+ 8.727017228009434E-6,
+ 0.9736010557145874,
+ 2.4876567319036944E-8,
+ 4.2063333294408335E-5,
+ 4.0761024508294745E-5,
+ 1.230532612315697,
+ 3.7071748717501136E-6,
+ 1.8445655251699325E-5,
+ 1.2237483965603051E-5,
+ 0.9467093417690849,
+ 1.0007784046455841E-5,
+ 9.216961949385922E-6,
+ 1.4428090427193379E-5,
+ 1.2926150379992833,
+ 2.084489873395609E-5,
+ 1.748865597489975E-5,
+ 7.819671569098733E-6,
+ 1.1337634751845256,
+ 5.849869915712453E-6,
+ 1.3014392857743336E-6,
+ 5.366205118593959E-7,
+ 2.4017420561381737,
+ 2.1081586895763054E-5,
+ 2.4243170219919387E-6,
+ 2.0823835140733813E-6,
+ 0.9914826769292977,
+ 2.106213748819264E-5,
+ 9.269954135067698E-6,
+ 3.9738547433614103E-7,
+ 1.1460767717235543,
+ 7.966225289671905E-10,
+ 2.459575234191229E-6,
+ 1.4282185802507532E-7,
+ 0.9991030503175389,
+ 1.972325045408379E-5,
+ 2.9883533730313387E-6,
+ 2.4063243521994507E-7,
+ 1.2368457309436973,
+ 6.994981477861806E-6,
+ 5.958312130730547E-6,
+ 6.775304869432333E-7,
+ 0.932035611339388,
+ 6.568591739884936E-7,
+ 4.6106013829536886E-7,
+ 2.063869797416661E-6,
+ 1.2969813634631167,
+ 7.579274288290631E-6,
+ 1.9015951673389952E-6,
+ 1.6653403490057582E-7,
+ 1.1359892429403102,
+ 2.0176606219338762E-6,
+ 9.743999654382747E-7,
+ 7.913118996344823E-7,
+ 2.3829965568458387,
+ 2.0148981857423893E-6,
+ 3.8144087503440855E-7,
+ 4.3411396790656523E-8,
+ 0.9716782701520388,
+ 2.353222935708466E-5,
+ 8.747362440243002E-6,
+ 9.650827598729101E-7,
+ 1.1368395935184554,
+ 4.800818591471255E-7,
+ 2.2416707932756325E-6,
+ 7.128729694110019E-7,
+ 0.9893453360770643,
+ 1.5740048575713284E-6,
+ 4.172393664807971E-6,
+ 3.6765603047528557E-6,
+ 1.2618217278037887,
+ 2.1988679702385636E-9,
+ 3.4291828351100266E-7,
+ 1.4326698652155238E-5,
+ 0.9363590941567438,
+ 4.3329062103573787E-7,
+ 1.7228751160799923E-6,
+ 4.375221184708446E-7,
+ 1.307596050548645,
+ 1.2245321572964893E-7,
+ 1.1712041276679249E-7,
+ 1.9473232359135116E-7,
+ 1.1476781214281282,
+ 9.504928351668484E-7,
+ 5.786605506098011E-5,
+ 4.251660396970677E-5,
+ 2.3710590106767464,
+ 2.0648707275751717E-7,
+ 2.6274693722810894E-7,
+ 7.532593596469872E-7,
+ 0.9814159891098121,
+ 2.8868112903848226E-5,
+ 1.199466994275681E-6,
+ 5.327511353043355E-6,
+ 1.1335009170124961,
+ 1.2881510992883524E-5,
+ 6.338916372710444E-5,
+ 2.5674005826528288E-5,
+ 1.0029122080097732,
+ 3.6620033913609136E-5,
+ 3.5784650718981575E-6,
+ 8.31312956018711E-6,
+ 1.256175226565393,
+ 3.620929955128518E-7,
+ 1.4047751971363701E-5,
+ 4.3312291070767166E-10,
+ 0.9408724370826003,
+ 1.2145471866661738E-5,
+ 1.5814849036959278E-6,
+ 2.854933750240406E-6,
+ 1.2912058445731665,
+ 1.6724208236646345E-7,
+ 1.0261617653308584E-5,
+ 2.5025857184369674E-6,
+ 1.1415457918710876,
+ 2.5843957482257674E-5,
+ 8.577258773568607E-5,
+ 5.2733947970815796E-5,
+ 2.319181743645457,
+ 6.070039304528365E-7,
+ 2.996336317845265E-7,
+ 6.515508801350826E-5,
+ 0.9992087049709728,
+ 6.559548002273193E-5,
+ 2.694118251934067E-5,
+ 3.3348963753776084E-5,
+ 1.13600776494122,
+ 2.3279132363232211E-10,
+ 1.4414202165210095E-6,
+ 2.6841540981154315E-7,
+ 0.9992295869846844,
+ 1.9713772490931607E-6,
+ 2.7678584695376476E-6,
+ 9.698247187147946E-8,
+ 1.2715785675584728,
+ 2.971280868612547E-5,
+ 1.3062243856386015E-5,
+ 1.4853813756608887E-5,
+ 0.9325444049176939,
+ 1.1751543479948581E-7,
+ 4.608148570883315E-6,
+ 3.7749216463120735E-7,
+ 1.2963946617072817,
+ 1.3471580917289903E-6,
+ 1.1201218527619245E-5,
+ 3.0822308975301125E-5,
+ 1.1337013589186573,
+ 1.660971334542883E-5,
+ 3.2881648923910826E-6,
+ 6.189156542601811E-8,
+ 2.258744381492345,
+ 5.971410216973008E-5,
+ 3.6072132527339535E-5,
+ 5.536202778158755E-5,
+ 0.9742816096718145,
+ 1.2451072152559348E-5,
+ 3.024391083513722E-6,
+ 6.572806891267879E-7,
+ 1.129664082410071,
+ 2.169525334248925E-7,
+ 1.072623352511795E-6,
+ 6.762709569173282E-7,
+ 0.9960584466175078,
+ 1.9306667213871503E-6,
+ 2.8160521945970515E-6,
+ 7.250437912608264E-8,
+ 1.247716765303972,
+ 7.884786367122154E-7,
+ 1.8128866833902896E-6,
+ 6.944202368184122E-7,
+ 0.9276231155159749,
+ 1.6565289388954024E-6,
+ 7.338334177208047E-8,
+ 5.559627819997717E-10,
+ 1.2770779189908565,
+ 1.0103634061001782E-5,
+ 5.136430766357285E-6,
+ 6.281817349026786E-7,
+ 1.1282529939817951,
+ 4.4999310687799757E-7,
+ 1.4709704185670192E-4,
+ 1.4117476111144146E-4,
+ 2.228646791802394,
+ 1.6020031542362132E-6,
+ 2.6375279924289274E-6,
+ 2.810711554968829E-6,
+ 0.972314288260844,
+ 4.876384255116894E-7,
+ 1.4622145506211039E-6,
+ 9.941124305880115E-7,
+ 1.1252207589887098,
+ 4.1961515617271874E-10,
+ 1.8853560076937477E-9,
+ 2.0991771909315107E-7,
+ 0.999139509514188,
+ 2.1011299514154212E-7,
+ 9.706685908651654E-9,
+ 2.078461334172326E-7,
+ 1.2560018376301272,
+ 2.2421660399182397E-6,
+ 2.9157246100765043E-9,
+ 3.1387354515576056E-7,
+ 0.9290457550739429,
+ 1.4052063357004437E-7,
+ 3.3935170496218417E-6,
+ 4.853779403372494E-7,
+ 1.2751753315182903
+ ],
+ "type": "scatter",
+ "xaxis": "x",
"yaxis": "y2"
}
],
"layout": {
- "autosize": false,
- "font": {
- "size": 16
- },
- "height": 666.6666666666666,
- "legend": {
- "x": 0,
- "y": 1
- },
- "scene": {
- "xaxis": {
- "title": {
- "text": "channels"
- }
- },
- "yaxis": {
- "title": {
- "text": "filters"
- }
- },
- "zaxis": {
- "title": {
- "text": "ms"
- }
- }
- },
"template": {
"data": {
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "white",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
"bar": [
{
"error_x": {
@@ -9397,22 +11560,6 @@
"type": "bar"
}
],
- "barpolar": [
- {
- "marker": {
- "line": {
- "color": "white",
- "width": 0.5
- },
- "pattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- }
- },
- "type": "barpolar"
- }
- ],
"carpet": [
{
"aaxis": {
@@ -9441,6 +11588,15 @@
"type": "choropleth"
}
],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
"contour": [
{
"colorbar": {
@@ -9449,7 +11605,7 @@
},
"colorscale": [
[
- 0,
+ 0.0,
"#0d0887"
],
[
@@ -9485,22 +11641,13 @@
"#fdca26"
],
[
- 1,
+ 1.0,
"#f0f921"
]
],
"type": "contour"
}
],
- "contourcarpet": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "type": "contourcarpet"
- }
- ],
"heatmap": [
{
"colorbar": {
@@ -9509,7 +11656,7 @@
},
"colorscale": [
[
- 0,
+ 0.0,
"#0d0887"
],
[
@@ -9545,13 +11692,115 @@
"#fdca26"
],
[
- 1,
+ 1.0,
"#f0f921"
]
],
"type": "heatmap"
}
],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
"histogram": [
{
"marker": {
@@ -9564,108 +11813,6 @@
"type": "histogram"
}
],
- "histogram2d": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "histogram2d"
- }
- ],
- "histogram2dcontour": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "histogram2dcontour"
- }
- ],
"mesh3d": [
{
"colorbar": {
@@ -9692,16 +11839,6 @@
"type": "pie"
}
],
- "scatter": [
- {
- "fillpattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- },
- "type": "scatter"
- }
- ],
"scatter3d": [
{
"line": {
@@ -9752,6 +11889,17 @@
"type": "scattergl"
}
],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
"scattermap": [
{
"marker": {
@@ -9763,7 +11911,7 @@
"type": "scattermap"
}
],
- "scattermapbox": [
+ "scatterpolargl": [
{
"marker": {
"colorbar": {
@@ -9771,7 +11919,7 @@
"ticks": ""
}
},
- "type": "scattermapbox"
+ "type": "scatterpolargl"
}
],
"scatterpolar": [
@@ -9785,15 +11933,14 @@
"type": "scatterpolar"
}
],
- "scatterpolargl": [
+ "scatter": [
{
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
},
- "type": "scatterpolargl"
+ "type": "scatter"
}
],
"scatterternary": [
@@ -9815,7 +11962,7 @@
},
"colorscale": [
[
- 0,
+ 0.0,
"#0d0887"
],
[
@@ -9851,7 +11998,7 @@
"#fdca26"
],
[
- 1,
+ 1.0,
"#f0f921"
]
],
@@ -9942,7 +12089,7 @@
],
"sequential": [
[
- 0,
+ 0.0,
"#0d0887"
],
[
@@ -9978,13 +12125,13 @@
"#fdca26"
],
[
- 1,
+ 1.0,
"#f0f921"
]
],
"sequentialminus": [
[
- 0,
+ 0.0,
"#0d0887"
],
[
@@ -10020,7 +12167,7 @@
"#fdca26"
],
[
- 1,
+ 1.0,
"#f0f921"
]
]
@@ -10149,14 +12296,10 @@
}
}
},
- "title": {
- "text": "Latency Measurements for a Singular Neural Network Layer With Changing Input Channels"
- },
- "width": 2000,
"xaxis": {
"anchor": "y",
"domain": [
- 0,
+ 0.0,
0.94
],
"title": {
@@ -10166,123 +12309,1210 @@
"yaxis": {
"anchor": "x",
"domain": [
- 0,
- 1
- ],
- "range": [
- -10,
- 40
+ 0.0,
+ 1.0
],
"title": {
"text": "Layer Execution Time (ms)"
- }
+ },
+ "range": [
+ -10,
+ 40
+ ]
},
"yaxis2": {
"anchor": "x",
"overlaying": "y",
- "range": [
- -4,
- 40
- ],
"side": "right",
"title": {
"text": "Point to point variance (%)"
+ },
+ "range": [
+ -4,
+ 40
+ ]
+ },
+ "scene": {
+ "xaxis": {
+ "title": {
+ "text": "channels"
+ }
+ },
+ "yaxis": {
+ "title": {
+ "text": "filters"
+ }
+ },
+ "zaxis": {
+ "title": {
+ "text": "ms"
+ }
}
- }
+ },
+ "width": 2000,
+ "height": 666.6666666666666,
+ "title": {
+ "text": "Latency Measurements for a Singular Neural Network Layer With Changing Input Channels"
+ },
+ "legend": {
+ "x": 0,
+ "y": 1
+ },
+ "font": {
+ "size": 16
+ },
+ "autosize": false
+ },
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
}
}
},
"metadata": {},
- "output_type": "display_data"
+ "output_type": "display_data",
+ "jetTransient": {
+ "display_id": null
+ }
}
],
+ "execution_count": 28
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2025-11-18T14:54:58.083600Z",
+ "start_time": "2025-11-18T14:54:57.511238Z"
+ }
+ },
+ "cell_type": "code",
"source": [
+ "import scipy\n",
+ "from collections import Counter\n",
+ "from itertools import repeat, chain\n",
+ "\n",
+ "peaks = scipy.signal.find_peaks(deltas, prominence=0.1)[0]\n",
+ "distances = []\n",
+ "\n",
+ "for (fpidx, first_peak) in enumerate(peaks):\n",
+ " for (spidx, second_peak) in enumerate(peaks[fpidx+1:]):\n",
+ " distances.append(int(second_peak - first_peak))\n",
+ "\n",
+ "sorted_distances = []\n",
+ "for d in list(chain.from_iterable(repeat(i, c) for i,c in Counter(distances).most_common())):\n",
+ " if d not in sorted_distances:\n",
+ " sorted_distances.append(d)\n",
+ "print(sorted_distances)\n",
+ "counted_distances = {int(d):distances.count(d) for d in distances}\n",
+ "print(counted_distances[2])"
+ ],
+ "id": "c16f6f494fcd97f6",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[16, 8, 24, 32, 48, 40, 56, 64, 72, 88, 80, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 256, 264, 272, 280, 288, 296, 304, 312, 320, 328, 336, 344, 352, 360, 368, 376, 384, 392, 400, 408, 416, 424, 432, 440, 448, 456, 464, 472, 480, 488, 496, 504, 512, 520, 528, 536, 544, 552, 560, 568, 576, 584, 592, 600, 608, 616, 624, 632, 640, 648, 656, 664, 672, 680, 688, 696, 704, 712, 720, 728, 736, 744, 752, 760, 768, 776, 784, 792, 800, 808, 816, 824, 832, 840, 848, 856, 864, 872, 880, 888, 896, 904, 912, 920, 928, 936, 944, 952, 960, 968, 7, 976, 9, 3, 5, 19, 984, 992, 13, 35, 11, 4, 12, 20, 26, 28, 44, 53, 1000, 2, 21, 37, 41, 33, 60, 76, 83, 22, 29, 1008, 50, 17, 27, 39, 67, 15, 23, 55, 57, 92, 100, 108, 116, 124, 132, 140, 148, 156, 164, 172, 180, 188, 196, 204, 212, 220, 228, 236, 244, 252, 260, 268, 276, 284, 292, 300, 308, 316, 324, 332, 340, 348, 356, 364, 372, 380, 388, 396, 404, 412, 420, 428, 436, 444, 452, 460, 468, 476, 484, 492, 500, 508, 516, 524, 532, 540, 548, 556, 564, 572, 580, 588, 596, 604, 612, 620, 628, 636, 644, 652, 660, 668, 676, 684, 692, 700, 708, 716, 724, 732, 740, 748, 756, 764, 772, 780, 788, 796, 804, 812, 820, 828, 836, 844, 852, 860, 868, 876, 884, 892, 900, 908, 916, 924, 932, 940, 948, 956, 964, 972, 980, 988, 51, 1016, 69, 85, 93, 101, 109, 117, 125, 133, 141, 149, 157, 165, 173, 181, 189, 197, 205, 213, 221, 229, 237, 245, 253, 261, 269, 277, 285, 293, 301, 309, 317, 325, 333, 341, 349, 357, 365, 373, 381, 389, 397, 405, 413, 421, 429, 437, 445, 453, 461, 469, 477, 485, 493, 501, 509, 517, 525, 533, 541, 549, 557, 565, 573, 581, 589, 597, 605, 613, 621, 629, 637, 645, 653, 661, 669, 677, 685, 693, 701, 709, 717, 725, 733, 741, 749, 757, 765, 773, 781, 789, 797, 805, 813, 821, 829, 837, 845, 853, 861, 869, 877, 885, 893, 901, 909, 917, 925, 933, 941, 949, 957, 965, 973, 981, 14, 59, 74, 91, 99, 107, 115, 123, 131, 139, 147, 155, 163, 171, 179, 187, 195, 203, 211, 219, 227, 235, 243, 251, 259, 267, 275, 283, 291, 299, 307, 315, 323, 331, 339, 347, 355, 363, 371, 379, 387, 395, 403, 411, 419, 427, 435, 443, 451, 459, 467, 475, 483, 491, 499, 507, 515, 523, 531, 539, 547, 555, 563, 571, 579, 587, 595, 603, 611, 619, 627, 635, 643, 651, 659, 667, 675, 683, 691, 699, 707, 715, 723, 731, 739, 747, 755, 763, 771, 779, 787, 795, 803, 811, 819, 827, 835, 843, 851, 859, 867, 875, 883, 891, 899, 907, 915, 923, 931, 939, 947, 955, 963, 971, 979, 30, 43, 45, 10, 6, 25, 34, 36, 42, 68, 996, 1004, 1012, 1020, 49, 79, 1024, 46, 61, 989, 997, 1005, 1013, 987, 995, 1003, 71, 52, 84, 63, 77, 18, 66, 82, 90, 98, 106, 114, 122, 130, 138, 146, 154, 162, 170, 178, 186, 194, 202, 210, 218, 226, 234, 242, 250, 258, 266, 274, 282, 290, 298, 306, 314, 322, 330, 338, 346, 354, 362, 370, 378, 386, 394, 402, 410, 418, 426, 434, 442, 450, 458, 466, 474, 482, 490, 498, 506, 514, 522, 530, 538, 546, 554, 562, 570, 578, 586, 594, 602, 610, 618, 626, 634, 642, 650, 658, 666, 674, 682, 690, 698, 706, 714, 722, 730, 738, 746, 754, 762, 770, 778, 786, 794, 802, 810, 818, 826, 834, 842, 850, 858, 866, 874, 882, 890, 898, 906, 914, 922, 930, 938, 946, 954, 962, 970, 978, 986, 994, 75, 47, 1028, 1036, 38, 1032, 1021, 1029, 1011, 1019, 1027, 31, 1002, 1010, 58, 87, 95, 103, 111, 119, 127, 135, 143, 151, 159, 167, 175, 183, 191, 199, 207, 215, 223, 231, 239, 247, 255, 263, 271, 279, 287, 295, 303, 311, 319, 327, 335, 343, 351, 359, 367, 375, 383, 391, 399, 407, 415, 423, 431, 439, 447, 455, 463, 471, 479, 487, 495, 503, 511, 519, 527, 535, 543, 551, 559, 567, 575, 583, 591, 599, 607, 615, 623, 631, 639, 647, 655, 663, 671, 679, 687, 695, 703, 711, 719, 727, 735, 743, 751, 759, 767, 775, 783, 791, 799, 807, 815, 823, 831, 839, 847, 855, 863, 871, 879, 887, 895, 903, 911, 919, 927, 935, 943, 951, 959, 967, 975, 983, 65, 73, 81, 89, 97, 105, 113, 121, 129, 137, 145, 153, 161, 169, 177, 185, 193, 201, 209, 217, 225, 233, 241, 249, 257, 265, 273, 281, 289, 297, 305, 313, 321, 329, 337, 345, 353, 361, 369, 377, 385, 393, 401, 409, 417, 425, 433, 441, 449, 457, 465, 473, 481, 489, 497, 505, 513, 521, 529, 537, 545, 553, 561, 569, 577, 585, 593, 601, 609, 617, 625, 633, 641, 649, 657, 665, 673, 681, 689, 697, 705, 713, 721, 729, 737, 745, 753, 761, 769, 777, 785, 793, 801, 809, 817, 825, 833, 841, 849, 857, 865, 873, 881, 889, 897, 905, 913, 921, 929, 937, 945, 953]\n",
+ "5\n"
+ ]
+ }
+ ],
+ "execution_count": 20
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2025-11-18T15:09:38.343782Z",
+ "start_time": "2025-11-18T15:09:38.326322Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "from scipy.fft import fft, fftfreq\n",
+ "import scipy\n",
+ "import numpy as np\n",
+ "\n",
+ "# Same signal creation...\n",
+ "\n",
+ "# Perform FFT\n",
+ "bins = 768\n",
+ "offset = 16\n",
+ "signal = deltas[offset:offset+bins]\n",
+ "print(len(signal))\n",
+ "print(32*16)\n",
+ "fft_result = fft(signal)\n",
+ "\n",
+ "n = len(fft_result)\n",
+ "frequencies = fftfreq(n, 1)[:n//2]\n",
+ "magnitude = 2 * np.abs(fft_result[:n//2]) / n\n",
+ "fig = make_subplots(specs=[[{\"secondary_y\": True}]])\n",
+ "# fig.add_trace(go.Scatter(x=channels[1:], y=deltas, name=\"Point to point variance\", line=dict(color=\"lightgreen\")), secondary_y=True)\n",
+ "fig.add_trace(go.Scatter(x=frequencies, y=magnitude, name=\"Point to point variance\", line=dict(color=\"lightgreen\")), secondary_y=True)\n",
+ "mean_magnitude = np.mean(magnitude)\n",
+ "\n",
+ "for (mag, freq) in sorted(zip(magnitude, frequencies), reverse=True):\n",
+ " if freq > 0 and mag > mean_magnitude:\n",
+ " print(round(1 / freq), mag)\n",
+ "fig.show()"
+ ],
+ "id": "efd335c6fc7769cb",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "768\n",
+ "512\n",
+ "3 0.5767679777951548\n",
+ "8 0.5635974604334245\n",
+ "2 0.1285954600357744\n",
+ "2 0.11290578470432493\n",
+ "4 0.11024299776014816\n",
+ "16 0.08390177598813732\n",
+ "6 0.08252455229030216\n",
+ "11 0.0823030502845868\n",
+ "5 0.08164669512376228\n",
+ "3 0.07763321403086715\n",
+ "2 0.07679689747305142\n",
+ "2 0.07394893904971786\n",
+ "3 0.07093590734381802\n",
+ "32 0.07086051608674528\n",
+ "2 0.06833414610076115\n",
+ "2 0.06569872829285721\n",
+ "2 0.06520836012505363\n",
+ "2 0.06358696737457045\n",
+ "2 0.06133143399740495\n",
+ "2 0.05843813680182475\n",
+ "5 0.057598572649865516\n",
+ "2 0.05598829068440509\n",
+ "2 0.055075618977254194\n",
+ "2 0.054793462441521806\n",
+ "2 0.05356038313067384\n",
+ "4 0.05340768992010231\n",
+ "2 0.05162805500792139\n",
+ "2 0.04987195227985607\n",
+ "2 0.048168811061620714\n",
+ "2 0.047953081751405384\n",
+ "2 0.04734269220848697\n",
+ "2 0.04677194670351353\n",
+ "2 0.04676777558543868\n",
+ "3 0.04576156158113806\n",
+ "3 0.0457550773511253\n",
+ "2 0.04559572102972556\n",
+ "3 0.04553014639853025\n",
+ "3 0.04531343317100477\n",
+ "5 0.04530052010413486\n",
+ "2 0.04524492554895604\n",
+ "3 0.0450596221645661\n",
+ "2 0.04439672749752249\n",
+ "3 0.04438234175126888\n",
+ "3 0.04412635381248209\n",
+ "2 0.0440688445157468\n",
+ "3 0.043748587253883205\n",
+ "3 0.04372975887075769\n",
+ "2 0.04367147953741449\n",
+ "2 0.04346807658341939\n",
+ "2 0.04330905566081019\n",
+ "3 0.04325724862131217\n",
+ "3 0.0431781942879503\n",
+ "2 0.043037354462365236\n",
+ "3 0.04303667435400132\n",
+ "3 0.04302124955669593\n",
+ "768 0.04292018052300601\n",
+ "3 0.04277571432862601\n",
+ "3 0.042751023503592285\n",
+ "3 0.04266968575598429\n",
+ "3 0.04218466975938073\n",
+ "2 0.04217205514725869\n",
+ "2 0.04198783719067894\n",
+ "3 0.04187229299904265\n",
+ "3 0.04142852298950577\n",
+ "3 0.041373672284174316\n",
+ "3 0.041208493140733375\n",
+ "3 0.04110040647175477\n",
+ "2 0.04099810833714525\n",
+ "3 0.0409115277937486\n",
+ "2 0.0408857414865653\n",
+ "2 0.040518408014268856\n",
+ "2 0.040429032509260866\n",
+ "3 0.040296063188289134\n",
+ "3 0.04023869341255299\n",
+ "3 0.039985338406403476\n",
+ "2 0.03989294870253674\n",
+ "2 0.03907796409289354\n",
+ "3 0.03900450345324554\n",
+ "3 0.03894957495029637\n",
+ "3 0.038891815809535005\n",
+ "3 0.038740729275277934\n",
+ "2 0.03859307637688291\n",
+ "3 0.03835480994502556\n",
+ "3 0.03820211409777241\n",
+ "2 0.03802038124061483\n",
+ "3 0.03801913582837076\n",
+ "3 0.037681641194777515\n",
+ "3 0.03765545691283483\n",
+ "3 0.037457790528654535\n",
+ "2 0.037345042893335297\n",
+ "5 0.03732938880157826\n",
+ "3 0.037117546664907415\n",
+ "3 0.037037022233945865\n",
+ "3 0.036911521416743\n",
+ "2 0.0368530340496037\n",
+ "3 0.036526683399881084\n",
+ "16 0.03646071463288431\n",
+ "2 0.03641622510339485\n",
+ "3 0.0362056718194387\n",
+ "11 0.03618004080785742\n",
+ "4 0.03605758262803883\n",
+ "3 0.03545342011421838\n",
+ "2 0.035057906252761374\n",
+ "3 0.03504349509893692\n",
+ "6 0.03446970893441832\n",
+ "3 0.03420349948990718\n",
+ "3 0.03414846442807897\n",
+ "3 0.03400929306404652\n",
+ "2 0.03398739070825787\n",
+ "2 0.03397194677692462\n",
+ "2 0.033810871138529076\n",
+ "3 0.033705871133187675\n",
+ "2 0.0336356953069181\n",
+ "3 0.033579504471332004\n",
+ "5 0.033480985716516656\n",
+ "3 0.03329556033561769\n",
+ "3 0.03298555150794826\n",
+ "384 0.03269615002653368\n",
+ "2 0.03176687611644659\n",
+ "33 0.03154343069637423\n",
+ "16 0.031247948279011516\n",
+ "2 0.031178967071167265\n",
+ "4 0.030990276466340384\n",
+ "2 0.03042168454463291\n",
+ "5 0.030401970478220894\n",
+ "2 0.030370902363223432\n",
+ "3 0.030368216029461496\n",
+ "3 0.030075487416345446\n",
+ "5 0.02937920714500473\n",
+ "2 0.028838886351991774\n",
+ "2 0.028797007617484258\n",
+ "2 0.028237876148980007\n",
+ "3 0.028153451425273614\n",
+ "6 0.027929640126690716\n",
+ "2 0.027813975183191352\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "data": [
+ {
+ "line": {
+ "color": "lightgreen"
+ },
+ "name": "Point to point variance",
+ "x": {
+ "dtype": "f8",
+ "bdata": "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"
+ },
+ "y": {
+ "dtype": "f8",
+ "bdata": "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"
+ },
+ "type": "scatter",
+ "xaxis": "x",
+ "yaxis": "y2"
+ }
+ ],
+ "layout": {
+ "template": {
+ "data": {
+ "histogram2dcontour": [
+ {
+ "type": "histogram2dcontour",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "choropleth": [
+ {
+ "type": "choropleth",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "histogram2d": [
+ {
+ "type": "histogram2d",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "heatmap": [
+ {
+ "type": "heatmap",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "contourcarpet": [
+ {
+ "type": "contourcarpet",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "contour": [
+ {
+ "type": "contour",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "surface": [
+ {
+ "type": "surface",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "mesh3d": [
+ {
+ "type": "mesh3d",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "scatter": [
+ {
+ "marker": {
+ "line": {
+ "color": "#283442"
+ }
+ },
+ "type": "scatter"
+ }
+ ],
+ "parcoords": [
+ {
+ "type": "parcoords",
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "type": "scatterpolargl",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "bar": [
+ {
+ "error_x": {
+ "color": "#f2f5fa"
+ },
+ "error_y": {
+ "color": "#f2f5fa"
+ },
+ "marker": {
+ "line": {
+ "color": "rgb(17,17,17)",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "scattergeo": [
+ {
+ "type": "scattergeo",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterpolar": [
+ {
+ "type": "scatterpolar",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "line": {
+ "color": "#283442"
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scatter3d": [
+ {
+ "type": "scatter3d",
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattermap": [
+ {
+ "type": "scattermap",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattermapbox": [
+ {
+ "type": "scattermapbox",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterternary": [
+ {
+ "type": "scatterternary",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattercarpet": [
+ {
+ "type": "scattercarpet",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#A2B1C6",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "minorgridcolor": "#506784",
+ "startlinecolor": "#A2B1C6"
+ },
+ "baxis": {
+ "endlinecolor": "#A2B1C6",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "minorgridcolor": "#506784",
+ "startlinecolor": "#A2B1C6"
+ },
+ "type": "carpet"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#506784"
+ },
+ "line": {
+ "color": "rgb(17,17,17)"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#2a3f5f"
+ },
+ "line": {
+ "color": "rgb(17,17,17)"
+ }
+ },
+ "type": "table"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "rgb(17,17,17)",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ]
+ },
+ "layout": {
+ "autotypenumbers": "strict",
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#f2f5fa"
+ },
+ "hovermode": "closest",
+ "hoverlabel": {
+ "align": "left"
+ },
+ "paper_bgcolor": "rgb(17,17,17)",
+ "plot_bgcolor": "rgb(17,17,17)",
+ "polar": {
+ "bgcolor": "rgb(17,17,17)",
+ "angularaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "radialaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ }
+ },
+ "ternary": {
+ "bgcolor": "rgb(17,17,17)",
+ "aaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "caxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ }
+ },
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "sequential": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ]
+ },
+ "xaxis": {
+ "gridcolor": "#283442",
+ "linecolor": "#506784",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "#283442",
+ "automargin": true,
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "gridcolor": "#283442",
+ "linecolor": "#506784",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "#283442",
+ "automargin": true,
+ "zerolinewidth": 2
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
+ },
+ "yaxis": {
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
+ },
+ "zaxis": {
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#f2f5fa"
+ }
+ },
+ "annotationdefaults": {
+ "arrowcolor": "#f2f5fa",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "geo": {
+ "bgcolor": "rgb(17,17,17)",
+ "landcolor": "rgb(17,17,17)",
+ "subunitcolor": "#506784",
+ "showland": true,
+ "showlakes": true,
+ "lakecolor": "rgb(17,17,17)"
+ },
+ "title": {
+ "x": 0.05
+ },
+ "updatemenudefaults": {
+ "bgcolor": "#506784",
+ "borderwidth": 0
+ },
+ "sliderdefaults": {
+ "bgcolor": "#C8D4E3",
+ "borderwidth": 1,
+ "bordercolor": "rgb(17,17,17)",
+ "tickwidth": 0
+ },
+ "mapbox": {
+ "style": "dark"
+ }
+ }
+ },
+ "xaxis": {
+ "anchor": "y",
+ "domain": [
+ 0.0,
+ 0.94
+ ]
+ },
+ "yaxis": {
+ "anchor": "x",
+ "domain": [
+ 0.0,
+ 1.0
+ ]
+ },
+ "yaxis2": {
+ "anchor": "x",
+ "overlaying": "y",
+ "side": "right"
+ }
+ },
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data",
+ "jetTransient": {
+ "display_id": null
+ }
+ }
+ ],
+ "execution_count": 36
+ },
+ {
+ "cell_type": "code",
+ "id": "5919d9a5b836e014",
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2025-11-16T16:43:26.397215Z",
+ "start_time": "2025-11-16T16:43:26.394937Z"
+ }
+ },
+ "source": [
+ "color=\"darkblue\""
+ ],
+ "outputs": [],
+ "execution_count": 6
+ },
+ {
+ "cell_type": "code",
+ "id": "b615e79b-639f-4850-b9f8-5518ba98edd9",
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2025-11-16T16:43:26.474866Z",
+ "start_time": "2025-11-16T16:43:26.445034Z"
+ }
+ },
+ "source": [
+ "first_order_approx = []\n",
+ "second_order_approx = []\n",
+ "pol_approx = []\n",
+ "\n",
+ "\n",
+ "\n",
"upper_sampled_channels = [7, 993]\n",
- "lower_sampled_channels = [1, 992]\n",
+ "lower_sampled_channels = [1, 991]\n",
"\n",
"upper_sampled_channel_meas = [channel_meas[channels.index(c)] for c in upper_sampled_channels]\n",
"lower_sampled_channel_meas = [channel_meas[channels.index(c)] for c in lower_sampled_channels]\n",
"\n",
- "upper_m, upper_b = lin_interpol(upper_sampled_channels[0], upper_sampled_channels[1], \n",
- " upper_sampled_channel_meas[0], upper_sampled_channel_meas[1])\n",
- "lower_m, lower_b = lin_interpol(lower_sampled_channels[0], lower_sampled_channels[1], \n",
- " lower_sampled_channel_meas[0], lower_sampled_channel_meas[1])\n",
+ "upper_m, upper_b = lin_interpol( upper_sampled_channels[0], upper_sampled_channels[1], upper_sampled_channel_meas[0], upper_sampled_channel_meas[1])\n",
+ "lower_m, lower_b = lin_interpol(lower_sampled_channels[0], lower_sampled_channels[1], lower_sampled_channel_meas[0], lower_sampled_channel_meas[1])\n",
"\n",
- "r_c = list(range(0, 1050))\n",
+ "r_c = channels\n",
"\n",
"r_v_upper = [calc_upper(c, upper_m, upper_b) for c in r_c]\n",
"r_v_lower = [calc_lower(c, lower_m, lower_b) for c in r_c]\n",
+ "r_v_mean = [calc_mean(c,upper_m, upper_b, lower_m, lower_b) for c in r_c]\n",
"r_v_rect = [calc_rect(c, upper_m, upper_b, lower_m, lower_b) for c in r_c]\n",
"\n",
- "print(upper_m)\n",
- "print(lower_m)\n",
+ "err_upper = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_upper, channel_meas)]\n",
+ "err_lower = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_lower, channel_meas)]\n",
+ "err_mean = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_mean, channel_meas)]\n",
+ "err_rect = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_rect, channel_meas)]\n",
"\n",
- "fig = make_subplots(specs=[[{\"secondary_y\": True}]])\n",
- "lv = channel_meas[0]\n",
- "deltas = []\n",
- "for meas in channel_meas[1:]:\n",
- " deltas.append((meas / lv) * 10 - 10 )\n",
- " lv = meas\n",
+ "# print(np.mean(err_sine))\n",
+ "print(np.mean(err_rect))\n",
+ "\n",
+ "fig = go.Figure()\n",
+ "fig.add_trace(go.Scatter(x=channels, y=channel_meas, name=\"Channel Measurements\", mode=\"markers\"))\n",
+ "\n",
+ "fig.add_trace(go.Scatter(x=list(range(1024)), y=[c * upper_m + upper_b for c in range(1024)], name=\"Upper Sampled Channels\"))\n",
+ "fig.add_trace(go.Scatter(x=list(range(1024)), y=[c * lower_m + lower_b for c in range(1024)], name=\"Lower Sampled Channels\"))\n",
+ "fig.add_trace(go.Scatter(x=r_c, y=r_v_mean, name=\"Mean Steps\"))\n",
+ "fig.add_trace(go.Scatter(x=r_c, y=r_v_rect, name=\"Rect Steps\"))\n",
+ "\n",
+ "fig.add_trace(go.Scatter(x=r_c, y=err_rect, name=\"Rect Errors\", mode=\"markers\"))\n",
"\n",
"fig.update_layout(\n",
- " scene=dict(\n",
- " xaxis_title='channels',\n",
- " yaxis_title='filters',\n",
- " zaxis_title='ms'\n",
- " ),\n",
- " width=PLOT_WIDTH,\n",
- " height=PLOT_HEIGHT / 3 * 1,\n",
- " template='plotly_white',\n",
- ")\n",
- "fig.add_trace(go.Scatter(x=channels, y=channel_meas, name=\"Layer Execution Time\", mode=\"markers\", marker=dict(size=4)), secondary_y=False)\n",
- "fig.add_trace(go.Scatter(x=r_c, y=r_v_rect, name=\"Stepwise Approximation\", line=dict(dash=\"dot\", width=0.75,color=\"blue\" )))\n",
- "\n",
- "fig.add_trace(go.Scatter(x=channels[1:], y=deltas, name=\"Point to point variance\", line=dict(color=\"lightgreen\")), secondary_y=True)\n",
- "fig.update_layout(\n",
- " title_text=\"Latency Measurements for a Singular Neural Network Layer With Changing Input Channels\",\n",
" autosize=False,\n",
" width=PLOT_WIDTH,\n",
- " height=PLOT_HEIGHT / 3 * 2,\n",
- " legend_x=0,\n",
- " legend_y=1,\n",
- " template='plotly_white',\n",
+ " height=PLOT_HEIGHT,\n",
"\n",
- " font=dict(\n",
- " size=16,\n",
- " )\n",
- ")\n",
- "fig.update_xaxes(title_text=\"#Channels\")\n",
- "fig.update_yaxes(title_text=f\"\"\"Layer Execution Time (ms)\"\"\", secondary_y=False, range=[-10, 40])\n",
- "fig.update_yaxes(title_text=f\"\"\"Point to point variance (%)\"\"\", secondary_y=True, range=[-4, 40],)\n",
- "fig.write_image(\"images/sweep.svg\", width=PLOT_WIDTH/ 3 * 2, height=PLOT_HEIGHT / 3 * 2, scale=2)\n",
- "fig.show()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "5919d9a5b836e014",
- "metadata": {
- "ExecuteTime": {
- "end_time": "2025-09-16T13:00:21.912193Z",
- "start_time": "2025-09-16T13:00:21.910263Z"
- }
- },
- "outputs": [],
- "source": [
- "color=\"darkblue\""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "b615e79b-639f-4850-b9f8-5518ba98edd9",
- "metadata": {
- "ExecuteTime": {
- "end_time": "2025-09-16T13:00:22.024916Z",
- "start_time": "2025-09-16T13:00:21.960687Z"
- }
- },
+ ")\n"
+ ],
"outputs": [
{
"name": "stdout",
@@ -10294,14 +13524,10 @@
{
"data": {
"application/vnd.plotly.v1+json": {
- "config": {
- "plotlyServerURL": "https://plot.ly"
- },
"data": [
{
"mode": "markers",
"name": "Channel Measurements",
- "type": "scatter",
"x": [
1,
2,
@@ -12403,11 +15629,11 @@
33.58163809776306,
33.583977699279785,
37.376403427124025
- ]
+ ],
+ "type": "scatter"
},
{
"name": "Upper Sampled Channels",
- "type": "scatter",
"x": [
0,
1,
@@ -14459,11 +17685,11 @@
37.06599842131017,
37.10085802843758,
37.13571763556499
- ]
+ ],
+ "type": "scatter"
},
{
"name": "Lower Sampled Channels",
- "type": "scatter",
"x": [
0,
1,
@@ -16515,11 +19741,11 @@
32.30203446548011,
32.33297487103222,
32.36391527658432
- ]
+ ],
+ "type": "scatter"
},
{
"name": "Mean Steps",
- "type": "scatter",
"x": [
1,
2,
@@ -18621,11 +21847,11 @@
35.27776295124813,
35.27776295124813,
35.27776295124813
- ]
+ ],
+ "type": "scatter"
},
{
"name": "Rect Steps",
- "type": "scatter",
"x": [
1,
2,
@@ -20727,12 +23953,12 @@
33.38494865980386,
33.38494865980386,
37.170577242692396
- ]
+ ],
+ "type": "scatter"
},
{
"mode": "markers",
"name": "Rect Errors",
- "type": "scatter",
"x": [
1,
2,
@@ -22834,25 +26060,338 @@
0.0058570531129719505,
0.005926309303147031,
0.005506848320303105
- ]
+ ],
+ "type": "scatter"
}
],
"layout": {
- "autosize": false,
- "height": 1000,
"template": {
"data": {
+ "histogram2dcontour": [
+ {
+ "type": "histogram2dcontour",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "choropleth": [
+ {
+ "type": "choropleth",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "histogram2d": [
+ {
+ "type": "histogram2d",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "heatmap": [
+ {
+ "type": "heatmap",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "contourcarpet": [
+ {
+ "type": "contourcarpet",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "contour": [
+ {
+ "type": "contour",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "surface": [
+ {
+ "type": "surface",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "mesh3d": [
+ {
+ "type": "mesh3d",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "scatter": [
+ {
+ "marker": {
+ "line": {
+ "color": "#283442"
+ }
+ },
+ "type": "scatter"
+ }
+ ],
+ "parcoords": [
+ {
+ "type": "parcoords",
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "type": "scatterpolargl",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
"bar": [
{
"error_x": {
- "color": "#2a3f5f"
+ "color": "#f2f5fa"
},
"error_y": {
- "color": "#2a3f5f"
+ "color": "#f2f5fa"
},
"marker": {
"line": {
- "color": "#E5ECF6",
+ "color": "rgb(17,17,17)",
"width": 0.5
},
"pattern": {
@@ -22864,159 +26403,26 @@
"type": "bar"
}
],
- "barpolar": [
+ "scattergeo": [
{
+ "type": "scattergeo",
"marker": {
- "line": {
- "color": "#E5ECF6",
- "width": 0.5
- },
- "pattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
}
- },
- "type": "barpolar"
+ }
}
],
- "carpet": [
+ "scatterpolar": [
{
- "aaxis": {
- "endlinecolor": "#2a3f5f",
- "gridcolor": "white",
- "linecolor": "white",
- "minorgridcolor": "white",
- "startlinecolor": "#2a3f5f"
- },
- "baxis": {
- "endlinecolor": "#2a3f5f",
- "gridcolor": "white",
- "linecolor": "white",
- "minorgridcolor": "white",
- "startlinecolor": "#2a3f5f"
- },
- "type": "carpet"
- }
- ],
- "choropleth": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "type": "choropleth"
- }
- ],
- "contour": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "contour"
- }
- ],
- "contourcarpet": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "type": "contourcarpet"
- }
- ],
- "heatmap": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "heatmap"
+ "type": "scatterpolar",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
}
],
"histogram": [
@@ -23031,126 +26437,131 @@
"type": "histogram"
}
],
- "histogram2d": [
+ "scattergl": [
{
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
+ "marker": {
+ "line": {
+ "color": "#283442"
+ }
},
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "histogram2d"
+ "type": "scattergl"
}
],
- "histogram2dcontour": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "histogram2dcontour"
- }
- ],
- "mesh3d": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "type": "mesh3d"
- }
- ],
- "parcoords": [
+ "scatter3d": [
{
+ "type": "scatter3d",
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
- "type": "parcoords"
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattermap": [
+ {
+ "type": "scattermap",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattermapbox": [
+ {
+ "type": "scattermapbox",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterternary": [
+ {
+ "type": "scatterternary",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattercarpet": [
+ {
+ "type": "scattercarpet",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#A2B1C6",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "minorgridcolor": "#506784",
+ "startlinecolor": "#A2B1C6"
+ },
+ "baxis": {
+ "endlinecolor": "#A2B1C6",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "minorgridcolor": "#506784",
+ "startlinecolor": "#A2B1C6"
+ },
+ "type": "carpet"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#506784"
+ },
+ "line": {
+ "color": "rgb(17,17,17)"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#2a3f5f"
+ },
+ "line": {
+ "color": "rgb(17,17,17)"
+ }
+ },
+ "type": "table"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "rgb(17,17,17)",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
}
],
"pie": [
@@ -23158,202 +26569,62 @@
"automargin": true,
"type": "pie"
}
- ],
- "scatter": [
- {
- "fillpattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- },
- "type": "scatter"
- }
- ],
- "scatter3d": [
- {
- "line": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scatter3d"
- }
- ],
- "scattercarpet": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattercarpet"
- }
- ],
- "scattergeo": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattergeo"
- }
- ],
- "scattergl": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattergl"
- }
- ],
- "scattermap": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattermap"
- }
- ],
- "scattermapbox": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattermapbox"
- }
- ],
- "scatterpolar": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scatterpolar"
- }
- ],
- "scatterpolargl": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scatterpolargl"
- }
- ],
- "scatterternary": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scatterternary"
- }
- ],
- "surface": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "surface"
- }
- ],
- "table": [
- {
- "cells": {
- "fill": {
- "color": "#EBF0F8"
- },
- "line": {
- "color": "white"
- }
- },
- "header": {
- "fill": {
- "color": "#C8D4E3"
- },
- "line": {
- "color": "white"
- }
- },
- "type": "table"
- }
]
},
"layout": {
- "annotationdefaults": {
- "arrowcolor": "#2a3f5f",
- "arrowhead": 0,
- "arrowwidth": 1
- },
"autotypenumbers": "strict",
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#f2f5fa"
+ },
+ "hovermode": "closest",
+ "hoverlabel": {
+ "align": "left"
+ },
+ "paper_bgcolor": "rgb(17,17,17)",
+ "plot_bgcolor": "rgb(17,17,17)",
+ "polar": {
+ "bgcolor": "rgb(17,17,17)",
+ "angularaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "radialaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ }
+ },
+ "ternary": {
+ "bgcolor": "rgb(17,17,17)",
+ "aaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "caxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ }
+ },
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
@@ -23361,6 +26632,90 @@
}
},
"colorscale": {
+ "sequential": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
"diverging": [
[
0,
@@ -23406,1544 +26761,139 @@
1,
"#276419"
]
- ],
- "sequential": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "sequentialminus": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
]
},
- "colorway": [
- "#636efa",
- "#EF553B",
- "#00cc96",
- "#ab63fa",
- "#FFA15A",
- "#19d3f3",
- "#FF6692",
- "#B6E880",
- "#FF97FF",
- "#FECB52"
- ],
- "font": {
- "color": "#2a3f5f"
- },
- "geo": {
- "bgcolor": "white",
- "lakecolor": "white",
- "landcolor": "#E5ECF6",
- "showlakes": true,
- "showland": true,
- "subunitcolor": "white"
- },
- "hoverlabel": {
- "align": "left"
- },
- "hovermode": "closest",
- "mapbox": {
- "style": "light"
- },
- "paper_bgcolor": "white",
- "plot_bgcolor": "#E5ECF6",
- "polar": {
- "angularaxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
+ "xaxis": {
+ "gridcolor": "#283442",
+ "linecolor": "#506784",
+ "ticks": "",
+ "title": {
+ "standoff": 15
},
- "bgcolor": "#E5ECF6",
- "radialaxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
- }
+ "zerolinecolor": "#283442",
+ "automargin": true,
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "gridcolor": "#283442",
+ "linecolor": "#506784",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "#283442",
+ "automargin": true,
+ "zerolinewidth": 2
},
"scene": {
"xaxis": {
- "backgroundcolor": "#E5ECF6",
- "gridcolor": "white",
- "gridwidth": 2,
- "linecolor": "white",
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
"showbackground": true,
"ticks": "",
- "zerolinecolor": "white"
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
},
"yaxis": {
- "backgroundcolor": "#E5ECF6",
- "gridcolor": "white",
- "gridwidth": 2,
- "linecolor": "white",
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
"showbackground": true,
"ticks": "",
- "zerolinecolor": "white"
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
},
"zaxis": {
- "backgroundcolor": "#E5ECF6",
- "gridcolor": "white",
- "gridwidth": 2,
- "linecolor": "white",
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
"showbackground": true,
"ticks": "",
- "zerolinecolor": "white"
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
}
},
"shapedefaults": {
"line": {
- "color": "#2a3f5f"
+ "color": "#f2f5fa"
}
},
- "ternary": {
- "aaxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
- },
- "baxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
- },
- "bgcolor": "#E5ECF6",
- "caxis": {
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": ""
- }
+ "annotationdefaults": {
+ "arrowcolor": "#f2f5fa",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "geo": {
+ "bgcolor": "rgb(17,17,17)",
+ "landcolor": "rgb(17,17,17)",
+ "subunitcolor": "#506784",
+ "showland": true,
+ "showlakes": true,
+ "lakecolor": "rgb(17,17,17)"
},
"title": {
"x": 0.05
},
- "xaxis": {
- "automargin": true,
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": "",
- "title": {
- "standoff": 15
- },
- "zerolinecolor": "white",
- "zerolinewidth": 2
+ "updatemenudefaults": {
+ "bgcolor": "#506784",
+ "borderwidth": 0
},
- "yaxis": {
- "automargin": true,
- "gridcolor": "white",
- "linecolor": "white",
- "ticks": "",
- "title": {
- "standoff": 15
- },
- "zerolinecolor": "white",
- "zerolinewidth": 2
+ "sliderdefaults": {
+ "bgcolor": "#C8D4E3",
+ "borderwidth": 1,
+ "bordercolor": "rgb(17,17,17)",
+ "tickwidth": 0
+ },
+ "mapbox": {
+ "style": "dark"
}
}
},
- "width": 2000
+ "autosize": false,
+ "width": 2000,
+ "height": 1000
+ },
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
}
}
},
"metadata": {},
- "output_type": "display_data"
+ "output_type": "display_data",
+ "jetTransient": {
+ "display_id": null
+ }
}
],
- "source": [
- "first_order_approx = []\n",
- "second_order_approx = []\n",
- "pol_approx = []\n",
- "\n",
- "\n",
- "\n",
- "upper_sampled_channels = [7, 993]\n",
- "lower_sampled_channels = [1, 991]\n",
- "\n",
- "upper_sampled_channel_meas = [channel_meas[channels.index(c)] for c in upper_sampled_channels]\n",
- "lower_sampled_channel_meas = [channel_meas[channels.index(c)] for c in lower_sampled_channels]\n",
- "\n",
- "upper_m, upper_b = lin_interpol( upper_sampled_channels[0], upper_sampled_channels[1], upper_sampled_channel_meas[0], upper_sampled_channel_meas[1])\n",
- "lower_m, lower_b = lin_interpol(lower_sampled_channels[0], lower_sampled_channels[1], lower_sampled_channel_meas[0], lower_sampled_channel_meas[1])\n",
- "\n",
- "r_c = channels\n",
- "\n",
- "r_v_upper = [calc_upper(c, upper_m, upper_b) for c in r_c]\n",
- "r_v_lower = [calc_lower(c, lower_m, lower_b) for c in r_c]\n",
- "r_v_mean = [calc_mean(c,upper_m, upper_b, lower_m, lower_b) for c in r_c]\n",
- "r_v_rect = [calc_rect(c, upper_m, upper_b, lower_m, lower_b) for c in r_c]\n",
- "\n",
- "err_upper = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_upper, channel_meas)]\n",
- "err_lower = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_lower, channel_meas)]\n",
- "err_mean = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_mean, channel_meas)]\n",
- "err_rect = [np.abs((approx - meas) / meas) for approx, meas in zip(r_v_rect, channel_meas)]\n",
- "\n",
- "# print(np.mean(err_sine))\n",
- "print(np.mean(err_rect))\n",
- "\n",
- "fig = go.Figure()\n",
- "fig.add_trace(go.Scatter(x=channels, y=channel_meas, name=\"Channel Measurements\", mode=\"markers\"))\n",
- "\n",
- "fig.add_trace(go.Scatter(x=list(range(1024)), y=[c * upper_m + upper_b for c in range(1024)], name=\"Upper Sampled Channels\"))\n",
- "fig.add_trace(go.Scatter(x=list(range(1024)), y=[c * lower_m + lower_b for c in range(1024)], name=\"Lower Sampled Channels\"))\n",
- "fig.add_trace(go.Scatter(x=r_c, y=r_v_mean, name=\"Mean Steps\"))\n",
- "fig.add_trace(go.Scatter(x=r_c, y=r_v_rect, name=\"Rect Steps\"))\n",
- "\n",
- "fig.add_trace(go.Scatter(x=r_c, y=err_rect, name=\"Rect Errors\", mode=\"markers\"))\n",
- "\n",
- "fig.update_layout(\n",
- " autosize=False,\n",
- " width=PLOT_WIDTH,\n",
- " height=PLOT_HEIGHT,\n",
- "\n",
- ")\n"
- ]
+ "execution_count": 7
},
{
"cell_type": "code",
- "execution_count": 6,
"id": "069bce83-c4d8-4f36-8c27-d00269919c34",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T13:00:22.104319Z",
- "start_time": "2025-09-16T13:00:22.096316Z"
+ "end_time": "2025-11-16T16:43:26.496976Z",
+ "start_time": "2025-11-16T16:43:26.490877Z"
}
},
- "outputs": [],
"source": [
"\n",
"df = pd.read_csv('./lut_channel_filter_sweep.csv', usecols=[\"channels\", \"filters\", \"ms\"])\n",
"split_df = df.groupby('channels')"
- ]
+ ],
+ "outputs": [],
+ "execution_count": 8
},
{
"cell_type": "code",
- "execution_count": 7,
"id": "f48c666a-e44c-4381-871d-2443abde826f",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T13:00:23.989743Z",
- "start_time": "2025-09-16T13:00:22.116467Z"
+ "end_time": "2025-11-16T16:43:27.509195Z",
+ "start_time": "2025-11-16T16:43:26.545736Z"
}
},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "np.mean(errs)=np.float64(2.768728199793735e-14)\n",
- "np.mean(rect_errs)=np.float64(0.5195734160479627)\n",
- "np.mean(errs)=np.float64(2.048453928944935)\n",
- "np.mean(rect_errs)=np.float64(2.53793726954352)\n",
- "\n",
- "np.mean(all_errs)=np.float64(1.0242269644724813)\n",
- "np.mean(all_rect_errs)=np.float64(1.5287553427957412)\n"
- ]
- },
- {
- "data": {
- "application/vnd.plotly.v1+json": {
- "config": {
- "plotlyServerURL": "https://plot.ly"
- },
- "data": [
- {
- "marker": {
- "color": "#000088",
- "size": 7
- },
- "mode": "markers",
- "name": "#Filters:100 Latency",
- "type": "scatter",
- "x": {
- "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=",
- "dtype": "i2"
- },
- "xaxis": "x",
- "y": {
- "bdata": "L7roArdlJ0BeTsHrioQpQLlkCHaqKSdAEhER0Q0WL0CrqqpKQRMvQM3MzLSb2SxAxU7sxOM5L0DNzMwM6dwsQGdmZo5m2yxAnnWDyVJXL0DOzMwcE+wsQDMzMwNFoi9AZmZmhmWiL0BlZmaWcq0sQImIiJh9ljJAMzMzGz8vMUCamZmBpC0xQAAAADCEqDJAAAAAKO8tMUAzMzMb8LkyQM7MzEwBujJAAAAAAAc3MUCZmZlhudsyQJqZmUkfGjFAmpmZsbIYMUAAAABYmKM1QFZVVcth7zNAAQAAUPaxNUDOzMycrbI1QDE1sP9k7TNAAQAAKNLCNUABAADISfczQGVmZt6f9zNAZmZmNtblNUA=",
- "dtype": "f8"
- },
- "yaxis": "y"
- },
- {
- "line": {
- "color": "#0000DD",
- "dash": "dot",
- "width": 0.5
- },
- "mode": "lines",
- "name": "Approximation",
- "type": "scatter",
- "x": [
- 120,
- 123,
- 126,
- 129,
- 132,
- 135,
- 138,
- 141,
- 144,
- 147,
- 150,
- 153,
- 156,
- 159,
- 162,
- 165,
- 168,
- 171,
- 174,
- 177,
- 180,
- 183,
- 186,
- 189,
- 192,
- 195,
- 198,
- 201,
- 204,
- 207,
- 210,
- 213,
- 216,
- 219
- ],
- "xaxis": "x",
- "y": [
- 11.748502821858345,
- 12.772179086280595,
- 11.748502821858345,
- 15.72780050123581,
- 15.72780050123581,
- 14.422489736048192,
- 15.72780050123581,
- 14.422489736048192,
- 14.422489736048192,
- 15.72780050123581,
- 14.422489736048192,
- 15.72780050123581,
- 15.72780050123581,
- 14.422489736048192,
- 18.683421916191026,
- 17.09647665023804,
- 17.09647665023804,
- 18.683421916191026,
- 17.09647665023804,
- 18.683421916191026,
- 18.683421916191026,
- 17.09647665023804,
- 18.683421916191026,
- 17.09647665023804,
- 17.09647665023804,
- 21.63904333114624,
- 19.770463564427885,
- 21.63904333114624,
- 21.63904333114624,
- 19.770463564427885,
- 21.63904333114624,
- 19.770463564427885,
- 19.770463564427885,
- 21.63904333114624
- ],
- "yaxis": "y"
- },
- {
- "line": {
- "color": "#880000",
- "width": 0.5
- },
- "mode": "lines",
- "name": "Error",
- "type": "scatter",
- "x": [
- 120,
- 123,
- 126,
- 129,
- 132,
- 135,
- 138,
- 141,
- 144,
- 147,
- 150,
- 153,
- 156,
- 159,
- 162,
- 165,
- 168,
- 171,
- 174,
- 177,
- 180,
- 183,
- 186,
- 189,
- 192,
- 195,
- 198,
- 201,
- 204,
- 207,
- 210,
- 213,
- 216,
- 219
- ],
- "xaxis": "x",
- "y": [
- 0.4260395883416662,
- 0.10429372899742598,
- 1.4430422088408996,
- 1.188480068356126,
- 1.224081572519904,
- 0.017513556670463355,
- 0.734862940402165,
- 0.06219600031896645,
- 0.041772006929809195,
- 0.3653158157222536,
- 0.26687890463880526,
- 0.5635243800435406,
- 0.5650837784365018,
- 0.5839057870747963,
- 0.5141420637899423,
- 0.5125533721076058,
- 0.4762683549143409,
- 0.13481903213880153,
- 0.48286719753150326,
- 0.2290789886892001,
- 0.23047676003755546,
- 0.6882036103559662,
- 0.9273134423922277,
- 0.03252979851666795,
- 0,
- 0,
- 0.825792313874471,
- 0.2586813705323586,
- 0.2715383426848249,
- 0.7871544494730919,
- 0.5605247504912111,
- 0.9791961141197749,
- 0.9857104123412554,
- 1.181655434346608
- ],
- "yaxis": "y2"
- },
- {
- "marker": {
- "color": "#000033",
- "size": 7
- },
- "mode": "markers",
- "name": "#Filters:180 Latency",
- "type": "scatter",
- "x": {
- "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=",
- "dtype": "i2"
- },
- "xaxis": "x",
- "y": {
- "bdata": "MzMzU7PnNkA0MzPTnyk5QJqZmYlnKTVAZmZmPnfMPkCbmZnZl8w+QJqZmXEVHzxAAAAA8ObvPkAzMzPziy07QAAAADiOMztAmZmZaQkDP0BwPgZnvzM8QDMzMwtAMj9Aep7nSaAwP0AvW7bMHiU6QAAAAMSsZUJAw/Uo/Eu1QECamZlRFrVAQGZmZtYHfEJACtejEGkhQEDtxE6cyYZCQDMzM3sQh0JAmpmZMffAQECamZmZHJ1CQJqZmXnZGz9AAQAAKJIZP0CamZmhtHBFQDIzM1NxWUNAZmZmfguBRUAzMzO3AoFFQAAAAGCqokJASZIkqR6MRUBz0UWXrGBDQGZmZoYhYkNAjC66aO2jRUA=",
- "dtype": "f8"
- },
- "yaxis": "y"
- },
- {
- "line": {
- "color": "#000099",
- "dash": "dot",
- "width": 0.5
- },
- "mode": "lines",
- "name": "Approximation",
- "type": "scatter",
- "x": [
- 120,
- 123,
- 126,
- 129,
- 132,
- 135,
- 138,
- 141,
- 144,
- 147,
- 150,
- 153,
- 156,
- 159,
- 162,
- 165,
- 168,
- 171,
- 174,
- 177,
- 180,
- 183,
- 186,
- 189,
- 192,
- 195,
- 198,
- 201,
- 204,
- 207,
- 210,
- 213,
- 216,
- 219
- ],
- "xaxis": "x",
- "y": [
- 21.462892176888207,
- 25.306959100203077,
- 21.462892176888207,
- 31.16481020956328,
- 31.16481020956328,
- 26.281389297138563,
- 31.16481020956328,
- 26.281389297138563,
- 26.281389297138563,
- 31.16481020956328,
- 26.281389297138563,
- 31.16481020956328,
- 31.16481020956328,
- 26.281389297138563,
- 37.02266131892348,
- 31.09988641738892,
- 31.09988641738892,
- 37.02266131892348,
- 31.09988641738892,
- 37.02266131892348,
- 37.02266131892348,
- 31.09988641738892,
- 37.02266131892348,
- 31.09988641738892,
- 31.09988641738892,
- 42.880512428283694,
- 35.91838353763927,
- 42.880512428283694,
- 42.880512428283694,
- 35.91838353763927,
- 42.880512428283694,
- 35.91838353763927,
- 35.91838353763927,
- 42.880512428283694
- ],
- "yaxis": "y"
- },
- {
- "line": {
- "color": "#330000",
- "width": 0.5
- },
- "mode": "lines",
- "name": "Error",
- "type": "scatter",
- "x": [
- 120,
- 123,
- 126,
- 129,
- 132,
- 135,
- 138,
- 141,
- 144,
- 147,
- 150,
- 153,
- 156,
- 159,
- 162,
- 165,
- 168,
- 171,
- 174,
- 177,
- 180,
- 183,
- 186,
- 189,
- 192,
- 195,
- 198,
- 201,
- 204,
- 207,
- 210,
- 213,
- 216,
- 219
- ],
- "xaxis": "x",
- "y": [
- 6.296366803449874,
- 0.573725064214164,
- 1.423116083173548,
- 1.188737704950407,
- 1.1871030963564988,
- 6.543167436029535,
- 0.7359852849910861,
- 3.2987348872567845,
- 3.3821785509495044,
- 0.49319139357028186,
- 6.810653619388203,
- 0.10090789892361532,
- 0.08058879584420138,
- 0.5216602613133788,
- 0.6205477858409466,
- 6.932213678582051,
- 6.927652127261444,
- 0.14518151183793349,
- 3.599180850731772,
- 0.08195375525554394,
- 0.08778567455813081,
- 7.1854187666614555,
- 0.5500620231978605,
- 0.028611651486307295,
- 0,
- 0,
- 7.1846916631026065,
- 0.29680605598984966,
- 0.29618502580929645,
- 3.6286852124447746,
- 0.49698300156274294,
- 7.319994762964665,
- 7.347203598019165,
- 0.9245931387620551
- ],
- "yaxis": "y2"
- }
- ],
- "layout": {
- "autosize": false,
- "font": {
- "size": 14
- },
- "height": 666.6666666666666,
- "legend": {
- "x": 0,
- "y": 1
- },
- "scene": {
- "xaxis": {
- "title": {
- "text": "channels"
- }
- },
- "yaxis": {
- "title": {
- "text": "filters"
- }
- },
- "zaxis": {
- "title": {
- "text": "ms"
- }
- }
- },
- "template": {
- "data": {
- "bar": [
- {
- "error_x": {
- "color": "#2a3f5f"
- },
- "error_y": {
- "color": "#2a3f5f"
- },
- "marker": {
- "line": {
- "color": "white",
- "width": 0.5
- },
- "pattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- }
- },
- "type": "bar"
- }
- ],
- "barpolar": [
- {
- "marker": {
- "line": {
- "color": "white",
- "width": 0.5
- },
- "pattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- }
- },
- "type": "barpolar"
- }
- ],
- "carpet": [
- {
- "aaxis": {
- "endlinecolor": "#2a3f5f",
- "gridcolor": "#C8D4E3",
- "linecolor": "#C8D4E3",
- "minorgridcolor": "#C8D4E3",
- "startlinecolor": "#2a3f5f"
- },
- "baxis": {
- "endlinecolor": "#2a3f5f",
- "gridcolor": "#C8D4E3",
- "linecolor": "#C8D4E3",
- "minorgridcolor": "#C8D4E3",
- "startlinecolor": "#2a3f5f"
- },
- "type": "carpet"
- }
- ],
- "choropleth": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "type": "choropleth"
- }
- ],
- "contour": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "contour"
- }
- ],
- "contourcarpet": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "type": "contourcarpet"
- }
- ],
- "heatmap": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "heatmap"
- }
- ],
- "histogram": [
- {
- "marker": {
- "pattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- }
- },
- "type": "histogram"
- }
- ],
- "histogram2d": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "histogram2d"
- }
- ],
- "histogram2dcontour": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "histogram2dcontour"
- }
- ],
- "mesh3d": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "type": "mesh3d"
- }
- ],
- "parcoords": [
- {
- "line": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "parcoords"
- }
- ],
- "pie": [
- {
- "automargin": true,
- "type": "pie"
- }
- ],
- "scatter": [
- {
- "fillpattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- },
- "type": "scatter"
- }
- ],
- "scatter3d": [
- {
- "line": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scatter3d"
- }
- ],
- "scattercarpet": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattercarpet"
- }
- ],
- "scattergeo": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattergeo"
- }
- ],
- "scattergl": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattergl"
- }
- ],
- "scattermap": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattermap"
- }
- ],
- "scattermapbox": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scattermapbox"
- }
- ],
- "scatterpolar": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scatterpolar"
- }
- ],
- "scatterpolargl": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scatterpolargl"
- }
- ],
- "scatterternary": [
- {
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "type": "scatterternary"
- }
- ],
- "surface": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "surface"
- }
- ],
- "table": [
- {
- "cells": {
- "fill": {
- "color": "#EBF0F8"
- },
- "line": {
- "color": "white"
- }
- },
- "header": {
- "fill": {
- "color": "#C8D4E3"
- },
- "line": {
- "color": "white"
- }
- },
- "type": "table"
- }
- ]
- },
- "layout": {
- "annotationdefaults": {
- "arrowcolor": "#2a3f5f",
- "arrowhead": 0,
- "arrowwidth": 1
- },
- "autotypenumbers": "strict",
- "coloraxis": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
- },
- "colorscale": {
- "diverging": [
- [
- 0,
- "#8e0152"
- ],
- [
- 0.1,
- "#c51b7d"
- ],
- [
- 0.2,
- "#de77ae"
- ],
- [
- 0.3,
- "#f1b6da"
- ],
- [
- 0.4,
- "#fde0ef"
- ],
- [
- 0.5,
- "#f7f7f7"
- ],
- [
- 0.6,
- "#e6f5d0"
- ],
- [
- 0.7,
- "#b8e186"
- ],
- [
- 0.8,
- "#7fbc41"
- ],
- [
- 0.9,
- "#4d9221"
- ],
- [
- 1,
- "#276419"
- ]
- ],
- "sequential": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "sequentialminus": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ]
- },
- "colorway": [
- "#636efa",
- "#EF553B",
- "#00cc96",
- "#ab63fa",
- "#FFA15A",
- "#19d3f3",
- "#FF6692",
- "#B6E880",
- "#FF97FF",
- "#FECB52"
- ],
- "font": {
- "color": "#2a3f5f"
- },
- "geo": {
- "bgcolor": "white",
- "lakecolor": "white",
- "landcolor": "white",
- "showlakes": true,
- "showland": true,
- "subunitcolor": "#C8D4E3"
- },
- "hoverlabel": {
- "align": "left"
- },
- "hovermode": "closest",
- "mapbox": {
- "style": "light"
- },
- "paper_bgcolor": "white",
- "plot_bgcolor": "white",
- "polar": {
- "angularaxis": {
- "gridcolor": "#EBF0F8",
- "linecolor": "#EBF0F8",
- "ticks": ""
- },
- "bgcolor": "white",
- "radialaxis": {
- "gridcolor": "#EBF0F8",
- "linecolor": "#EBF0F8",
- "ticks": ""
- }
- },
- "scene": {
- "xaxis": {
- "backgroundcolor": "white",
- "gridcolor": "#DFE8F3",
- "gridwidth": 2,
- "linecolor": "#EBF0F8",
- "showbackground": true,
- "ticks": "",
- "zerolinecolor": "#EBF0F8"
- },
- "yaxis": {
- "backgroundcolor": "white",
- "gridcolor": "#DFE8F3",
- "gridwidth": 2,
- "linecolor": "#EBF0F8",
- "showbackground": true,
- "ticks": "",
- "zerolinecolor": "#EBF0F8"
- },
- "zaxis": {
- "backgroundcolor": "white",
- "gridcolor": "#DFE8F3",
- "gridwidth": 2,
- "linecolor": "#EBF0F8",
- "showbackground": true,
- "ticks": "",
- "zerolinecolor": "#EBF0F8"
- }
- },
- "shapedefaults": {
- "line": {
- "color": "#2a3f5f"
- }
- },
- "ternary": {
- "aaxis": {
- "gridcolor": "#DFE8F3",
- "linecolor": "#A2B1C6",
- "ticks": ""
- },
- "baxis": {
- "gridcolor": "#DFE8F3",
- "linecolor": "#A2B1C6",
- "ticks": ""
- },
- "bgcolor": "white",
- "caxis": {
- "gridcolor": "#DFE8F3",
- "linecolor": "#A2B1C6",
- "ticks": ""
- }
- },
- "title": {
- "x": 0.05
- },
- "xaxis": {
- "automargin": true,
- "gridcolor": "#EBF0F8",
- "linecolor": "#EBF0F8",
- "ticks": "",
- "title": {
- "standoff": 15
- },
- "zerolinecolor": "#EBF0F8",
- "zerolinewidth": 2
- },
- "yaxis": {
- "automargin": true,
- "gridcolor": "#EBF0F8",
- "linecolor": "#EBF0F8",
- "ticks": "",
- "title": {
- "standoff": 15
- },
- "zerolinecolor": "#EBF0F8",
- "zerolinewidth": 2
- }
- }
- },
- "title": {
- "text": "Approximation using a modified stepfunction"
- },
- "width": 1000,
- "xaxis": {
- "anchor": "y",
- "domain": [
- 0,
- 0.94
- ],
- "title": {
- "text": "#Channels"
- }
- },
- "yaxis": {
- "anchor": "x",
- "domain": [
- 0,
- 1
- ],
- "range": [
- -5,
- 50
- ],
- "title": {
- "text": "Layer Execution Time (ms)"
- }
- },
- "yaxis2": {
- "anchor": "x",
- "overlaying": "y",
- "range": [
- -4,
- 40
- ],
- "side": "right",
- "title": {
- "text": "Absolute Approximation Error (%)"
- }
- }
- }
- }
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
"source": [
"fig = make_subplots(specs=[[{\"secondary_y\": True}]])\n",
"split_df = df.groupby('filters')\n",
@@ -25113,18 +27063,7 @@
"fig.write_image(\"images/step_approx.svg\", width=PLOT_WIDTH /2, height=PLOT_HEIGHT / 3 * 2, scale=2)\n",
"\n",
"fig.show()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "8c92e57c-3d5a-41f3-8225-d5ad2c50e650",
- "metadata": {
- "ExecuteTime": {
- "end_time": "2025-09-16T13:11:40.212613Z",
- "start_time": "2025-09-16T13:11:38.401542Z"
- }
- },
+ ],
"outputs": [
{
"name": "stdout",
@@ -25142,9 +27081,6 @@
{
"data": {
"application/vnd.plotly.v1+json": {
- "config": {
- "plotlyServerURL": "https://plot.ly"
- },
"data": [
{
"marker": {
@@ -25153,16 +27089,16 @@
},
"mode": "markers",
"name": "#Filters:100 Latency",
- "type": "scatter",
"x": {
- "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=",
- "dtype": "i2"
+ "dtype": "i2",
+ "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA="
},
- "xaxis": "x",
"y": {
- "bdata": "L7roArdlJ0BeTsHrioQpQLlkCHaqKSdAEhER0Q0WL0CrqqpKQRMvQM3MzLSb2SxAxU7sxOM5L0DNzMwM6dwsQGdmZo5m2yxAnnWDyVJXL0DOzMwcE+wsQDMzMwNFoi9AZmZmhmWiL0BlZmaWcq0sQImIiJh9ljJAMzMzGz8vMUCamZmBpC0xQAAAADCEqDJAAAAAKO8tMUAzMzMb8LkyQM7MzEwBujJAAAAAAAc3MUCZmZlhudsyQJqZmUkfGjFAmpmZsbIYMUAAAABYmKM1QFZVVcth7zNAAQAAUPaxNUDOzMycrbI1QDE1sP9k7TNAAQAAKNLCNUABAADISfczQGVmZt6f9zNAZmZmNtblNUA=",
- "dtype": "f8"
+ "dtype": "f8",
+ "bdata": "L7roArdlJ0BeTsHrioQpQLlkCHaqKSdAEhER0Q0WL0CrqqpKQRMvQM3MzLSb2SxAxU7sxOM5L0DNzMwM6dwsQGdmZo5m2yxAnnWDyVJXL0DOzMwcE+wsQDMzMwNFoi9AZmZmhmWiL0BlZmaWcq0sQImIiJh9ljJAMzMzGz8vMUCamZmBpC0xQAAAADCEqDJAAAAAKO8tMUAzMzMb8LkyQM7MzEwBujJAAAAAAAc3MUCZmZlhudsyQJqZmUkfGjFAmpmZsbIYMUAAAABYmKM1QFZVVcth7zNAAQAAUPaxNUDOzMycrbI1QDE1sP9k7TNAAQAAKNLCNUABAADISfczQGVmZt6f9zNAZmZmNtblNUA="
},
+ "type": "scatter",
+ "xaxis": "x",
"yaxis": "y"
},
{
@@ -25173,7 +27109,6 @@
},
"mode": "lines",
"name": "Approximation",
- "type": "scatter",
"x": [
120,
123,
@@ -25210,43 +27145,44 @@
216,
219
],
- "xaxis": "x",
"y": [
- 11.698661890896885,
- 12.758872382494868,
- 11.58137863972148,
- 15.543074162801107,
- 15.537607510884602,
- 14.42501606941223,
- 15.613065866323616,
- 14.431465530395506,
- 14.428516817092895,
- 15.670553490922254,
- 14.461083316802979,
- 15.816932773590084,
- 15.817180824279781,
- 14.338764858245844,
- 18.587853940327957,
- 17.184556674957268,
- 17.178291416168207,
- 18.658267021179192,
- 17.17943048477172,
- 18.72631998062133,
- 18.72658233642578,
- 17.21495056152343,
- 18.858297443389883,
- 17.102039909362787,
- 17.09647665023803,
- 21.63904333114623,
- 19.935085972150162,
- 21.695164680480953,
- 21.69796161651611,
- 19.92732236911723,
- 21.761019229888912,
- 19.965969562530514,
- 19.967283153533923,
- 21.89779987335204
+ 11.748502821858345,
+ 12.772179086280595,
+ 11.748502821858345,
+ 15.72780050123581,
+ 15.72780050123581,
+ 14.422489736048192,
+ 15.72780050123581,
+ 14.422489736048192,
+ 14.422489736048192,
+ 15.72780050123581,
+ 14.422489736048192,
+ 15.72780050123581,
+ 15.72780050123581,
+ 14.422489736048192,
+ 18.683421916191026,
+ 17.09647665023804,
+ 17.09647665023804,
+ 18.683421916191026,
+ 17.09647665023804,
+ 18.683421916191026,
+ 18.683421916191026,
+ 17.09647665023804,
+ 18.683421916191026,
+ 17.09647665023804,
+ 17.09647665023804,
+ 21.63904333114624,
+ 19.770463564427885,
+ 21.63904333114624,
+ 21.63904333114624,
+ 19.770463564427885,
+ 21.63904333114624,
+ 19.770463564427885,
+ 19.770463564427885,
+ 21.63904333114624
],
+ "type": "scatter",
+ "xaxis": "x",
"yaxis": "y"
},
{
@@ -25256,7 +27192,6 @@
},
"mode": "lines",
"name": "Error",
- "type": "scatter",
"x": [
120,
123,
@@ -25293,43 +27228,44 @@
216,
219
],
- "xaxis": "x",
"y": [
- 0,
- 0,
- 0,
- 1.1428606855981976E-14,
- 1.1432627823529809E-14,
- 1.2314418443990203E-14,
- 1.1377373634423322E-14,
- 1.2308915097076544E-14,
- 1.2311430633645381E-14,
- 1.133563559467935E-14,
- 1.2283705172600879E-14,
- 2.2461457791187886E-14,
- 2.246110554256921E-14,
- 2.4776985423241868E-14,
- 3.822618458489799E-14,
- 4.134774898182626E-14,
- 4.1362829314406505E-14,
- 3.808192555897906E-14,
- 4.136008678459643E-14,
- 3.794353276540159E-14,
- 3.7943001183830355E-14,
- 4.127474739010931E-14,
- 3.767798964318255E-14,
- 4.1547250475722594E-14,
- 4.156077011050152E-14,
- 4.925421550896691E-14,
- 3.5642822747428665E-14,
- 3.275120268616224E-14,
- 3.2746980952314305E-14,
- 3.565670904492808E-14,
- 3.265208896025258E-14,
- 3.5587690021002155E-14,
- 3.558534880767412E-14,
- 4.867220039476042E-14
+ 0.4260395883416662,
+ 0.10429372899742598,
+ 1.4430422088408996,
+ 1.188480068356126,
+ 1.224081572519904,
+ 0.017513556670463355,
+ 0.734862940402165,
+ 0.06219600031896645,
+ 0.041772006929809195,
+ 0.3653158157222536,
+ 0.26687890463880526,
+ 0.5635243800435406,
+ 0.5650837784365018,
+ 0.5839057870747963,
+ 0.5141420637899423,
+ 0.5125533721076058,
+ 0.4762683549143409,
+ 0.13481903213880153,
+ 0.48286719753150326,
+ 0.2290789886892001,
+ 0.23047676003755546,
+ 0.6882036103559662,
+ 0.9273134423922277,
+ 0.03252979851666795,
+ 0.0,
+ 0.0,
+ 0.825792313874471,
+ 0.2586813705323586,
+ 0.2715383426848249,
+ 0.7871544494730919,
+ 0.5605247504912111,
+ 0.9791961141197749,
+ 0.9857104123412554,
+ 1.181655434346608
],
+ "type": "scatter",
+ "xaxis": "x",
"yaxis": "y2"
},
{
@@ -25339,16 +27275,16 @@
},
"mode": "markers",
"name": "#Filters:180 Latency",
- "type": "scatter",
"x": {
- "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA=",
- "dtype": "i2"
+ "dtype": "i2",
+ "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA="
},
- "xaxis": "x",
"y": {
- "bdata": "MzMzU7PnNkA0MzPTnyk5QJqZmYlnKTVAZmZmPnfMPkCbmZnZl8w+QJqZmXEVHzxAAAAA8ObvPkAzMzPziy07QAAAADiOMztAmZmZaQkDP0BwPgZnvzM8QDMzMwtAMj9Aep7nSaAwP0AvW7bMHiU6QAAAAMSsZUJAw/Uo/Eu1QECamZlRFrVAQGZmZtYHfEJACtejEGkhQEDtxE6cyYZCQDMzM3sQh0JAmpmZMffAQECamZmZHJ1CQJqZmXnZGz9AAQAAKJIZP0CamZmhtHBFQDIzM1NxWUNAZmZmfguBRUAzMzO3AoFFQAAAAGCqokJASZIkqR6MRUBz0UWXrGBDQGZmZoYhYkNAjC66aO2jRUA=",
- "dtype": "f8"
+ "dtype": "f8",
+ "bdata": "MzMzU7PnNkA0MzPTnyk5QJqZmYlnKTVAZmZmPnfMPkCbmZnZl8w+QJqZmXEVHzxAAAAA8ObvPkAzMzPziy07QAAAADiOMztAmZmZaQkDP0BwPgZnvzM8QDMzMwtAMj9Aep7nSaAwP0AvW7bMHiU6QAAAAMSsZUJAw/Uo/Eu1QECamZlRFrVAQGZmZtYHfEJACtejEGkhQEDtxE6cyYZCQDMzM3sQh0JAmpmZMffAQECamZmZHJ1CQJqZmXnZGz9AAQAAKJIZP0CamZmhtHBFQDIzM1NxWUNAZmZmfguBRUAzMzO3AoFFQAAAAGCqokJASZIkqR6MRUBz0UWXrGBDQGZmZoYhYkNAjC66aO2jRUA="
},
+ "type": "scatter",
+ "xaxis": "x",
"yaxis": "y"
},
{
@@ -25359,7 +27295,6 @@
},
"mode": "lines",
"name": "Approximation",
- "type": "scatter",
"x": [
120,
123,
@@ -25396,43 +27331,44 @@
216,
219
],
- "xaxis": "x",
"y": [
- 22.905080032348632,
- 24.980890615444793,
- 22.67544844886667,
- 30.432143519312824,
- 30.42144023539674,
- 28.24307178198749,
- 30.569181890515857,
- 28.255699330451165,
- 28.2499259766421,
- 30.68173823709478,
- 28.31368867781166,
- 30.968337611950925,
- 30.968823276119405,
- 28.07419854562271,
- 36.39358809609788,
- 33.64604000279818,
- 33.633773108060545,
- 36.53145149169501,
- 33.63600331676041,
- 36.66469395113162,
- 36.66520762361433,
- 33.70554889456587,
- 36.92309567052248,
- 33.48447852358125,
- 33.473586090183176,
- 42.36758220263136,
- 39.03136477507374,
- 42.47746348734782,
- 42.48293967294307,
- 39.016164237570635,
- 42.60640162905591,
- 39.09183246923786,
- 39.09440437937113,
- 42.874207606749565
+ 21.462892176888207,
+ 25.306959100203077,
+ 21.462892176888207,
+ 31.16481020956328,
+ 31.16481020956328,
+ 26.281389297138563,
+ 31.16481020956328,
+ 26.281389297138563,
+ 26.281389297138563,
+ 31.16481020956328,
+ 26.281389297138563,
+ 31.16481020956328,
+ 31.16481020956328,
+ 26.281389297138563,
+ 37.02266131892348,
+ 31.09988641738892,
+ 31.09988641738892,
+ 37.02266131892348,
+ 31.09988641738892,
+ 37.02266131892348,
+ 37.02266131892348,
+ 31.09988641738892,
+ 37.02266131892348,
+ 31.09988641738892,
+ 31.09988641738892,
+ 42.880512428283694,
+ 35.91838353763927,
+ 42.880512428283694,
+ 42.880512428283694,
+ 35.91838353763927,
+ 42.880512428283694,
+ 35.91838353763927,
+ 35.91838353763927,
+ 42.880512428283694
],
+ "type": "scatter",
+ "xaxis": "x",
"yaxis": "y"
},
{
@@ -25442,7 +27378,6 @@
},
"mode": "lines",
"name": "Error",
- "type": "scatter",
"x": [
120,
123,
@@ -25479,76 +27414,66 @@
216,
219
],
- "xaxis": "x",
"y": [
- 0,
- 0.722120952224905,
- 7.153063124638968,
- 1.1901510816772016,
- 1.2264990949908325,
- 0.43259132076344214,
- 1.1893017672776702,
- 3.9656557348515133,
- 3.854719136072214,
- 1.0645092264466456,
- 0.39553509435943446,
- 0.7307026575707117,
- 0.7089545346931729,
- 7.3788381734827855,
- 1.0891535166357365,
- 0.6872635969325888,
- 0.6554875787546273,
- 1.1835262459441975,
- 4.26206157557546,
- 1.048048539772159,
- 1.0524378347445407,
- 0.5909270504531752,
- 0.8175143673933011,
- 7.6367212793652355,
- 7.632502707363736,
- 1.1961849255187722,
- 0.8594429816728515,
- 1.2339512637171601,
- 1.2206030934235022,
- 4.682858057954855,
- 1.1330493629578826,
- 0.8684378621231099,
- 0.8454594183736385,
- 0.939160426401775
+ 6.296366803449874,
+ 0.573725064214164,
+ 1.423116083173548,
+ 1.188737704950407,
+ 1.1871030963564988,
+ 6.543167436029535,
+ 0.7359852849910861,
+ 3.2987348872567845,
+ 3.3821785509495044,
+ 0.49319139357028186,
+ 6.810653619388203,
+ 0.10090789892361532,
+ 0.08058879584420138,
+ 0.5216602613133788,
+ 0.6205477858409466,
+ 6.932213678582051,
+ 6.927652127261444,
+ 0.14518151183793349,
+ 3.599180850731772,
+ 0.08195375525554394,
+ 0.08778567455813081,
+ 7.1854187666614555,
+ 0.5500620231978605,
+ 0.028611651486307295,
+ 0.0,
+ 0.0,
+ 7.1846916631026065,
+ 0.29680605598984966,
+ 0.29618502580929645,
+ 3.6286852124447746,
+ 0.49698300156274294,
+ 7.319994762964665,
+ 7.347203598019165,
+ 0.9245931387620551
],
+ "type": "scatter",
+ "xaxis": "x",
"yaxis": "y2"
}
],
"layout": {
- "autosize": false,
- "font": {
- "size": 14
- },
- "height": 666.6666666666666,
- "legend": {
- "x": 0,
- "y": 1
- },
- "plot_bgcolor": "rgba(0, 0, 0, 0)",
- "scene": {
- "xaxis": {
- "title": {
- "text": "channels"
- }
- },
- "yaxis": {
- "title": {
- "text": "filters"
- }
- },
- "zaxis": {
- "title": {
- "text": "ms"
- }
- }
- },
"template": {
"data": {
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "white",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
"bar": [
{
"error_x": {
@@ -25571,22 +27496,6 @@
"type": "bar"
}
],
- "barpolar": [
- {
- "marker": {
- "line": {
- "color": "white",
- "width": 0.5
- },
- "pattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- }
- },
- "type": "barpolar"
- }
- ],
"carpet": [
{
"aaxis": {
@@ -25615,6 +27524,15 @@
"type": "choropleth"
}
],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
"contour": [
{
"colorbar": {
@@ -25623,7 +27541,7 @@
},
"colorscale": [
[
- 0,
+ 0.0,
"#0d0887"
],
[
@@ -25659,22 +27577,13 @@
"#fdca26"
],
[
- 1,
+ 1.0,
"#f0f921"
]
],
"type": "contour"
}
],
- "contourcarpet": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "type": "contourcarpet"
- }
- ],
"heatmap": [
{
"colorbar": {
@@ -25683,7 +27592,7 @@
},
"colorscale": [
[
- 0,
+ 0.0,
"#0d0887"
],
[
@@ -25719,13 +27628,115 @@
"#fdca26"
],
[
- 1,
+ 1.0,
"#f0f921"
]
],
"type": "heatmap"
}
],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
"histogram": [
{
"marker": {
@@ -25738,108 +27749,6 @@
"type": "histogram"
}
],
- "histogram2d": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "histogram2d"
- }
- ],
- "histogram2dcontour": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "histogram2dcontour"
- }
- ],
"mesh3d": [
{
"colorbar": {
@@ -25866,16 +27775,6 @@
"type": "pie"
}
],
- "scatter": [
- {
- "fillpattern": {
- "fillmode": "overlay",
- "size": 10,
- "solidity": 0.2
- },
- "type": "scatter"
- }
- ],
"scatter3d": [
{
"line": {
@@ -25926,6 +27825,17 @@
"type": "scattergl"
}
],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
"scattermap": [
{
"marker": {
@@ -25937,7 +27847,7 @@
"type": "scattermap"
}
],
- "scattermapbox": [
+ "scatterpolargl": [
{
"marker": {
"colorbar": {
@@ -25945,7 +27855,7 @@
"ticks": ""
}
},
- "type": "scattermapbox"
+ "type": "scatterpolargl"
}
],
"scatterpolar": [
@@ -25959,15 +27869,14 @@
"type": "scatterpolar"
}
],
- "scatterpolargl": [
+ "scatter": [
{
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
},
- "type": "scatterpolargl"
+ "type": "scatter"
}
],
"scatterternary": [
@@ -25989,7 +27898,7 @@
},
"colorscale": [
[
- 0,
+ 0.0,
"#0d0887"
],
[
@@ -26025,7 +27934,7 @@
"#fdca26"
],
[
- 1,
+ 1.0,
"#f0f921"
]
],
@@ -26116,7 +28025,7 @@
],
"sequential": [
[
- 0,
+ 0.0,
"#0d0887"
],
[
@@ -26152,13 +28061,13 @@
"#fdca26"
],
[
- 1,
+ 1.0,
"#f0f921"
]
],
"sequentialminus": [
[
- 0,
+ 0.0,
"#0d0887"
],
[
@@ -26194,7 +28103,7 @@
"#fdca26"
],
[
- 1,
+ 1.0,
"#f0f921"
]
]
@@ -26323,14 +28232,10 @@
}
}
},
- "title": {
- "text": "Approximation using the point to point differences of reference sweep"
- },
- "width": 1000,
"xaxis": {
"anchor": "y",
"domain": [
- 0,
+ 0.0,
0.94
],
"title": {
@@ -26340,36 +28245,83 @@
"yaxis": {
"anchor": "x",
"domain": [
- 0,
- 1
- ],
- "range": [
- -5,
- 50
+ 0.0,
+ 1.0
],
"title": {
"text": "Layer Execution Time (ms)"
- }
+ },
+ "range": [
+ -5,
+ 50
+ ]
},
"yaxis2": {
"anchor": "x",
"overlaying": "y",
- "range": [
- -4,
- 40
- ],
"side": "right",
"title": {
"text": "Absolute Approximation Error (%)"
+ },
+ "range": [
+ -4,
+ 40
+ ]
+ },
+ "scene": {
+ "xaxis": {
+ "title": {
+ "text": "channels"
+ }
+ },
+ "yaxis": {
+ "title": {
+ "text": "filters"
+ }
+ },
+ "zaxis": {
+ "title": {
+ "text": "ms"
+ }
}
- }
+ },
+ "width": 1000.0,
+ "height": 666.6666666666666,
+ "title": {
+ "text": "Approximation using a modified stepfunction"
+ },
+ "legend": {
+ "x": 0,
+ "y": 1
+ },
+ "font": {
+ "size": 14
+ },
+ "autosize": false
+ },
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
}
}
},
"metadata": {},
- "output_type": "display_data"
+ "output_type": "display_data",
+ "jetTransient": {
+ "display_id": null
+ }
}
],
+ "execution_count": 9
+ },
+ {
+ "cell_type": "code",
+ "id": "8c92e57c-3d5a-41f3-8225-d5ad2c50e650",
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2025-11-16T16:43:28.532994Z",
+ "start_time": "2025-11-16T16:43:27.523402Z"
+ }
+ },
"source": [
"fig = make_subplots(specs=[[{\"secondary_y\": True}]])\n",
"split_df = df.groupby('filters')\n",
@@ -26542,61 +28494,1310 @@
"fig.write_image(\"images/delta_approx.svg\", width=PLOT_WIDTH /2, height=PLOT_HEIGHT / 3 * 2, scale=2)\n",
"\n",
"fig.show()"
- ]
+ ],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "np.mean(errs)=np.float64(2.768728199793735e-14)\n",
+ "np.mean(rect_errs)=np.float64(0.5195734160479627)\n",
+ "np.mean(errs)=np.float64(2.048453928944935)\n",
+ "np.mean(rect_errs)=np.float64(2.53793726954352)\n",
+ "\n",
+ "np.mean(all_errs)=np.float64(1.0242269644724813)\n",
+ "np.mean(all_rect_errs)=np.float64(1.5287553427957412)\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "data": [
+ {
+ "marker": {
+ "color": "#000088",
+ "size": 7
+ },
+ "mode": "markers",
+ "name": "#Filters:100 Latency",
+ "x": {
+ "dtype": "i2",
+ "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA="
+ },
+ "y": {
+ "dtype": "f8",
+ "bdata": "L7roArdlJ0BeTsHrioQpQLlkCHaqKSdAEhER0Q0WL0CrqqpKQRMvQM3MzLSb2SxAxU7sxOM5L0DNzMwM6dwsQGdmZo5m2yxAnnWDyVJXL0DOzMwcE+wsQDMzMwNFoi9AZmZmhmWiL0BlZmaWcq0sQImIiJh9ljJAMzMzGz8vMUCamZmBpC0xQAAAADCEqDJAAAAAKO8tMUAzMzMb8LkyQM7MzEwBujJAAAAAAAc3MUCZmZlhudsyQJqZmUkfGjFAmpmZsbIYMUAAAABYmKM1QFZVVcth7zNAAQAAUPaxNUDOzMycrbI1QDE1sP9k7TNAAQAAKNLCNUABAADISfczQGVmZt6f9zNAZmZmNtblNUA="
+ },
+ "type": "scatter",
+ "xaxis": "x",
+ "yaxis": "y"
+ },
+ {
+ "line": {
+ "color": "#0000DD",
+ "dash": "dot",
+ "width": 0.5
+ },
+ "mode": "lines",
+ "name": "Approximation",
+ "x": [
+ 120,
+ 123,
+ 126,
+ 129,
+ 132,
+ 135,
+ 138,
+ 141,
+ 144,
+ 147,
+ 150,
+ 153,
+ 156,
+ 159,
+ 162,
+ 165,
+ 168,
+ 171,
+ 174,
+ 177,
+ 180,
+ 183,
+ 186,
+ 189,
+ 192,
+ 195,
+ 198,
+ 201,
+ 204,
+ 207,
+ 210,
+ 213,
+ 216,
+ 219
+ ],
+ "y": [
+ 11.698661890896885,
+ 12.758872382494868,
+ 11.58137863972148,
+ 15.543074162801107,
+ 15.537607510884602,
+ 14.42501606941223,
+ 15.613065866323616,
+ 14.431465530395506,
+ 14.428516817092895,
+ 15.670553490922254,
+ 14.461083316802979,
+ 15.816932773590084,
+ 15.817180824279781,
+ 14.338764858245844,
+ 18.587853940327957,
+ 17.184556674957268,
+ 17.178291416168207,
+ 18.658267021179192,
+ 17.17943048477172,
+ 18.72631998062133,
+ 18.72658233642578,
+ 17.21495056152343,
+ 18.858297443389883,
+ 17.102039909362787,
+ 17.09647665023803,
+ 21.63904333114623,
+ 19.935085972150162,
+ 21.695164680480953,
+ 21.69796161651611,
+ 19.92732236911723,
+ 21.761019229888912,
+ 19.965969562530514,
+ 19.967283153533923,
+ 21.89779987335204
+ ],
+ "type": "scatter",
+ "xaxis": "x",
+ "yaxis": "y"
+ },
+ {
+ "line": {
+ "color": "#880000",
+ "width": 0.5
+ },
+ "mode": "lines",
+ "name": "Error",
+ "x": [
+ 120,
+ 123,
+ 126,
+ 129,
+ 132,
+ 135,
+ 138,
+ 141,
+ 144,
+ 147,
+ 150,
+ 153,
+ 156,
+ 159,
+ 162,
+ 165,
+ 168,
+ 171,
+ 174,
+ 177,
+ 180,
+ 183,
+ 186,
+ 189,
+ 192,
+ 195,
+ 198,
+ 201,
+ 204,
+ 207,
+ 210,
+ 213,
+ 216,
+ 219
+ ],
+ "y": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.1428606855981976E-14,
+ 1.1432627823529809E-14,
+ 1.2314418443990203E-14,
+ 1.1377373634423322E-14,
+ 1.2308915097076544E-14,
+ 1.2311430633645381E-14,
+ 1.133563559467935E-14,
+ 1.2283705172600879E-14,
+ 2.2461457791187886E-14,
+ 2.246110554256921E-14,
+ 2.4776985423241868E-14,
+ 3.822618458489799E-14,
+ 4.134774898182626E-14,
+ 4.1362829314406505E-14,
+ 3.808192555897906E-14,
+ 4.136008678459643E-14,
+ 3.794353276540159E-14,
+ 3.7943001183830355E-14,
+ 4.127474739010931E-14,
+ 3.767798964318255E-14,
+ 4.1547250475722594E-14,
+ 4.156077011050152E-14,
+ 4.925421550896691E-14,
+ 3.5642822747428665E-14,
+ 3.275120268616224E-14,
+ 3.2746980952314305E-14,
+ 3.565670904492808E-14,
+ 3.265208896025258E-14,
+ 3.5587690021002155E-14,
+ 3.558534880767412E-14,
+ 4.867220039476042E-14
+ ],
+ "type": "scatter",
+ "xaxis": "x",
+ "yaxis": "y2"
+ },
+ {
+ "marker": {
+ "color": "#000033",
+ "size": 7
+ },
+ "mode": "markers",
+ "name": "#Filters:180 Latency",
+ "x": {
+ "dtype": "i2",
+ "bdata": "eAB7AH4AgQCEAIcAigCNAJAAkwCWAJkAnACfAKIApQCoAKsArgCxALQAtwC6AL0AwADDAMYAyQDMAM8A0gDVANgA2wA="
+ },
+ "y": {
+ "dtype": "f8",
+ "bdata": "MzMzU7PnNkA0MzPTnyk5QJqZmYlnKTVAZmZmPnfMPkCbmZnZl8w+QJqZmXEVHzxAAAAA8ObvPkAzMzPziy07QAAAADiOMztAmZmZaQkDP0BwPgZnvzM8QDMzMwtAMj9Aep7nSaAwP0AvW7bMHiU6QAAAAMSsZUJAw/Uo/Eu1QECamZlRFrVAQGZmZtYHfEJACtejEGkhQEDtxE6cyYZCQDMzM3sQh0JAmpmZMffAQECamZmZHJ1CQJqZmXnZGz9AAQAAKJIZP0CamZmhtHBFQDIzM1NxWUNAZmZmfguBRUAzMzO3AoFFQAAAAGCqokJASZIkqR6MRUBz0UWXrGBDQGZmZoYhYkNAjC66aO2jRUA="
+ },
+ "type": "scatter",
+ "xaxis": "x",
+ "yaxis": "y"
+ },
+ {
+ "line": {
+ "color": "#000099",
+ "dash": "dot",
+ "width": 0.5
+ },
+ "mode": "lines",
+ "name": "Approximation",
+ "x": [
+ 120,
+ 123,
+ 126,
+ 129,
+ 132,
+ 135,
+ 138,
+ 141,
+ 144,
+ 147,
+ 150,
+ 153,
+ 156,
+ 159,
+ 162,
+ 165,
+ 168,
+ 171,
+ 174,
+ 177,
+ 180,
+ 183,
+ 186,
+ 189,
+ 192,
+ 195,
+ 198,
+ 201,
+ 204,
+ 207,
+ 210,
+ 213,
+ 216,
+ 219
+ ],
+ "y": [
+ 22.905080032348632,
+ 24.980890615444793,
+ 22.67544844886667,
+ 30.432143519312824,
+ 30.42144023539674,
+ 28.24307178198749,
+ 30.569181890515857,
+ 28.255699330451165,
+ 28.2499259766421,
+ 30.68173823709478,
+ 28.31368867781166,
+ 30.968337611950925,
+ 30.968823276119405,
+ 28.07419854562271,
+ 36.39358809609788,
+ 33.64604000279818,
+ 33.633773108060545,
+ 36.53145149169501,
+ 33.63600331676041,
+ 36.66469395113162,
+ 36.66520762361433,
+ 33.70554889456587,
+ 36.92309567052248,
+ 33.48447852358125,
+ 33.473586090183176,
+ 42.36758220263136,
+ 39.03136477507374,
+ 42.47746348734782,
+ 42.48293967294307,
+ 39.016164237570635,
+ 42.60640162905591,
+ 39.09183246923786,
+ 39.09440437937113,
+ 42.874207606749565
+ ],
+ "type": "scatter",
+ "xaxis": "x",
+ "yaxis": "y"
+ },
+ {
+ "line": {
+ "color": "#330000",
+ "width": 0.5
+ },
+ "mode": "lines",
+ "name": "Error",
+ "x": [
+ 120,
+ 123,
+ 126,
+ 129,
+ 132,
+ 135,
+ 138,
+ 141,
+ 144,
+ 147,
+ 150,
+ 153,
+ 156,
+ 159,
+ 162,
+ 165,
+ 168,
+ 171,
+ 174,
+ 177,
+ 180,
+ 183,
+ 186,
+ 189,
+ 192,
+ 195,
+ 198,
+ 201,
+ 204,
+ 207,
+ 210,
+ 213,
+ 216,
+ 219
+ ],
+ "y": [
+ 0.0,
+ 0.722120952224905,
+ 7.153063124638968,
+ 1.1901510816772016,
+ 1.2264990949908325,
+ 0.43259132076344214,
+ 1.1893017672776702,
+ 3.9656557348515133,
+ 3.854719136072214,
+ 1.0645092264466456,
+ 0.39553509435943446,
+ 0.7307026575707117,
+ 0.7089545346931729,
+ 7.3788381734827855,
+ 1.0891535166357365,
+ 0.6872635969325888,
+ 0.6554875787546273,
+ 1.1835262459441975,
+ 4.26206157557546,
+ 1.048048539772159,
+ 1.0524378347445407,
+ 0.5909270504531752,
+ 0.8175143673933011,
+ 7.6367212793652355,
+ 7.632502707363736,
+ 1.1961849255187722,
+ 0.8594429816728515,
+ 1.2339512637171601,
+ 1.2206030934235022,
+ 4.682858057954855,
+ 1.1330493629578826,
+ 0.8684378621231099,
+ 0.8454594183736385,
+ 0.939160426401775
+ ],
+ "type": "scatter",
+ "xaxis": "x",
+ "yaxis": "y2"
+ }
+ ],
+ "layout": {
+ "template": {
+ "data": {
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "white",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "bar": [
+ {
+ "error_x": {
+ "color": "#2a3f5f"
+ },
+ "error_y": {
+ "color": "#2a3f5f"
+ },
+ "marker": {
+ "line": {
+ "color": "white",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "#C8D4E3",
+ "linecolor": "#C8D4E3",
+ "minorgridcolor": "#C8D4E3",
+ "startlinecolor": "#2a3f5f"
+ },
+ "baxis": {
+ "endlinecolor": "#2a3f5f",
+ "gridcolor": "#C8D4E3",
+ "linecolor": "#C8D4E3",
+ "minorgridcolor": "#C8D4E3",
+ "startlinecolor": "#2a3f5f"
+ },
+ "type": "carpet"
+ }
+ ],
+ "choropleth": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "choropleth"
+ }
+ ],
+ "contourcarpet": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "contourcarpet"
+ }
+ ],
+ "contour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "type": "contour"
+ }
+ ],
+ "heatmap": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "type": "heatmap"
+ }
+ ],
+ "histogram2dcontour": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2dcontour"
+ }
+ ],
+ "histogram2d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "type": "histogram2d"
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "mesh3d": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "type": "mesh3d"
+ }
+ ],
+ "parcoords": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "parcoords"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ],
+ "scatter3d": [
+ {
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatter3d"
+ }
+ ],
+ "scattercarpet": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattercarpet"
+ }
+ ],
+ "scattergeo": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergeo"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scattermapbox": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermapbox"
+ }
+ ],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolargl"
+ }
+ ],
+ "scatterpolar": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterpolar"
+ }
+ ],
+ "scatter": [
+ {
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ },
+ "type": "scatter"
+ }
+ ],
+ "scatterternary": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scatterternary"
+ }
+ ],
+ "surface": [
+ {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "type": "surface"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#EBF0F8"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#C8D4E3"
+ },
+ "line": {
+ "color": "white"
+ }
+ },
+ "type": "table"
+ }
+ ]
+ },
+ "layout": {
+ "annotationdefaults": {
+ "arrowcolor": "#2a3f5f",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "autotypenumbers": "strict",
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ],
+ "sequential": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ },
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#2a3f5f"
+ },
+ "geo": {
+ "bgcolor": "white",
+ "lakecolor": "white",
+ "landcolor": "white",
+ "showlakes": true,
+ "showland": true,
+ "subunitcolor": "#C8D4E3"
+ },
+ "hoverlabel": {
+ "align": "left"
+ },
+ "hovermode": "closest",
+ "mapbox": {
+ "style": "light"
+ },
+ "paper_bgcolor": "white",
+ "plot_bgcolor": "white",
+ "polar": {
+ "angularaxis": {
+ "gridcolor": "#EBF0F8",
+ "linecolor": "#EBF0F8",
+ "ticks": ""
+ },
+ "bgcolor": "white",
+ "radialaxis": {
+ "gridcolor": "#EBF0F8",
+ "linecolor": "#EBF0F8",
+ "ticks": ""
+ }
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "white",
+ "gridcolor": "#DFE8F3",
+ "gridwidth": 2,
+ "linecolor": "#EBF0F8",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#EBF0F8"
+ },
+ "yaxis": {
+ "backgroundcolor": "white",
+ "gridcolor": "#DFE8F3",
+ "gridwidth": 2,
+ "linecolor": "#EBF0F8",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#EBF0F8"
+ },
+ "zaxis": {
+ "backgroundcolor": "white",
+ "gridcolor": "#DFE8F3",
+ "gridwidth": 2,
+ "linecolor": "#EBF0F8",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#EBF0F8"
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#2a3f5f"
+ }
+ },
+ "ternary": {
+ "aaxis": {
+ "gridcolor": "#DFE8F3",
+ "linecolor": "#A2B1C6",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "#DFE8F3",
+ "linecolor": "#A2B1C6",
+ "ticks": ""
+ },
+ "bgcolor": "white",
+ "caxis": {
+ "gridcolor": "#DFE8F3",
+ "linecolor": "#A2B1C6",
+ "ticks": ""
+ }
+ },
+ "title": {
+ "x": 0.05
+ },
+ "xaxis": {
+ "automargin": true,
+ "gridcolor": "#EBF0F8",
+ "linecolor": "#EBF0F8",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "#EBF0F8",
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "automargin": true,
+ "gridcolor": "#EBF0F8",
+ "linecolor": "#EBF0F8",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "#EBF0F8",
+ "zerolinewidth": 2
+ }
+ }
+ },
+ "xaxis": {
+ "anchor": "y",
+ "domain": [
+ 0.0,
+ 0.94
+ ],
+ "title": {
+ "text": "#Channels"
+ }
+ },
+ "yaxis": {
+ "anchor": "x",
+ "domain": [
+ 0.0,
+ 1.0
+ ],
+ "title": {
+ "text": "Layer Execution Time (ms)"
+ },
+ "range": [
+ -5,
+ 50
+ ]
+ },
+ "yaxis2": {
+ "anchor": "x",
+ "overlaying": "y",
+ "side": "right",
+ "title": {
+ "text": "Absolute Approximation Error (%)"
+ },
+ "range": [
+ -4,
+ 40
+ ]
+ },
+ "scene": {
+ "xaxis": {
+ "title": {
+ "text": "channels"
+ }
+ },
+ "yaxis": {
+ "title": {
+ "text": "filters"
+ }
+ },
+ "zaxis": {
+ "title": {
+ "text": "ms"
+ }
+ }
+ },
+ "width": 1000.0,
+ "height": 666.6666666666666,
+ "plot_bgcolor": "rgba(0, 0, 0, 0)",
+ "title": {
+ "text": "Approximation using the point to point differences of reference sweep"
+ },
+ "legend": {
+ "x": 0,
+ "y": 1
+ },
+ "font": {
+ "size": 14
+ },
+ "autosize": false
+ },
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data",
+ "jetTransient": {
+ "display_id": null
+ }
+ }
+ ],
+ "execution_count": 10
},
{
"cell_type": "code",
- "execution_count": null,
"id": "377c2b1b-9c6e-4a82-ab14-4ce738d71000",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T13:00:25.958906Z",
- "start_time": "2025-09-16T13:00:25.955040Z"
+ "end_time": "2025-11-16T16:43:28.542513Z",
+ "start_time": "2025-11-16T16:43:28.541093Z"
}
},
- "outputs": [],
"source": [
"\n"
- ]
+ ],
+ "outputs": [],
+ "execution_count": 10
},
{
"cell_type": "code",
- "execution_count": null,
"id": "81d1130d-3141-4142-b248-b6dfc61ea469",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T13:00:26.008078Z",
- "start_time": "2025-09-16T13:00:26.006653Z"
+ "end_time": "2025-11-16T16:43:28.594477Z",
+ "start_time": "2025-11-16T16:43:28.592450Z"
}
},
+ "source": [],
"outputs": [],
- "source": []
+ "execution_count": null
},
{
"cell_type": "code",
- "execution_count": null,
"id": "117c4d5f-16b9-4921-a875-504f43dd9f9b",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T13:00:26.059764Z",
- "start_time": "2025-09-16T13:00:26.057376Z"
+ "end_time": "2025-11-16T16:43:28.643041Z",
+ "start_time": "2025-11-16T16:43:28.641059Z"
}
},
+ "source": [],
"outputs": [],
- "source": []
+ "execution_count": null
},
{
"cell_type": "code",
- "execution_count": null,
"id": "7dfb3cc8-920d-499f-a616-df908ed8a6ab",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T13:00:26.117762Z",
- "start_time": "2025-09-16T13:00:26.113152Z"
+ "end_time": "2025-11-16T16:43:28.691178Z",
+ "start_time": "2025-11-16T16:43:28.689117Z"
}
},
+ "source": [],
"outputs": [],
- "source": []
+ "execution_count": null
}
],
"metadata": {
diff --git a/images/delta_approx.svg b/images/delta_approx.svg
index e0616c6..5c7924c 100644
--- a/images/delta_approx.svg
+++ b/images/delta_approx.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/step_approx.svg b/images/step_approx.svg
index d03858a..fccf149 100644
--- a/images/step_approx.svg
+++ b/images/step_approx.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/sweep.svg b/images/sweep.svg
index 74a36b9..195bc22 100644
--- a/images/sweep.svg
+++ b/images/sweep.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/lut_filter_sweep.csv b/lut_filter_sweep.csv
index 3aac17d..afdca35 100644
--- a/lut_filter_sweep.csv
+++ b/lut_filter_sweep.csv
@@ -1,34 +1,520 @@
-120,11.614275169372558
-123,11.62683040865006
-126,11.609593504566257
-129,21.01204776763916
-132,21.00911427368692
-135,21.01886631193615
-138,21.016238550986014
-141,21.001356887817384
-144,21.001993673819083
-147,21.052812576293945
-150,21.020305633544922
-153,21.064988181704567
-156,21.066908740997313
-159,20.99600954055786
-162,21.086511898040772
-165,21.07921895980835
-168,21.069702434539796
-171,21.131116962432863
-174,21.0734751701355
-177,21.139559841156007
-180,21.14546914534135
-183,21.114066351027716
-186,21.19964141845703
-189,21.035769762311663
-192,21.05053930282593
-195,23.1165470123291
-198,23.102612686157226
-201,23.092874813079835
-204,23.09945955276489
-207,23.09906873703003
-210,23.127984142303468
-213,23.121894550323486
-216,23.127475239680365
-219,23.114936765034994
+10,2.793504739629811
+11,2.4239360094070435
+12,2.794331192970276
+13,2.4243624031543733
+14,2.7955965608416027
+15,2.7932935036145725
+16,2.7946816205978395
+17,2.900626393570297
+18,2.795363187789917
+19,2.7950143814086914
+20,2.795246422290802
+21,2.9074972804437236
+22,2.906456000275082
+23,2.9118503987789155
+24,2.793948793411255
+25,2.79617919921875
+26,2.799169588088989
+27,2.7963696241378786
+28,2.798534369468689
+29,2.7995016801924932
+30,2.7967277265364126
+31,2.8000080227851867
+32,2.796863676094618
+33,2.8030832171440125
+34,2.802793598175049
+35,2.802662396430969
+36,2.8029208265501877
+37,2.8060383915901186
+38,2.803326439857483
+39,2.805604803562164
+40,2.8031686367374835
+41,2.81243040561676
+42,2.8112080097198486
+43,2.813638377189636
+44,2.8102780354989543
+45,2.8170645316441854
+46,2.81270467333433
+47,2.8171346221651348
+48,2.812943994998932
+49,2.828370607856039
+50,2.828363319543692
+51,2.8328799794359907
+52,2.8275781761516225
+53,2.8281856060028074
+54,2.832202638898577
+55,2.82951578491505
+56,2.8322895765304565
+57,2.839938903783823
+58,2.8432207822799684
+59,2.841615030908177
+60,2.8423429572063945
+61,2.837699283872332
+62,2.835508564540318
+63,2.839439453617219
+64,2.8358303904533386
+65,4.47564160823822
+66,4.476091194152832
+67,4.4747215747833256
+68,4.475995182991028
+69,4.478273582458496
+70,4.476660251617432
+71,4.477105593681335
+72,4.4762374983893505
+73,4.483627128601074
+74,4.4832056045532225
+75,4.482939827826716
+76,4.483703491422865
+77,4.481824004460895
+78,4.484153883797782
+79,4.4816252626018755
+80,4.48453136572317
+81,4.494086384773254
+82,4.4951999425888065
+83,4.49341044198899
+84,4.493805834416593
+85,4.497256016731262
+86,4.496616545177641
+87,4.496161603927613
+88,4.496502506900841
+89,4.505350399017334
+90,4.506679906949892
+91,4.506042408388715
+92,4.506991982460022
+93,4.4969538392157675
+94,4.497638392448425
+95,4.4978705391739355
+96,4.497283377145466
+97,4.521688032150268
+98,4.522000128828634
+99,4.52227201461792
+100,4.523527890035551
+101,4.522868890028733
+102,4.52505786746156
+103,4.5239835880898145
+104,4.523408251542311
+105,4.533880019187928
+106,4.535059094429016
+107,4.5329196764075235
+108,4.53601758480072
+109,4.5325136423110965
+110,4.534947228431702
+111,4.532719969749451
+112,4.533897710883099
+113,4.547094392776489
+114,4.546679258346558
+115,4.54715359210968
+116,4.548254346847534
+117,4.55447039604187
+118,4.555039978027343
+119,4.553671995798747
+120,4.552888661843759
+121,4.559809565544128
+122,4.563239264734013
+123,4.56004574185326
+124,4.56137448265439
+125,4.548570079803467
+126,4.553880023956299
+127,4.551568479248972
+128,4.550295590348385
+129,8.401746374661805
+130,8.400553081346596
+131,8.402327919006348
+132,8.403441619873046
+133,8.386327310041947
+134,8.388444757461547
+135,8.384917952797629
+136,8.39109343069571
+137,8.408369342486063
+138,8.415891541375053
+139,8.408684682846069
+140,8.408676862716675
+141,8.381341096126672
+142,8.379672002792358
+143,8.38229284286499
+144,8.381028032302856
+145,8.415692806243896
+146,8.415174531936646
+147,8.414750337600708
+148,8.418830468621053
+149,8.396484331651168
+150,8.3957839012146
+151,8.396012878417968
+152,8.401964855194091
+153,8.436385518028622
+154,8.438147258758544
+155,8.4357008934021
+156,8.437403202056885
+157,8.361732510157994
+158,8.362580886253944
+159,8.362643241882324
+160,8.359467220306396
+161,8.451806354522706
+162,8.452502209207285
+163,8.453992038965225
+164,8.452004861831664
+165,8.43462272644043
+166,8.432433605194092
+167,8.422898356834155
+168,8.430666640952781
+169,8.461548805236816
+170,8.469440031051636
+171,8.466996453025125
+172,8.470930281139555
+173,8.422366523742676
+174,8.42140965461731
+175,8.416614437103272
+176,8.41830072402954
+177,8.483617059115705
+178,8.481812858581543
+179,8.48272430195528
+180,8.486838388442994
+181,8.469652795791626
+182,8.457950544357299
+183,8.463156295545174
+184,8.457891273498536
+185,8.492940028508505
+186,8.496900796890259
+187,8.49557123184204
+188,8.49832797050476
+189,8.393123197555543
+190,8.391068744659425
+191,8.397862434387207
+192,8.389068746566773
+193,8.932126933130725
+194,8.920547342300415
+195,8.929844760894776
+196,8.934782361984253
+197,8.92953602043358
+198,8.924151145805746
+199,8.925016639093874
+200,8.935329225328234
+201,8.93358883857727
+202,8.944709032773972
+203,8.938961601257324
+204,8.922552013397217
+205,8.925412813822428
+206,8.923444747924805
+207,8.924403285980224
+208,8.93480650583903
+209,8.94769606590271
+210,8.948854351043702
+211,8.941804838180541
+212,8.96178240776062
+213,8.96885118484497
+214,8.943736439659482
+215,8.949483156204224
+216,8.947532749176025
+217,8.9576735496521
+218,8.959207441748642
+219,8.957499170303345
+220,8.95613112449646
+221,8.928075432777405
+222,8.927135289921935
+223,8.930029658710255
+224,8.930995082855224
+225,8.981255960464477
+226,8.98113284111023
+227,8.978388143622357
+228,8.975902414321899
+229,8.982316827774047
+230,8.987536028811807
+231,8.981223964691162
+232,8.974685668945312
+233,8.974740839004516
+234,8.981459140777588
+235,8.990288019180298
+236,9.002008220127651
+237,8.98309326171875
+238,8.977246501229025
+239,8.983954056449559
+240,8.985075235366821
+241,8.995889568328858
+242,8.992504153335304
+243,8.997683191299439
+244,8.989884757995606
+245,9.006422281265259
+246,9.007603168487549
+247,9.007188749313354
+248,9.017457191760723
+249,9.038155269622802
+250,9.033274353875054
+251,9.020059156417847
+252,9.026299528437722
+253,8.99552149772644
+254,8.994083213806153
+255,9.005435053507487
+256,9.00172953605652
+257,13.516235208511352
+258,13.505260801315307
+259,13.511651182174683
+260,13.50810718536377
+261,13.48673600416917
+262,13.480491304293242
+263,13.48421061038971
+264,13.494915246963501
+265,13.519144010543823
+266,13.511634742512422
+267,13.508563137054443
+268,13.505699253082275
+269,13.471219158172607
+270,13.46687364578247
+271,13.47859206199646
+272,13.466791818726737
+273,13.525752019882201
+274,13.515908765792847
+275,13.514471435546875
+276,13.515184020996093
+277,13.482681512832642
+278,13.490302324295044
+279,13.499466008153455
+280,13.495806312561035
+281,13.523062324523925
+282,13.523134422302245
+283,13.520408010482788
+284,13.518331289291382
+285,13.445424032211303
+286,13.443278598785401
+287,13.454934358596802
+288,13.441981292493416
+289,13.524393558502197
+290,13.515500736236572
+291,13.519564723968506
+292,13.549387216567993
+293,13.493891334533691
+294,13.498153524195894
+295,13.49277114868164
+296,13.508883237838745
+297,13.531960058212281
+298,13.527108860015868
+299,13.524993705749512
+300,13.521002292633057
+301,13.490092754364014
+302,13.487257528305054
+303,13.4950767993927
+304,13.48414550289031
+305,13.54574728012085
+306,13.54027361869812
+307,13.546494340896606
+308,13.547007989883422
+309,13.527294445037843
+310,13.506411170959472
+311,13.532524440947414
+312,13.514899158477784
+313,13.553501038324265
+314,13.54817762374878
+315,13.555742311477662
+316,13.557825613021851
+317,13.4567232131958
+318,13.45047206878662
+319,13.476235103607177
+320,13.481751918792725
+321,13.575590372085571
+322,13.55117449760437
+323,13.577361631393433
+324,13.572888046503067
+325,13.542574501037597
+326,13.532990844161422
+327,13.563217639923096
+328,13.545382261276245
+329,13.59128440510143
+330,13.589182472229004
+331,13.578951930999756
+332,13.612599992752076
+333,13.531459133799483
+334,13.514433670043946
+335,13.538540887832642
+336,13.52881441116333
+337,13.609862279891967
+338,13.605896949768066
+339,13.59034242630005
+340,13.611353540420533
+341,13.569646488536488
+342,13.59254560470581
+343,13.585556745529175
+344,13.579700899124145
+345,13.619393587112427
+346,13.611684894561767
+347,13.624859142303468
+348,13.636267355510167
+349,13.520601606369018
+350,13.516599893569946
+351,13.519156779012372
+352,13.547051191329956
+353,13.650067031383514
+354,13.654295227744363
+355,13.650919961929322
+356,13.646697568893433
+357,13.620918416976929
+358,13.624814462661742
+359,13.621403169631957
+360,13.621265554428101
+361,13.65840950012207
+362,13.666110372543335
+363,13.661764860153198
+364,13.660811233520509
+365,13.60877766609192
+366,13.616231966018677
+367,13.611605326334635
+368,13.622315263748169
+369,13.679530965870825
+370,13.677458190917969
+371,13.687841653823853
+372,13.678004884719849
+373,13.65606770148644
+374,13.665281629562378
+375,13.656019258499146
+376,13.664062452316283
+377,13.702339267730713
+378,13.698062419891357
+379,13.725764894485474
+380,13.705843114852906
+381,13.570115184783935
+382,13.571393489837646
+383,13.570959997177123
+384,13.571288193425824
+385,17.922159910202026
+386,17.911265563964843
+387,17.917527675628662
+388,17.90941276550293
+389,17.891676807403563
+390,17.899514961242676
+391,17.89599189758301
+392,17.902646160125734
+393,17.933947517758323
+394,17.914697647094727
+395,17.92440503835678
+396,17.90936164855957
+397,17.878186988830567
+398,17.880504035949706
+399,17.882677540634617
+400,17.885101611797626
+401,17.937091064453124
+402,17.9227294921875
+403,17.93243999481201
+404,17.925262239244248
+405,17.932404804229737
+406,17.910411071777343
+407,17.915783977508546
+408,17.912262535095216
+409,17.946040454663727
+410,17.94273462295532
+411,17.951073455810548
+412,17.93831205368042
+413,17.85464792251587
+414,17.862432098388673
+415,17.87087059020996
+416,17.871755013099083
+417,17.96612498339485
+418,17.95088923604865
+419,17.96669120788574
+420,17.951315212249757
+421,17.93734181722005
+422,17.943105350841176
+423,17.937054443359376
+424,17.94244716478431
+425,17.96651734246148
+426,17.969098429526053
+427,17.964640045166014
+428,17.96244306564331
+429,17.91234407424927
+430,17.922164630889892
+431,17.926011180877687
+432,17.930769443511963
+433,17.9668550491333
+434,17.973751735687255
+435,17.982246494293214
+436,18.009730559128982
+437,17.96060962677002
+438,17.974471428815058
+439,17.971894454956054
+440,17.957859230041503
+441,18.007707023620604
+442,18.000545758467453
+443,17.99367513656616
+444,18.002596855163574
+445,17.89446997642517
+446,17.88310546875
+447,17.897526359558107
+448,17.889801502227783
+449,18.01217542375837
+450,18.023472284866592
+451,18.002897657197096
+452,18.006766510009765
+453,18.001220703125
+454,17.99326820743894
+455,17.977918338775634
+456,17.987875175476074
+457,18.02204159327916
+458,18.031923007965087
+459,18.012448120117188
+460,18.0393967628479
+461,18.00465269088745
+462,17.973550415039064
+463,17.97621431350708
+464,17.97783741584191
+465,18.05802240371704
+466,18.037843322753908
+467,18.028014087677
+468,18.036841165451776
+469,18.015132713317872
+470,18.02256998334612
+471,18.027661664145334
+472,18.033714540543095
+473,18.063362728465687
+474,18.05432383219401
+475,18.043393221768465
+476,18.08307523727417
+477,17.957617936310946
+478,17.997153780039618
+479,17.950890385827353
+480,17.95684642791748
+481,18.077316897256033
+482,18.057982444763184
+483,18.062974515168563
+484,18.108662414550782
+485,18.04671859741211
+486,18.06342420578003
+487,18.03501542409261
+488,18.042329597473145
+489,18.104286479949952
+490,18.08070240020752
+491,18.076457595825197
+492,18.09907054901123
+493,18.03522040049235
+494,18.03392848968506
+495,18.083748531341552
+496,18.03271369934082
+497,18.11275510787964
+498,18.138642966747284
+499,18.14924907684326
+500,18.086367988586424
+501,18.09632158279419
+502,18.088729667663575
+503,18.11191987991333
+504,18.110195214407785
+505,18.091178989410402
+506,18.145180702209473
+507,18.119625568389893
+508,18.105102146373074
+509,17.991081714630127
+510,17.99292459487915
+511,18.048926448822023
+512,18.022895908355714
+513,22.70647087097168
+514,22.65171970020641
+515,22.654771853715946
+516,22.65527856009347
+517,22.611995124816893
+518,22.651770807081654
+519,22.624541338752298
+520,22.6748929977417
+521,22.714595127105714
+522,22.716782569885254
+523,22.672746058872768
+524,22.71070083618164
+525,22.5701584815979
+526,22.571488173111625
+527,22.608145427703857
+528,22.59220037962261
+529,22.711265563964844
diff --git a/notebook.ipynb b/notebook.ipynb
index e35c2e0..508d0bb 100644
--- a/notebook.ipynb
+++ b/notebook.ipynb
@@ -5,8 +5,8 @@
"id": "fbc121e30a2defb3",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-10-13T14:19:22.108982Z",
- "start_time": "2025-10-13T14:19:21.615750Z"
+ "end_time": "2025-11-18T14:22:08.644815Z",
+ "start_time": "2025-11-18T14:22:08.334294Z"
}
},
"source": [
@@ -21,6 +21,8 @@
"from scipy.fft import fft, ifft\n",
"from experiment_loader import load_2d_experiment, load_3d_experiment\n",
"from modeling import *\n",
+ "from plotly.subplots import make_subplots\n",
+ "\n",
"# plt.rcParams['figure.figsize'] = [25, 15]"
],
"outputs": [],
@@ -31,8 +33,8 @@
"id": "37bf71a9-de31-4274-8b55-d20efc1bf556",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-10-13T14:19:22.663497Z",
- "start_time": "2025-10-13T14:19:22.661326Z"
+ "end_time": "2025-11-18T14:22:09.869362Z",
+ "start_time": "2025-11-18T14:22:09.867489Z"
}
},
"source": [
@@ -47,8 +49,8 @@
"id": "a96ea0301fc7692a",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-10-13T14:19:23.983881Z",
- "start_time": "2025-10-13T14:19:23.973477Z"
+ "end_time": "2025-11-18T14:22:11.549855Z",
+ "start_time": "2025-11-18T14:22:11.546604Z"
}
},
"source": [
@@ -58,15 +60,15 @@
"channel_cf, filters_cf, channel_filter_meas = load_3d_experiment(\"./lut_channel_filter_sweep.csv\")"
],
"outputs": [],
- "execution_count": 3
+ "execution_count": 4
},
{
"cell_type": "code",
"id": "c7abf7a2802a93b8",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T09:12:04.280522Z",
- "start_time": "2025-09-16T09:12:04.278067Z"
+ "end_time": "2025-11-18T13:40:37.224908Z",
+ "start_time": "2025-11-18T13:40:37.223400Z"
}
},
"source": [],
@@ -78,11 +80,15 @@
"id": "9a653659b7f067cf",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-10-13T14:19:32.097261Z",
- "start_time": "2025-10-13T14:19:30.870046Z"
+ "end_time": "2025-11-18T14:44:09.586242Z",
+ "start_time": "2025-11-18T14:44:09.575205Z"
}
},
"source": [
+ "import scipy\n",
+ "from collections import Counter\n",
+ "from itertools import repeat, chain\n",
+ "\n",
"with open('./lut_filter_sweep.csv') as csvfile:\n",
" spamreader = csv.reader(csvfile, delimiter=',', quotechar='|')\n",
" rows = list(spamreader)\n",
@@ -90,6 +96,24 @@
" filter_meas = [float(row[1]) for row in rows]\n",
"fig = go.Figure()\n",
"fig.add_trace(go.Scatter(x=filters, y=filter_meas, name=\"Filter Measurements\"))\n",
+ "deltas = []\n",
+ "for i in range(1, len(filter_meas)):\n",
+ " deltas.append((filter_meas[i] - filter_meas[i-1]) / filter_meas[i-1])\n",
+ "\n",
+ "\n",
+ "peaks = scipy.signal.find_peaks(deltas, prominence=0.1)[0]\n",
+ "distances = []\n",
+ "\n",
+ "for (fpidx, first_peak) in enumerate(peaks):\n",
+ " for (spidx, second_peak) in enumerate(peaks[fpidx+1:]):\n",
+ " distances.append(int(second_peak - first_peak))\n",
+ "\n",
+ "print(set(list(chain.from_iterable(repeat(i, c) for i,c in Counter(distances).most_common()))))\n",
+ "\n",
+ "\n",
+ "counted_distances = {int(d):distances.count(d) for d in distances}\n",
+ "print(counted_distances)\n",
+ "fig.add_trace(go.Scatter(x=filters[1:], y=deltas, name=\"Deltas\"))\n",
"\n",
"fig.update_layout(\n",
" autosize=False,\n",
@@ -98,6 +122,14 @@
")"
],
"outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{128, 256, 2, 64, 192, 320, 448, 384, 51, 115, 117, 53, 245, 373, 501, 243, 371, 499}\n",
+ "{2: 1, 53: 1, 117: 1, 245: 1, 373: 1, 501: 1, 51: 1, 115: 1, 243: 1, 371: 1, 499: 1, 64: 1, 192: 1, 320: 1, 448: 1, 128: 3, 256: 2, 384: 1}\n"
+ ]
+ },
{
"data": {
"application/vnd.plotly.v1+json": {
@@ -105,76 +137,2094 @@
{
"name": "Filter Measurements",
"x": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
120,
+ 121,
+ 122,
123,
+ 124,
+ 125,
126,
+ 127,
+ 128,
129,
+ 130,
+ 131,
132,
+ 133,
+ 134,
135,
+ 136,
+ 137,
138,
+ 139,
+ 140,
141,
+ 142,
+ 143,
144,
+ 145,
+ 146,
147,
+ 148,
+ 149,
150,
+ 151,
+ 152,
153,
+ 154,
+ 155,
156,
+ 157,
+ 158,
159,
+ 160,
+ 161,
162,
+ 163,
+ 164,
165,
+ 166,
+ 167,
168,
+ 169,
+ 170,
171,
+ 172,
+ 173,
174,
+ 175,
+ 176,
177,
+ 178,
+ 179,
180,
+ 181,
+ 182,
183,
+ 184,
+ 185,
186,
+ 187,
+ 188,
189,
+ 190,
+ 191,
192,
+ 193,
+ 194,
195,
+ 196,
+ 197,
198,
+ 199,
+ 200,
201,
+ 202,
+ 203,
204,
+ 205,
+ 206,
207,
+ 208,
+ 209,
210,
+ 211,
+ 212,
213,
+ 214,
+ 215,
216,
- 219
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500,
+ 501,
+ 502,
+ 503,
+ 504,
+ 505,
+ 506,
+ 507,
+ 508,
+ 509,
+ 510,
+ 511,
+ 512,
+ 513,
+ 514,
+ 515,
+ 516,
+ 517,
+ 518,
+ 519,
+ 520,
+ 521,
+ 522,
+ 523,
+ 524,
+ 525,
+ 526,
+ 527,
+ 528,
+ 529
],
"y": [
- 11.614275169372558,
- 11.62683040865006,
- 11.609593504566257,
- 21.01204776763916,
- 21.00911427368692,
- 21.01886631193615,
- 21.016238550986014,
- 21.001356887817384,
- 21.001993673819083,
- 21.052812576293945,
- 21.020305633544922,
- 21.064988181704567,
- 21.066908740997313,
- 20.99600954055786,
- 21.086511898040772,
- 21.07921895980835,
- 21.069702434539796,
- 21.131116962432863,
- 21.0734751701355,
- 21.139559841156007,
- 21.14546914534135,
- 21.114066351027716,
- 21.19964141845703,
- 21.035769762311663,
- 21.05053930282593,
- 23.1165470123291,
- 23.102612686157226,
- 23.092874813079835,
- 23.09945955276489,
- 23.09906873703003,
- 23.127984142303468,
- 23.121894550323486,
- 23.127475239680365,
- 23.114936765034994
+ 2.793504739629811,
+ 2.4239360094070435,
+ 2.794331192970276,
+ 2.4243624031543733,
+ 2.7955965608416027,
+ 2.7932935036145725,
+ 2.7946816205978395,
+ 2.900626393570297,
+ 2.795363187789917,
+ 2.7950143814086914,
+ 2.795246422290802,
+ 2.9074972804437236,
+ 2.906456000275082,
+ 2.9118503987789155,
+ 2.793948793411255,
+ 2.79617919921875,
+ 2.799169588088989,
+ 2.7963696241378786,
+ 2.798534369468689,
+ 2.7995016801924932,
+ 2.7967277265364126,
+ 2.8000080227851867,
+ 2.796863676094618,
+ 2.8030832171440125,
+ 2.802793598175049,
+ 2.802662396430969,
+ 2.8029208265501877,
+ 2.8060383915901186,
+ 2.803326439857483,
+ 2.805604803562164,
+ 2.8031686367374835,
+ 2.81243040561676,
+ 2.8112080097198486,
+ 2.813638377189636,
+ 2.8102780354989543,
+ 2.8170645316441854,
+ 2.81270467333433,
+ 2.8171346221651348,
+ 2.812943994998932,
+ 2.828370607856039,
+ 2.828363319543692,
+ 2.8328799794359907,
+ 2.8275781761516225,
+ 2.8281856060028074,
+ 2.832202638898577,
+ 2.82951578491505,
+ 2.8322895765304565,
+ 2.839938903783823,
+ 2.8432207822799684,
+ 2.841615030908177,
+ 2.8423429572063945,
+ 2.837699283872332,
+ 2.835508564540318,
+ 2.839439453617219,
+ 2.8358303904533386,
+ 4.47564160823822,
+ 4.476091194152832,
+ 4.4747215747833256,
+ 4.475995182991028,
+ 4.478273582458496,
+ 4.476660251617432,
+ 4.477105593681335,
+ 4.4762374983893505,
+ 4.483627128601074,
+ 4.4832056045532225,
+ 4.482939827826716,
+ 4.483703491422865,
+ 4.481824004460895,
+ 4.484153883797782,
+ 4.4816252626018755,
+ 4.48453136572317,
+ 4.494086384773254,
+ 4.4951999425888065,
+ 4.49341044198899,
+ 4.493805834416593,
+ 4.497256016731262,
+ 4.496616545177641,
+ 4.496161603927613,
+ 4.496502506900841,
+ 4.505350399017334,
+ 4.506679906949892,
+ 4.506042408388715,
+ 4.506991982460022,
+ 4.4969538392157675,
+ 4.497638392448425,
+ 4.4978705391739355,
+ 4.497283377145466,
+ 4.521688032150268,
+ 4.522000128828634,
+ 4.52227201461792,
+ 4.523527890035551,
+ 4.522868890028733,
+ 4.52505786746156,
+ 4.5239835880898145,
+ 4.523408251542311,
+ 4.533880019187928,
+ 4.535059094429016,
+ 4.5329196764075235,
+ 4.53601758480072,
+ 4.5325136423110965,
+ 4.534947228431702,
+ 4.532719969749451,
+ 4.533897710883099,
+ 4.547094392776489,
+ 4.546679258346558,
+ 4.54715359210968,
+ 4.548254346847534,
+ 4.55447039604187,
+ 4.555039978027343,
+ 4.553671995798747,
+ 4.552888661843759,
+ 4.559809565544128,
+ 4.563239264734013,
+ 4.56004574185326,
+ 4.56137448265439,
+ 4.548570079803467,
+ 4.553880023956299,
+ 4.551568479248972,
+ 4.550295590348385,
+ 8.401746374661805,
+ 8.400553081346596,
+ 8.402327919006348,
+ 8.403441619873046,
+ 8.386327310041947,
+ 8.388444757461547,
+ 8.384917952797629,
+ 8.39109343069571,
+ 8.408369342486063,
+ 8.415891541375053,
+ 8.408684682846069,
+ 8.408676862716675,
+ 8.381341096126672,
+ 8.379672002792358,
+ 8.38229284286499,
+ 8.381028032302856,
+ 8.415692806243896,
+ 8.415174531936646,
+ 8.414750337600708,
+ 8.418830468621053,
+ 8.396484331651168,
+ 8.3957839012146,
+ 8.396012878417968,
+ 8.401964855194091,
+ 8.436385518028622,
+ 8.438147258758544,
+ 8.4357008934021,
+ 8.437403202056885,
+ 8.361732510157994,
+ 8.362580886253944,
+ 8.362643241882324,
+ 8.359467220306396,
+ 8.451806354522706,
+ 8.452502209207285,
+ 8.453992038965225,
+ 8.452004861831664,
+ 8.43462272644043,
+ 8.432433605194092,
+ 8.422898356834155,
+ 8.430666640952781,
+ 8.461548805236816,
+ 8.469440031051636,
+ 8.466996453025125,
+ 8.470930281139555,
+ 8.422366523742676,
+ 8.42140965461731,
+ 8.416614437103272,
+ 8.41830072402954,
+ 8.483617059115705,
+ 8.481812858581543,
+ 8.48272430195528,
+ 8.486838388442994,
+ 8.469652795791626,
+ 8.457950544357299,
+ 8.463156295545174,
+ 8.457891273498536,
+ 8.492940028508505,
+ 8.496900796890259,
+ 8.49557123184204,
+ 8.49832797050476,
+ 8.393123197555543,
+ 8.391068744659425,
+ 8.397862434387207,
+ 8.389068746566773,
+ 8.932126933130725,
+ 8.920547342300415,
+ 8.929844760894776,
+ 8.934782361984253,
+ 8.92953602043358,
+ 8.924151145805746,
+ 8.925016639093874,
+ 8.935329225328234,
+ 8.93358883857727,
+ 8.944709032773972,
+ 8.938961601257324,
+ 8.922552013397217,
+ 8.925412813822428,
+ 8.923444747924805,
+ 8.924403285980224,
+ 8.93480650583903,
+ 8.94769606590271,
+ 8.948854351043702,
+ 8.941804838180541,
+ 8.96178240776062,
+ 8.96885118484497,
+ 8.943736439659482,
+ 8.949483156204224,
+ 8.947532749176025,
+ 8.9576735496521,
+ 8.959207441748642,
+ 8.957499170303345,
+ 8.95613112449646,
+ 8.928075432777405,
+ 8.927135289921935,
+ 8.930029658710255,
+ 8.930995082855224,
+ 8.981255960464477,
+ 8.98113284111023,
+ 8.978388143622357,
+ 8.975902414321899,
+ 8.982316827774047,
+ 8.987536028811807,
+ 8.981223964691162,
+ 8.974685668945312,
+ 8.974740839004516,
+ 8.981459140777588,
+ 8.990288019180298,
+ 9.002008220127651,
+ 8.98309326171875,
+ 8.977246501229025,
+ 8.983954056449559,
+ 8.985075235366821,
+ 8.995889568328858,
+ 8.992504153335304,
+ 8.997683191299439,
+ 8.989884757995606,
+ 9.006422281265259,
+ 9.007603168487549,
+ 9.007188749313354,
+ 9.017457191760723,
+ 9.038155269622802,
+ 9.033274353875054,
+ 9.020059156417847,
+ 9.026299528437722,
+ 8.99552149772644,
+ 8.994083213806153,
+ 9.005435053507487,
+ 9.00172953605652,
+ 13.516235208511352,
+ 13.505260801315307,
+ 13.511651182174683,
+ 13.50810718536377,
+ 13.48673600416917,
+ 13.480491304293242,
+ 13.48421061038971,
+ 13.494915246963501,
+ 13.519144010543823,
+ 13.511634742512422,
+ 13.508563137054443,
+ 13.505699253082275,
+ 13.471219158172607,
+ 13.46687364578247,
+ 13.47859206199646,
+ 13.466791818726737,
+ 13.525752019882201,
+ 13.515908765792847,
+ 13.514471435546875,
+ 13.515184020996093,
+ 13.482681512832642,
+ 13.490302324295044,
+ 13.499466008153455,
+ 13.495806312561035,
+ 13.523062324523925,
+ 13.523134422302245,
+ 13.520408010482788,
+ 13.518331289291382,
+ 13.445424032211303,
+ 13.443278598785401,
+ 13.454934358596802,
+ 13.441981292493416,
+ 13.524393558502197,
+ 13.515500736236572,
+ 13.519564723968506,
+ 13.549387216567993,
+ 13.493891334533691,
+ 13.498153524195894,
+ 13.49277114868164,
+ 13.508883237838745,
+ 13.531960058212281,
+ 13.527108860015868,
+ 13.524993705749512,
+ 13.521002292633057,
+ 13.490092754364014,
+ 13.487257528305054,
+ 13.4950767993927,
+ 13.48414550289031,
+ 13.54574728012085,
+ 13.54027361869812,
+ 13.546494340896606,
+ 13.547007989883422,
+ 13.527294445037843,
+ 13.506411170959472,
+ 13.532524440947414,
+ 13.514899158477784,
+ 13.553501038324265,
+ 13.54817762374878,
+ 13.555742311477662,
+ 13.557825613021851,
+ 13.4567232131958,
+ 13.45047206878662,
+ 13.476235103607177,
+ 13.481751918792725,
+ 13.575590372085571,
+ 13.55117449760437,
+ 13.577361631393433,
+ 13.572888046503067,
+ 13.542574501037597,
+ 13.532990844161422,
+ 13.563217639923096,
+ 13.545382261276245,
+ 13.59128440510143,
+ 13.589182472229004,
+ 13.578951930999756,
+ 13.612599992752076,
+ 13.531459133799483,
+ 13.514433670043946,
+ 13.538540887832642,
+ 13.52881441116333,
+ 13.609862279891967,
+ 13.605896949768066,
+ 13.59034242630005,
+ 13.611353540420533,
+ 13.569646488536488,
+ 13.59254560470581,
+ 13.585556745529175,
+ 13.579700899124145,
+ 13.619393587112427,
+ 13.611684894561767,
+ 13.624859142303468,
+ 13.636267355510167,
+ 13.520601606369018,
+ 13.516599893569946,
+ 13.519156779012372,
+ 13.547051191329956,
+ 13.650067031383514,
+ 13.654295227744363,
+ 13.650919961929322,
+ 13.646697568893433,
+ 13.620918416976929,
+ 13.624814462661742,
+ 13.621403169631957,
+ 13.621265554428101,
+ 13.65840950012207,
+ 13.666110372543335,
+ 13.661764860153198,
+ 13.660811233520509,
+ 13.60877766609192,
+ 13.616231966018677,
+ 13.611605326334635,
+ 13.622315263748169,
+ 13.679530965870825,
+ 13.677458190917969,
+ 13.687841653823853,
+ 13.678004884719849,
+ 13.65606770148644,
+ 13.665281629562378,
+ 13.656019258499146,
+ 13.664062452316283,
+ 13.702339267730713,
+ 13.698062419891357,
+ 13.725764894485474,
+ 13.705843114852906,
+ 13.570115184783935,
+ 13.571393489837646,
+ 13.570959997177123,
+ 13.571288193425824,
+ 17.922159910202026,
+ 17.911265563964843,
+ 17.917527675628662,
+ 17.90941276550293,
+ 17.891676807403563,
+ 17.899514961242676,
+ 17.89599189758301,
+ 17.902646160125734,
+ 17.933947517758323,
+ 17.914697647094727,
+ 17.92440503835678,
+ 17.90936164855957,
+ 17.878186988830567,
+ 17.880504035949706,
+ 17.882677540634617,
+ 17.885101611797626,
+ 17.937091064453124,
+ 17.9227294921875,
+ 17.93243999481201,
+ 17.925262239244248,
+ 17.932404804229737,
+ 17.910411071777343,
+ 17.915783977508546,
+ 17.912262535095216,
+ 17.946040454663727,
+ 17.94273462295532,
+ 17.951073455810548,
+ 17.93831205368042,
+ 17.85464792251587,
+ 17.862432098388673,
+ 17.87087059020996,
+ 17.871755013099083,
+ 17.96612498339485,
+ 17.95088923604865,
+ 17.96669120788574,
+ 17.951315212249757,
+ 17.93734181722005,
+ 17.943105350841176,
+ 17.937054443359376,
+ 17.94244716478431,
+ 17.96651734246148,
+ 17.969098429526053,
+ 17.964640045166014,
+ 17.96244306564331,
+ 17.91234407424927,
+ 17.922164630889892,
+ 17.926011180877687,
+ 17.930769443511963,
+ 17.9668550491333,
+ 17.973751735687255,
+ 17.982246494293214,
+ 18.009730559128982,
+ 17.96060962677002,
+ 17.974471428815058,
+ 17.971894454956054,
+ 17.957859230041503,
+ 18.007707023620604,
+ 18.000545758467453,
+ 17.99367513656616,
+ 18.002596855163574,
+ 17.89446997642517,
+ 17.88310546875,
+ 17.897526359558107,
+ 17.889801502227783,
+ 18.01217542375837,
+ 18.023472284866592,
+ 18.002897657197096,
+ 18.006766510009765,
+ 18.001220703125,
+ 17.99326820743894,
+ 17.977918338775634,
+ 17.987875175476074,
+ 18.02204159327916,
+ 18.031923007965087,
+ 18.012448120117188,
+ 18.0393967628479,
+ 18.00465269088745,
+ 17.973550415039064,
+ 17.97621431350708,
+ 17.97783741584191,
+ 18.05802240371704,
+ 18.037843322753908,
+ 18.028014087677,
+ 18.036841165451776,
+ 18.015132713317872,
+ 18.02256998334612,
+ 18.027661664145334,
+ 18.033714540543095,
+ 18.063362728465687,
+ 18.05432383219401,
+ 18.043393221768465,
+ 18.08307523727417,
+ 17.957617936310946,
+ 17.997153780039618,
+ 17.950890385827353,
+ 17.95684642791748,
+ 18.077316897256033,
+ 18.057982444763184,
+ 18.062974515168563,
+ 18.108662414550782,
+ 18.04671859741211,
+ 18.06342420578003,
+ 18.03501542409261,
+ 18.042329597473145,
+ 18.104286479949952,
+ 18.08070240020752,
+ 18.076457595825197,
+ 18.09907054901123,
+ 18.03522040049235,
+ 18.03392848968506,
+ 18.083748531341552,
+ 18.03271369934082,
+ 18.11275510787964,
+ 18.138642966747284,
+ 18.14924907684326,
+ 18.086367988586424,
+ 18.09632158279419,
+ 18.088729667663575,
+ 18.11191987991333,
+ 18.110195214407785,
+ 18.091178989410402,
+ 18.145180702209473,
+ 18.119625568389893,
+ 18.105102146373074,
+ 17.991081714630127,
+ 17.99292459487915,
+ 18.048926448822023,
+ 18.022895908355714,
+ 22.70647087097168,
+ 22.65171970020641,
+ 22.654771853715946,
+ 22.65527856009347,
+ 22.611995124816893,
+ 22.651770807081654,
+ 22.624541338752298,
+ 22.6748929977417,
+ 22.714595127105714,
+ 22.716782569885254,
+ 22.672746058872768,
+ 22.71070083618164,
+ 22.5701584815979,
+ 22.571488173111625,
+ 22.608145427703857,
+ 22.59220037962261,
+ 22.711265563964844
+ ],
+ "type": "scatter"
+ },
+ {
+ "name": "Deltas",
+ "x": [
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92,
+ 93,
+ 94,
+ 95,
+ 96,
+ 97,
+ 98,
+ 99,
+ 100,
+ 101,
+ 102,
+ 103,
+ 104,
+ 105,
+ 106,
+ 107,
+ 108,
+ 109,
+ 110,
+ 111,
+ 112,
+ 113,
+ 114,
+ 115,
+ 116,
+ 117,
+ 118,
+ 119,
+ 120,
+ 121,
+ 122,
+ 123,
+ 124,
+ 125,
+ 126,
+ 127,
+ 128,
+ 129,
+ 130,
+ 131,
+ 132,
+ 133,
+ 134,
+ 135,
+ 136,
+ 137,
+ 138,
+ 139,
+ 140,
+ 141,
+ 142,
+ 143,
+ 144,
+ 145,
+ 146,
+ 147,
+ 148,
+ 149,
+ 150,
+ 151,
+ 152,
+ 153,
+ 154,
+ 155,
+ 156,
+ 157,
+ 158,
+ 159,
+ 160,
+ 161,
+ 162,
+ 163,
+ 164,
+ 165,
+ 166,
+ 167,
+ 168,
+ 169,
+ 170,
+ 171,
+ 172,
+ 173,
+ 174,
+ 175,
+ 176,
+ 177,
+ 178,
+ 179,
+ 180,
+ 181,
+ 182,
+ 183,
+ 184,
+ 185,
+ 186,
+ 187,
+ 188,
+ 189,
+ 190,
+ 191,
+ 192,
+ 193,
+ 194,
+ 195,
+ 196,
+ 197,
+ 198,
+ 199,
+ 200,
+ 201,
+ 202,
+ 203,
+ 204,
+ 205,
+ 206,
+ 207,
+ 208,
+ 209,
+ 210,
+ 211,
+ 212,
+ 213,
+ 214,
+ 215,
+ 216,
+ 217,
+ 218,
+ 219,
+ 220,
+ 221,
+ 222,
+ 223,
+ 224,
+ 225,
+ 226,
+ 227,
+ 228,
+ 229,
+ 230,
+ 231,
+ 232,
+ 233,
+ 234,
+ 235,
+ 236,
+ 237,
+ 238,
+ 239,
+ 240,
+ 241,
+ 242,
+ 243,
+ 244,
+ 245,
+ 246,
+ 247,
+ 248,
+ 249,
+ 250,
+ 251,
+ 252,
+ 253,
+ 254,
+ 255,
+ 256,
+ 257,
+ 258,
+ 259,
+ 260,
+ 261,
+ 262,
+ 263,
+ 264,
+ 265,
+ 266,
+ 267,
+ 268,
+ 269,
+ 270,
+ 271,
+ 272,
+ 273,
+ 274,
+ 275,
+ 276,
+ 277,
+ 278,
+ 279,
+ 280,
+ 281,
+ 282,
+ 283,
+ 284,
+ 285,
+ 286,
+ 287,
+ 288,
+ 289,
+ 290,
+ 291,
+ 292,
+ 293,
+ 294,
+ 295,
+ 296,
+ 297,
+ 298,
+ 299,
+ 300,
+ 301,
+ 302,
+ 303,
+ 304,
+ 305,
+ 306,
+ 307,
+ 308,
+ 309,
+ 310,
+ 311,
+ 312,
+ 313,
+ 314,
+ 315,
+ 316,
+ 317,
+ 318,
+ 319,
+ 320,
+ 321,
+ 322,
+ 323,
+ 324,
+ 325,
+ 326,
+ 327,
+ 328,
+ 329,
+ 330,
+ 331,
+ 332,
+ 333,
+ 334,
+ 335,
+ 336,
+ 337,
+ 338,
+ 339,
+ 340,
+ 341,
+ 342,
+ 343,
+ 344,
+ 345,
+ 346,
+ 347,
+ 348,
+ 349,
+ 350,
+ 351,
+ 352,
+ 353,
+ 354,
+ 355,
+ 356,
+ 357,
+ 358,
+ 359,
+ 360,
+ 361,
+ 362,
+ 363,
+ 364,
+ 365,
+ 366,
+ 367,
+ 368,
+ 369,
+ 370,
+ 371,
+ 372,
+ 373,
+ 374,
+ 375,
+ 376,
+ 377,
+ 378,
+ 379,
+ 380,
+ 381,
+ 382,
+ 383,
+ 384,
+ 385,
+ 386,
+ 387,
+ 388,
+ 389,
+ 390,
+ 391,
+ 392,
+ 393,
+ 394,
+ 395,
+ 396,
+ 397,
+ 398,
+ 399,
+ 400,
+ 401,
+ 402,
+ 403,
+ 404,
+ 405,
+ 406,
+ 407,
+ 408,
+ 409,
+ 410,
+ 411,
+ 412,
+ 413,
+ 414,
+ 415,
+ 416,
+ 417,
+ 418,
+ 419,
+ 420,
+ 421,
+ 422,
+ 423,
+ 424,
+ 425,
+ 426,
+ 427,
+ 428,
+ 429,
+ 430,
+ 431,
+ 432,
+ 433,
+ 434,
+ 435,
+ 436,
+ 437,
+ 438,
+ 439,
+ 440,
+ 441,
+ 442,
+ 443,
+ 444,
+ 445,
+ 446,
+ 447,
+ 448,
+ 449,
+ 450,
+ 451,
+ 452,
+ 453,
+ 454,
+ 455,
+ 456,
+ 457,
+ 458,
+ 459,
+ 460,
+ 461,
+ 462,
+ 463,
+ 464,
+ 465,
+ 466,
+ 467,
+ 468,
+ 469,
+ 470,
+ 471,
+ 472,
+ 473,
+ 474,
+ 475,
+ 476,
+ 477,
+ 478,
+ 479,
+ 480,
+ 481,
+ 482,
+ 483,
+ 484,
+ 485,
+ 486,
+ 487,
+ 488,
+ 489,
+ 490,
+ 491,
+ 492,
+ 493,
+ 494,
+ 495,
+ 496,
+ 497,
+ 498,
+ 499,
+ 500,
+ 501,
+ 502,
+ 503,
+ 504,
+ 505,
+ 506,
+ 507,
+ 508,
+ 509,
+ 510,
+ 511,
+ 512,
+ 513,
+ 514,
+ 515,
+ 516,
+ 517,
+ 518,
+ 519,
+ 520,
+ 521,
+ 522,
+ 523,
+ 524,
+ 525,
+ 526,
+ 527,
+ 528,
+ 529
+ ],
+ "y": [
+ -0.13229572335421994,
+ 0.15280732747307157,
+ -0.13239976375979925,
+ 0.15312651161567725,
+ -8.238160181227452E-4,
+ 4.969463400357928E-4,
+ 0.03790942488461132,
+ -0.036289818645280525,
+ -1.2478034437498652E-4,
+ 8.301956643015438E-5,
+ 0.040157768294692274,
+ -3.581362485341874E-4,
+ 0.0018560055625555082,
+ -0.04049026880539699,
+ 7.98298742179851E-4,
+ 0.0010694553736308034,
+ -0.0010002837852429076,
+ 7.741270367567555E-4,
+ 3.456490419975901E-4,
+ -9.908740815222333E-4,
+ 0.0011729051125175449,
+ -0.0011229777432711814,
+ 0.002223755523929928,
+ -1.0332157361304035E-4,
+ -4.681106170828825E-5,
+ 9.220879387672652E-5,
+ 0.0011122558334150147,
+ -9.664699316885313E-4,
+ 8.127357814228976E-4,
+ -8.683214476919612E-4,
+ 0.003304035568140533,
+ -4.346404072684826E-4,
+ 8.645277977952328E-4,
+ -0.0011943047542727254,
+ 0.002414884242592802,
+ -0.00154766007696336,
+ 0.001574978302131205,
+ -0.0014875494884877536,
+ 0.00548415214968148,
+ -2.576859032098515E-6,
+ 0.0015969164431914125,
+ -0.0018715241460471937,
+ 2.1482336237706233E-4,
+ 0.0014203568843725286,
+ -9.486799943706172E-4,
+ 9.80306111100119E-4,
+ 0.0027007574778906674,
+ 0.0011556158802475743,
+ -5.647649249749379E-4,
+ 2.5616640195803115E-4,
+ -0.0016337484265538835,
+ -7.720054568377764E-4,
+ 0.0013863083067563364,
+ -0.0012710477623612167,
+ 0.5782472828083134,
+ 1.0045172378952223E-4,
+ -3.059855820845322E-4,
+ 2.8462289472478563E-4,
+ 5.090263448286214E-4,
+ -3.6025732045136456E-4,
+ 9.948087164813318E-5,
+ -1.9389654182152497E-4,
+ 0.0016508574923431824,
+ -9.401407292829037E-5,
+ -5.9282743186465174E-5,
+ 1.703488392615503E-4,
+ -4.191818137763623E-4,
+ 5.198506979674889E-4,
+ -5.639015210968983E-4,
+ 6.484484871023869E-4,
+ 0.0021306616613537706,
+ 2.477829129687049E-4,
+ -3.9809143590301024E-4,
+ 8.799383735520497E-5,
+ 7.677639937723325E-4,
+ -1.4219149437826284E-4,
+ -1.0117412624753112E-4,
+ 7.582088974079611E-5,
+ 0.0019677276067152135,
+ 2.9509534549151863E-4,
+ -1.4145636573707963E-4,
+ 2.1073349632472684E-4,
+ -0.002227237874688962,
+ 1.522259861081813E-4,
+ 5.161524899382631E-5,
+ -1.3054222511638534E-4,
+ 0.005426532632749566,
+ 6.902216078304527E-5,
+ 6.012511754538166E-5,
+ 2.7770895106947675E-4,
+ -1.456827553266664E-4,
+ 4.8397985571777804E-4,
+ -2.3740676986037205E-4,
+ -1.271747645190107E-4,
+ 0.0023150171426702037,
+ 2.60058765582354E-4,
+ -4.717508585766306E-4,
+ 6.834245065758049E-4,
+ -7.724710991783839E-4,
+ 5.369175500957616E-4,
+ -4.911322161121147E-4,
+ 2.5983099364355655E-4,
+ 0.002910670406549599,
+ -9.129663782457326E-5,
+ 1.0432531880312457E-4,
+ 2.420755568414716E-4,
+ 0.001366689002044131,
+ 1.2505998193964254E-4,
+ -3.0032277108329303E-4,
+ -1.720224811341304E-4,
+ 0.001520112661302586,
+ 7.521584269221709E-4,
+ -6.998368254395318E-4,
+ 2.913876036229741E-4,
+ -0.0028071369495345816,
+ 0.0011673875656899532,
+ -5.075989475275548E-4,
+ -2.7965939793947887E-4,
+ 0.8464177123971284,
+ -1.4202919988253815E-4,
+ 2.1127628652135E-4,
+ 1.3254670341762362E-4,
+ -0.0020365834148982167,
+ 2.524880488583734E-4,
+ -4.2043606006720403E-4,
+ 7.364983095655073E-4,
+ 0.0020588391647691135,
+ 8.946085242690307E-4,
+ -8.563392830758042E-4,
+ -9.300062600484914E-7,
+ -0.003250899878339632,
+ -1.9914394548213146E-4,
+ 3.1276165364931333E-4,
+ -1.5089076292656563E-4,
+ 0.0041361004649349145,
+ -6.158427109717457E-5,
+ -5.0408263587206616E-5,
+ 4.848784404349E-4,
+ -0.0026543041878767173,
+ -8.341948950324208E-5,
+ 2.7272879586105085E-5,
+ 7.089051508511028E-4,
+ 0.004096739682653197,
+ 2.0882648453619313E-4,
+ -2.8991735761725986E-4,
+ 2.0179812872651759E-4,
+ -0.008968481188672318,
+ 1.0145936801012459E-4,
+ 7.456505261714074E-6,
+ -3.79786807121233E-4,
+ 0.011046054943789295,
+ 8.233206670750102E-5,
+ 1.76259020236294E-4,
+ -2.3505784301686226E-4,
+ -0.002056569497460848,
+ -2.595399127309389E-4,
+ -0.0011307825008030066,
+ 9.222815935233198E-4,
+ 0.0036630750092788906,
+ 9.325982744360229E-4,
+ -2.885170704972926E-4,
+ 4.646072708610657E-4,
+ -0.005732989858859524,
+ -1.1361048259636277E-4,
+ -5.694079388964659E-4,
+ 2.00352165216824E-4,
+ 0.0077588502985789865,
+ -2.126687852114932E-4,
+ 1.0745855737834579E-4,
+ 4.8499589769361855E-4,
+ -0.0020249699434326607,
+ -0.0013816683772612042,
+ 6.154861228584152E-4,
+ -6.221109315220043E-4,
+ 0.00414391174781221,
+ 4.6636010244494085E-4,
+ -1.5647647065677523E-4,
+ 3.2449126580065833E-4,
+ -0.012379467268661952,
+ -2.447781174850994E-4,
+ 8.096334250754888E-4,
+ -0.001047134064071614,
+ 0.06473402507116165,
+ -0.0012963979259362779,
+ 0.0010422475480034233,
+ 5.529324665417899E-4,
+ -5.87181795607466E-4,
+ -6.03040809232658E-4,
+ 9.698326193573791E-5,
+ 0.001155469692816909,
+ -1.9477589544548873E-4,
+ 0.0012447622559795762,
+ -6.425509757319938E-4,
+ -0.001835737593704239,
+ 3.206258053654546E-4,
+ -2.2050138617400882E-4,
+ 1.0741794032427666E-4,
+ 0.0011657048124604614,
+ 0.0014426233019435542,
+ 1.2945065774035822E-4,
+ -7.877559055744452E-4,
+ 0.0022341764265281275,
+ 7.887691044841264E-4,
+ -0.002800218742387668,
+ 6.425409093294806E-4,
+ -2.1793515828302096E-4,
+ 0.001133362767183885,
+ 1.7123777597389866E-4,
+ -1.9067216117096112E-4,
+ -1.5272631131468326E-4,
+ -0.0031325682182475755,
+ -1.0530184949133554E-4,
+ 3.2422145451159494E-4,
+ 1.0810984754425119E-4,
+ 0.00562769065965987,
+ -1.3708478501187749E-5,
+ -3.0560704717651937E-4,
+ -2.768569659381469E-4,
+ 7.146260237760201E-4,
+ 5.810528773179099E-4,
+ -7.023130811836876E-4,
+ -7.279960695284585E-4,
+ 6.147297101964104E-6,
+ 7.485789164934642E-4,
+ 9.8301158690631E-4,
+ 0.0013036513315645678,
+ -0.002101193194492885,
+ -6.508627172602541E-4,
+ 7.471728908875154E-4,
+ 1.2479793532089794E-4,
+ 0.0012035884707419465,
+ -3.763290965101116E-4,
+ 5.759283371822625E-4,
+ -8.667157020347105E-4,
+ 0.0018395701073859138,
+ 1.3111612862595458E-4,
+ -4.600770776013558E-5,
+ 0.0011400274528667058,
+ 0.0022953341969830236,
+ -5.40034509492505E-4,
+ -0.0014629465395942266,
+ 6.91832715468879E-4,
+ -0.0034098171254249568,
+ -1.5988888700340295E-4,
+ 0.001262145282790837,
+ -4.114756731851874E-4,
+ 0.5015153648387162,
+ -8.1194260285839E-4,
+ 4.731771532137563E-4,
+ -2.6229191111659824E-4,
+ -0.001582100356573652,
+ -4.63025291960785E-4,
+ 2.75902859362627E-4,
+ 7.938645340902256E-4,
+ 0.00179539946245852,
+ -5.554544004815529E-4,
+ -2.2733040942224153E-4,
+ -2.1200507730627832E-4,
+ -0.0025530033109391883,
+ -3.225775142630698E-4,
+ 8.701660476082037E-4,
+ -8.754804074080455E-4,
+ 0.0043781920704733385,
+ -7.277417237048957E-4,
+ -1.0634358894236888E-4,
+ 5.2727585582351264E-5,
+ -0.0024048883176846524,
+ 5.652296581469313E-4,
+ 6.792793547634362E-4,
+ -2.710992857206032E-4,
+ 0.002019591222017055,
+ 5.3314683161083046E-6,
+ -2.0161093828670933E-4,
+ -1.5359900306231505E-4,
+ -0.0053932142599458785,
+ -1.595660665488919E-4,
+ 8.670325267568102E-4,
+ -9.627000591875264E-4,
+ 0.006130961218849747,
+ -6.575394473074307E-4,
+ 3.0069087422250975E-4,
+ 0.002205876683782289,
+ -0.004095822279434346,
+ 3.1586067773461366E-4,
+ -3.987490218277173E-4,
+ 0.0011941275057258183,
+ 0.0017082700299679157,
+ -3.5849929910696546E-4,
+ -1.5636410472071263E-4,
+ -2.9511386129215186E-4,
+ -0.002286038978477512,
+ -2.1017098329750633E-4,
+ 5.797524864662963E-4,
+ -8.100210665627277E-4,
+ 0.004568459841770084,
+ -4.040870768911443E-4,
+ 4.594236699837679E-4,
+ 3.791748432399625E-5,
+ -0.0014551954837777636,
+ -0.0015437879439395752,
+ 0.001933398121633431,
+ -0.001302438620860649,
+ 0.00285624623564188,
+ -3.927704406730812E-4,
+ 5.583546318157174E-4,
+ 1.536840621723474E-4,
+ -0.007457124963234882,
+ -4.645368943198937E-4,
+ 0.0019154000460952407,
+ 4.093736227613677E-4,
+ 0.006960404987280748,
+ -0.0017985129052955212,
+ 0.0019324622964373333,
+ -3.294885274339703E-4,
+ -0.0022333894865713367,
+ -7.076687579190736E-4,
+ 0.002233563600962239,
+ -0.0013149813798130363,
+ 0.0033887669568698937,
+ -1.5465299744865562E-4,
+ -7.528444959919619E-4,
+ 0.0024779572034203893,
+ -0.005960717202870501,
+ -0.0012582134407818895,
+ 0.0017838126537357076,
+ -7.184287250669656E-4,
+ 0.00599075915046632,
+ -2.913571087166161E-4,
+ -0.0011432192618717706,
+ 0.0015460327239306833,
+ -0.003064136991239724,
+ 0.0016875248878934985,
+ -5.141685288306708E-4,
+ -4.310347021263658E-4,
+ 0.002922942727762291,
+ -5.660085011387005E-4,
+ 9.678631149449947E-4,
+ 8.373087081156422E-4,
+ -0.008482214826509,
+ -2.9597150449184616E-4,
+ 1.891663186421411E-4,
+ 0.0020633248636400666,
+ 0.0076042999025122135,
+ 3.097564540252855E-4,
+ -2.4719443653034286E-4,
+ -3.093119766040962E-4,
+ -0.001889039585318121,
+ 2.860339931232103E-4,
+ -2.5037354006791565E-4,
+ -1.0102865478878146E-5,
+ 0.0027269085640794,
+ 5.638191197295053E-4,
+ -3.1797726431852615E-4,
+ -6.980259450015344E-5,
+ -0.0038089661396470175,
+ 5.47756757414852E-4,
+ -3.3978854763851764E-4,
+ 7.868239753332433E-4,
+ 0.0042001452040182335,
+ -1.515238320690323E-4,
+ 7.591661228968848E-4,
+ -7.186501241600452E-4,
+ -0.0016038291708694351,
+ 6.747131222067671E-4,
+ -6.778031594456043E-4,
+ 5.889852426893276E-4,
+ 0.0028012763808716724,
+ -3.12125379162606E-4,
+ 0.0020223644589244237,
+ -0.0014514148964166087,
+ -0.009902924536023854,
+ 9.420001498179221E-5,
+ -3.1941647027460653E-5,
+ 2.4183716462857092E-5,
+ 0.32059386366018244,
+ -6.078701613962176E-4,
+ 3.4961860408220575E-4,
+ -4.529034514494824E-4,
+ -9.9031488813124E-4,
+ 4.3808939338039224E-4,
+ -1.968245322454631E-4,
+ 3.7182976952639986E-4,
+ 0.0017484207280098255,
+ -0.0010733761010806608,
+ 5.418674349566105E-4,
+ -8.392685707011386E-4,
+ -0.0017406907259316664,
+ 1.296019065348222E-4,
+ 1.2155723801418982E-4,
+ 1.3555415051806722E-4,
+ 0.0029068581092770414,
+ -8.006633970925961E-4,
+ 5.41798202597646E-4,
+ -4.0026653204137497E-4,
+ 3.984636258125184E-4,
+ -0.0012264798108509302,
+ 2.9998785118169385E-4,
+ -1.965553066363656E-4,
+ 0.0018857427699225761,
+ -1.84209531721364E-4,
+ 4.6474704277007606E-4,
+ -7.10899109267304E-4,
+ -0.004663991289380241,
+ 4.35974761674639E-4,
+ 4.724156136637663E-4,
+ 4.948963648175904E-5,
+ 0.005280397489032136,
+ -8.480263473777071E-4,
+ 8.802890836939197E-4,
+ -8.558056382266004E-4,
+ -7.784050842230037E-4,
+ 3.213148124094442E-4,
+ -3.372274399267444E-4,
+ 3.006469898366857E-4,
+ 0.0013415214466627157,
+ 1.436609563987918E-4,
+ -2.481139706326451E-4,
+ -1.2229465868399285E-4,
+ -0.0027890967398452034,
+ 5.482563644331101E-4,
+ 2.1462530151995972E-4,
+ 2.6543900850356105E-4,
+ 0.0020124962141206404,
+ 3.8385608027082375E-4,
+ 4.7262022592048185E-4,
+ 0.0015283999607329597,
+ -0.0027274662548499176,
+ 7.717890613455526E-4,
+ -1.433685473984175E-4,
+ -7.809541141991478E-4,
+ 0.002775820488430549,
+ -3.9767779116783576E-4,
+ -3.8168964394095974E-4,
+ 4.958252569139199E-4,
+ -0.006006182308492342,
+ -6.35084899979917E-4,
+ 8.063974589484764E-4,
+ -4.3161592139230213E-4,
+ 0.006840429253245172,
+ 6.271791631187517E-4,
+ -0.0011415462761175147,
+ 2.1490167229398565E-4,
+ -3.0798460576928464E-4,
+ -4.4177535608339475E-4,
+ -8.530895269465853E-4,
+ 5.538370189925756E-4,
+ 0.0018994137700970076,
+ 5.482960759347766E-4,
+ -0.0010800227928710927,
+ 0.0014961121637105293,
+ -0.0019260107428872163,
+ -0.0017274576956504185,
+ 1.4821214543041892E-4,
+ 9.029166578265376E-5,
+ 0.004460213206982843,
+ -0.0011174579647757158,
+ -5.449229656246105E-4,
+ 4.896311780014044E-4,
+ -0.0012035617509059654,
+ 4.128345955925178E-4,
+ 2.825169109577334E-4,
+ 3.357549365261535E-4,
+ 0.0016440422108234209,
+ -5.003994221647143E-4,
+ -6.054289558081081E-4,
+ 0.0021992545979561025,
+ -0.006937829949665935,
+ 0.002201619606168856,
+ -0.002570595038398482,
+ 3.317964714902822E-4,
+ 0.00670888787862315,
+ -0.001069542156213677,
+ 2.764467415254725E-4,
+ 0.0025293674274883427,
+ -0.0034206732513219263,
+ 9.25686754505992E-4,
+ -0.0015727240507550518,
+ 4.0555404076699007E-4,
+ 0.0034339735421685122,
+ -0.0013026793278238119,
+ -2.3476988273837742E-4,
+ 0.0012509615374671778,
+ -0.0035278136712036494,
+ -7.163265979572003E-5,
+ 0.0027625728739574286,
+ -0.002822137894269035,
+ 0.00443867794239667,
+ 0.0014292612423375884,
+ 5.84724563762651E-4,
+ -0.0034646661132149937,
+ 5.503368179861431E-4,
+ -4.1952808452701485E-4,
+ 0.0012820254752997536,
+ -9.522267749527106E-5,
+ -0.001050028714337353,
+ 0.0029849747675748787,
+ -0.0014083703127006238,
+ -8.015299191477163E-4,
+ -0.006297696131241572,
+ 1.0243298753534141E-4,
+ 0.0031124375388541484,
+ -0.0014422209841742414,
+ 0.25986805818728503,
+ -0.0024112584943908185,
+ 1.3474268399622718E-4,
+ 2.2366430383712835E-5,
+ -0.0019105231993404143,
+ 0.0017590523102982006,
+ -0.001202090051204435,
+ 0.0022255328068533317,
+ 0.0017509290724312164,
+ 9.630120049685554E-5,
+ -0.001938501232602513,
+ 0.0016740264814115524,
+ -0.006188375937735682,
+ 5.891369858163716E-5,
+ 0.0016240512947613168,
+ -7.05278906323162E-4,
+ 0.005270189815137516
],
"type": "scatter"
}
@@ -975,18 +3025,977 @@
}
},
"metadata": {},
- "output_type": "display_data"
+ "output_type": "display_data",
+ "jetTransient": {
+ "display_id": null
+ }
}
],
- "execution_count": 4
+ "execution_count": 31
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2025-11-18T14:14:29.282473Z",
+ "start_time": "2025-11-18T14:14:29.272426Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "from scipy.fft import fft, fftfreq\n",
+ "import numpy as np\n",
+ "\n",
+ "# Same signal creation...\n",
+ "\n",
+ "# Perform FFT\n",
+ "bins = 512\n",
+ "offset = 7\n",
+ "signal = deltas[offset:offset + bins]\n",
+ "print(len(deltas))\n",
+ "print(len(signal))\n",
+ "fft_result = fft(signal)\n",
+ "\n",
+ "n = len(fft_result)\n",
+ "frequencies = fftfreq(n, 1)[:n//2]\n",
+ "magnitude = 2 * np.abs(fft_result[:n//2]) / n\n",
+ "fig = make_subplots(specs=[[{\"secondary_y\": True}]])\n",
+ "# fig.add_trace(go.Scatter(x=channels[1:], y=deltas, name=\"Point to point variance\", line=dict(color=\"lightgreen\")), secondary_y=True)\n",
+ "fig.add_trace(go.Scatter(x=frequencies, y=magnitude, name=\"Point to point variance\", line=dict(color=\"lightgreen\")), secondary_y=True)\n",
+ "mean_magnitude = np.mean(magnitude)\n",
+ "\n",
+ "for (mag, freq) in sorted(zip(magnitude, frequencies), reverse=True):\n",
+ " if freq > 0 and mag > mean_magnitude:\n",
+ " print(round(1 / freq), mag)\n",
+ "fig.show()"
+ ],
+ "id": "b67cdbe1c2001abd",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "519\n",
+ "512\n",
+ "3 0.011529798490623527\n",
+ "8 0.011018339516873097\n",
+ "2 0.010488638313461234\n",
+ "6 0.01048285382971875\n",
+ "2 0.010369939705991583\n",
+ "11 0.010319472120474231\n",
+ "2 0.010303797319663056\n",
+ "16 0.01026855857191239\n",
+ "4 0.010266081885202375\n",
+ "5 0.010229559414535714\n",
+ "5 0.010216821373415752\n",
+ "3 0.010208365688023633\n",
+ "7 0.010157034860843382\n",
+ "3 0.010096830413499321\n",
+ "3 0.010046941341063093\n",
+ "9 0.01004246789066117\n",
+ "4 0.009956593495033333\n",
+ "32 0.009954941056398795\n",
+ "3 0.009923591082385178\n",
+ "64 0.00989939118656365\n",
+ "4 0.009882073907374276\n",
+ "21 0.009856704651912657\n",
+ "2 0.009855192310081065\n",
+ "3 0.00983958131075228\n",
+ "2 0.009788774783473932\n",
+ "3 0.009773301692415259\n",
+ "13 0.009764653468833066\n",
+ "4 0.009651274566279488\n",
+ "5 0.009603297511165579\n",
+ "2 0.009598040273550332\n",
+ "6 0.009458176272796265\n",
+ "7 0.005384281960352113\n",
+ "5 0.005263143173209485\n",
+ "2 0.0052424427108239725\n",
+ "10 0.005229952074663707\n",
+ "2 0.0051845645745922575\n",
+ "4 0.005094322970296742\n",
+ "3 0.005086874294319761\n",
+ "43 0.00508472542420535\n",
+ "2 0.005065113770353631\n",
+ "3 0.005062557326239667\n",
+ "3 0.00505766118526627\n",
+ "5 0.0050382143896149124\n",
+ "3 0.005035229491450612\n",
+ "4 0.00501040928030844\n",
+ "3 0.004995611871521118\n",
+ "2 0.004980834748524364\n",
+ "4 0.0049787746253474405\n",
+ "18 0.004976209400040179\n",
+ "26 0.0049690881875962606\n",
+ "12 0.004923563419890881\n",
+ "3 0.00490343870884609\n",
+ "2 0.004893116693162173\n",
+ "6 0.004891707231607442\n",
+ "14 0.0048816115630604074\n",
+ "128 0.004873747461290711\n",
+ "3 0.004846956109465543\n",
+ "3 0.004794602590567798\n",
+ "9 0.004738349678237639\n",
+ "8 0.004729655463150177\n",
+ "4 0.00471577952514418\n",
+ "6 0.0046526139561952435\n",
+ "2 0.004498314989528881\n",
+ "6 0.004233720261695653\n",
+ "7 0.004228889948267848\n",
+ "2 0.004153676457158666\n",
+ "5 0.004143608785093861\n",
+ "4 0.004128984504685166\n",
+ "9 0.00408918749473461\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.plotly.v1+json": {
+ "data": [
+ {
+ "line": {
+ "color": "lightgreen"
+ },
+ "name": "Point to point variance",
+ "x": {
+ "dtype": "f8",
+ "bdata": "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"
+ },
+ "y": {
+ "dtype": "f8",
+ "bdata": "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"
+ },
+ "type": "scatter",
+ "xaxis": "x",
+ "yaxis": "y2"
+ }
+ ],
+ "layout": {
+ "template": {
+ "data": {
+ "histogram2dcontour": [
+ {
+ "type": "histogram2dcontour",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "choropleth": [
+ {
+ "type": "choropleth",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "histogram2d": [
+ {
+ "type": "histogram2d",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "heatmap": [
+ {
+ "type": "heatmap",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "contourcarpet": [
+ {
+ "type": "contourcarpet",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "contour": [
+ {
+ "type": "contour",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "surface": [
+ {
+ "type": "surface",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ },
+ "colorscale": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ]
+ }
+ ],
+ "mesh3d": [
+ {
+ "type": "mesh3d",
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ ],
+ "scatter": [
+ {
+ "marker": {
+ "line": {
+ "color": "#283442"
+ }
+ },
+ "type": "scatter"
+ }
+ ],
+ "parcoords": [
+ {
+ "type": "parcoords",
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterpolargl": [
+ {
+ "type": "scatterpolargl",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "bar": [
+ {
+ "error_x": {
+ "color": "#f2f5fa"
+ },
+ "error_y": {
+ "color": "#f2f5fa"
+ },
+ "marker": {
+ "line": {
+ "color": "rgb(17,17,17)",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "bar"
+ }
+ ],
+ "scattergeo": [
+ {
+ "type": "scattergeo",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterpolar": [
+ {
+ "type": "scatterpolar",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "histogram": [
+ {
+ "marker": {
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "histogram"
+ }
+ ],
+ "scattergl": [
+ {
+ "marker": {
+ "line": {
+ "color": "#283442"
+ }
+ },
+ "type": "scattergl"
+ }
+ ],
+ "scatter3d": [
+ {
+ "type": "scatter3d",
+ "line": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattermap": [
+ {
+ "type": "scattermap",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattermapbox": [
+ {
+ "type": "scattermapbox",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scatterternary": [
+ {
+ "type": "scatterternary",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "scattercarpet": [
+ {
+ "type": "scattercarpet",
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ }
+ }
+ ],
+ "carpet": [
+ {
+ "aaxis": {
+ "endlinecolor": "#A2B1C6",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "minorgridcolor": "#506784",
+ "startlinecolor": "#A2B1C6"
+ },
+ "baxis": {
+ "endlinecolor": "#A2B1C6",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "minorgridcolor": "#506784",
+ "startlinecolor": "#A2B1C6"
+ },
+ "type": "carpet"
+ }
+ ],
+ "table": [
+ {
+ "cells": {
+ "fill": {
+ "color": "#506784"
+ },
+ "line": {
+ "color": "rgb(17,17,17)"
+ }
+ },
+ "header": {
+ "fill": {
+ "color": "#2a3f5f"
+ },
+ "line": {
+ "color": "rgb(17,17,17)"
+ }
+ },
+ "type": "table"
+ }
+ ],
+ "barpolar": [
+ {
+ "marker": {
+ "line": {
+ "color": "rgb(17,17,17)",
+ "width": 0.5
+ },
+ "pattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
+ }
+ },
+ "type": "barpolar"
+ }
+ ],
+ "pie": [
+ {
+ "automargin": true,
+ "type": "pie"
+ }
+ ]
+ },
+ "layout": {
+ "autotypenumbers": "strict",
+ "colorway": [
+ "#636efa",
+ "#EF553B",
+ "#00cc96",
+ "#ab63fa",
+ "#FFA15A",
+ "#19d3f3",
+ "#FF6692",
+ "#B6E880",
+ "#FF97FF",
+ "#FECB52"
+ ],
+ "font": {
+ "color": "#f2f5fa"
+ },
+ "hovermode": "closest",
+ "hoverlabel": {
+ "align": "left"
+ },
+ "paper_bgcolor": "rgb(17,17,17)",
+ "plot_bgcolor": "rgb(17,17,17)",
+ "polar": {
+ "bgcolor": "rgb(17,17,17)",
+ "angularaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "radialaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ }
+ },
+ "ternary": {
+ "bgcolor": "rgb(17,17,17)",
+ "aaxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "baxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ },
+ "caxis": {
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "ticks": ""
+ }
+ },
+ "coloraxis": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "colorscale": {
+ "sequential": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "sequentialminus": [
+ [
+ 0.0,
+ "#0d0887"
+ ],
+ [
+ 0.1111111111111111,
+ "#46039f"
+ ],
+ [
+ 0.2222222222222222,
+ "#7201a8"
+ ],
+ [
+ 0.3333333333333333,
+ "#9c179e"
+ ],
+ [
+ 0.4444444444444444,
+ "#bd3786"
+ ],
+ [
+ 0.5555555555555556,
+ "#d8576b"
+ ],
+ [
+ 0.6666666666666666,
+ "#ed7953"
+ ],
+ [
+ 0.7777777777777778,
+ "#fb9f3a"
+ ],
+ [
+ 0.8888888888888888,
+ "#fdca26"
+ ],
+ [
+ 1.0,
+ "#f0f921"
+ ]
+ ],
+ "diverging": [
+ [
+ 0,
+ "#8e0152"
+ ],
+ [
+ 0.1,
+ "#c51b7d"
+ ],
+ [
+ 0.2,
+ "#de77ae"
+ ],
+ [
+ 0.3,
+ "#f1b6da"
+ ],
+ [
+ 0.4,
+ "#fde0ef"
+ ],
+ [
+ 0.5,
+ "#f7f7f7"
+ ],
+ [
+ 0.6,
+ "#e6f5d0"
+ ],
+ [
+ 0.7,
+ "#b8e186"
+ ],
+ [
+ 0.8,
+ "#7fbc41"
+ ],
+ [
+ 0.9,
+ "#4d9221"
+ ],
+ [
+ 1,
+ "#276419"
+ ]
+ ]
+ },
+ "xaxis": {
+ "gridcolor": "#283442",
+ "linecolor": "#506784",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "#283442",
+ "automargin": true,
+ "zerolinewidth": 2
+ },
+ "yaxis": {
+ "gridcolor": "#283442",
+ "linecolor": "#506784",
+ "ticks": "",
+ "title": {
+ "standoff": 15
+ },
+ "zerolinecolor": "#283442",
+ "automargin": true,
+ "zerolinewidth": 2
+ },
+ "scene": {
+ "xaxis": {
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
+ },
+ "yaxis": {
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
+ },
+ "zaxis": {
+ "backgroundcolor": "rgb(17,17,17)",
+ "gridcolor": "#506784",
+ "linecolor": "#506784",
+ "showbackground": true,
+ "ticks": "",
+ "zerolinecolor": "#C8D4E3",
+ "gridwidth": 2
+ }
+ },
+ "shapedefaults": {
+ "line": {
+ "color": "#f2f5fa"
+ }
+ },
+ "annotationdefaults": {
+ "arrowcolor": "#f2f5fa",
+ "arrowhead": 0,
+ "arrowwidth": 1
+ },
+ "geo": {
+ "bgcolor": "rgb(17,17,17)",
+ "landcolor": "rgb(17,17,17)",
+ "subunitcolor": "#506784",
+ "showland": true,
+ "showlakes": true,
+ "lakecolor": "rgb(17,17,17)"
+ },
+ "title": {
+ "x": 0.05
+ },
+ "updatemenudefaults": {
+ "bgcolor": "#506784",
+ "borderwidth": 0
+ },
+ "sliderdefaults": {
+ "bgcolor": "#C8D4E3",
+ "borderwidth": 1,
+ "bordercolor": "rgb(17,17,17)",
+ "tickwidth": 0
+ },
+ "mapbox": {
+ "style": "dark"
+ }
+ }
+ },
+ "xaxis": {
+ "anchor": "y",
+ "domain": [
+ 0.0,
+ 0.94
+ ]
+ },
+ "yaxis": {
+ "anchor": "x",
+ "domain": [
+ 0.0,
+ 1.0
+ ]
+ },
+ "yaxis2": {
+ "anchor": "x",
+ "overlaying": "y",
+ "side": "right"
+ }
+ },
+ "config": {
+ "plotlyServerURL": "https://plot.ly"
+ }
+ }
+ },
+ "metadata": {},
+ "output_type": "display_data",
+ "jetTransient": {
+ "display_id": null
+ }
+ }
+ ],
+ "execution_count": 53
},
{
"cell_type": "code",
"id": "361ee9ff66d1b6e5",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T09:12:05.881136Z",
- "start_time": "2025-09-16T09:12:05.857599Z"
+ "end_time": "2025-11-18T15:42:49.187072Z",
+ "start_time": "2025-11-18T15:42:49.177448Z"
}
},
"source": [
@@ -3912,18 +6921,21 @@
}
},
"metadata": {},
- "output_type": "display_data"
+ "output_type": "display_data",
+ "jetTransient": {
+ "display_id": null
+ }
}
],
- "execution_count": 5
+ "execution_count": 32
},
{
"cell_type": "code",
"id": "51ca081aacbae203",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T09:12:06.195542Z",
- "start_time": "2025-09-16T09:12:05.947264Z"
+ "end_time": "2025-11-18T13:40:38.199359Z",
+ "start_time": "2025-11-18T13:40:38.071051Z"
}
},
"source": [
@@ -5229,7 +8241,10 @@
}
},
"metadata": {},
- "output_type": "display_data"
+ "output_type": "display_data",
+ "jetTransient": {
+ "display_id": null
+ }
}
],
"execution_count": 6
@@ -5239,8 +8254,8 @@
"id": "c9f108c1b000a586",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T09:12:06.212734Z",
- "start_time": "2025-09-16T09:12:06.209648Z"
+ "end_time": "2025-11-18T13:40:38.216082Z",
+ "start_time": "2025-11-18T13:40:38.214482Z"
}
},
"source": [],
@@ -5252,8 +8267,8 @@
"id": "b7f986b8-8b63-4ffc-886c-996b108e7b05",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T09:13:39.517285Z",
- "start_time": "2025-09-16T09:13:39.465573Z"
+ "end_time": "2025-11-18T13:40:38.379729Z",
+ "start_time": "2025-11-18T13:40:38.267435Z"
}
},
"source": [
@@ -5362,12 +8377,12 @@
"traceback": [
"\u001B[31m---------------------------------------------------------------------------\u001B[39m",
"\u001B[31mIndexError\u001B[39m Traceback (most recent call last)",
- "\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[9]\u001B[39m\u001B[32m, line 22\u001B[39m\n\u001B[32m 19\u001B[39m lower_left = \u001B[32m126\u001B[39m\n\u001B[32m 20\u001B[39m \u001B[38;5;66;03m# # upper_m, upper_b = lin_interpol( upper_sampled_channels[0], upper_sampled_channels[1], upper_sampled_channel_meas[0], upper_sampled_channel_meas[1])\u001B[39;00m\n\u001B[32m---> \u001B[39m\u001B[32m22\u001B[39m upper_right_meas = \u001B[43mcategory_df\u001B[49m\u001B[43m.\u001B[49m\u001B[43mloc\u001B[49m\u001B[43m[\u001B[49m\u001B[43mcategory_df\u001B[49m\u001B[43m[\u001B[49m\u001B[33;43m\"\u001B[39;49m\u001B[33;43mfilters\u001B[39;49m\u001B[33;43m\"\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m \u001B[49m\u001B[43m==\u001B[49m\u001B[43m \u001B[49m\u001B[43mupper_right\u001B[49m\u001B[43m]\u001B[49m\u001B[43m[\u001B[49m\u001B[33;43m\"\u001B[39;49m\u001B[33;43mms\u001B[39;49m\u001B[33;43m\"\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m.\u001B[49m\u001B[43mvalues\u001B[49m\u001B[43m[\u001B[49m\u001B[32;43m0\u001B[39;49m\u001B[43m]\u001B[49m\n\u001B[32m 23\u001B[39m upper_left_meas = category_df.loc[category_df[\u001B[33m\"\u001B[39m\u001B[33mfilters\u001B[39m\u001B[33m\"\u001B[39m] == upper_left][\u001B[33m\"\u001B[39m\u001B[33mms\u001B[39m\u001B[33m\"\u001B[39m].values[\u001B[32m0\u001B[39m]\n\u001B[32m 25\u001B[39m lower_right_meas = category_df.loc[category_df[\u001B[33m\"\u001B[39m\u001B[33mfilters\u001B[39m\u001B[33m\"\u001B[39m] == lower_right][\u001B[33m\"\u001B[39m\u001B[33mms\u001B[39m\u001B[33m\"\u001B[39m].values[\u001B[32m0\u001B[39m]\n",
+ "\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[7]\u001B[39m\u001B[32m, line 22\u001B[39m\n\u001B[32m 19\u001B[39m lower_left = \u001B[32m126\u001B[39m\n\u001B[32m 20\u001B[39m \u001B[38;5;66;03m# # upper_m, upper_b = lin_interpol( upper_sampled_channels[0], upper_sampled_channels[1], upper_sampled_channel_meas[0], upper_sampled_channel_meas[1])\u001B[39;00m\n\u001B[32m---> \u001B[39m\u001B[32m22\u001B[39m upper_right_meas = \u001B[43mcategory_df\u001B[49m\u001B[43m.\u001B[49m\u001B[43mloc\u001B[49m\u001B[43m[\u001B[49m\u001B[43mcategory_df\u001B[49m\u001B[43m[\u001B[49m\u001B[33;43m\"\u001B[39;49m\u001B[33;43mfilters\u001B[39;49m\u001B[33;43m\"\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m \u001B[49m\u001B[43m==\u001B[49m\u001B[43m \u001B[49m\u001B[43mupper_right\u001B[49m\u001B[43m]\u001B[49m\u001B[43m[\u001B[49m\u001B[33;43m\"\u001B[39;49m\u001B[33;43mms\u001B[39;49m\u001B[33;43m\"\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m.\u001B[49m\u001B[43mvalues\u001B[49m\u001B[43m[\u001B[49m\u001B[32;43m0\u001B[39;49m\u001B[43m]\u001B[49m\n\u001B[32m 23\u001B[39m upper_left_meas = category_df.loc[category_df[\u001B[33m\"\u001B[39m\u001B[33mfilters\u001B[39m\u001B[33m\"\u001B[39m] == upper_left][\u001B[33m\"\u001B[39m\u001B[33mms\u001B[39m\u001B[33m\"\u001B[39m].values[\u001B[32m0\u001B[39m]\n\u001B[32m 25\u001B[39m lower_right_meas = category_df.loc[category_df[\u001B[33m\"\u001B[39m\u001B[33mfilters\u001B[39m\u001B[33m\"\u001B[39m] == lower_right][\u001B[33m\"\u001B[39m\u001B[33mms\u001B[39m\u001B[33m\"\u001B[39m].values[\u001B[32m0\u001B[39m]\n",
"\u001B[31mIndexError\u001B[39m: index 0 is out of bounds for axis 0 with size 0"
]
}
],
- "execution_count": 9
+ "execution_count": 7
},
{
"cell_type": "code",
@@ -5375,7 +8390,7 @@
"id": "c958d465066f3b1d",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T09:12:06.508578156Z",
+ "end_time": "2025-11-18T13:40:38.394902050Z",
"start_time": "2025-09-03T06:37:15.273866Z"
}
},
@@ -6989,7 +10004,7 @@
"id": "e266a562cbc80021",
"metadata": {
"ExecuteTime": {
- "end_time": "2025-09-16T09:12:06.510213134Z",
+ "end_time": "2025-11-18T13:40:38.396355499Z",
"start_time": "2025-09-03T06:31:13.092612Z"
}
},