From 33db04ac6a5c5932d963d1b6b6af3b72719f7375 Mon Sep 17 00:00:00 2001 From: Iaphetes Date: Tue, 18 Nov 2025 16:44:27 +0100 Subject: [PATCH] fft --- .idea/misc.xml | 2 +- .vscode/settings.json | 4 + PyCharmMiscProject.iml | 2 +- __pycache__/experiment_loader.cpython-313.pyc | Bin 1980 -> 1995 bytes __pycache__/modeling.cpython-313.pyc | Bin 2423 -> 2438 bytes channel_experiments.ipynb | 8461 ++++++++++++----- images/delta_approx.svg | 2 +- images/step_approx.svg | 2 +- images/sweep.svg | 2 +- lut_filter_sweep.csv | 554 +- notebook.ipynb | 3141 +++++- 11 files changed, 9438 insertions(+), 2732 deletions(-) create mode 100644 .vscode/settings.json 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 c76bdb5b91cfb31ed51cdc898ef0d1022b292c3f..eb327f2f9b15542b91cd9b2bf8f04bedb1afa180 100644 GIT binary patch delta 74 zcmdnPf101?GcPX}0|Ns?wUKz{MjjO=eP{iQ{M=OilKhJNlGI}T;QX|b^2DN4{lwhN doXmXP-29Z(9NmJP#LD!d{L;LX%>hg~tN>Iz7_tBW delta 59 zcmX@jzlWdaGcPX}0|NuY1Latency 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 @@ -120140160180200220010203040500510152025303540#Filters:100 LatencyApproximationError#Filters:180 LatencyApproximationErrorApproximation using the point to point differences of reference sweep#ChannelsLayer Execution Time (ms)Absolute Approximation Error (%) \ No newline at end of file +120140160180200220010203040500510152025303540#Filters:100 LatencyApproximationError#Filters:180 LatencyApproximationErrorApproximation using the point to point differences of reference sweep#ChannelsLayer Execution Time (ms)Absolute Approximation Error (%) \ 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 @@ -120140160180200220010203040500510152025303540#Filters:100 LatencyApproximationError#Filters:180 LatencyApproximationErrorApproximation using a modified stepfunction#ChannelsLayer Execution Time (ms)Absolute Approximation Error (%) \ No newline at end of file +120140160180200220010203040500510152025303540#Filters:100 LatencyApproximationError#Filters:180 LatencyApproximationErrorApproximation using a modified stepfunction#ChannelsLayer Execution Time (ms)Absolute Approximation Error (%) \ 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 @@ -02004006008001000−100102030400510152025303540Layer Execution TimeStepwise ApproximationPoint to point varianceLatency Measurements for a Singular Neural Network Layer With Changing Input Channels#ChannelsLayer Execution Time (ms)Point to point variance (%) \ No newline at end of file +02004006008001000−100102030400510152025303540Layer Execution TimeStepwise ApproximationPoint to point variancePoint to point varianceLatency Measurements for a Singular Neural Network Layer With Changing Input Channels#ChannelsLayer Execution Time (ms)Point to point variance (%) \ 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" } },