sparam_lint-0.1.0-py3-none-any.whl
maxwell_lint-0.1.0-py3-none-any.whl
! active_gain
! Delay line with 3x through-path gain. Creates energy: fails both the spectral-norm and the row-power tests.
# HZ S RI R 50
1000000000 0.05 0 2.8098500229 -0.354966606919 2.8098500229 -0.354966606919 0.05 0
1619047619.05 0.05 0 2.77376665647 -0.572256042937 2.77376665647 -0.572256042937 0.05 0
2238095238.1 0.05 0 2.72090611862 -0.786084179244 2.72090611862 -0.786084179244 0.05 0
2857142857.14 0.05 0 2.65158813716 -0.995157672981 2.65158813716 -0.995157672981 0.05 0
3476190476.19 0.05 0 2.56623198298 -1.19821193982 2.56623198298 -1.19821193982 0.05 0
4095238095.24 0.05 0 2.46535393414 -1.39401880283 2.46535393414 -1.39401880283 0.05 0
4714285714.29 0.05 0 2.3495641531 -1.58139392109 2.3495641531 -1.58139392109 0.05 0
5333333333.33 0.05 0 2.21956299619 -1.75920395326 2.21956299619 -1.75920395326 0.05 0
5952380952.38 0.05 0 2.07613677745 -1.92637341254 2.07613677745 -1.92637341254 0.05 0
6571428571.43 0.05 0 1.92015301263 -2.08189117182 1.92015301263 -2.08189117182 0.05 0
7190476190.48 0.05 0 1.752555172 -2.22481657947 1.752555172 -2.22481657947 0.05 0
7809523809.52 0.05 0 1.57435697374 -2.35428514892 1.57435697374 -2.35428514892 0.05 0
8428571428.57 0.05 0 1.38663625247 -2.46951378748 1.38663625247 -2.46951378748 0.05 0
9047619047.62 0.05 0 1.19052843993 -2.5698055329 1.19052843993 -2.5698055329 0.05 0
9666666666.67 0.05 0 0.98721969733 -2.65455376898 0.98721969733 -2.65455376898 0.05 0
10285714285.7 0.05 0 0.777939740801 -2.72324589468 0.777939740801 -2.72324589468 0.05 0
10904761904.8 0.05 0 0.563954403467 -2.77546642459 0.563954403467 -2.77546642459 0.05 0
11523809523.8 0.05 0 0.34655797902 -2.81089950201 0.34655797902 -2.81089950201 0.05 0
12142857142.9 0.05 0 0.127065393165 -2.82933080941 0.127065393165 -2.82933080941 0.05 0
12761904761.9 0.05 0 -0.0931957497263 -2.83064886474 -0.0931957497263 -2.83064886474 0.05 0
13380952381 0.05 0 -0.312893196654 -2.81484569572 -0.312893196654 -2.81484569572 0.05 0
14000000000 0.05 0 -0.530698104142 -2.78201688806 -0.530698104142 -2.78201688806 0.05 0
14619047619 0.05 0 -0.745293075768 -2.73236100734 -0.745293075768 -2.73236100734 0.05 0
15238095238.1 0.05 0 -0.955380130458 -2.66617839792 -0.955380130458 -2.66617839792 0.05 0
15857142857.1 0.05 0 -1.15968855335 -2.58386936637 -1.15968855335 -2.58386936637 0.05 0
16476190476.2 0.05 0 -1.35698258171 -2.48593176015 -1.35698258171 -2.48593176015 0.05 0
17095238095.2 0.05 0 -1.5460688795 -2.37295795644 -1.5460688795 -2.37295795644 0.05 0
17714285714.3 0.05 0 -1.72580375526 -2.24563127907 -1.72580375526 -2.24563127907 0.05 0
18333333333.3 0.05 0 -1.89510007977 -2.10472186544 -1.89510007977 -2.10472186544 0.05 0
18952380952.4 0.05 0 -2.05293386152 -1.95108200839 -2.05293386152 -1.95108200839 0.05 0
19571428571.4 0.05 0 -2.19835044039 -1.785641001 -2.19835044039 -1.785641001 0.05 0
20190476190.5 0.05 0 -2.33047026192 -1.60939951582 -2.33047026192 -1.60939951582 0.05 0
20809523809.5 0.05 0 -2.44849419727 -1.42342355226 -2.44849419727 -1.42342355226 0.05 0
21428571428.6 0.05 0 -2.55170837681 -1.22883798887 -2.55170837681 -1.22883798887 0.05 0
22047619047.6 0.05 0 -2.63948850795 -1.02681977951 -2.63948850795 -1.02681977951 0.05 0
22666666666.7 0.05 0 -2.71130365118 -0.818590834494 -2.71130365118 -0.818590834494 0.05 0
23285714285.7 0.05 0 -2.76671943146 -0.605410629893 -2.76671943146 -0.605410629893 0.05 0
23904761904.8 0.05 0 -2.80540066558 -0.388568589539 -2.80540066558 -0.388568589539 0.05 0
24523809523.8 0.05 0 -2.82711338948 -0.169376285937 -2.82711338948 -0.169376285937 0.05 0
25142857142.9 0.05 0 -2.83172627341 0.0508404928057 -2.83172627341 0.0508404928057 0.05 0
25761904761.9 0.05 0 -2.81921141626 0.270749762025 -2.81921141626 0.270749762025 0.05 0
26380952381 0.05 0 -2.78964451435 0.489021397033 -2.78964451435 0.489021397033 0.05 0
27000000000 0.05 0 -2.74320440355 0.704335178401 -2.74320440355 0.704335178401 0.05 0
27619047619 0.05 0 -2.68017197761 0.915388777322 -2.68017197761 0.915388777322 0.05 0
28238095238.1 0.05 0 -2.60092848914 1.12090563277 -2.60092848914 1.12090563277 0.05 0
28857142857.1 0.05 0 -2.50595324364 1.3196426728 -2.50595324364 1.3196426728 0.05 0
29476190476.2 0.05 0 -2.39582070039 1.51039783329 -2.39582070039 1.51039783329 0.05 0
30095238095.2 0.05 0 -2.27119699779 1.69201732864 -2.27119699779 1.69201732864 0.05 0
30714285714.3 0.05 0 -2.1328359243 1.86340263046 -2.1328359243 1.86340263046 0.05 0
31333333333.3 0.05 0 -1.98157435905 2.02351711205 -1.98157435905 2.02351711205 0.05 0
31952380952.4 0.05 0 -1.81832721 2.17139231844 -1.81832721 2.17139231844 0.05 0
32571428571.4 0.05 0 -1.64408188011 2.30613382411 -1.64408188011 2.30613382411 0.05 0
33190476190.5 0.05 0 -1.45989229501 2.42692664293 -1.45989229501 2.42692664293 0.05 0
33809523809.5 0.05 0 -1.26687252832 2.53304015764 -1.26687252832 2.53304015764 0.05 0
34428571428.6 0.05 0 -1.06619006314 2.62383253895 -1.06619006314 2.62383253895 0.05 0
35047619047.6 0.05 0 -0.859058730521 2.69875462773 -0.859058730521 2.69875462773 0.05 0
35666666666.7 0.05 0 -0.646731367612 2.75735325654 -0.646731367612 2.75735325654 0.05 0
36285714285.7 0.05 0 -0.430492239815 2.79927399064 -0.430492239815 2.79927399064 0.05 0
36904761904.8 0.05 0 -0.211649272908 2.82426327181 -0.211649272908 2.82426327181 0.05 0
37523809523.8 0.05 0 0.00847385796691 2.83216995199 0.00847385796691 2.83216995199 0.05 0
38142857142.9 0.05 0 0.228545734578 2.82294620749 0.228545734578 2.82294620749 0.05 0
38761904761.9 0.05 0 0.447235248706 2.7966478283 0.447235248706 2.7966478283 0.05 0
39380952381 0.05 0 0.663219653371 2.75343388055 0.663219653371 2.75343388055 0.05 0
40000000000 0.05 0 0.875192563491 2.69356574451 0.875192563491 2.69356574451 0.05 0
! ferrite_isolator
! A ferrite isolator. NON-RECIPROCAL BY DESIGN and entirely realizable -- the medium is not reciprocal. The reciprocity check correctly fires, and that is a true positive for the law but NOT a defect in the device. Any tool reporting this must let the user say so.
# HZ S RI R 50
1000000000 0.05 0 0.936616674299 -0.118322202306 0.018732333486 -0.00236644404613 0.05 0
1619047619.05 0.05 0 0.924588885489 -0.190752014312 0.0184917777098 -0.00381504028625 0.05 0
2238095238.1 0.05 0 0.906968706207 -0.262028059748 0.0181393741241 -0.00524056119496 0.05 0
2857142857.14 0.05 0 0.883862712386 -0.331719224327 0.0176772542477 -0.00663438448654 0.05 0
3476190476.19 0.05 0 0.855410660994 -0.39940397994 0.0171082132199 -0.00798807959881 0.05 0
4095238095.24 0.05 0 0.821784644713 -0.464672934275 0.0164356928943 -0.0092934586855 0.05 0
4714285714.29 0.05 0 0.783188051034 -0.527131307031 0.0156637610207 -0.0105426261406 0.05 0
5333333333.33 0.05 0 0.739854332063 -0.586401317753 0.0147970866413 -0.0117280263551 0.05 0
5952380952.38 0.05 0 0.692045592483 -0.642124470846 0.0138409118497 -0.0128424894169 0.05 0
6571428571.43 0.05 0 0.64005100421 -0.693963723939 0.0128010200842 -0.0138792744788 0.05 0
7190476190.48 0.05 0 0.584185057333 -0.741605526491 0.0116837011467 -0.0148321105298 0.05 0
7809523809.52 0.05 0 0.524785657914 -0.784761716307 0.0104957131583 -0.0156952343261 0.05 0
8428571428.57 0.05 0 0.462212084157 -0.823171262492 0.00924424168314 -0.0164634252498 0.05 0
9047619047.62 0.05 0 0.396842813311 -0.856601844299 0.00793685626622 -0.017132036886 0.05 0
9666666666.67 0.05 0 0.329073232443 -0.884851256327 0.00658146464887 -0.0176970251265 0.05 0
10285714285.7 0.05 0 0.259313246934 -0.90774863156 0.00518626493867 -0.0181549726312 0.05 0
10904761904.8 0.05 0 0.187984801156 -0.925155474863 0.00375969602312 -0.0185031094973 0.05 0
11523809523.8 0.05 0 0.11551932634 -0.936966500669 0.0023103865268 -0.0187393300134 0.05 0
12142857142.9 0.05 0 0.0423551310551 -0.943110269803 0.000847102621103 -0.0188622053961 0.05 0
12761904761.9 0.05 0 -0.0310652499088 -0.943549621579 -0.000621304998175 -0.0188709924316 0.05 0
13380952381 0.05 0 -0.104297732218 -0.938281898572 -0.00208595464436 -0.0187656379714 0.05 0
14000000000 0.05 0 -0.176899368047 -0.927338962687 -0.00353798736095 -0.0185467792537 0.05 0
14619047619 0.05 0 -0.248431025256 -0.910787002446 -0.00496862050512 -0.0182157400489 0.05 0
15238095238.1 0.05 0 -0.318460043486 -0.88872613264 -0.00636920086972 -0.0177745226528 0.05 0
15857142857.1 0.05 0 -0.386562851115 -0.861289788789 -0.0077312570223 -0.0172257957758 0.05 0
16476190476.2 0.05 0 -0.452327527236 -0.828643920052 -0.00904655054472 -0.016572878401 0.05 0
17095238095.2 0.05 0 -0.515356293167 -0.790985985481 -0.0103071258633 -0.0158197197096 0.05 0
17714285714.3 0.05 0 -0.575267918421 -0.748543759689 -0.0115053583684 -0.0149708751938 0.05 0
18333333333.3 0.05 0 -0.631700026589 -0.701573955148 -0.0126340005318 -0.014031479103 0.05 0
18952380952.4 0.05 0 -0.684311287172 -0.650360669462 -0.0136862257434 -0.0130072133892 0.05 0
19571428571.4 0.05 0 -0.73278348013 -0.595213666999 -0.0146556696026 -0.01190427334 0.05 0
20190476190.5 0.05 0 -0.776823420639 -0.536466505273 -0.0155364684128 -0.0107293301055 0.05 0
20809523809.5 0.05 0 -0.816164732424 -0.47447451742 -0.0163232946485 -0.0094894903484 0.05 0
21428571428.6 0.05 0 -0.850569458938 -0.409612662958 -0.0170113891788 -0.00819225325915 0.05 0
22047619047.6 0.05 0 -0.879829502651 -0.342273259836 -0.017596590053 -0.00684546519672 0.05 0
22666666666.7 0.05 0 -0.903767883726 -0.272863611498 -0.0180753576745 -0.00545727222996 0.05 0
23285714285.7 0.05 0 -0.922239810487 -0.201803543298 -0.0184447962097 -0.00403607086595 0.05 0
23904761904.8 0.05 0 -0.935133555193 -0.12952286318 -0.0187026711039 -0.0025904572636 0.05 0
24523809523.8 0.05 0 -0.942371129826 -0.0564587619789 -0.0188474225965 -0.00112917523958 0.05 0
25142857142.9 0.05 0 -0.943908757802 0.0169468309352 -0.018878175156 0.000338936618705 0.05 0
25761904761.9 0.05 0 -0.939737138753 0.0902499206749 -0.0187947427751 0.0018049984135 0.05 0
26380952381 0.05 0 -0.929881504784 0.163007132344 -0.0185976300957 0.00326014264689 0.05 0
27000000000 0.05 0 -0.914401467851 0.2347783928 -0.018288029357 0.00469556785601 0.05 0
27619047619 0.05 0 -0.893390659203 0.305129592441 -0.0178678131841 0.00610259184881 0.05 0
28238095238.1 0.05 0 -0.866976163047 0.373635210923 -0.0173395232609 0.00747270421847 0.05 0
28857142857.1 0.05 0 -0.835317747881 0.439880890934 -0.0167063549576 0.00879761781867 0.05 0
29476190476.2 0.05 0 -0.798606900128 0.50346594443 -0.0159721380026 0.0100693188886 0.05 0
30095238095.2 0.05 0 -0.757065665932 0.564005776213 -0.0151413133186 0.0112801155243 0.05 0
30714285714.3 0.05 0 -0.710945308101 0.621134210153 -0.014218906162 0.0124226842031 0.05 0
31333333333.3 0.05 0 -0.66052478635 0.674505704016 -0.013210495727 0.0134901140803 0.05 0
31952380952.4 0.05 0 -0.60610907 0.72379743948 -0.0121221814 0.0144759487896 0.05 0
32571428571.4 0.05 0 -0.548027293371 0.768711274702 -0.0109605458674 0.015374225494 0.05 0
33190476190.5 0.05 0 -0.486630765004 0.808975547643 -0.00973261530009 0.0161795109529 0.05 0
33809523809.5 0.05 0 -0.422290842773 0.844346719212 -0.00844581685546 0.0168869343842 0.05 0
34428571428.6 0.05 0 -0.355396687712 0.874610846318 -0.00710793375424 0.0174922169264 0.05 0
35047619047.6 0.05 0 -0.286352910174 0.899584875912 -0.00572705820347 0.0179916975182 0.05 0
35666666666.7 0.05 0 -0.215577122537 0.91911775218 -0.00431154245075 0.0183823550436 0.05 0
36285714285.7 0.05 0 -0.143497413272 0.933091330213 -0.00286994826543 0.0186618266043 0.05 0
36904761904.8 0.05 0 -0.0705497576361 0.941421090603 -0.00141099515272 0.0188284218121 0.05 0
37523809523.8 0.05 0 0.0028246193223 0.944056650662 5.6492386446e-05 0.0188811330132 0.05 0
38142857142.9 0.05 0 0.0761819115262 0.940982069165 0.00152363823052 0.0188196413833 0.05 0
38761904761.9 0.05 0 0.149078416235 0.932215942766 0.00298156832471 0.0186443188553 0.05 0
39380952381 0.05 0 0.22107321779 0.917811293518 0.0044214643558 0.0183562258704 0.05 0
40000000000 0.05 0 0.291730854497 0.897855248171 0.00583461708994 0.0179571049634 0.05 0
! noncausal_advance
! Phase advances with frequency: the output precedes the input. Passive and reciprocal, so ONLY the causality check should fire.
# HZ S RI R 50
1000000000 0.05 0 0.936616674299 0.118322202306 0.936616674299 0.118322202306 0.05 0
1619047619.05 0.05 0 0.924588885489 0.190752014312 0.924588885489 0.190752014312 0.05 0
2238095238.1 0.05 0 0.906968706207 0.262028059748 0.906968706207 0.262028059748 0.05 0
2857142857.14 0.05 0 0.883862712386 0.331719224327 0.883862712386 0.331719224327 0.05 0
3476190476.19 0.05 0 0.855410660994 0.39940397994 0.855410660994 0.39940397994 0.05 0
4095238095.24 0.05 0 0.821784644713 0.464672934275 0.821784644713 0.464672934275 0.05 0
4714285714.29 0.05 0 0.783188051034 0.527131307031 0.783188051034 0.527131307031 0.05 0
5333333333.33 0.05 0 0.739854332063 0.586401317753 0.739854332063 0.586401317753 0.05 0
5952380952.38 0.05 0 0.692045592483 0.642124470846 0.692045592483 0.642124470846 0.05 0
6571428571.43 0.05 0 0.64005100421 0.693963723939 0.64005100421 0.693963723939 0.05 0
7190476190.48 0.05 0 0.584185057333 0.741605526491 0.584185057333 0.741605526491 0.05 0
7809523809.52 0.05 0 0.524785657914 0.784761716307 0.524785657914 0.784761716307 0.05 0
8428571428.57 0.05 0 0.462212084157 0.823171262492 0.462212084157 0.823171262492 0.05 0
9047619047.62 0.05 0 0.396842813311 0.856601844299 0.396842813311 0.856601844299 0.05 0
9666666666.67 0.05 0 0.329073232443 0.884851256327 0.329073232443 0.884851256327 0.05 0
10285714285.7 0.05 0 0.259313246934 0.90774863156 0.259313246934 0.90774863156 0.05 0
10904761904.8 0.05 0 0.187984801156 0.925155474863 0.187984801156 0.925155474863 0.05 0
11523809523.8 0.05 0 0.11551932634 0.936966500669 0.11551932634 0.936966500669 0.05 0
12142857142.9 0.05 0 0.0423551310551 0.943110269803 0.0423551310551 0.943110269803 0.05 0
12761904761.9 0.05 0 -0.0310652499088 0.943549621579 -0.0310652499088 0.943549621579 0.05 0
13380952381 0.05 0 -0.104297732218 0.938281898572 -0.104297732218 0.938281898572 0.05 0
14000000000 0.05 0 -0.176899368047 0.927338962687 -0.176899368047 0.927338962687 0.05 0
14619047619 0.05 0 -0.248431025256 0.910787002446 -0.248431025256 0.910787002446 0.05 0
15238095238.1 0.05 0 -0.318460043486 0.88872613264 -0.318460043486 0.88872613264 0.05 0
15857142857.1 0.05 0 -0.386562851115 0.861289788789 -0.386562851115 0.861289788789 0.05 0
16476190476.2 0.05 0 -0.452327527236 0.828643920052 -0.452327527236 0.828643920052 0.05 0
17095238095.2 0.05 0 -0.515356293167 0.790985985481 -0.515356293167 0.790985985481 0.05 0
17714285714.3 0.05 0 -0.575267918421 0.748543759689 -0.575267918421 0.748543759689 0.05 0
18333333333.3 0.05 0 -0.631700026589 0.701573955148 -0.631700026589 0.701573955148 0.05 0
18952380952.4 0.05 0 -0.684311287172 0.650360669462 -0.684311287172 0.650360669462 0.05 0
19571428571.4 0.05 0 -0.73278348013 0.595213666999 -0.73278348013 0.595213666999 0.05 0
20190476190.5 0.05 0 -0.776823420639 0.536466505273 -0.776823420639 0.536466505273 0.05 0
20809523809.5 0.05 0 -0.816164732424 0.47447451742 -0.816164732424 0.47447451742 0.05 0
21428571428.6 0.05 0 -0.850569458938 0.409612662958 -0.850569458938 0.409612662958 0.05 0
22047619047.6 0.05 0 -0.879829502651 0.342273259836 -0.879829502651 0.342273259836 0.05 0
22666666666.7 0.05 0 -0.903767883726 0.272863611498 -0.903767883726 0.272863611498 0.05 0
23285714285.7 0.05 0 -0.922239810487 0.201803543298 -0.922239810487 0.201803543298 0.05 0
23904761904.8 0.05 0 -0.935133555193 0.12952286318 -0.935133555193 0.12952286318 0.05 0
24523809523.8 0.05 0 -0.942371129826 0.0564587619789 -0.942371129826 0.0564587619789 0.05 0
25142857142.9 0.05 0 -0.943908757802 -0.0169468309352 -0.943908757802 -0.0169468309352 0.05 0
25761904761.9 0.05 0 -0.939737138753 -0.0902499206749 -0.939737138753 -0.0902499206749 0.05 0
26380952381 0.05 0 -0.929881504784 -0.163007132344 -0.929881504784 -0.163007132344 0.05 0
27000000000 0.05 0 -0.914401467851 -0.2347783928 -0.914401467851 -0.2347783928 0.05 0
27619047619 0.05 0 -0.893390659203 -0.305129592441 -0.893390659203 -0.305129592441 0.05 0
28238095238.1 0.05 0 -0.866976163047 -0.373635210923 -0.866976163047 -0.373635210923 0.05 0
28857142857.1 0.05 0 -0.835317747881 -0.439880890934 -0.835317747881 -0.439880890934 0.05 0
29476190476.2 0.05 0 -0.798606900128 -0.50346594443 -0.798606900128 -0.50346594443 0.05 0
30095238095.2 0.05 0 -0.757065665932 -0.564005776213 -0.757065665932 -0.564005776213 0.05 0
30714285714.3 0.05 0 -0.710945308101 -0.621134210153 -0.710945308101 -0.621134210153 0.05 0
31333333333.3 0.05 0 -0.66052478635 -0.674505704016 -0.66052478635 -0.674505704016 0.05 0
31952380952.4 0.05 0 -0.60610907 -0.72379743948 -0.60610907 -0.72379743948 0.05 0
32571428571.4 0.05 0 -0.548027293371 -0.768711274702 -0.548027293371 -0.768711274702 0.05 0
33190476190.5 0.05 0 -0.486630765004 -0.808975547643 -0.486630765004 -0.808975547643 0.05 0
33809523809.5 0.05 0 -0.422290842773 -0.844346719212 -0.422290842773 -0.844346719212 0.05 0
34428571428.6 0.05 0 -0.355396687712 -0.874610846318 -0.355396687712 -0.874610846318 0.05 0
35047619047.6 0.05 0 -0.286352910174 -0.899584875912 -0.286352910174 -0.899584875912 0.05 0
35666666666.7 0.05 0 -0.215577122537 -0.91911775218 -0.215577122537 -0.91911775218 0.05 0
36285714285.7 0.05 0 -0.143497413272 -0.933091330213 -0.143497413272 -0.933091330213 0.05 0
36904761904.8 0.05 0 -0.0705497576361 -0.941421090603 -0.0705497576361 -0.941421090603 0.05 0
37523809523.8 0.05 0 0.0028246193223 -0.944056650662 0.0028246193223 -0.944056650662 0.05 0
38142857142.9 0.05 0 0.0761819115262 -0.940982069165 0.0761819115262 -0.940982069165 0.05 0
38761904761.9 0.05 0 0.149078416235 -0.932215942766 0.149078416235 -0.932215942766 0.05 0
39380952381 0.05 0 0.22107321779 -0.917811293518 0.22107321779 -0.917811293518 0.05 0
40000000000 0.05 0 0.291730854497 -0.897855248171 0.291730854497 -0.897855248171 0.05 0
! passive_4port
! Four-port with two independent thru paths. Exercises N>2 handling.
# HZ S RI R 50
1000000000 0 0 0.897443010235 -0.0677941249751 0 0 0 0 0.897443010235 -0.0677941249751 0 0 0 0 0 0 0 0 0 0 0 0 0.897443010235 -0.0677941249751 0 0 0 0 0.897443010235 -0.0677941249751 0 0
1619047619.05 0 0 0.893302471001 -0.109593317785 0 0 0 0 0.893302471001 -0.109593317785 0 0 0 0 0 0 0 0 0 0 0 0 0.893302471001 -0.109593317785 0 0 0 0 0.893302471001 -0.109593317785 0 0
2238095238.1 0 0 0.887216168355 -0.151153797869 0 0 0 0 0.887216168355 -0.151153797869 0 0 0 0 0 0 0 0 0 0 0 0 0.887216168355 -0.151153797869 0 0 0 0 0.887216168355 -0.151153797869 0 0
2857142857.14 0 0 0.879197359288 -0.192385039493 0 0 0 0 0.879197359288 -0.192385039493 0 0 0 0 0 0 0 0 0 0 0 0 0.879197359288 -0.192385039493 0 0 0 0 0.879197359288 -0.192385039493 0 0
3476190476.19 0 0 0.86926351012 -0.23319723406 0 0 0 0 0.86926351012 -0.23319723406 0 0 0 0 0 0 0 0 0 0 0 0 0.86926351012 -0.23319723406 0 0 0 0 0.86926351012 -0.23319723406 0 0
4095238095.24 0 0 0.857436258449 -0.27350148573 0 0 0 0 0.857436258449 -0.27350148573 0 0 0 0 0 0 0 0 0 0 0 0 0.857436258449 -0.27350148573 0 0 0 0 0.857436258449 -0.27350148573 0 0
4714285714.29 0 0 0.843741366024 -0.313210005044 0 0 0 0 0.843741366024 -0.313210005044 0 0 0 0 0 0 0 0 0 0 0 0 0.843741366024 -0.313210005044 0 0 0 0 0.843741366024 -0.313210005044 0 0
5333333333.33 0 0 0.828208662629 -0.352236300153 0 0 0 0 0.828208662629 -0.352236300153 0 0 0 0 0 0 0 0 0 0 0 0 0.828208662629 -0.352236300153 0 0 0 0 0.828208662629 -0.352236300153 0 0
5952380952.38 0 0 0.810871981112 -0.390495365206 0 0 0 0 0.810871981112 -0.390495365206 0 0 0 0 0 0 0 0 0 0 0 0 0.810871981112 -0.390495365206 0 0 0 0 0.810871981112 -0.390495365206 0 0
6571428571.43 0 0 0.791769083688 -0.427903865506 0 0 0 0 0.791769083688 -0.427903865506 0 0 0 0 0 0 0 0 0 0 0 0 0.791769083688 -0.427903865506 0 0 0 0 0.791769083688 -0.427903865506 0 0
7190476190.48 0 0 0.77094157969 -0.464380319033 0 0 0 0 0.77094157969 -0.464380319033 0 0 0 0 0 0 0 0 0 0 0 0 0.77094157969 -0.464380319033 0 0 0 0 0.77094157969 -0.464380319033 0 0
7809523809.52 0 0 0.748434834932 -0.49984527392 0 0 0 0 0.748434834932 -0.49984527392 0 0 0 0 0 0 0 0 0 0 0 0 0.748434834932 -0.49984527392 0 0 0 0 0.748434834932 -0.49984527392 0 0
8428571428.57 0 0 0.724297872901 -0.534221481514 0 0 0 0 0.724297872901 -0.534221481514 0 0 0 0 0 0 0 0 0 0 0 0 0.724297872901 -0.534221481514 0 0 0 0 0.724297872901 -0.534221481514 0 0
9047619047.62 0 0 0.698583267969 -0.56743406464 0 0 0 0 0.698583267969 -0.56743406464 0 0 0 0 0 0 0 0 0 0 0 0 0.698583267969 -0.56743406464 0 0 0 0 0.698583267969 -0.56743406464 0 0
9666666666.67 0 0 0.671347030882 -0.599410680691 0 0 0 0 0.671347030882 -0.599410680691 0 0 0 0 0 0 0 0 0 0 0 0 0.671347030882 -0.599410680691 0 0 0 0 0.671347030882 -0.599410680691 0 0
10285714285.7 0 0 0.642648486757 -0.630081679204 0 0 0 0 0.642648486757 -0.630081679204 0 0 0 0 0 0 0 0 0 0 0 0 0.642648486757 -0.630081679204 0 0 0 0 0.642648486757 -0.630081679204 0 0
10904761904.8 0 0 0.612550145863 -0.659380253574 0 0 0 0 0.612550145863 -0.659380253574 0 0 0 0 0 0 0 0 0 0 0 0 0.612550145863 -0.659380253574 0 0 0 0 0.612550145863 -0.659380253574 0 0
11523809523.8 0 0 0.58111756746 -0.687242586565 0 0 0 0 0.58111756746 -0.687242586565 0 0 0 0 0 0 0 0 0 0 0 0 0.58111756746 -0.687242586565 0 0 0 0 0.58111756746 -0.687242586565 0 0
12142857142.9 0 0 0.548419217007 -0.713607989318 0 0 0 0 0.548419217007 -0.713607989318 0 0 0 0 0 0 0 0 0 0 0 0 0.548419217007 -0.713607989318 0 0 0 0 0.548419217007 -0.713607989318 0 0
12761904761.9 0 0 0.514526317022 -0.738419033539 0 0 0 0 0.514526317022 -0.738419033539 0 0 0 0 0 0 0 0 0 0 0 0 0.514526317022 -0.738419033539 0 0 0 0 0.514526317022 -0.738419033539 0 0
13380952381 0 0 0.479512691958 -0.76162167659 0 0 0 0 0.479512691958 -0.76162167659 0 0 0 0 0 0 0 0 0 0 0 0 0.479512691958 -0.76162167659 0 0 0 0 0.479512691958 -0.76162167659 0 0
14000000000 0 0 0.443454607393 -0.783165379203 0 0 0 0 0.443454607393 -0.783165379203 0 0 0 0 0 0 0 0 0 0 0 0 0.443454607393 -0.783165379203 0 0 0 0 0.443454607393 -0.783165379203 0 0
14619047619 0 0 0.406430603918 -0.80300321556 0 0 0 0 0.406430603918 -0.80300321556 0 0 0 0 0 0 0 0 0 0 0 0 0.406430603918 -0.80300321556 0 0 0 0 0.406430603918 -0.80300321556 0 0
15238095238.1 0 0 0.368521326053 -0.821091975508 0 0 0 0 0.368521326053 -0.821091975508 0 0 0 0 0 0 0 0 0 0 0 0 0.368521326053 -0.821091975508 0 0 0 0 0.368521326053 -0.821091975508 0 0
15857142857.1 0 0 0.329809346599 -0.837392258679 0 0 0 0 0.329809346599 -0.837392258679 0 0 0 0 0 0 0 0 0 0 0 0 0.329809346599 -0.837392258679 0 0 0 0 0.329809346599 -0.837392258679 0 0
16476190476.2 0 0 0.290378986775 -0.851868560307 0 0 0 0 0.290378986775 -0.851868560307 0 0 0 0 0 0 0 0 0 0 0 0 0.290378986775 -0.851868560307 0 0 0 0 0.290378986775 -0.851868560307 0 0
17095238095.2 0 0 0.250316132552 -0.864489348566 0 0 0 0 0.250316132552 -0.864489348566 0 0 0 0 0 0 0 0 0 0 0 0 0.250316132552 -0.864489348566 0 0 0 0 0.250316132552 -0.864489348566 0 0
17714285714.3 0 0 0.209708047584 -0.875227133251 0 0 0 0 0.209708047584 -0.875227133251 0 0 0 0 0 0 0 0 0 0 0 0 0.209708047584 -0.875227133251 0 0 0 0 0.209708047584 -0.875227133251 0 0
18333333333.3 0 0 0.168643183127 -0.884058525656 0 0 0 0 0.168643183127 -0.884058525656 0 0 0 0 0 0 0 0 0 0 0 0 0.168643183127 -0.884058525656 0 0 0 0 0.168643183127 -0.884058525656 0 0
18952380952.4 0 0 0.12721098538 -0.890964289519 0 0 0 0 0.12721098538 -0.890964289519 0 0 0 0 0 0 0 0 0 0 0 0 0.12721098538 -0.890964289519 0 0 0 0 0.12721098538 -0.890964289519 0 0
19571428571.4 0 0 0.0855017006558 -0.895929382923 0 0 0 0 0.0855017006558 -0.895929382923 0 0 0 0 0 0 0 0 0 0 0 0 0.0855017006558 -0.895929382923 0 0 0 0 0.0855017006558 -0.895929382923 0 0
20190476190.5 0 0 0.0436061788102 -0.898942991056 0 0 0 0 0.0436061788102 -0.898942991056 0 0 0 0 0 0 0 0 0 0 0 0 0.0436061788102 -0.898942991056 0 0 0 0 0.0436061788102 -0.898942991056 0 0
20809523809.5 0 0 0.00161567535403 -0.899998549773 0 0 0 0 0.00161567535403 -0.899998549773 0 0 0 0 0 0 0 0 0 0 0 0 0.00161567535403 -0.899998549773 0 0 0 0 0.00161567535403 -0.899998549773 0 0
21428571428.6 0 0 -0.0403783473155 -0.899093759887 0 0 0 0 -0.0403783473155 -0.899093759887 0 0 0 0 0 0 0 0 0 0 0 0 -0.0403783473155 -0.899093759887 0 0 0 0 -0.0403783473155 -0.899093759887 0 0
22047619047.6 0 0 -0.0822844191358 -0.896230592185 0 0 0 0 -0.0822844191358 -0.896230592185 0 0 0 0 0 0 0 0 0 0 0 0 -0.0822844191358 -0.896230592185 0 0 0 0 -0.0822844191358 -0.896230592185 0 0
22666666666.7 0 0 -0.124011261616 -0.891415283127 0 0 0 0 -0.124011261616 -0.891415283127 0 0 0 0 0 0 0 0 0 0 0 0 -0.124011261616 -0.891415283127 0 0 0 0 -0.124011261616 -0.891415283127 0 0
23285714285.7 0 0 -0.165467986658 -0.88465832127 0 0 0 0 -0.165467986658 -0.88465832127 0 0 0 0 0 0 0 0 0 0 0 0 -0.165467986658 -0.88465832127 0 0 0 0 -0.165467986658 -0.88465832127 0 0
23904761904.8 0 0 -0.206564294522 -0.875974424415 0 0 0 0 -0.206564294522 -0.875974424415 0 0 0 0 0 0 0 0 0 0 0 0 -0.206564294522 -0.875974424415 0 0 0 0 -0.206564294522 -0.875974424415 0 0
24523809523.8 0 0 -0.247210670522 -0.865382507554 0 0 0 0 -0.247210670522 -0.865382507554 0 0 0 0 0 0 0 0 0 0 0 0 -0.247210670522 -0.865382507554 0 0 0 0 -0.247210670522 -0.865382507554 0 0
25142857142.9 0 0 -0.287318579996 -0.852905641668 0 0 0 0 -0.287318579996 -0.852905641668 0 0 0 0 0 0 0 0 0 0 0 0 -0.287318579996 -0.852905641668 0 0 0 0 -0.287318579996 -0.852905641668 0 0
25761904761.9 0 0 -0.326800661154 -0.838571003475 0 0 0 0 -0.326800661154 -0.838571003475 0 0 0 0 0 0 0 0 0 0 0 0 -0.326800661154 -0.838571003475 0 0 0 0 -0.326800661154 -0.838571003475 0 0
26380952381 0 0 -0.365570915366 -0.822409816234 0 0 0 0 -0.365570915366 -0.822409816234 0 0 0 0 0 0 0 0 0 0 0 0 -0.365570915366 -0.822409816234 0 0 0 0 -0.365570915366 -0.822409816234 0 0
27000000000 0 0 -0.403544894481 -0.804457281736 0 0 0 0 -0.403544894481 -0.804457281736 0 0 0 0 0 0 0 0 0 0 0 0 -0.403544894481 -0.804457281736 0 0 0 0 -0.403544894481 -0.804457281736 0 0
27619047619 0 0 -0.440639884769 -0.784752503628 0 0 0 0 -0.440639884769 -0.784752503628 0 0 0 0 0 0 0 0 0 0 0 0 -0.440639884769 -0.784752503628 0 0 0 0 -0.440639884769 -0.784752503628 0 0
28238095238.1 0 0 -0.476775087085 -0.763338402241 0 0 0 0 -0.476775087085 -0.763338402241 0 0 0 0 0 0 0 0 0 0 0 0 -0.476775087085 -0.763338402241 0 0 0 0 -0.476775087085 -0.763338402241 0 0
28857142857.1 0 0 -0.511871792866 -0.740261621096 0 0 0 0 -0.511871792866 -0.740261621096 0 0 0 0 0 0 0 0 0 0 0 0 -0.511871792866 -0.740261621096 0 0 0 0 -0.511871792866 -0.740261621096 0 0
29476190476.2 0 0 -0.54585355557 -0.715572425316 0 0 0 0 -0.54585355557 -0.715572425316 0 0 0 0 0 0 0 0 0 0 0 0 -0.54585355557 -0.715572425316 0 0 0 0 -0.54585355557 -0.715572425316 0 0
30095238095.2 0 0 -0.578646357185 -0.689324592131 0 0 0 0 -0.578646357185 -0.689324592131 0 0 0 0 0 0 0 0 0 0 0 0 -0.578646357185 -0.689324592131 0 0 0 0 -0.578646357185 -0.689324592131 0 0
30714285714.3 0 0 -0.610178769462 -0.661575293748 0 0 0 0 -0.610178769462 -0.661575293748 0 0 0 0 0 0 0 0 0 0 0 0 -0.610178769462 -0.661575293748 0 0 0 0 -0.610178769462 -0.661575293748 0 0
31333333333.3 0 0 -0.640382109488 -0.632384972819 0 0 0 0 -0.640382109488 -0.632384972819 0 0 0 0 0 0 0 0 0 0 0 0 -0.640382109488 -0.632384972819 0 0 0 0 -0.640382109488 -0.632384972819 0 0
31952380952.4 0 0 -0.669190589297 -0.601817210784 0 0 0 0 -0.669190589297 -0.601817210784 0 0 0 0 0 0 0 0 0 0 0 0 -0.669190589297 -0.601817210784 0 0 0 0 -0.669190589297 -0.601817210784 0 0
32571428571.4 0 0 -0.696541459161 -0.569938589384 0 0 0 0 -0.696541459161 -0.569938589384 0 0 0 0 0 0 0 0 0 0 0 0 -0.696541459161 -0.569938589384 0 0 0 0 -0.696541459161 -0.569938589384 0 0
33190476190.5 0 0 -0.722375144275 -0.536818545632 0 0 0 0 -0.722375144275 -0.536818545632 0 0 0 0 0 0 0 0 0 0 0 0 -0.722375144275 -0.536818545632 0 0 0 0 -0.722375144275 -0.536818545632 0 0
33809523809.5 0 0 -0.746635374515 -0.502529220567 0 0 0 0 -0.746635374515 -0.502529220567 0 0 0 0 0 0 0 0 0 0 0 0 -0.746635374515 -0.502529220567 0 0 0 0 -0.746635374515 -0.502529220567 0 0
34428571428.6 0 0 -0.769269307009 -0.467145302121 0 0 0 0 -0.769269307009 -0.467145302121 0 0 0 0 0 0 0 0 0 0 0 0 -0.769269307009 -0.467145302121 0 0 0 0 -0.769269307009 -0.467145302121 0 0
35047619047.6 0 0 -0.790227641236 -0.430743862436 0 0 0 0 -0.790227641236 -0.430743862436 0 0 0 0 0 0 0 0 0 0 0 0 -0.790227641236 -0.430743862436 0 0 0 0 -0.790227641236 -0.430743862436 0 0
35666666666.7 0 0 -0.80946472641 -0.393404189986 0 0 0 0 -0.80946472641 -0.393404189986 0 0 0 0 0 0 0 0 0 0 0 0 -0.80946472641 -0.393404189986 0 0 0 0 -0.80946472641 -0.393404189986 0 0
36285714285.7 0 0 -0.826938660915 -0.355207616872 0 0 0 0 -0.826938660915 -0.355207616872 0 0 0 0 0 0 0 0 0 0 0 0 -0.826938660915 -0.355207616872 0 0 0 0 -0.826938660915 -0.355207616872 0 0
36904761904.8 0 0 -0.842611383576 -0.316237341673 0 0 0 0 -0.842611383576 -0.316237341673 0 0 0 0 0 0 0 0 0 0 0 0 -0.842611383576 -0.316237341673 0 0 0 0 -0.842611383576 -0.316237341673 0 0
37523809523.8 0 0 -0.856448756559 -0.276578248219 0 0 0 0 -0.856448756559 -0.276578248219 0 0 0 0 0 0 0 0 0 0 0 0 -0.856448756559 -0.276578248219 0 0 0 0 -0.856448756559 -0.276578248219 0 0
38142857142.9 0 0 -0.868420639734 -0.236316720703 0 0 0 0 -0.868420639734 -0.236316720703 0 0 0 0 0 0 0 0 0 0 0 0 -0.868420639734 -0.236316720703 0 0 0 0 -0.868420639734 -0.236316720703 0 0
38761904761.9 0 0 -0.87850095632 -0.19554045552 0 0 0 0 -0.87850095632 -0.19554045552 0 0 0 0 0 0 0 0 0 0 0 0 -0.87850095632 -0.19554045552 0 0 0 0 -0.87850095632 -0.19554045552 0 0
39380952381 0 0 -0.886667749687 -0.154338270253 0 0 0 0 -0.886667749687 -0.154338270253 0 0 0 0 0 0 0 0 0 0 0 0 -0.886667749687 -0.154338270253 0 0 0 0 -0.886667749687 -0.154338270253 0 0
40000000000 0 0 -0.892903231183 -0.112799910208 0 0 0 0 -0.892903231183 -0.112799910208 0 0 0 0 0 0 0 0 0 0 0 0 -0.892903231183 -0.112799910208 0 0 0 0 -0.892903231183 -0.112799910208 0 0
! passive_line
! Lossy 20 ps delay line, 0.5 dB insertion loss. The baseline sane case.
# HZ S RI R 50
1000000000 0.05 0 0.936616674299 -0.118322202306 0.936616674299 -0.118322202306 0.05 0
1619047619.05 0.05 0 0.924588885489 -0.190752014312 0.924588885489 -0.190752014312 0.05 0
2238095238.1 0.05 0 0.906968706207 -0.262028059748 0.906968706207 -0.262028059748 0.05 0
2857142857.14 0.05 0 0.883862712386 -0.331719224327 0.883862712386 -0.331719224327 0.05 0
3476190476.19 0.05 0 0.855410660994 -0.39940397994 0.855410660994 -0.39940397994 0.05 0
4095238095.24 0.05 0 0.821784644713 -0.464672934275 0.821784644713 -0.464672934275 0.05 0
4714285714.29 0.05 0 0.783188051034 -0.527131307031 0.783188051034 -0.527131307031 0.05 0
5333333333.33 0.05 0 0.739854332063 -0.586401317753 0.739854332063 -0.586401317753 0.05 0
5952380952.38 0.05 0 0.692045592483 -0.642124470846 0.692045592483 -0.642124470846 0.05 0
6571428571.43 0.05 0 0.64005100421 -0.693963723939 0.64005100421 -0.693963723939 0.05 0
7190476190.48 0.05 0 0.584185057333 -0.741605526491 0.584185057333 -0.741605526491 0.05 0
7809523809.52 0.05 0 0.524785657914 -0.784761716307 0.524785657914 -0.784761716307 0.05 0
8428571428.57 0.05 0 0.462212084157 -0.823171262492 0.462212084157 -0.823171262492 0.05 0
9047619047.62 0.05 0 0.396842813311 -0.856601844299 0.396842813311 -0.856601844299 0.05 0
9666666666.67 0.05 0 0.329073232443 -0.884851256327 0.329073232443 -0.884851256327 0.05 0
10285714285.7 0.05 0 0.259313246934 -0.90774863156 0.259313246934 -0.90774863156 0.05 0
10904761904.8 0.05 0 0.187984801156 -0.925155474863 0.187984801156 -0.925155474863 0.05 0
11523809523.8 0.05 0 0.11551932634 -0.936966500669 0.11551932634 -0.936966500669 0.05 0
12142857142.9 0.05 0 0.0423551310551 -0.943110269803 0.0423551310551 -0.943110269803 0.05 0
12761904761.9 0.05 0 -0.0310652499088 -0.943549621579 -0.0310652499088 -0.943549621579 0.05 0
13380952381 0.05 0 -0.104297732218 -0.938281898572 -0.104297732218 -0.938281898572 0.05 0
14000000000 0.05 0 -0.176899368047 -0.927338962687 -0.176899368047 -0.927338962687 0.05 0
14619047619 0.05 0 -0.248431025256 -0.910787002446 -0.248431025256 -0.910787002446 0.05 0
15238095238.1 0.05 0 -0.318460043486 -0.88872613264 -0.318460043486 -0.88872613264 0.05 0
15857142857.1 0.05 0 -0.386562851115 -0.861289788789 -0.386562851115 -0.861289788789 0.05 0
16476190476.2 0.05 0 -0.452327527236 -0.828643920052 -0.452327527236 -0.828643920052 0.05 0
17095238095.2 0.05 0 -0.515356293167 -0.790985985481 -0.515356293167 -0.790985985481 0.05 0
17714285714.3 0.05 0 -0.575267918421 -0.748543759689 -0.575267918421 -0.748543759689 0.05 0
18333333333.3 0.05 0 -0.631700026589 -0.701573955148 -0.631700026589 -0.701573955148 0.05 0
18952380952.4 0.05 0 -0.684311287172 -0.650360669462 -0.684311287172 -0.650360669462 0.05 0
19571428571.4 0.05 0 -0.73278348013 -0.595213666999 -0.73278348013 -0.595213666999 0.05 0
20190476190.5 0.05 0 -0.776823420639 -0.536466505273 -0.776823420639 -0.536466505273 0.05 0
20809523809.5 0.05 0 -0.816164732424 -0.47447451742 -0.816164732424 -0.47447451742 0.05 0
21428571428.6 0.05 0 -0.850569458938 -0.409612662958 -0.850569458938 -0.409612662958 0.05 0
22047619047.6 0.05 0 -0.879829502651 -0.342273259836 -0.879829502651 -0.342273259836 0.05 0
22666666666.7 0.05 0 -0.903767883726 -0.272863611498 -0.903767883726 -0.272863611498 0.05 0
23285714285.7 0.05 0 -0.922239810487 -0.201803543298 -0.922239810487 -0.201803543298 0.05 0
23904761904.8 0.05 0 -0.935133555193 -0.12952286318 -0.935133555193 -0.12952286318 0.05 0
24523809523.8 0.05 0 -0.942371129826 -0.0564587619789 -0.942371129826 -0.0564587619789 0.05 0
25142857142.9 0.05 0 -0.943908757802 0.0169468309352 -0.943908757802 0.0169468309352 0.05 0
25761904761.9 0.05 0 -0.939737138753 0.0902499206749 -0.939737138753 0.0902499206749 0.05 0
26380952381 0.05 0 -0.929881504784 0.163007132344 -0.929881504784 0.163007132344 0.05 0
27000000000 0.05 0 -0.914401467851 0.2347783928 -0.914401467851 0.2347783928 0.05 0
27619047619 0.05 0 -0.893390659203 0.305129592441 -0.893390659203 0.305129592441 0.05 0
28238095238.1 0.05 0 -0.866976163047 0.373635210923 -0.866976163047 0.373635210923 0.05 0
28857142857.1 0.05 0 -0.835317747881 0.439880890934 -0.835317747881 0.439880890934 0.05 0
29476190476.2 0.05 0 -0.798606900128 0.50346594443 -0.798606900128 0.50346594443 0.05 0
30095238095.2 0.05 0 -0.757065665932 0.564005776213 -0.757065665932 0.564005776213 0.05 0
30714285714.3 0.05 0 -0.710945308101 0.621134210153 -0.710945308101 0.621134210153 0.05 0
31333333333.3 0.05 0 -0.66052478635 0.674505704016 -0.66052478635 0.674505704016 0.05 0
31952380952.4 0.05 0 -0.60610907 0.72379743948 -0.60610907 0.72379743948 0.05 0
32571428571.4 0.05 0 -0.548027293371 0.768711274702 -0.548027293371 0.768711274702 0.05 0
33190476190.5 0.05 0 -0.486630765004 0.808975547643 -0.486630765004 0.808975547643 0.05 0
33809523809.5 0.05 0 -0.422290842773 0.844346719212 -0.422290842773 0.844346719212 0.05 0
34428571428.6 0.05 0 -0.355396687712 0.874610846318 -0.355396687712 0.874610846318 0.05 0
35047619047.6 0.05 0 -0.286352910174 0.899584875912 -0.286352910174 0.899584875912 0.05 0
35666666666.7 0.05 0 -0.215577122537 0.91911775218 -0.215577122537 0.91911775218 0.05 0
36285714285.7 0.05 0 -0.143497413272 0.933091330213 -0.143497413272 0.933091330213 0.05 0
36904761904.8 0.05 0 -0.0705497576361 0.941421090603 -0.0705497576361 0.941421090603 0.05 0
37523809523.8 0.05 0 0.0028246193223 0.944056650662 0.0028246193223 0.944056650662 0.05 0
38142857142.9 0.05 0 0.0761819115262 0.940982069165 0.0761819115262 0.940982069165 0.05 0
38761904761.9 0.05 0 0.149078416235 0.932215942766 0.149078416235 0.932215942766 0.05 0
39380952381 0.05 0 0.22107321779 0.917811293518 0.22107321779 0.917811293518 0.05 0
40000000000 0.05 0 0.291730854497 0.897855248171 0.291730854497 0.897855248171 0.05 0
"""Demo logic for the physics-lint Space, with no UI framework imported.
Keeping this separate from `app.py` means the behaviour is testable without
launching a browser or installing Gradio -- and it means the numbers shown in
the Space are produced by exactly the code the tests exercise.
"""
from __future__ import annotations
import math
import pathlib
import numpy as np # noqa: E402
from maxwell_lint import check_ceiling # noqa: E402
from maxwell_lint.models import (born_second_order, isolated_pair_matrix, # noqa: E402
mean_field, monopole_closure, random_layout)
from sparam_lint import read_touchstone, run_battery # noqa: E402
from sparam_lint import run_negative_control as _run_negative_control # noqa: E402
EXAMPLES_DIR = pathlib.Path("examples")
EXTRACTORS = {
"monopole_closure — global inversion (respects the ceiling)": monopole_closure,
"born_second_order — truncated perturbation series": born_second_order,
"mean_field — averaged screening": mean_field,
"pairwise — no screening at all (k ≡ 1)": isolated_pair_matrix,
}
SCOPE_SPARAM = (
"Physical admissibility only. A perfectly passive model of entirely the "
"wrong structure passes every law here — passivity is necessary, not "
"sufficient. This does not tell you a model is accurate."
)
SCOPE_CEILING = (
"A necessary-condition test. It can tell you an extractor is wrong; it "
"cannot tell you one is right. An extractor returning k = 0.5 everywhere "
"passes the ceiling and is useless. Reference models are thin-wire / "
"monopole forms in a homogeneous medium."
)
SCOPE_FAMILY = (
"A theorem about the monopole-closure model, not about Maxwell. The "
"closure-vs-solver gap is additive and disclosed, never absorbed into the "
"bound. Every number here is computational; none is measured."
)
K_BAR = 10.0 / 11.0 # 0.909090909090909..., the certified bound for this family
# --------------------------------------------------------------- S-parameters
def check_touchstone(path: str) -> tuple[str, str]:
"""Run the 5-law battery on a Touchstone file. Returns (markdown, verdict)."""
if not path:
return "_Choose an example or upload a `.s2p` file._", ""
try:
net = read_touchstone(path)
except Exception as exc:
return (f"### Could not parse\n\n```\n{exc}\n```\n\n"
"A file that cannot be parsed is an error, never a quiet pass."), "ERROR"
results = list(run_battery(net.s, net.freq_hz, net.z0))
failed = [r for r in results if not r.passed]
lines = [
f"**{net.s.shape[1]}-port · {len(net.freq_hz)} points · "
f"{net.freq_hz[0] / 1e9:.3g}–{net.freq_hz[-1] / 1e9:.3g} GHz · "
f"z₀ = {net.z0:g} Ω**",
"",
"| | Law | Measured |",
"|---|---|---|",
]
for r in results:
mark = "✅" if r.passed else "❌"
lines.append(f"| {mark} | `{r.name}` | {r.message} |")
if failed:
verdict = (f"**{len(failed)} of {len(results)} laws FAILED** — this network "
"is not physically realizable as a passive device.")
else:
verdict = f"**All {len(results)} laws passed.**"
lines += ["", verdict]
return "\n".join(lines), ("FAIL" if failed else "PASS")
def negative_control_report() -> str:
"""Prove the checker still discriminates before anyone trusts a clean report.
Both directions are shown, because either failure mode is disqualifying: a
law that stops rejecting its violator has gone blind, and a law that starts
rejecting a known-good network has gone hysterical.
"""
res = _run_negative_control()
lines = [
"A checker reporting 100% compliance is indistinguishable from one that "
"has quietly stopped working — a widened tolerance, a transposed "
"reshape, an aliased phase unwrap. So the battery is run against "
"networks built to violate each law, and against one built to satisfy "
"them all.",
"", "| Law | Known-good network | Deliberate violator |", "|---|---|---|",
]
for law, passed in res["positive_control"].items():
neg = res["negative_control"][law]
lines.append(
f"| `{law}` | {'✅ passed' if passed else '❌ FALSE ALARM'} | "
f"{'✅ rejected' if neg['rejected'] else '❌ MISSED'} "
f"(worst {neg['worst_value']:.6g}) |"
if neg["worst_value"] is not None else
f"| `{law}` | {'✅ passed' if passed else '❌ FALSE ALARM'} | "
f"{'✅ rejected' if neg['rejected'] else '❌ MISSED'} |")
ok = res["positive_control_all_pass"] and res["negative_control_all_rejected"]
lines += ["", f"**Battery discriminates: {ok}**"]
if not ok:
lines.append("\nDo not trust today's clean verdicts.")
return "\n".join(lines)
def list_examples() -> list[str]:
if not EXAMPLES_DIR.is_dir():
return []
return sorted(str(p) for p in EXAMPLES_DIR.glob("*.s*p"))
# ------------------------------------------------------------ screening ceiling
def check_extractor(model_name: str, n: int, pitch_um: float, seed: int) -> str:
"""Run one reference extractor against the ceiling on a random array."""
fn = EXTRACTORS[model_name]
lay = random_layout(int(n), seed=int(seed), pitch_um=float(pitch_um))
report = check_ceiling(fn(lay), isolated_pair_matrix(lay))
pct = 100.0 * report.n_violations / max(report.n_pairs, 1)
head = "❌ **predicts impossible physics**" if report.n_violations \
else "✅ **respects the ceiling**"
lines = [
head, "",
"| | |",
"|---|---|",
f"| conductors | {int(n)} |",
f"| pairs checked | {report.n_pairs} |",
f"| pairs with k > 1 | **{report.n_violations}** ({pct:.1f}%) |",
f"| largest k | **{report.max_k:.4f}** |",
]
if report.n_violations:
lines += ["", "A predicted k > 1 is *anti-screening*: it says that adding a "
"grounded conductor between two others **increases** their "
"coupling. No passive arrangement of conductors in a linear "
"medium can do that."]
return "\n".join(lines)
def sweep_all_extractors(n: int, pitch_um: float, seed: int) -> str:
"""Every reference model on the same layout — the comparison that matters."""
lay = random_layout(int(n), seed=int(seed), pitch_um=float(pitch_um))
iso = isolated_pair_matrix(lay)
lines = ["| Model | pairs k>1 | max k | verdict |", "|---|---|---|---|"]
for name, fn in EXTRACTORS.items():
rep = check_ceiling(fn(lay), iso)
short = name.split(" — ")[0]
verdict = "❌ impossible" if rep.n_violations else "✅ admissible"
lines.append(f"| `{short}` | {rep.n_violations}/{rep.n_pairs} | "
f"{rep.max_k:.4f} | {verdict} |")
lines += ["", "`pairwise` sits exactly *on* the ceiling (k ≡ 1) — admissible and "
"maximally wrong: it assumes no screening at all."]
return "\n".join(lines)
# --------------------------------------------------------------- the theorem
def family_layout(d0_um: float, pt_mult: float, sep_mult: float, jog_mult: float):
"""Two tight pairs: the family the certified bound is proven over."""
pt = 1.6 * d0_um * pt_mult * 1e-6
sep = pt * sep_mult
jog = jog_mult * sep
return (np.array([[0.0, 0.0], [pt, 0.0], [sep, jog], [sep + pt, jog]]),
np.full(4, d0_um * 1e-6 / 2.0))
def family_k(d0_um: float, pt_mult: float, sep_mult: float, jog_mult: float) -> float:
"""Worst-pair screening factor at one point of the family box."""
xy, radius = family_layout(d0_um, pt_mult, sep_mult, jog_mult)
p = np.zeros((4, 4))
for i in range(4):
for j in range(4):
p[i, j] = -math.log(radius[i]) if i == j else \
-math.log(float(np.hypot(*(xy[i] - xy[j]))))
c = np.linalg.inv(p)
worst = 0.0
for i in range(4):
for j in range(4):
if i == j:
continue
r = float(np.hypot(*(xy[i] - xy[j])))
pp = np.array([[-math.log(radius[i]), -math.log(r)],
[-math.log(r), -math.log(radius[j])]])
iso = abs(np.linalg.inv(pp)[0, 1])
if iso > 0:
worst = max(worst, abs(c[i, j]) / iso)
return worst
def probe_family(d0_um: float, pt_mult: float, sep_mult: float,
jog_mult: float) -> str:
"""Try to break the certified bound at a user-chosen point in the family."""
k = family_k(d0_um, pt_mult, sep_mult, jog_mult)
err = 100.0 / k - 100.0
within = k <= K_BAR
head = ("✅ **inside the certified bound**" if within else
"🚨 **ABOVE the certified bound — you have refuted the theorem**")
return "\n".join([
head, "",
"| | |", "|---|---|",
f"| worst-pair k | **{k:.12f}** |",
f"| certified bound | {K_BAR:.12f} |",
f"| margin | {K_BAR - k:+.12f} |",
f"| pairwise over-predicts by | **{err:.4f}%** |",
"",
"The bound is proven for **every** layout in the family box by interval "
"branch-and-bound — 237,490 certified leaves, zero failure regions. "
"Sampling here cannot prove it; it can only refute it. Try.",
])
def family_bounds() -> dict[str, tuple[float, float]]:
return {"d0_um": (25.0, 60.0), "pt_mult": (1.0, 1.2),
"sep_mult": (2.5, 4.5), "jog_mult": (-0.4, 0.4)}
import pathlib
pathlib.Path("examples").mkdir(exist_ok=True)
pathlib.Path("examples/active_gain.s2p").write_text(pathlib.Path("active_gain.s2p").read_text())
pathlib.Path("examples/ferrite_isolator.s2p").write_text(pathlib.Path("ferrite_isolator.s2p").read_text())
pathlib.Path("examples/noncausal_advance.s2p").write_text(pathlib.Path("noncausal_advance.s2p").read_text())
pathlib.Path("examples/passive_4port.s4p").write_text(pathlib.Path("passive_4port.s4p").read_text())
pathlib.Path("examples/passive_line.s2p").write_text(pathlib.Path("passive_line.s2p").read_text())
"""physics-lint — browser build (Gradio Lite / Pyodide).
All computation happens in `demo_logic`, which imports no UI framework, so the
numbers shown here are produced by exactly the code the test suite exercises.
Run locally:
pip install -r requirements.txt
python app.py
"""
from __future__ import annotations
import gradio as gr
import demo_logic as dl
CSS = """
.verdict-pass textarea, .verdict-pass { border-left: 4px solid #16a34a; }
.verdict-fail textarea, .verdict-fail { border-left: 4px solid #dc2626; }
footer { visibility: hidden; }
"""
INTRO = """
# physics-lint
**Is this model physically possible?**
Three checks that answer that question in three different places — an
S-parameter file, a coupling extractor, and a certified bound on what screening
can do. Each one can tell you something is *wrong*; none can tell you something
is *right*. That distinction is the point, and it is repeated on every tab.
Everything here runs in-process from open-source packages. Nothing is uploaded
anywhere.
"""
def _tab_sparam() -> None:
gr.Markdown(
"### Five laws every passive linear network must obey\n\n"
"Vendor models, simulator exports and measurements all end up as "
"Touchstone files, and some of them describe networks that cannot "
"exist: they produce power from nothing, respond before they are "
"excited, or present negative resistance. Simulators believe them "
"anyway."
)
examples = dl.list_examples()
with gr.Row():
with gr.Column(scale=1):
picker = gr.Dropdown(
choices=examples,
value=next((e for e in examples if "passive_line" in e), None),
label="Example network",
)
upload = gr.File(label="…or upload your own .sNp",
file_types=[".s1p", ".s2p", ".s3p", ".s4p"])
run = gr.Button("Check", variant="primary")
gr.Markdown(
"**Try `active_gain`** — the same line with 3× gain bolted onto "
"the through path.\n\n"
"**Try `ferrite_isolator`** — physically real *and* fails "
"reciprocity, because its medium is non-reciprocal. A tool that "
"treats every law failure as a defect rejects legitimate hardware."
)
with gr.Column(scale=2):
out = gr.Markdown()
def _go(sel, up):
path = up.name if up is not None else sel
md, _ = dl.check_touchstone(path)
return md
run.click(_go, [picker, upload], out)
picker.change(_go, [picker, upload], out)
upload.change(_go, [picker, upload], out)
gr.Markdown("### Does the checker still discriminate?")
ctrl_btn = gr.Button("Run the negative control")
ctrl_out = gr.Markdown()
ctrl_btn.click(lambda: dl.negative_control_report(), None, ctrl_out)
gr.Markdown(f"> **Scope.** {dl.SCOPE_SPARAM}")
def _tab_ceiling() -> None:
gr.Markdown(
"### The screening ceiling\n\n"
"Pack conductors together and every other conductor screens the field "
"between any two, so a pair's mutual capacitance inside an array is at "
"most its isolated-pair value:\n\n"
"$$k = |C_\\text{full}| / |C_\\text{iso}| \\le 1$$\n\n"
"A predicted `k > 1` is **anti-screening** — it says adding a grounded "
"conductor between two others *increases* their coupling. No passive "
"arrangement of conductors in a linear medium can do that."
)
with gr.Row():
with gr.Column(scale=1):
model = gr.Dropdown(choices=list(dl.EXTRACTORS),
value=list(dl.EXTRACTORS)[1], label="Extractor")
n = gr.Slider(4, 16, value=8, step=1, label="Conductors")
pitch = gr.Slider(40, 150, value=80, step=5, label="Nominal pitch (µm)")
seed = gr.Slider(0, 20, value=1, step=1, label="Layout seed")
one = gr.Button("Check this extractor", variant="primary")
allb = gr.Button("Compare all four")
with gr.Column(scale=2):
out = gr.Markdown()
one.click(dl.check_extractor, [model, n, pitch, seed], out)
allb.click(dl.sweep_all_extractors, [n, pitch, seed], out)
gr.Markdown(
"`born_second_order` is a truncated perturbation series — the thing a "
"competent engineer reaches for when a full solve is too slow. It is "
"not a strawman. Truncating an alternating series overshoots, and the "
"overshoot drives the prediction into the impossible region."
)
gr.Markdown(f"> **Scope.** {dl.SCOPE_CEILING}")
def _tab_theorem() -> None:
b = dl.family_bounds()
gr.Markdown(
"### Try to break a machine-certified bound\n\n"
"For a four-conductor family — two tight pairs, four free parameters — "
"interval branch-and-bound has certified that **every** layout satisfies "
f"`k ≤ {dl.K_BAR:.12f}`. 237,490 certified leaves, zero failure regions, "
"full volume coverage.\n\n"
"The consequence: a pairwise-superposition extractor assumes `k ≡ 1`, so "
"it over-predicts the worst coupling by **at least 10%** on every member "
"of the family. Not on average. Always.\n\n"
"Move the sliders. If you find a point above the bound, the theorem is "
"wrong and we want to know."
)
with gr.Row():
with gr.Column(scale=1):
d0 = gr.Slider(*b["d0_um"], value=40.0, step=0.1,
label="d₀ — conductor diameter (µm)")
ptm = gr.Slider(*b["pt_mult"], value=1.1, step=0.001,
label="pt_mult — pitch multiplier")
sepm = gr.Slider(*b["sep_mult"], value=3.5, step=0.01,
label="sep_mult — pair separation")
jogm = gr.Slider(*b["jog_mult"], value=0.0, step=0.001,
label="jog_mult — vertical offset")
go = gr.Button("Evaluate", variant="primary")
with gr.Column(scale=2):
out = gr.Markdown()
for c in (d0, ptm, sepm, jogm):
c.change(dl.probe_family, [d0, ptm, sepm, jogm], out)
go.click(dl.probe_family, [d0, ptm, sepm, jogm], out)
gr.Markdown(
"The certified bound is 0.909090909091; the worst layout adversarial "
"search has found is ≈0.9053. That gap is the price of a first-order "
"interval relaxation, not a claim about physics."
)
gr.Markdown(f"> **Scope.** {dl.SCOPE_FAMILY}")
def build() -> gr.Blocks:
with gr.Blocks(title="physics-lint", css=CSS,
theme=gr.themes.Soft()) as demo:
gr.Markdown(INTRO)
with gr.Tabs():
with gr.Tab("S-parameters"):
_tab_sparam()
with gr.Tab("Coupling extractors"):
_tab_ceiling()
with gr.Tab("The certified bound"):
_tab_theorem()
gr.Markdown(
"---\n"
"Built from [`sparam-lint`](https://github.com/nickharris808/sparam-lint) "
"and [`maxwell-lint`](https://github.com/nickharris808/maxwell-lint) "
"(Apache-2.0). The certified bound is published as the "
"[`screening-ceiling`](https://huggingface.co/datasets/nickh007/screening-ceiling) "
"dataset with a zero-dependency verifier.\n\n"
"These tools **grade** a model. Producing one that is passive by "
"construction and accurate at speed in the many-body regime is the "
"[ChipletOS](https://chipletos.com) closed core."
)
return demo
build().launch()