This commit is contained in:
grizzly 2024-07-19 18:17:01 -04:00
parent 52b5fdeb98
commit 85d4edf508
2 changed files with 244 additions and 220 deletions

View file

@ -6,7 +6,7 @@
<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<cc:Work> <cc:Work>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:date>2024-07-18T22:09:53.751451</dc:date> <dc:date>2024-07-19T17:26:33.439337</dc:date>
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:creator> <dc:creator>
<cc:Agent> <cc:Agent>
@ -39,7 +39,7 @@ z
</g> </g>
<g id="PathCollection_1"> <g id="PathCollection_1">
<defs> <defs>
<path id="m0f5ac4a85e" d="M 0 3 <path id="m805d4e7abe" d="M 0 3
C 0.795609 3 1.55874 2.683901 2.12132 2.12132 C 0.795609 3 1.55874 2.683901 2.12132 2.12132
C 2.683901 1.55874 3 0.795609 3 0 C 2.683901 1.55874 3 0.795609 3 0
C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132
@ -51,44 +51,44 @@ C -1.55874 2.683901 -0.795609 3 0 3
z z
" style="stroke: #ffa500; stroke-opacity: 0.5"/> " style="stroke: #ffa500; stroke-opacity: 0.5"/>
</defs> </defs>
<g clip-path="url(#p5d16156bca)"> <g clip-path="url(#p6bfb98ea7b)">
<use xlink:href="#m0f5ac4a85e" x="135.369684" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="109.660547" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="186.78796" y="255.752396" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="162.370738" y="255.752396" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="238.206235" y="196.460547" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="215.08093" y="196.460547" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="289.62451" y="137.168698" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="267.791122" y="137.168698" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="341.042785" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="320.501313" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="392.46106" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="373.211505" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="443.879335" y="255.752396" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="425.921696" y="255.752396" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="495.29761" y="196.460547" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="478.631888" y="196.460547" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="546.715885" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="531.34208" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="598.134161" y="255.752396" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="584.052271" y="255.752396" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="649.552436" y="196.460547" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="636.762463" y="196.460547" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="700.970711" y="137.168698" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="689.472654" y="137.168698" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="752.388986" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="742.182846" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="803.807261" y="137.168698" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="794.893037" y="137.168698" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="855.225536" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="847.603229" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="906.643811" y="196.460547" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="900.313421" y="196.460547" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="958.062086" y="137.168698" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="953.023612" y="137.168698" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="1009.480362" y="196.460547" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="1005.733804" y="196.460547" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="1060.898637" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="1058.443995" y="315.044245" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
<use xlink:href="#m0f5ac4a85e" x="1112.316912" y="255.752396" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="1111.154187" y="255.752396" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
</g> </g>
</g> </g>
<g id="matplotlib.axis_1"> <g id="matplotlib.axis_1">
<g id="xtick_1"> <g id="xtick_1">
<g id="line2d_1"> <g id="line2d_1">
<defs> <defs>
<path id="mb1afcd9817" d="M 0 0 <path id="m163d10c536" d="M 0 0
L 0 3.5 L 0 3.5
" style="stroke: #000000; stroke-width: 0.8"/> " style="stroke: #000000; stroke-width: 0.8"/>
</defs> </defs>
<g> <g>
<use xlink:href="#mb1afcd9817" x="135.369684" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m163d10c536" x="109.660547" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_1"> <g id="text_1">
<!-- 0.0 --> <!-- 0.0 -->
<g transform="translate(125.200153 392.586094) scale(0.15 -0.15)"> <g transform="translate(99.491016 392.586094) scale(0.15 -0.15)">
<defs> <defs>
<path id="FiraSans-Regular-30" d="M 1786 4346 <path id="FiraSans-Regular-30" d="M 1786 4346
Q 2496 4346 2857 3779 Q 2496 4346 2857 3779
@ -132,12 +132,12 @@ z
<g id="xtick_2"> <g id="xtick_2">
<g id="line2d_2"> <g id="line2d_2">
<g> <g>
<use xlink:href="#mb1afcd9817" x="263.915372" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m163d10c536" x="241.436026" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_2"> <g id="text_2">
<!-- 2.5 --> <!-- 2.5 -->
<g transform="translate(254.645841 392.586094) scale(0.15 -0.15)"> <g transform="translate(232.166495 392.586094) scale(0.15 -0.15)">
<defs> <defs>
<path id="FiraSans-Regular-32" d="M 1459 4346 <path id="FiraSans-Regular-32" d="M 1459 4346
Q 1843 4346 2134 4192 Q 1843 4346 2134 4192
@ -198,12 +198,12 @@ z
<g id="xtick_3"> <g id="xtick_3">
<g id="line2d_3"> <g id="line2d_3">
<g> <g>
<use xlink:href="#mb1afcd9817" x="392.46106" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m163d10c536" x="373.211505" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_3"> <g id="text_3">
<!-- 5.0 --> <!-- 5.0 -->
<g transform="translate(382.719263 392.586094) scale(0.15 -0.15)"> <g transform="translate(363.469708 392.586094) scale(0.15 -0.15)">
<use xlink:href="#FiraSans-Regular-35"/> <use xlink:href="#FiraSans-Regular-35"/>
<use xlink:href="#FiraSans-Regular-2e" x="50.099991"/> <use xlink:href="#FiraSans-Regular-2e" x="50.099991"/>
<use xlink:href="#FiraSans-Regular-30" x="74.099976"/> <use xlink:href="#FiraSans-Regular-30" x="74.099976"/>
@ -213,12 +213,12 @@ z
<g id="xtick_4"> <g id="xtick_4">
<g id="line2d_4"> <g id="line2d_4">
<g> <g>
<use xlink:href="#mb1afcd9817" x="521.006748" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m163d10c536" x="504.986984" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_4"> <g id="text_4">
<!-- 7.5 --> <!-- 7.5 -->
<g transform="translate(512.119248 392.586094) scale(0.15 -0.15)"> <g transform="translate(496.099484 392.586094) scale(0.15 -0.15)">
<defs> <defs>
<path id="FiraSans-Regular-37" d="M 2650 4282 <path id="FiraSans-Regular-37" d="M 2650 4282
L 2650 3840 L 2650 3840
@ -240,12 +240,12 @@ z
<g id="xtick_5"> <g id="xtick_5">
<g id="line2d_5"> <g id="line2d_5">
<g> <g>
<use xlink:href="#mb1afcd9817" x="649.552436" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m163d10c536" x="636.762463" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_5"> <g id="text_5">
<!-- 10.0 --> <!-- 10.0 -->
<g transform="translate(636.135639 392.586094) scale(0.15 -0.15)"> <g transform="translate(623.345666 392.586094) scale(0.15 -0.15)">
<defs> <defs>
<path id="FiraSans-Regular-31" d="M 2067 4282 <path id="FiraSans-Regular-31" d="M 2067 4282
L 2067 0 L 2067 0
@ -268,12 +268,12 @@ z
<g id="xtick_6"> <g id="xtick_6">
<g id="line2d_6"> <g id="line2d_6">
<g> <g>
<use xlink:href="#mb1afcd9817" x="778.098123" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m163d10c536" x="768.537942" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_6"> <g id="text_6">
<!-- 12.5 --> <!-- 12.5 -->
<g transform="translate(765.581327 392.586094) scale(0.15 -0.15)"> <g transform="translate(756.021145 392.586094) scale(0.15 -0.15)">
<use xlink:href="#FiraSans-Regular-31"/> <use xlink:href="#FiraSans-Regular-31"/>
<use xlink:href="#FiraSans-Regular-32" x="43.299988"/> <use xlink:href="#FiraSans-Regular-32" x="43.299988"/>
<use xlink:href="#FiraSans-Regular-2e" x="92.799973"/> <use xlink:href="#FiraSans-Regular-2e" x="92.799973"/>
@ -284,12 +284,12 @@ z
<g id="xtick_7"> <g id="xtick_7">
<g id="line2d_7"> <g id="line2d_7">
<g> <g>
<use xlink:href="#mb1afcd9817" x="906.643811" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m163d10c536" x="900.313421" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_7"> <g id="text_7">
<!-- 15.0 --> <!-- 15.0 -->
<g transform="translate(893.654749 392.586094) scale(0.15 -0.15)"> <g transform="translate(887.324358 392.586094) scale(0.15 -0.15)">
<use xlink:href="#FiraSans-Regular-31"/> <use xlink:href="#FiraSans-Regular-31"/>
<use xlink:href="#FiraSans-Regular-35" x="43.299988"/> <use xlink:href="#FiraSans-Regular-35" x="43.299988"/>
<use xlink:href="#FiraSans-Regular-2e" x="93.399979"/> <use xlink:href="#FiraSans-Regular-2e" x="93.399979"/>
@ -300,12 +300,12 @@ z
<g id="xtick_8"> <g id="xtick_8">
<g id="line2d_8"> <g id="line2d_8">
<g> <g>
<use xlink:href="#mb1afcd9817" x="1035.189499" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m163d10c536" x="1032.0889" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_8"> <g id="text_8">
<!-- 17.5 --> <!-- 17.5 -->
<g transform="translate(1023.054733 392.586094) scale(0.15 -0.15)"> <g transform="translate(1019.954134 392.586094) scale(0.15 -0.15)">
<use xlink:href="#FiraSans-Regular-31"/> <use xlink:href="#FiraSans-Regular-31"/>
<use xlink:href="#FiraSans-Regular-37" x="43.299988"/> <use xlink:href="#FiraSans-Regular-37" x="43.299988"/>
<use xlink:href="#FiraSans-Regular-2e" x="87.699982"/> <use xlink:href="#FiraSans-Regular-2e" x="87.699982"/>
@ -316,12 +316,12 @@ z
<g id="xtick_9"> <g id="xtick_9">
<g id="line2d_9"> <g id="line2d_9">
<g> <g>
<use xlink:href="#mb1afcd9817" x="1163.735187" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m163d10c536" x="1163.864379" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_9"> <g id="text_9">
<!-- 20.0 --> <!-- 20.0 -->
<g transform="translate(1149.853156 392.586094) scale(0.15 -0.15)"> <g transform="translate(1149.982347 392.586094) scale(0.15 -0.15)">
<use xlink:href="#FiraSans-Regular-32"/> <use xlink:href="#FiraSans-Regular-32"/>
<use xlink:href="#FiraSans-Regular-30" x="49.499985"/> <use xlink:href="#FiraSans-Regular-30" x="49.499985"/>
<use xlink:href="#FiraSans-Regular-2e" x="105.299973"/> <use xlink:href="#FiraSans-Regular-2e" x="105.299973"/>
@ -425,12 +425,12 @@ z
<g id="ytick_1"> <g id="ytick_1">
<g id="line2d_10"> <g id="line2d_10">
<defs> <defs>
<path id="m011c354297" d="M 0 0 <path id="m8c7cafd866" d="M 0 0
L -3.5 0 L -3.5 0
" style="stroke: #000000; stroke-width: 0.8"/> " style="stroke: #000000; stroke-width: 0.8"/>
</defs> </defs>
<g> <g>
<use xlink:href="#m011c354297" x="57.213906" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m8c7cafd866" x="57.213906" y="374.336094" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_11"> <g id="text_11">
@ -453,7 +453,7 @@ z
<g id="ytick_2"> <g id="ytick_2">
<g id="line2d_11"> <g id="line2d_11">
<g> <g>
<use xlink:href="#m011c354297" x="57.213906" y="315.044245" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m8c7cafd866" x="57.213906" y="315.044245" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_12"> <g id="text_12">
@ -466,7 +466,7 @@ z
<g id="ytick_3"> <g id="ytick_3">
<g id="line2d_12"> <g id="line2d_12">
<g> <g>
<use xlink:href="#m011c354297" x="57.213906" y="255.752396" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m8c7cafd866" x="57.213906" y="255.752396" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_13"> <g id="text_13">
@ -479,7 +479,7 @@ z
<g id="ytick_4"> <g id="ytick_4">
<g id="line2d_13"> <g id="line2d_13">
<g> <g>
<use xlink:href="#m011c354297" x="57.213906" y="196.460547" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m8c7cafd866" x="57.213906" y="196.460547" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_14"> <g id="text_14">
@ -492,7 +492,7 @@ z
<g id="ytick_5"> <g id="ytick_5">
<g id="line2d_14"> <g id="line2d_14">
<g> <g>
<use xlink:href="#m011c354297" x="57.213906" y="137.168698" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m8c7cafd866" x="57.213906" y="137.168698" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_15"> <g id="text_15">
@ -540,7 +540,7 @@ z
<g id="ytick_6"> <g id="ytick_6">
<g id="line2d_15"> <g id="line2d_15">
<g> <g>
<use xlink:href="#m011c354297" x="57.213906" y="77.876849" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m8c7cafd866" x="57.213906" y="77.876849" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_16"> <g id="text_16">
@ -573,7 +573,7 @@ z
<g id="ytick_7"> <g id="ytick_7">
<g id="line2d_16"> <g id="line2d_16">
<g> <g>
<use xlink:href="#m011c354297" x="57.213906" y="18.585" style="stroke: #000000; stroke-width: 0.8"/> <use xlink:href="#m8c7cafd866" x="57.213906" y="18.585" style="stroke: #000000; stroke-width: 0.8"/>
</g> </g>
</g> </g>
<g id="text_17"> <g id="text_17">
@ -672,174 +672,174 @@ z
</g> </g>
<g id="line2d_17"> <g id="line2d_17">
<path d="M 109.660547 315.044245 <path d="M 109.660547 315.044245
L 161.078822 315.044245 L 162.370738 315.044245
L 161.078822 255.752396 L 162.370738 255.752396
L 212.497097 255.752396 L 215.08093 255.752396
L 212.497097 196.460547 L 215.08093 196.460547
L 263.915372 196.460547 L 267.791122 196.460547
L 263.915372 137.168698 L 267.791122 137.168698
L 315.333647 137.168698 L 320.501313 137.168698
L 315.333647 315.044245 L 320.501313 315.044245
L 366.751922 315.044245 L 373.211505 315.044245
L 366.751922 315.044245 L 373.211505 315.044245
L 418.170198 315.044245 L 425.921696 315.044245
L 418.170198 255.752396 L 425.921696 255.752396
L 469.588473 255.752396 L 478.631888 255.752396
L 469.588473 196.460547 L 478.631888 196.460547
L 521.006748 196.460547 L 531.34208 196.460547
L 521.006748 315.044245 L 531.34208 315.044245
L 572.425023 315.044245 L 584.052271 315.044245
L 572.425023 255.752396 L 584.052271 255.752396
L 623.843298 255.752396 L 636.762463 255.752396
L 623.843298 196.460547 L 636.762463 196.460547
L 675.261573 196.460547 L 689.472654 196.460547
L 675.261573 137.168698 L 689.472654 137.168698
L 726.679848 137.168698 L 742.182846 137.168698
L 726.679848 315.044245 L 742.182846 315.044245
L 778.098123 315.044245 L 794.893037 315.044245
L 778.098123 137.168698 L 794.893037 137.168698
L 829.516399 137.168698 L 847.603229 137.168698
L 829.516399 315.044245 L 847.603229 315.044245
L 880.934674 315.044245 L 900.313421 315.044245
L 880.934674 196.460547 L 900.313421 196.460547
L 932.352949 196.460547 L 953.023612 196.460547
L 932.352949 137.168698 L 953.023612 137.168698
L 983.771224 137.168698 L 1005.733804 137.168698
L 983.771224 196.460547 L 1005.733804 196.460547
L 1035.189499 196.460547 L 1058.443995 196.460547
L 1035.189499 315.044245 L 1058.443995 315.044245
L 1086.607774 315.044245 L 1111.154187 315.044245
L 1086.607774 255.752396 L 1111.154187 255.752396
" clip-path="url(#p5d16156bca)" style="fill: none; stroke: #1f77b4; stroke-opacity: 0.5; stroke-width: 1.5; stroke-linecap: square"/> " clip-path="url(#p6bfb98ea7b)" style="fill: none; stroke: #1f77b4; stroke-opacity: 0.5; stroke-width: 1.5; stroke-linecap: square"/>
</g> </g>
<g id="line2d_18"> <g id="line2d_18">
<path d="M 135.369684 315.044245 <path d="M 109.660547 315.044245
L 135.382804 -1 L 109.673996 -1
M 186.686683 -1 M 162.266917 -1
L 186.900269 433 L 162.48587 433
M 237.436257 433 M 214.291606 433
L 238.206235 196.460547 L 215.08093 196.460547
L 239.121672 -1 L 216.019368 -1
M 287.411457 -1 M 265.522465 -1
L 289.62451 137.168698 L 267.791122 137.168698
L 294.766337 387.203355 L 273.062141 387.203355
L 296.115964 433 L 274.445678 433
M 333.509615 433 M 312.778868 433
L 335.900957 392.996073 L 315.230294 392.996073
L 341.042785 315.044246 L 320.501313 315.044246
L 346.184612 251.088141 L 325.772332 251.088141
L 351.32644 204.582511 L 331.043352 204.582511
L 356.468267 176.733454 L 336.314371 176.733454
L 361.610095 166.848943 L 341.58539 166.848943
L 366.751922 172.761168 L 346.856409 172.761168
L 371.89375 191.276406 L 352.127428 191.276406
L 377.035578 218.615656 L 357.398447 218.615656
L 382.177405 250.817387 L 362.669466 250.817387
L 387.319233 284.081855 L 367.940486 284.081855
L 392.46106 315.044252 L 373.211505 315.044252
L 397.602888 340.970745 L 378.482524 340.970745
L 402.744715 359.87753 L 383.753543 359.87753
L 407.886543 370.577848 L 389.024562 370.577848
L 413.02837 372.665548 L 394.295581 372.665548
L 418.170198 366.446148 L 399.566601 366.446148
L 423.312025 352.828259 L 404.83762 352.828259
L 428.453853 333.18795 L 410.108639 333.18795
L 433.59568 309.219011 L 415.379658 309.219011
L 438.737508 282.780607 L 420.650677 282.780607
L 443.879335 255.752413 L 425.921696 255.752413
L 449.021163 229.905512 L 431.192716 229.905512
L 454.16299 206.795145 L 436.463735 206.795145
L 459.304818 187.679345 L 441.734754 187.679345
L 464.446645 173.46544 L 447.005773 173.46544
L 469.588473 164.684721 L 452.276792 164.684721
L 474.7303 161.492963 L 457.547811 161.492963
L 479.872128 163.694926 L 462.81883 163.694926
L 485.013955 170.788134 L 468.08985 170.788134
L 490.155783 182.020822 L 473.360869 182.020822
L 495.29761 196.460599 L 478.631888 196.460599
L 500.439438 213.066959 L 483.902907 213.066959
L 510.723093 248.506117 L 494.444945 248.506117
L 515.86492 265.343106 L 499.715965 265.343106
L 521.006748 280.463426 L 504.986984 280.463426
L 526.148575 293.231509 L 510.258003 293.231509
L 531.290403 303.209293 L 515.529022 303.209293
L 536.43223 310.163908 L 520.800041 310.163908
L 541.574058 314.060692 L 526.07106 314.060692
L 546.715885 315.044325 L 531.34208 315.044325
L 551.857713 313.411752 L 536.613099 313.411752
L 556.99954 309.57556 L 541.884118 309.57556
L 562.141368 304.023614 L 547.155137 304.023614
L 567.283195 297.276174 L 552.426156 297.276174
L 572.425023 289.847603 L 557.697175 289.847603
L 582.708678 274.741298 L 568.239214 274.741298
L 587.850506 267.747853 L 573.510233 267.747853
L 592.992333 261.398104 L 578.781252 261.398104
L 598.134161 255.752733 L 584.052271 255.752733
L 603.275988 250.75182 L 589.32329 250.75182
L 608.417816 246.234563 L 594.594309 246.234563
L 618.701471 237.652287 L 605.136348 237.652287
L 623.843298 232.987147 L 610.407367 232.987147
L 628.985126 227.678117 L 615.678386 227.678117
L 634.126953 221.484195 L 620.949405 221.484195
L 639.268781 214.229513 L 626.220424 214.229513
L 644.410608 205.870057 L 631.491444 205.870057
L 649.552436 196.453574 L 636.762463 196.453574
L 654.694263 186.201557 L 642.033482 186.201557
L 664.977918 164.580118 L 652.57552 164.580118
L 670.119746 154.23077 L 657.846539 154.23077
L 675.261573 145.000524 L 663.117558 145.000524
L 680.403401 137.53044 L 668.388578 137.53044
L 685.545228 132.496053 L 673.659597 132.496053
L 690.687056 130.461254 L 678.930616 130.461254
L 695.828883 131.907802 L 684.201635 131.907802
L 700.970711 137.164402 L 689.472654 137.164402
L 706.112538 146.363187 L 694.743673 146.363187
L 711.254366 159.397372 L 700.014693 159.397372
L 716.396193 175.959798 L 705.285712 175.959798
L 721.538021 195.418359 L 710.556731 195.418359
L 726.679848 216.973627 L 715.82775 216.973627
L 736.963503 261.994224 L 726.369788 261.994224
L 742.105331 282.946782 L 731.640808 282.946782
L 747.247158 301.065177 L 736.911827 301.065177
L 752.388986 315.013838 L 742.182846 315.013838
L 757.530813 323.687163 L 747.453865 323.687163
L 762.672641 326.130637 L 752.724884 326.130637
L 767.814468 321.674906 L 757.995903 321.674906
L 772.956296 310.142339 L 763.266923 310.142339
L 778.098123 291.617748 L 768.537942 291.617748
L 783.239951 267.021851 L 773.808961 267.021851
L 788.381778 237.337634 L 779.07998 237.337634
L 793.523606 204.368808 L 784.350999 204.368808
L 798.665434 170.192263 L 789.622018 170.192263
L 803.807261 137.167873 L 794.893037 137.167873
L 808.949089 107.897003 L 800.164057 107.897003
L 814.090916 85.065773 L 805.435076 85.065773
L 819.232744 71.21755 L 810.706095 71.21755
L 824.374571 68.534009 L 815.977114 68.534009
L 829.516399 78.583246 L 821.248133 78.583246
L 834.658226 102.114305 L 826.519152 102.114305
L 839.800054 139.336794 L 831.790172 139.336794
L 844.941881 188.75357 L 837.061191 188.75357
L 850.083709 248.770234 L 842.33221 248.770234
L 855.225536 315.082692 L 847.603229 315.082692
L 860.367364 383.752892 L 852.874248 383.752892
L 864.23882 433 L 856.842977 433
M 896.727017 433 M 890.147461 433
L 901.501984 333.276518 L 895.042401 333.276518
L 906.643811 196.327155 L 900.313421 196.327155
L 912.915109 -1 L 906.742288 -1
M 956.043477 -1 M 950.954284 -1
L 958.062086 137.679047 L 953.023612 137.679047
L 961.390493 433 L 956.435648 433
M 1008.676191 433 M 1004.909428 433
L 1009.480362 196.274792 L 1005.733804 196.274792
L 1009.952453 -1 L 1006.217756 -1
M 1060.747328 -1 M 1058.288885 -1
L 1060.932945 433 L 1058.479165 433
M 1112.311336 433 M 1111.148471 433
L 1112.321146 -1 L 1111.158528 -1
L 1112.321146 -1 L 1111.158528 -1
" clip-path="url(#p5d16156bca)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #ff7f0e; stroke-width: 1.5"/> " clip-path="url(#p6bfb98ea7b)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #ff7f0e; stroke-width: 1.5"/>
</g> </g>
<g id="patch_3"> <g id="patch_3">
<path d="M 57.213906 374.336094 <path d="M 57.213906 374.336094
@ -1020,7 +1020,7 @@ z
</g> </g>
<g id="PathCollection_2"> <g id="PathCollection_2">
<g> <g>
<use xlink:href="#m0f5ac4a85e" x="503.194531" y="61.792031" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/> <use xlink:href="#m805d4e7abe" x="503.194531" y="61.792031" style="fill: #ffa500; fill-opacity: 0.5; stroke: #ffa500; stroke-opacity: 0.5"/>
</g> </g>
</g> </g>
<g id="text_20"> <g id="text_20">
@ -1290,7 +1290,7 @@ z
</g> </g>
</g> </g>
<defs> <defs>
<clipPath id="p5d16156bca"> <clipPath id="p6bfb98ea7b">
<rect x="57.213906" y="18.585" width="1153.826094" height="355.751094"/> <rect x="57.213906" y="18.585" width="1153.826094" height="355.751094"/>
</clipPath> </clipPath>
</defs> </defs>

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Before After
Before After

View file

@ -26,7 +26,7 @@ This principle provide a mathematically proovable way for each task to determine
= Polynomials = Polynomials
Contrary to popular beliefs, polynomials are not boring. Contrary to popular beliefs, polynomials are not boring.
Let us consider a problem with four tasks $(t_0,t_1,t_2,t_3)$ and a schedule array of 20 time period Let us consider a problem with four tasks $(t_0,t_1,t_2,t_3)$ and a schedule array of 20 time periods
$ $
A = [0,1,2,3,0,0,1,2,0,1,2,3,0,3,0,2,3,2,0,1] A = [0,1,2,3,0,0,1,2,0,1,2,3,0,3,0,2,3,2,0,1]
$ $
@ -34,4 +34,28 @@ $
#figure( #figure(
image("images/polyfit.svg", width:100%), image("images/polyfit.svg", width:100%),
caption: "Scheduling function defined as a polynomial fit of the scheduling array." caption: "Scheduling function defined as a polynomial fit of the scheduling array."
) )<fig-polyfit>
== Clock Sensitivity
In order for every task to know when they can transmit, they all need to evaluate the scheduling function at the same times.
In the real world, that could be very difficult as the clock of each task can drift over time.
Some people suggested to use atomic clock chips as the RTC of clock so that, after a syncronisation phase, all timings across tasks would remain exact #footnote[Atomic clocks drift is estimated at one second per hunred million year (Wikipedia).].
However, I suspect that the person proposing this solution have atomic clock in their office drawer and don't think of us, mere students, that do not have 6k to invest in a fancy clock.
This raises the question; How sensitive is a scheduling function to clock imprecision?
After all, the function is exact on the start of the period but has no constraint during the period.
We define the clock sensitivity of a scheduling function $"cs"(s)$ as the maximum time delta around any period start without an incorrect task decision.
$
"cs"(s) = max_(delta t)(s(tau_i plus.minus delta t) = A[tau_i]; forall tau_i)
$
Let us consider again the example displayed in @fig-polyfit.
As the degree of the polynomial grows to perfectly fit the schedul, extreme variations appear during the periods.
These extreme variations induce high derivative of the function at the sampling time that makes the clock sensitivity very small.
== Problems with Polynomials
A single polynomial fitted to the schedul does not seem like a good approach as it require a very precise clock to obtain the correct values.
Moreover, storing the polynomial coefficient for the function requires at least as much memory as storing the schedule itself.
Finally, evaluating the function is more computation-intensive than looking up a value in a table.
= Regression, imprefect fit, and flatten scheduling array.