\(\newcommand{\footnotename}{footnote}\) \(\def \LWRfootnote {1}\) \(\newcommand {\footnote }[2][\LWRfootnote ]{{}^{\mathrm {#1}}}\) \(\newcommand {\footnotemark }[1][\LWRfootnote ]{{}^{\mathrm {#1}}}\) \(\let \LWRorighspace \hspace \) \(\renewcommand {\hspace }{\ifstar \LWRorighspace \LWRorighspace }\) \(\newcommand {\TextOrMath }[2]{#2}\) \(\newcommand {\mathnormal }[1]{{#1}}\) \(\newcommand \ensuremath [1]{#1}\) \(\newcommand {\LWRframebox }[2][]{\fbox {#2}} \newcommand {\framebox }[1][]{\LWRframebox } \) \(\newcommand {\setlength }[2]{}\) \(\newcommand {\addtolength }[2]{}\) \(\newcommand {\setcounter }[2]{}\) \(\newcommand {\addtocounter }[2]{}\) \(\newcommand {\arabic }[1]{}\) \(\newcommand {\number }[1]{}\) \(\newcommand {\noalign }[1]{\text {#1}\notag \\}\) \(\newcommand {\cline }[1]{}\) \(\newcommand {\directlua }[1]{\text {(directlua)}}\) \(\newcommand {\luatexdirectlua }[1]{\text {(directlua)}}\) \(\newcommand {\protect }{}\) \(\def \LWRabsorbnumber #1 {}\) \(\def \LWRabsorbquotenumber "#1 {}\) \(\newcommand {\LWRabsorboption }[1][]{}\) \(\newcommand {\LWRabsorbtwooptions }[1][]{\LWRabsorboption }\) \(\def \mathchar {\ifnextchar "\LWRabsorbquotenumber \LWRabsorbnumber }\) \(\def \mathcode #1={\mathchar }\) \(\let \delcode \mathcode \) \(\let \delimiter \mathchar \) \(\def \oe {\unicode {x0153}}\) \(\def \OE {\unicode {x0152}}\) \(\def \ae {\unicode {x00E6}}\) \(\def \AE {\unicode {x00C6}}\) \(\def \aa {\unicode {x00E5}}\) \(\def \AA {\unicode {x00C5}}\) \(\def \o {\unicode {x00F8}}\) \(\def \O {\unicode {x00D8}}\) \(\def \l {\unicode {x0142}}\) \(\def \L {\unicode {x0141}}\) \(\def \ss {\unicode {x00DF}}\) \(\def \SS {\unicode {x1E9E}}\) \(\def \dag {\unicode {x2020}}\) \(\def \ddag {\unicode {x2021}}\) \(\def \P {\unicode {x00B6}}\) \(\def \copyright {\unicode {x00A9}}\) \(\def \pounds {\unicode {x00A3}}\) \(\let \LWRref \ref \) \(\renewcommand {\ref }{\ifstar \LWRref \LWRref }\) \( \newcommand {\multicolumn }[3]{#3}\) \(\require {textcomp}\) \(\newcommand {\intertext }[1]{\text {#1}\notag \\}\) \(\let \Hat \hat \) \(\let \Check \check \) \(\let \Tilde \tilde \) \(\let \Acute \acute \) \(\let \Grave \grave \) \(\let \Dot \dot \) \(\let \Ddot \ddot \) \(\let \Breve \breve \) \(\let \Bar \bar \) \(\let \Vec \vec \) \(\renewcommand {\vec }{\boldsymbol }\) \(\newcommand {\Edge }{\ensuremath {\,\textemdash \,}}\) \(\newcommand \Const [1]{\text {\textsf {#1}}}\) \(\DeclareMathOperator {\lerp }{lerp}\) \(\DeclareMathOperator {\bitlen }{bitlen}\) \(\DeclareMathOperator {\sign }{sign}\) \(\newcommand {\I }{\mathrm {i}}\) \(\newcommand \AND {\mathbin {\&}}\) \(\newcommand \OR {\mathbin {|}}\) \(\newcommand \XOR {\mathbin {{}^{\wedge }}}\) \(\newcommand \shl {\ll }\) \(\newcommand \shr {\ggg }\) \(\newcommand \asr {\gg }\) \(\newcommand \NOT {\ensuremath {\mathord {\sim }}}\) \(\newcommand {\isep }{\mathrel {{.}\,{.}}}\) \(\newcommand {\Id }[1]{\mathit {#1}}\) \(\newcommand {\const }[1]{\mathsf {#1}}\) \(\newcommand {\algorithmname }[1]{\text {\textsc {#1}}}\) \(\newcommand {\bits }[1]{\text {#1}}\) \(\newcommand {\hexa }[1]{\mathtt {0x#1}}\) \(\newcommand {\num }[1]{#1}\) \(\newcommand {\qed }{\quad \square }\) \(\newcommand {\idiv }[2]{\lfloor #1/#2\rfloor }\) \(\newcommand \attribdot {\ensuremath {\mkern 1.5mu.\mkern 1.5mu}}\) \(\newcommand \attribxr [2]{#1\attribdot \text {#2}}\) \(\newcommand \attribir [2]{\Id {#1}\attribdot \text {#2}}\) \(\newcommand \attribii [2]{\Id {#1}\attribdot \Id {#2}}\) \(\newcommand \textsc [1]{#1}\) \(\require {colortbl}\) \(\let \LWRorigcolumncolor \columncolor \) \(\renewcommand {\columncolor }[2][named]{\LWRorigcolumncolor [#1]{#2}\LWRabsorbtwooptions }\) \(\let \LWRorigrowcolor \rowcolor \) \(\renewcommand {\rowcolor }[2][named]{\LWRorigrowcolor [#1]{#2}\LWRabsorbtwooptions }\) \(\let \LWRorigcellcolor \cellcolor \) \(\renewcommand {\cellcolor }[2][named]{\LWRorigcellcolor [#1]{#2}\LWRabsorbtwooptions }\) \(\newcommand {\tcbset }[1]{}\) \(\newcommand {\tcbsetforeverylayer }[1]{}\) \(\newcommand {\tcbox }[2][]{\boxed {\text {#2}}}\) \(\newcommand {\tcboxfit }[2][]{\boxed {#2}}\) \(\newcommand {\tcblower }{}\) \(\newcommand {\tcbline }{}\) \(\newcommand {\tcbtitle }{}\) \(\newcommand {\tcbsubtitle [2][]{\mathrm {#2}}}\) \(\newcommand {\tcboxmath }[2][]{\boxed {#2}}\) \(\newcommand {\tcbhighmath }[2][]{\boxed {#2}}\) \(\newcommand {\toprule }[1][]{\hline }\) \(\let \midrule \toprule \) \(\let \bottomrule \toprule \) \(\def \LWRbooktabscmidruleparen (#1)#2{}\) \(\newcommand {\LWRbooktabscmidrulenoparen }[1]{}\) \(\newcommand {\cmidrule }[1][]{\ifnextchar (\LWRbooktabscmidruleparen \LWRbooktabscmidrulenoparen }\) \(\newcommand {\morecmidrules }{}\) \(\newcommand {\specialrule }[3]{\hline }\) \(\newcommand {\addlinespace }[1][]{}\) \(\newcommand {\LWRsubmultirow }[2][]{#2}\) \(\newcommand {\LWRmultirow }[2][]{\LWRsubmultirow }\) \(\newcommand {\multirow }[2][]{\LWRmultirow }\) \(\newcommand {\mrowcell }{}\) \(\newcommand {\mcolrowcell }{}\) \(\newcommand {\STneed }[1]{}\) \(\newcommand {\LWRldelimtwo }[1][]{\text {#1}~\LWRbigdelim }\) \(\newcommand {\LWRldelimone }[2][]{\LWRldelimtwo }\) \(\def \ldelim #1#2{\def \LWRbigdelim {#1}\LWRldelimone }\) \(\newcommand {\LWRrdelimtwo }[1][]{\LWRbigdelim ~\text {#1}}\) \(\newcommand {\LWRrdelimone }[2][]{\LWRrdelimtwo }\) \(\def \rdelim #1#2{\def \LWRbigdelim {#1}\LWRrdelimone }\) \(\let \symnormal \mathit \) \(\let \symliteral \mathrm \) \(\let \symbb \mathbb \) \(\let \symbbit \mathbb \) \(\let \symcal \mathcal \) \(\let \symscr \mathscr \) \(\let \symfrak \mathfrak \) \(\let \symsfup \mathsf \) \(\let \symsfit \mathit \) \(\let \symbfsf \mathbf \) \(\let \symbfup \mathbf \) \(\newcommand {\symbfit }[1]{\boldsymbol {#1}}\) \(\let \symbfcal \mathcal \) \(\let \symbfscr \mathscr \) \(\let \symbffrak \mathfrak \) \(\let \symbfsfup \mathbf \) \(\newcommand {\symbfsfit }[1]{\boldsymbol {#1}}\) \(\let \symup \mathrm \) \(\let \symbf \mathbf \) \(\let \symit \mathit \) \(\let \symsf \symsfit \) \(\let \symtt \mathtt \) \(\let \symbffrac \mathbffrac \) \(\newcommand {\mathfence }[1]{\mathord {#1}}\) \(\newcommand {\mathover }[1]{#1}\) \(\newcommand {\mathunder }[1]{#1}\) \(\newcommand {\mathaccent }[1]{#1}\) \(\newcommand {\mathbotaccent }[1]{#1}\) \(\newcommand {\mathalpha }[1]{\mathord {#1}}\) \(\def\Alpha{\unicode{x1D6E2}}\) \(\def\Beta{\unicode{x1D6E3}}\) \(\def\Gamma{\unicode{x1D6E4}}\) \(\def\Digamma{\mathit{\unicode{x03DC}}}\) \(\def\Delta{\unicode{x1D6E5}}\) \(\def\Epsilon{\unicode{x1D6E6}}\) \(\def\Zeta{\unicode{x1D6E7}}\) \(\def\Eta{\unicode{x1D6E8}}\) \(\def\Theta{\unicode{x1D6E9}}\) \(\def\Vartheta{\unicode{x1D6F3}}\) \(\def\Iota{\unicode{x1D6EA}}\) \(\def\Kappa{\unicode{x1D6EB}}\) \(\def\Lambda{\unicode{x1D6EC}}\) \(\def\Mu{\unicode{x1D6ED}}\) \(\def\Nu{\unicode{x1D6EE}}\) \(\def\Xi{\unicode{x1D6EF}}\) \(\def\Omicron{\unicode{x1D6F0}}\) \(\def\Pi{\unicode{x1D6F1}}\) \(\def\Rho{\unicode{x1D6F2}}\) \(\def\Sigma{\unicode{x1D6F4}}\) \(\def\Tau{\unicode{x1D6F5}}\) \(\def\Upsilon{\unicode{x1D6F6}}\) \(\def\Phi{\unicode{x1D6F7}}\) \(\def\Chi{\unicode{x1D6F8}}\) \(\def\Psi{\unicode{x1D6F9}}\) \(\def\Omega{\unicode{x1D6FA}}\) \(\def\alpha{\unicode{x1D6FC}}\) \(\def\beta{\unicode{x1D6FD}}\) \(\def\varbeta{\unicode{x03D0}}\) \(\def\gamma{\unicode{x1D6FE}}\) \(\def\digamma{\mathit{\unicode{x03DD}}}\) \(\def\delta{\unicode{x1D6FF}}\) \(\def\epsilon{\unicode{x1D716}}\) \(\def\varepsilon{\unicode{x1D700}}\) \(\def\zeta{\unicode{x1D701}}\) \(\def\eta{\unicode{x1D702}}\) \(\def\theta{\unicode{x1D703}}\) \(\def\vartheta{\unicode{x1D717}}\) \(\def\iota{\unicode{x1D704}}\) \(\def\kappa{\unicode{x1D705}}\) \(\def\varkappa{\unicode{x1D718}}\) \(\def\lambda{\unicode{x1D706}}\) \(\def\mu{\unicode{x1D707}}\) \(\def\nu{\unicode{x1D708}}\) \(\def\xi{\unicode{x1D709}}\) \(\def\omicron{\unicode{x1D70A}}\) \(\def\pi{\unicode{x1D70B}}\) \(\def\varpi{\unicode{x1D71B}}\) \(\def\rho{\unicode{x1D70C}}\) \(\def\varrho{\unicode{x1D71A}}\) \(\def\sigma{\unicode{x1D70E}}\) \(\def\varsigma{\unicode{x1D70D}}\) \(\def\tau{\unicode{x1D70F}}\) \(\def\upsilon{\unicode{x1D710}}\) \(\def\phi{\unicode{x1D719}}\) \(\def\varphi{\unicode{x1D711}}\) \(\def\chi{\unicode{x1D712}}\) \(\def\psi{\unicode{x1D713}}\) \(\def\omega{\unicode{x1D714}}\) \(\def\upAlpha{\unicode{x0391}}\) \(\def\upBeta{\unicode{x0392}}\) \(\def\upGamma{\unicode{x0393}}\) \(\def\upDigamma{\unicode{x03DC}}\) \(\def\upDelta{\unicode{x0394}}\) \(\def\upEpsilon{\unicode{x0395}}\) \(\def\upZeta{\unicode{x0396}}\) \(\def\upEta{\unicode{x0397}}\) \(\def\upTheta{\unicode{x0398}}\) \(\def\upVartheta{\unicode{x03F4}}\) \(\def\upIota{\unicode{x0399}}\) \(\def\upKappa{\unicode{x039A}}\) \(\def\upLambda{\unicode{x039B}}\) \(\def\upMu{\unicode{x039C}}\) \(\def\upNu{\unicode{x039D}}\) \(\def\upXi{\unicode{x039E}}\) \(\def\upOmicron{\unicode{x039F}}\) \(\def\upPi{\unicode{x03A0}}\) \(\def\upVarpi{\unicode{x03D6}}\) \(\def\upRho{\unicode{x03A1}}\) \(\def\upSigma{\unicode{x03A3}}\) \(\def\upTau{\unicode{x03A4}}\) \(\def\upUpsilon{\unicode{x03A5}}\) \(\def\upPhi{\unicode{x03A6}}\) \(\def\upChi{\unicode{x03A7}}\) \(\def\upPsi{\unicode{x03A8}}\) \(\def\upOmega{\unicode{x03A9}}\) \(\def\itAlpha{\unicode{x1D6E2}}\) \(\def\itBeta{\unicode{x1D6E3}}\) \(\def\itGamma{\unicode{x1D6E4}}\) \(\def\itDigamma{\mathit{\unicode{x03DC}}}\) \(\def\itDelta{\unicode{x1D6E5}}\) \(\def\itEpsilon{\unicode{x1D6E6}}\) \(\def\itZeta{\unicode{x1D6E7}}\) \(\def\itEta{\unicode{x1D6E8}}\) \(\def\itTheta{\unicode{x1D6E9}}\) \(\def\itVartheta{\unicode{x1D6F3}}\) \(\def\itIota{\unicode{x1D6EA}}\) \(\def\itKappa{\unicode{x1D6EB}}\) \(\def\itLambda{\unicode{x1D6EC}}\) \(\def\itMu{\unicode{x1D6ED}}\) \(\def\itNu{\unicode{x1D6EE}}\) \(\def\itXi{\unicode{x1D6EF}}\) \(\def\itOmicron{\unicode{x1D6F0}}\) \(\def\itPi{\unicode{x1D6F1}}\) \(\def\itRho{\unicode{x1D6F2}}\) \(\def\itSigma{\unicode{x1D6F4}}\) \(\def\itTau{\unicode{x1D6F5}}\) \(\def\itUpsilon{\unicode{x1D6F6}}\) \(\def\itPhi{\unicode{x1D6F7}}\) \(\def\itChi{\unicode{x1D6F8}}\) \(\def\itPsi{\unicode{x1D6F9}}\) \(\def\itOmega{\unicode{x1D6FA}}\) \(\def\upalpha{\unicode{x03B1}}\) \(\def\upbeta{\unicode{x03B2}}\) \(\def\upvarbeta{\unicode{x03D0}}\) \(\def\upgamma{\unicode{x03B3}}\) \(\def\updigamma{\unicode{x03DD}}\) \(\def\updelta{\unicode{x03B4}}\) \(\def\upepsilon{\unicode{x03F5}}\) \(\def\upvarepsilon{\unicode{x03B5}}\) \(\def\upzeta{\unicode{x03B6}}\) \(\def\upeta{\unicode{x03B7}}\) \(\def\uptheta{\unicode{x03B8}}\) \(\def\upvartheta{\unicode{x03D1}}\) \(\def\upiota{\unicode{x03B9}}\) \(\def\upkappa{\unicode{x03BA}}\) \(\def\upvarkappa{\unicode{x03F0}}\) \(\def\uplambda{\unicode{x03BB}}\) \(\def\upmu{\unicode{x03BC}}\) \(\def\upnu{\unicode{x03BD}}\) \(\def\upxi{\unicode{x03BE}}\) \(\def\upomicron{\unicode{x03BF}}\) \(\def\uppi{\unicode{x03C0}}\) \(\def\upvarpi{\unicode{x03D6}}\) \(\def\uprho{\unicode{x03C1}}\) \(\def\upvarrho{\unicode{x03F1}}\) \(\def\upsigma{\unicode{x03C3}}\) \(\def\upvarsigma{\unicode{x03C2}}\) \(\def\uptau{\unicode{x03C4}}\) \(\def\upupsilon{\unicode{x03C5}}\) \(\def\upphi{\unicode{x03D5}}\) \(\def\upvarphi{\unicode{x03C6}}\) \(\def\upchi{\unicode{x03C7}}\) \(\def\uppsi{\unicode{x03C8}}\) \(\def\upomega{\unicode{x03C9}}\) \(\def\italpha{\unicode{x1D6FC}}\) \(\def\itbeta{\unicode{x1D6FD}}\) \(\def\itvarbeta{\unicode{x03D0}}\) \(\def\itgamma{\unicode{x1D6FE}}\) \(\def\itdigamma{\mathit{\unicode{x03DD}}}\) \(\def\itdelta{\unicode{x1D6FF}}\) \(\def\itepsilon{\unicode{x1D716}}\) \(\def\itvarepsilon{\unicode{x1D700}}\) \(\def\itzeta{\unicode{x1D701}}\) \(\def\iteta{\unicode{x1D702}}\) \(\def\ittheta{\unicode{x1D703}}\) \(\def\itvartheta{\unicode{x1D717}}\) \(\def\itiota{\unicode{x1D704}}\) \(\def\itkappa{\unicode{x1D705}}\) \(\def\itvarkappa{\unicode{x1D718}}\) \(\def\itlambda{\unicode{x1D706}}\) \(\def\itmu{\unicode{x1D707}}\) \(\def\itnu{\unicode{x1D708}}\) \(\def\itxi{\unicode{x1D709}}\) \(\def\itomicron{\unicode{x1D70A}}\) \(\def\itpi{\unicode{x1D70B}}\) \(\def\itvarpi{\unicode{x1D71B}}\) \(\def\itrho{\unicode{x1D70C}}\) \(\def\itvarrho{\unicode{x1D71A}}\) \(\def\itsigma{\unicode{x1D70E}}\) \(\def\itvarsigma{\unicode{x1D70D}}\) \(\def\ittau{\unicode{x1D70F}}\) \(\def\itupsilon{\unicode{x1D710}}\) \(\def\itphi{\unicode{x1D719}}\) \(\def\itvarphi{\unicode{x1D711}}\) \(\def\itchi{\unicode{x1D712}}\) \(\def\itpsi{\unicode{x1D713}}\) \(\def\itomega{\unicode{x1D714}}\) \(\let \lparen (\) \(\let \rparen )\) \(\newcommand {\cuberoot }[1]{\,{}^3\!\!\sqrt {#1}}\,\) \(\newcommand {\fourthroot }[1]{\,{}^4\!\!\sqrt {#1}}\,\) \(\newcommand {\longdivision }[1]{\mathord {\unicode {x027CC}#1}}\) \(\newcommand {\mathcomma }{,}\) \(\newcommand {\mathcolon }{:}\) \(\newcommand {\mathsemicolon }{;}\) \(\newcommand {\overbracket }[1]{\mathinner {\overline {\ulcorner {#1}\urcorner }}}\) \(\newcommand {\underbracket }[1]{\mathinner {\underline {\llcorner {#1}\lrcorner }}}\) \(\newcommand {\overbar }[1]{\mathord {#1\unicode {x00305}}}\) \(\newcommand {\ovhook }[1]{\mathord {#1\unicode {x00309}}}\) \(\newcommand {\ocirc }[1]{\mathord {#1\unicode {x0030A}}}\) \(\newcommand {\candra }[1]{\mathord {#1\unicode {x00310}}}\) \(\newcommand {\oturnedcomma }[1]{\mathord {#1\unicode {x00312}}}\) \(\newcommand {\ocommatopright }[1]{\mathord {#1\unicode {x00315}}}\) \(\newcommand {\droang }[1]{\mathord {#1\unicode {x0031A}}}\) \(\newcommand {\leftharpoonaccent }[1]{\mathord {#1\unicode {x020D0}}}\) \(\newcommand {\rightharpoonaccent }[1]{\mathord {#1\unicode {x020D1}}}\) \(\newcommand {\vertoverlay }[1]{\mathord {#1\unicode {x020D2}}}\) \(\newcommand {\leftarrowaccent }[1]{\mathord {#1\unicode {x020D0}}}\) \(\newcommand {\annuity }[1]{\mathord {#1\unicode {x020E7}}}\) \(\newcommand {\widebridgeabove }[1]{\mathord {#1\unicode {x020E9}}}\) \(\newcommand {\asteraccent }[1]{\mathord {#1\unicode {x020F0}}}\) \(\newcommand {\threeunderdot }[1]{\mathord {#1\unicode {x020E8}}}\) \(\newcommand {\Bbbsum }{\mathop {\unicode {x2140}}\limits }\) \(\newcommand {\oiint }{\mathop {\unicode {x222F}}\limits }\) \(\newcommand {\oiiint }{\mathop {\unicode {x2230}}\limits }\) \(\newcommand {\intclockwise }{\mathop {\unicode {x2231}}\limits }\) \(\newcommand {\ointclockwise }{\mathop {\unicode {x2232}}\limits }\) \(\newcommand {\ointctrclockwise }{\mathop {\unicode {x2233}}\limits }\) \(\newcommand {\varointclockwise }{\mathop {\unicode {x2232}}\limits }\) \(\newcommand {\leftouterjoin }{\mathop {\unicode {x27D5}}\limits }\) \(\newcommand {\rightouterjoin }{\mathop {\unicode {x27D6}}\limits }\) \(\newcommand {\fullouterjoin }{\mathop {\unicode {x27D7}}\limits }\) \(\newcommand {\bigbot }{\mathop {\unicode {x27D8}}\limits }\) \(\newcommand {\bigtop }{\mathop {\unicode {x27D9}}\limits }\) \(\newcommand {\xsol }{\mathop {\unicode {x29F8}}\limits }\) \(\newcommand {\xbsol }{\mathop {\unicode {x29F9}}\limits }\) \(\newcommand {\bigcupdot }{\mathop {\unicode {x2A03}}\limits }\) \(\newcommand {\bigsqcap }{\mathop {\unicode {x2A05}}\limits }\) \(\newcommand {\conjquant }{\mathop {\unicode {x2A07}}\limits }\) \(\newcommand {\disjquant }{\mathop {\unicode {x2A08}}\limits }\) \(\newcommand {\bigtimes }{\mathop {\unicode {x2A09}}\limits }\) \(\newcommand {\modtwosum }{\mathop {\unicode {x2A0A}}\limits }\) \(\newcommand {\sumint }{\mathop {\unicode {x2A0B}}\limits }\) \(\newcommand {\intbar }{\mathop {\unicode {x2A0D}}\limits }\) \(\newcommand {\intBar }{\mathop {\unicode {x2A0E}}\limits }\) \(\newcommand {\fint }{\mathop {\unicode {x2A0F}}\limits }\) \(\newcommand {\cirfnint }{\mathop {\unicode {x2A10}}\limits }\) \(\newcommand {\awint }{\mathop {\unicode {x2A11}}\limits }\) \(\newcommand {\rppolint }{\mathop {\unicode {x2A12}}\limits }\) \(\newcommand {\scpolint }{\mathop {\unicode {x2A13}}\limits }\) \(\newcommand {\npolint }{\mathop {\unicode {x2A14}}\limits }\) \(\newcommand {\pointint }{\mathop {\unicode {x2A15}}\limits }\) \(\newcommand {\sqint }{\mathop {\unicode {x2A16}}\limits }\) \(\newcommand {\intlarhk }{\mathop {\unicode {x2A17}}\limits }\) \(\newcommand {\intx }{\mathop {\unicode {x2A18}}\limits }\) \(\newcommand {\intcap }{\mathop {\unicode {x2A19}}\limits }\) \(\newcommand {\intcup }{\mathop {\unicode {x2A1A}}\limits }\) \(\newcommand {\upint }{\mathop {\unicode {x2A1B}}\limits }\) \(\newcommand {\lowint }{\mathop {\unicode {x2A1C}}\limits }\) \(\newcommand {\bigtriangleleft }{\mathop {\unicode {x2A1E}}\limits }\) \(\newcommand {\zcmp }{\mathop {\unicode {x2A1F}}\limits }\) \(\newcommand {\zpipe }{\mathop {\unicode {x2A20}}\limits }\) \(\newcommand {\zproject }{\mathop {\unicode {x2A21}}\limits }\) \(\newcommand {\biginterleave }{\mathop {\unicode {x2AFC}}\limits }\) \(\newcommand {\bigtalloblong }{\mathop {\unicode {x2AFF}}\limits }\) \(\newcommand {\arabicmaj }{\mathop {\unicode {x1EEF0}}\limits }\) \(\newcommand {\arabichad }{\mathop {\unicode {x1EEF1}}\limits }\)

Bibliography

  • [1] T. Akenine-Möller et al. Real-Time Rendering. 4th ed. Boca Raton, FL, USA: A K Peters/CRC Press, 2018 (cit. on p. 4.5).

  • [2] J. Alber and R. Niedermeier. “On Multidimensional Curves with Hilbert Property”. In: Theory Comput. Systems 33 (2000), pp. 295–312 (cit. on p. 4.5).

  • [3] M. H. Albert, R. J. Nowakowski, and D. Wolfe. Lessons in Play. Introduction to Combinatorial Game Theory. 2nd ed. CRC Press, 2019 (cit. on p. 6.5).

  • [4] K. Appel and W. Haken. “Every Planar Map is Four Colorable. Part I: Discharging”. In: Illinois J. Math. 21(3) (1977), pp. 429–490 (cit. on p. 7.5).

  • [5] K. Appel, W. Haken, and J. Koch. “Every Planar Map is Four Colorable. Part II: Reducibility”. In: Illinois J. Math. 21(3) (1977), pp. 491–567 (cit. on p. 7.5).

  • [6] J. Arndt and C. Haenel. Pi Unleashed. Springer, 2001 (cit. on p. 11.10).

  • [7] M. D. Atkinson. “The Cyclic Towers of Hanoi”. In: Information Processing Letters 13(3) (Dec. 1981), pp. 118–119 (cit. on p. 3.5).

  • [8] M. Bader. Space-Filling Curves. An Introduction with Applications in Scientific Computing. Springer, 2013 (cit. on p. 4.5).

  • [9] D. H. Bailey et al. “The Quest for Pi”. In: Mathematical Intelligencer 19(1) (Jan. 1997), pp. 50–56 (cit. on p. 11.10).

  • [10] M. Barnsley. Fractals Everywhere. 2nd ed. Academic Press, 2014 (cit. on p. 1.4).

  • [11] J. Beasley. The Delights of Peg Solitaire. 2021. url: http://www.jsbeasley.co.uk/delights.htm (cit. on p. 6.5).

  • [12] G. I. Bell. Notes on Solving and Playing Peg Solitaire on a Computer. 2009. url: https://arxiv.org/abs/0903.3696 (cit. on p. 6.5).

  • [13] T. Bell and D. Kulp. “Longest-Match String Searching for Ziv-Lempel Compression”. In: Software: Practice and Experience 23(7) (July 1993), pp. 757–771 (cit. on p. 10.8).

  • [14] A. Benjamin, G. Chartrand, and P. Zhang. The Fascinating World of Graph Theory. Princeton University Press, 2017 (cit. on p. 7.5).

  • [15] E. R. Berlekamp, J. R. Conway, and R. K. Guy. Winning Ways for your Mathematical Plays. 2nd ed. Vol. 4. CRC Press, 2004 (cit. on p. 6.5).

  • [16] J. F. Blinn. “What Is a Pixel?” In: IEEE Comput. Graph. Appl. 25(5) (Sept. 2005), pp. 82–87 (cit. on p. 2.5).

  • [17] J. Bloch. Effective Java. 3rd ed. Addison-Wesley Professional, Dec. 2017 (cit. on p. B.3).

  • [18] P. Bourke. Fractals, Chaos, Self-Similarity. url: http://paulbourke.net/fractals/ (visited on 02/03/2026) (cit. on p. 2.5).

  • [19] C. L. Bouton. “Nim, a Game with a Complete Mathematical Theory”. In: Annals of Mathematics 3(1/4) (1901), pp. 35–39 (cit. on p. 6.5).

  • [20] R. P. Brent and P. Zimmerman. Modern Computer Arithmetic. Cambridge Monographs on Applied and Computational Mathematics. Cambridge University Press, 2010 (cit. on p. 11.10).

  • [21] C. Browne. “Bitboard Methods for Games”. In: ICGA Journal 37(2) (June 2014), pp. 67–84 (cit. on p. 6.5).

  • [22] R. E. Bryant and D. R. O’Hallaron. Computer Systems: A Programmer’s Perspective. 3rd ed. Pearson, 2015 (cit. on pp. 5.7, 10.2).

  • [23] T. C. Chen and I. T. Ho. “Storage-Efficient Representation of Decimal Data”. In: CACM 18(1) (Jan. 1975), pp. 49–52 (cit. on p. C).

  • [24] S. A. Cook. “On the Minimum Computation Time of Functions”. PhD thesis. Harvard University, Dept. of Mathematics, 1966 (cit. on p. 11.10).

  • [25] T. H. Cormen et al. Introduction to Algorithms. 4th ed. MIT Press, 2022 (cit. on pp. 7.5, 8.8, 11.4, 11.9).

  • [26] M. Cowlishaw. “Densely Packed Decimal Encoding”. In: IEE Proceedings – Computers and Digital Techniques 149(3) (May 2002), pp. 102–104 (cit. on p. C).

  • [27] J. Culberson. Sokoban is PSPACE-Complete. Tech. rep. TR97-02. University of Alberta, 1997 (cit. on p. 8.8).

  • [28] L. P. Deutsch. DEFLATE Compressed Data Format Specification. RFC 1951. Version 1.3. May 1996. url: https://www.ietf.org/rfc/rfc1951.txt (cit. on p. 10.8).

  • [29] A. K. Dewdney. “Computer Recreations. A Computer Microscope Zooms In for a Look at the Most Complex Object in Mathematics”. In: Scientific American (Aug. 1985), pp. 16–24 (cit. on p. 2.5).

  • [30] E. W. Dijkstra. “A Note on Two Problems in Connexion with Graphs”. In: Numerische Mathematik 1 (1959), pp. 269–271 (cit. on p. 8.8).

  • [31] S. Draves and E. Reckase. The Fractal Flame Algorithm. 2008. url: https://flam3.com/flame_draves.pdf (visited on 02/03/2026) (cit. on p. 1.4).

  • [32] J. Duda et al. “The Use of Asymmetric Numeral Systems as an Accurate Replacement for Huffman coding”. In: 2015 Picture Coding Symposium (PCS). 2015, pp. 65–69 (cit. on p. 9.6).

  • [33] L. Euler. “Solutio problematis ad geometriam situs pertinentis”. In: Commentarii Academiae Scientiarum Imperialis Petropolitanae 8 (1741), pp. 128–140 (cit. on p. 7.5).

  • [34] G. Farin. “A History of Curves and Surfaces in CAGD”. In: Handbook of Computer Aided Geometric Design. Ed. by G. Farin, J. Hoschek, and M.-S. Kim. Elsevier, 2002, pp. 1–22 (cit. on p. 4.5).

  • [35] G. Farin. Curves and Surfaces for CAGD. A Practical Guide. 5th ed. Morgan Kaufmann, 2002 (cit. on p. 4.5).

  • [36] F. A. Farris. Creating Symmetry. The Artful Mathematics of Wallpaper Patterns. Princeton, NJ, USA: Princeton University Press, 2015 (cit. on p. 4.4).

  • [37] G. Flegg. Numbers: Their History and Meaning. Dover, 2002 (cit. on p. 11.10).

  • [38] E. Gamma et al. Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994 (cit. on p. 8.2).

  • [39] M. Gardner. “Bouncing Balls in Polygons and Polyhedrons”. In: Martin Gardner’s 6th Book of Mathematical Diversions. University of Chicago Press, 1983. Chap. 4, pp. 29–38 (cit. on p. 7.5).

  • [40] M. Gardner. “Peg Solitaire”. In: The Unexpected Hanging and Other Mathematical Diversions. University of Chicago Press, 1991. Chap. 11, pp. 122–135 (cit. on pp. 6, 6.5).

  • [41] M. Gardner. Penrose Tiles to Trapdoor Ciphers. …and the Return of Dr. Matrix. Revised. The Mathematical Association of America, 1997 (cit. on p. 4.5).

  • [42] M. Gardner. “The Fantastic Combinations of John Conway’s New Solitaire Game “Life””. In: Scientific American 223(4) (Oct. 1970), pp. 120–123 (cit. on p. 2.5).

  • [43] C. Gotsman and M. Lindenbaum. “On the Metric Kroperties of Discrete Space-Filling Curves”. In: IEEE Trans. Image Process. 5(5) (May 1996), pp. 794–797 (cit. on p. 4.5).

  • [44] T. Granlund and the GMP development team. GNU MP: The GNU Multiple Precision Arithmetic Library. url: http://gmplib.org/ (cit. on p. 11.10).

  • [45] B. Grünbaum and G. C Shephard. Tilings & Patterns. 2nd ed. Dover, 2016 (cit. on p. 4.5).

  • [46] J. Hadley and D. Singmaster. “Problems to Sharpen the Young”. In: The Mathematical Gazette 76(475) (Mar. 1992), pp. 102–126 (cit. on p. 7.5).

  • [47] P. E. Hart, N. J. Nilsson, and B. Raphael. “A Formal Basis for the Heuristic Determination of Minimum Cost Paths”. In: IEEE Trans. Syst. Sci. Cybern. 4(2) (July 1968), pp. 100–107 (cit. on p. 8.8).

  • [48] D. Harvey and J. Van Der Hoeven. “Integer Multiplication in Time O(n log n)”. In: Ann. of Math. 193(2) (Mar. 2021), pp. 563–617 (cit. on p. 11.10).

  • [49] R. A. Hearn and E. D. Demaine. Games, Puzzles, and Computation. A K Peters, 2009 (cit. on p. 8.8).

  • [50] D. Hilbert. “Ueber die stetige Abbildung einer Linie auf ein Flächenstück”. In: Mathematische Annalen 38 (Sept. 1891), pp. 459–460 (cit. on p. 4.5).

  • [51] A. M. Hinz, S. Klavžar, and C. Petr. The Tower of Hanoi – Myths and Maths. 2nd ed. Cham: Birkhäuser, 2018 (cit. on p. 3.5).

  • [52] J. Hoppe. Light Bulb Jokes. 2012. url: https://home.c-c-g.de/index.php/humor/120-light-bulb-jokes (visited on 02/04/2026) (cit. on p. C).

  • [53] D. A. Huffman. “A Method for the Construction of Minimum-Redundancy Codes”. In: Proceedings of the IRE 40(9) (Sept. 1952), pp. 1098–1101 (cit. on p. 9.6).

  • [54] J. F. Hughes et al. Computer Graphics. Principles and Practice. 3rd ed. Addison-Wesley, 2013 (cit. on p. 3.5).

  • [55] N. Johnston and D. Green. Conway’s Game of Life. Mathematics and Construction. 2022. url: https://conwaylife.com/book/ (visited on 02/05/2026) (cit. on p. 2.5).

  • [56] A. Junghanns. “Pushing the Limits: New Developments in Single-Agent Search”. PhD thesis. University of Alberta, 1999 (cit. on p. 8.8).

  • [57] A. Karatsuba and Y. Ofman. “Multiplication of Many-Digital Numbers by Automatic Computers”. In: Dokl. Akad. Nauk SSSR 145(2) (1962), pp. 293–294 (cit. on p. 11.10).

  • [58] B. W. Kernighan and D. M. Ritchie. The C Programming Language. 2nd ed. Prentice Hall, 1988 (cit. on p. C).

  • [59] E. Klarreich. “Multiplication Hits the Speed Limit”. In: Commun. ACM 63(1) (Dec. 2019), pp. 11–13. url: https://doi.org/10.1145/3371387 (cit. on p. 11.10).

  • [60] D. E. Knuth. The Art of Computer Programming. Seminumerical Algorithms. 3rd ed. Vol. 2. Addison-Wesley, 1997 (cit. on pp. 11.6, 11.10, C).

  • [61] D. E. Knuth. The Art of Computer Programming. Combinatorial Algorithms, Part 1. Vol. 4A. Addison-Wesley, 2011 (cit. on p. 5.7).

  • [62] D. E. Knuth. The Art of Computer Programming. Combinatorial Algorithms, Part 2. Vol. 4B. Addison-Wesley, 2023 (cit. on p. 6.5).

  • [63] D. E. Knuth. The Stanford GraphBase. A Platform for Combinatorial Computing. Addison-Wesley, 1993 (cit. on p. 7.5).

  • [64] D. H. Larkin, S. Sen, and R. E. Tarjan. “A Back-to-Basics Empirical Study of Priority Queues”. In: Proceedings of the Meeting on Algorithm Engineering & Expermiments. Portland, Oregon: Society for Industrial and Applied Mathematics, 2014, pp. 61–72 (cit. on p. 8.8).

  • [65] A. Lempel and J. Ziv. “A Universal Algorithm for Sequential Data Compression”. In: IEEE Transactions on Information Theory 23(3) (May 1977), pp. 337–343 (cit. on p. 10.8).

  • [66] A. Levitin and M. Levitin. Algorithmic Puzzles. Oxford University Press, 2011 (cit. on p. 7.5).

  • [67] D. J. C. MacKay. Information Theory, Inference, and Learning Algorithms. Cambridge University Press, 2003. url: http://www.inference.org.uk/mackay/itila/ (visited on 02/05/2026) (cit. on pp. 9.6, 10.8).

  • [68] B. B. Mandelbrot. The Fractal Geometry of Nature. W. H. Freeman and Co., 1983 (cit. on p. 2.5).

  • [69] S. Marschner and P. Shirley. Fundamentals of Computer Graphics. 5th ed. A K Peters/CRC Press, 2021 (cit. on p. 3.5).

  • [70] A. Moffat. “Huffman Coding”. In: ACM Comput. Surv. 52(4) (2019), 85:1–85:35. url: https://doi.org/10.1145/3342555 (cit. on p. 9.6).

  • [71] J.-M. Muller et al. Handbook of Floating-Point Arithmetic. 2nd ed. Birkhäuser Boston, 2018 (cit. on p. 11.10).

  • [72] P. Norvig. Solving Every Sudoku Puzzle. url: http://www.norvig.com/sudoku.html (visited on 12/17/2022) (cit. on p. 6.5).

  • [73] Numberphile. Why 381,654,729 is Awesome. May 2013. url: https://www.youtube.com/watch?v=gaVMrqzb91w (visited on 10/11/2021) (cit. on p. C).

  • [74] M. L. Overton. Numerical Computing with IEEE Floating Point Arithmetic. Society for Industrial and Applied Mathematics, 2001 (cit. on p. 11.10).

  • [75] G. Peano. “Sur une courbe, qui remplit toute une aire plane”. In: Mathematische Annalen 36(1) (1890), pp. 157–160 (cit. on p. 4.5).

  • [76] H.-O. Peitgen, H. Jürgens, and D. Saupe. Chaos and Fractals. New Frontiers of Science. 2nd ed. Springer, 2004 (cit. on pp. 1.4, 2.5).

  • [77] M. Pharr, W. Jakob, and G. Humphreys. Physically Based Rendering: From Theory to Implementation. 4th ed. MIT Press, 2023. url: https://www.pbr-book.org/ (visited on 02/05/2026) (cit. on p. 2.5).

  • [78] I. Pressman and D. Singmaster. ““The Jealous Husbands” and “The Missionaries and Cannibals””. In: The Mathematical Gazette 73(464) (June 1989), pp. 73–81 (cit. on pp. 7.5, C).

  • [79] J. Rissanen and G. G. Langdon Jr. “Arithmetic Coding”. In: IBM J. Res. Develop. 23(2) (Mar. 1979) (cit. on p. 9.6).

  • [80] L. Rougetet. “Machines Designed to Play Nim Games (1940–1970): A Possible (Re)Use in the Modern French Mathematics Curriculum?” In: Teaching and Learning Discrete Mathematics Worldwide: Curriculum and Research. Ed. by E. W. Hart and J. Sandefur. Cham: Springer International Publishing, 2018, pp. 229–250. url: https://doi.org/10.1007/978-3-319-70308-4_15 (cit. on p. 6.5).

  • [81] K. Sadakane and H. Imai. “Improving the Speed of LZ77 Compression by Hashing and Suffix Sorting”. In: IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences E83-A(12) (Dec. 2000), pp. 2689–2698 (cit. on p. 10.8).

  • [82] D. Salomon. Data Compression: The Complete Reference. 4th ed. With contributions by Giovanni Motta and David Bryant. Springer-Verlag, 2007 (cit. on p. 10.8).

  • [83] A. A. Sardinas and G. W. Patterson. “A Necessary and Sufficient Condition for Unique Decomposition of Coded Messages”. In: Convention Record of the I.R.E., 1953 National Convention, Part 8: Information Theory (1953), pp. 104–108 (cit. on p. 9.6).

  • [84] K. Sayood. Introduction to Data Compression. 5th ed. Morgan Kaufmann, 2018 (cit. on p. 10.8).

  • [85] P. Schneider and D. H. Eberly. Geometric Tools for Computer Graphics. Morgan Kaufmann, 2002 (cit. on p. 3.5).

  • [86] R. Sedgewick and K. Wayne. Algorithms. 4th ed. Addison-Wesley, 2011 (cit. on pp. 7.5, 8.8, 9.3, 11.4).

  • [87] C. E. Shannon. “A Mathematical Theory of Communication”. In: 27(3) (July 1948), pp. 379–423 (cit. on p. 9.6).

  • [88] C. E. Shannon. “A Mathematical Theory of Communication”. In: 27(4) (Oct. 1948), pp. 623–656 (cit. on p. 9.6).

  • [89] M. Sipser. Introduction to the Theory of Computation. 3rd ed. Cengage Learning, 2013. Boston, MA (cit. on p. 8.8).

  • [90] J. A. Storer and T. G. Szymanski. “Data Compression via Textual Substitution”. In: Journal of the ACM 29(4) (Oct. 1982), pp. 928–951 (cit. on p. 10.8).

  • [91] The Sokoban Wiki. 2024. url: http://sokobano.de/wiki/index.php?title=Main_Page (visited on 02/09/2026) (cit. on p. 8.8).

  • [92] A. L. Toom. “The Complexity of a Scheme of Functional Elements Realizing the Multiplication of Integers”. Russian. In: Dokl. Akad. Nauk SSSR 150 (1963), pp. 496–498 (cit. on p. 11.10).

  • [93] M. C. K. Tweedie. “A Graphical Method of Solving Tartaglian Measuring Puzzles”. In: The Mathematical Gazette 23(255) (July 1939), pp. 278–282 (cit. on p. 7.5).

  • [94] H. S. Warren Jr. Hacker’s Delight. 2nd ed. Addison-Wesley, 2013 (cit. on p. 5.7).

  • [95] P. Wegner. “A Technique for Counting Ones in a Binary Computer”. In: Communications of the ACM 3(5) (May 1960), p. 322 (cit. on p. C).

  • [96] T. A. Welch. “A Technique for High-Performance Data Compression”. In: Computer 17(6) (June 1984), pp. 8–19 (cit. on p. 10.8).

  • [97] S. Wolfram. A New Kind of Science. Wolfram Media, 2002. url: https://www.wolframscience.com/nks/ (cit. on p. 2.5).

  • [98] A. J. Yee. y-cruncher - A Multi-Threaded Pi-Program. url: http://www.numberworld.org/y-cruncher/ (visited on 03/09/2026) (cit. on p. 11.10).

  • [99] J. Ziv and A. Lempel. “Compression of Individual Sequences via Variable-Rate Coding”. In: IEEE Transactions on Information Theory 24(5) (Sept. 1978), pp. 530–536 (cit. on p. 10.8).