%% %% This is file `xint.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% xint.dtx (with options: `xint') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from xint.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file xint.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- %% The xint bundle 1.2k 2017/01/06 %% Copyright (C) 2013-2017 by Jean-Francois Burnol %% xint: Expandable operations on big integers %% --------------------------------------------------------------- \begingroup\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ \catcode35=6 % # \catcode44=12 % , \catcode45=12 % - \catcode46=12 % . \catcode58=12 % : \let\z\endgroup \expandafter\let\expandafter\x\csname ver@xint.sty\endcsname \expandafter\let\expandafter\w\csname ver@xintcore.sty\endcsname \expandafter \ifx\csname PackageInfo\endcsname\relax \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}% \else \def\y#1#2{\PackageInfo{#1}{#2}}% \fi \expandafter \ifx\csname numexpr\endcsname\relax \y{xint}{\numexpr not available, aborting input}% \aftergroup\endinput \else \ifx\x\relax % plain-TeX, first loading of xintcore.sty \ifx\w\relax % but xintkernel.sty not yet loaded. \def\z{\endgroup\input xintcore.sty\relax}% \fi \else \def\empty {}% \ifx\x\empty % LaTeX, first loading, % variable is initialized, but \ProvidesPackage not yet seen \ifx\w\relax % xintcore.sty not yet loaded. \def\z{\endgroup\RequirePackage{xintcore}}% \fi \else \aftergroup\endinput % xint already loaded. \fi \fi \fi \z% \XINTsetupcatcodes% defined in xintkernel.sty (loaded by xintcore.sty) \XINT_providespackage \ProvidesPackage{xint}% [2017/01/06 1.2k Expandable operations on big integers (JFB)]% \long\def\xint_firstofthree #1#2#3{#1}% \long\def\xint_secondofthree #1#2#3{#2}% \long\def\xint_thirdofthree #1#2#3{#3}% \long\def\xint_firstofthree_thenstop #1#2#3{ #1}% 1.09i \long\def\xint_secondofthree_thenstop #1#2#3{ #2}% \long\def\xint_thirdofthree_thenstop #1#2#3{ #3}% \edef\xint_cleanupzeros_andstop #1#2#3#4% {% \noexpand\expandafter\space\noexpand\the\numexpr #1#2#3#4\relax }% \def\xintSgnFork {\romannumeral0\xintsgnfork }% \def\xintsgnfork #1% {% \ifcase #1 \expandafter\xint_secondofthree_thenstop \or\expandafter\xint_thirdofthree_thenstop \else\expandafter\xint_firstofthree_thenstop \fi }% \def\xintiiIsOne {\romannumeral0\xintiiisone }% \def\xintiiisone #1{\expandafter\XINT_isone\romannumeral`&&@#1XY}% \def\xintIsOne {\romannumeral0\xintisone }% \def\xintisone #1{\expandafter\XINT_isone\romannumeral0\xintnum{#1}XY}% \def\XINT_isone #1#2#3Y% {% \unless\if#2X\xint_dothis{ 0}\fi \unless\if#11\xint_dothis{ 0}\fi \xint_orthat{ 1}% }% \def\XINT_isOne #1{\XINT_is_one#1XY}% \def\XINT_is_one #1#2#3Y% {% \unless\if#2X\xint_dothis0\fi \unless\if#11\xint_dothis0\fi \xint_orthat1% }% \let\xintRev\xintReverseDigits \def\xintLen {\romannumeral0\xintlen }% \def\xintlen #1{\def\xintlen ##1% {% \expandafter#1\the\numexpr \expandafter\XINT_len_fork\romannumeral0\xintnum{##1}% \xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax \xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v \xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye\relax }}\xintlen{ }% \def\XINT_len_fork #1% {% \expandafter\XINT_length_loop\xint_UDsignfork#1{}-#1\krof }% \def\xintBool #1{\romannumeral`&&@% \csname if#1\endcsname\expandafter1\else\expandafter0\fi }% \def\xintToggle #1{\romannumeral`&&@\iftoggle{#1}{1}{0}}% \def\xintifSgn {\romannumeral0\xintifsgn }% \def\xintifsgn #1% {% \ifcase \xintSgn{#1} \expandafter\xint_secondofthree_thenstop \or\expandafter\xint_thirdofthree_thenstop \else\expandafter\xint_firstofthree_thenstop \fi }% \def\xintiiifSgn {\romannumeral0\xintiiifsgn }% \def\xintiiifsgn #1% {% \ifcase \xintiiSgn{#1} \expandafter\xint_secondofthree_thenstop \or\expandafter\xint_thirdofthree_thenstop \else\expandafter\xint_firstofthree_thenstop \fi }% \def\xintifZero {\romannumeral0\xintifzero }% \def\xintifzero #1% {% \if0\xintSgn{#1}% \expandafter\xint_firstoftwo_thenstop \else \expandafter\xint_secondoftwo_thenstop \fi }% \def\xintifNotZero {\romannumeral0\xintifnotzero }% \def\xintifnotzero #1% {% \if0\xintSgn{#1}% \expandafter\xint_secondoftwo_thenstop \else \expandafter\xint_firstoftwo_thenstop \fi }% \def\xintiiifZero {\romannumeral0\xintiiifzero }% \def\xintiiifzero #1% {% \if0\xintiiSgn{#1}% \expandafter\xint_firstoftwo_thenstop \else \expandafter\xint_secondoftwo_thenstop \fi }% \def\xintiiifNotZero {\romannumeral0\xintiiifnotzero }% \def\xintiiifnotzero #1% {% \if0\xintiiSgn{#1}% \expandafter\xint_secondoftwo_thenstop \else \expandafter\xint_firstoftwo_thenstop \fi }% \def\xintiiifOne {\romannumeral0\xintiiifone }% \def\xintiiifone #1% {% \if1\xintiiIsOne{#1}% \expandafter\xint_firstoftwo_thenstop \else \expandafter\xint_secondoftwo_thenstop \fi }% \def\xintifOne {\romannumeral0\xintifone }% \def\xintifone #1% {% \if1\xintIsOne{#1}% \expandafter\xint_firstoftwo_thenstop \else \expandafter\xint_secondoftwo_thenstop \fi }% \let\xintifTrueAelseB\xintifNotZero \let\xintifFalseAelseB\xintifZero %%\let\xintifTrue\xintifNotZero % now removed %%\let\xintifTrueFalse\xintifNotZero % now removed \def\xintifCmp {\romannumeral0\xintifcmp }% \def\xintifcmp #1#2% {% \ifcase\xintCmp {#1}{#2} \expandafter\xint_secondofthree_thenstop \or\expandafter\xint_thirdofthree_thenstop \else\expandafter\xint_firstofthree_thenstop \fi }% \def\xintiiifCmp {\romannumeral0\xintiiifcmp }% \def\xintiiifcmp #1#2% {% \ifcase\xintiiCmp {#1}{#2} \expandafter\xint_secondofthree_thenstop \or\expandafter\xint_thirdofthree_thenstop \else\expandafter\xint_firstofthree_thenstop \fi }% \def\xintifEq {\romannumeral0\xintifeq }% \def\xintifeq #1#2% {% \if0\xintCmp{#1}{#2}% \expandafter\xint_firstoftwo_thenstop \else\expandafter\xint_secondoftwo_thenstop \fi }% \def\xintiiifEq {\romannumeral0\xintiiifeq }% \def\xintiiifeq #1#2% {% \if0\xintiiCmp{#1}{#2}% \expandafter\xint_firstoftwo_thenstop \else\expandafter\xint_secondoftwo_thenstop \fi }% \def\xintifGt {\romannumeral0\xintifgt }% \def\xintifgt #1#2% {% \if1\xintCmp{#1}{#2}% \expandafter\xint_firstoftwo_thenstop \else\expandafter\xint_secondoftwo_thenstop \fi }% \def\xintiiifGt {\romannumeral0\xintiiifgt }% \def\xintiiifgt #1#2% {% \if1\xintiiCmp{#1}{#2}% \expandafter\xint_firstoftwo_thenstop \else\expandafter\xint_secondoftwo_thenstop \fi }% \def\xintifLt {\romannumeral0\xintiflt }% \def\xintiflt #1#2% {% \ifnum\xintCmp{#1}{#2}<\xint_c_ \expandafter\xint_firstoftwo_thenstop \else \expandafter\xint_secondoftwo_thenstop \fi }% \def\xintiiifLt {\romannumeral0\xintiiiflt }% \def\xintiiiflt #1#2% {% \ifnum\xintiiCmp{#1}{#2}<\xint_c_ \expandafter\xint_firstoftwo_thenstop \else \expandafter\xint_secondoftwo_thenstop \fi }% \def\xintiiifOdd {\romannumeral0\xintiiifodd }% \def\xintiiifodd #1% {% \if\xintiiOdd{#1}1% \expandafter\xint_firstoftwo_thenstop \else \expandafter\xint_secondoftwo_thenstop \fi }% \def\xintifOdd {\romannumeral0\xintifodd }% \def\xintifodd #1% {% \if\xintOdd{#1}1% \expandafter\xint_firstoftwo_thenstop \else \expandafter\xint_secondoftwo_thenstop \fi }% \def\xintCmp {\romannumeral0\xintcmp }% \def\xintcmp #1{\expandafter\XINT_icmp\romannumeral0\xintnum{#1}\Z }% \def\xintiiCmp {\romannumeral0\xintiicmp }% \def\xintiicmp #1{\expandafter\XINT_iicmp\romannumeral`&&@#1\Z }% \def\XINT_iicmp #1#2\Z #3% {% \expandafter\XINT_cmp_nfork\expandafter #1\romannumeral`&&@#3\Z #2\Z }% \let\XINT_Cmp \xintiiCmp \def\XINT_icmp #1#2\Z #3% {% \expandafter\XINT_cmp_nfork\expandafter #1\romannumeral0\xintnum{#3}\Z #2\Z }% \def\XINT_cmp_nfork #1#2% {% \xint_UDzerofork #1\XINT_cmp_firstiszero #2\XINT_cmp_secondiszero 0{}% \krof \xint_UDsignsfork #1#2\XINT_cmp_minusminus #1-\XINT_cmp_minusplus #2-\XINT_cmp_plusminus --\XINT_cmp_plusplus \krof #1#2% }% \def\XINT_cmp_firstiszero #1\krof 0#2#3\Z #4\Z {% \xint_UDzerominusfork #2-{ 0}% 0#2{ 1}% 0-{ -1}% \krof }% \def\XINT_cmp_secondiszero #1\krof #20#3\Z #4\Z {% \xint_UDzerominusfork #2-{ 0}% 0#2{ -1}% 0-{ 1}% \krof }% \def\XINT_cmp_plusminus #1\Z #2\Z{ 1}% \def\XINT_cmp_minusplus #1\Z #2\Z{ -1}% \def\XINT_cmp_minusminus --{\expandafter\XINT_opp\romannumeral0\XINT_cmp_plusplus {}{}}% \def\XINT_cmp_plusplus #1#2#3\Z {% \expandafter\XINT_cmp_pp \romannumeral0\expandafter\XINT_sepandrev_andcount \romannumeral0\XINT_zeroes_forviii #2#3\R\R\R\R\R\R\R\R{10}0000001\W #2#3\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax\xint_c_ii\xint_c_iii \R.\xint_c_vi\R.\xint_c_v\R.\xint_c_iv\R.\xint_c_iii \R.\xint_c_ii\R.\xint_c_i\R.\xint_c_\W \X #1% }% \def\XINT_cmp_pp #1.#2\X #3\Z {% \expandafter\XINT_cmp_checklengths \the\numexpr #1\expandafter.% \romannumeral0\expandafter\XINT_sepandrev_andcount \romannumeral0\XINT_zeroes_forviii #3\R\R\R\R\R\R\R\R{10}0000001\W #3\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax \xint_c_ii\xint_c_iii \R.\xint_c_vi\R.\xint_c_v\R.\xint_c_iv\R.\xint_c_iii \R.\xint_c_ii\R.\xint_c_i\R.\xint_c_\W \Z!\Z!\Z!\Z!\Z!\W #2\Z!\Z!\Z!\Z!\Z!\W }% \def\XINT_cmp_checklengths #1.#2.% {% \ifnum #1=#2 \expandafter\xint_firstoftwo \else \expandafter\xint_secondoftwo \fi \XINT_cmp_aa {\XINT_cmp_distinctlengths {#1}{#2}}% }% \def\XINT_cmp_distinctlengths #1#2#3\W #4\W {% \ifnum #1>#2 \expandafter\xint_firstoftwo \else \expandafter\xint_secondoftwo \fi { -1}{ 1}% }% \def\XINT_cmp_aa {\expandafter\XINT_cmp_w\the\numexpr\XINT_cmp_a \xint_c_i }% \def\XINT_cmp_a #1!#2!#3!#4!#5\W #6!#7!#8!#9!% {% \XINT_cmp_b #1!#6!#2!#7!#3!#8!#4!#9!#5\W }% \def\XINT_cmp_b #1#2#3!#4!% {% \xint_gob_til_Z #2\XINT_cmp_bi \Z \expandafter\XINT_cmp_c\the\numexpr#1+1#4-#3-\xint_c_i.% }% \def\XINT_cmp_c 1#1#2.% {% 1#2\expandafter!\the\numexpr\XINT_cmp_d #1% }% \def\XINT_cmp_d #1#2#3!#4!% {% \xint_gob_til_Z #2\XINT_cmp_di \Z \expandafter\XINT_cmp_e\the\numexpr#1+1#4-#3-\xint_c_i.% }% \def\XINT_cmp_e 1#1#2.% {% 1#2\expandafter!\the\numexpr\XINT_cmp_f #1% }% \def\XINT_cmp_f #1#2#3!#4!% {% \xint_gob_til_Z #2\XINT_cmp_fi \Z \expandafter\XINT_cmp_g\the\numexpr#1+1#4-#3-\xint_c_i.% }% \def\XINT_cmp_g 1#1#2.% {% 1#2\expandafter!\the\numexpr\XINT_cmp_h #1% }% \def\XINT_cmp_h #1#2#3!#4!% {% \xint_gob_til_Z #2\XINT_cmp_hi \Z \expandafter\XINT_cmp_i\the\numexpr#1+1#4-#3-\xint_c_i.% }% \def\XINT_cmp_i 1#1#2.% {% 1#2\expandafter!\the\numexpr\XINT_cmp_a #1% }% \def\XINT_cmp_bi\Z \expandafter\XINT_cmp_c\the\numexpr#1+1#2-#3.#4!#5!#6!#7!#8!#9!\Z !\W {% \XINT_cmp_k #1#2!#5!#7!#9!% }% \def\XINT_cmp_di\Z \expandafter\XINT_cmp_e\the\numexpr#1+1#2-#3.#4!#5!#6!#7!#8\W {% \XINT_cmp_k #1#2!#5!#7!% }% \def\XINT_cmp_fi\Z \expandafter\XINT_cmp_g\the\numexpr#1+1#2-#3.#4!#5!#6\W {% \XINT_cmp_k #1#2!#5!% }% \def\XINT_cmp_hi\Z \expandafter\XINT_cmp_i\the\numexpr#1+1#2-#3.#4\W {% \XINT_cmp_k #1#2!% }% \def\XINT_cmp_k #1#2\W {% \xint_UDzerofork #1{-1\relax \XINT_cmp_greater}% 0{-1\relax \XINT_cmp_lessorequal}% \krof }% \def\XINT_cmp_w #1-1#2{#2#11\Z!\W}% \def\XINT_cmp_greater #1\Z!\W{ 1}% \def\XINT_cmp_lessorequal 1#1!% {\xint_gob_til_Z #1\XINT_cmp_equal\Z \xint_gob_til_eightzeroes #1\XINT_cmp_continue 00000000% \XINT_cmp_less }% \def\XINT_cmp_less #1\W { -1}% \def\XINT_cmp_continue 00000000\XINT_cmp_less {\XINT_cmp_lessorequal }% \def\XINT_cmp_equal\Z\xint_gob_til_eightzeroes\Z\XINT_cmp_continue 00000000\XINT_cmp_less\W { 0}% \def\xintEq {\romannumeral0\xinteq }\def\xinteq #1#2{\xintifeq{#1}{#2}{1}{0}}% \def\xintGt {\romannumeral0\xintgt }\def\xintgt #1#2{\xintifgt{#1}{#2}{1}{0}}% \def\xintLt {\romannumeral0\xintlt }\def\xintlt #1#2{\xintiflt{#1}{#2}{1}{0}}% \def\xintLtorEq #1#2{\romannumeral0\xintifgt {#1}{#2}{0}{1}}% \def\xintGtorEq #1#2{\romannumeral0\xintiflt {#1}{#2}{0}{1}}% \def\xintNeq #1#2{\romannumeral0\xintifeq {#1}{#2}{0}{1}}% \def\xintiiEq #1#2{\romannumeral0\xintiiifeq{#1}{#2}{1}{0}}% \def\xintiiGt #1#2{\romannumeral0\xintiiifgt{#1}{#2}{1}{0}}% \def\xintiiLt #1#2{\romannumeral0\xintiiiflt{#1}{#2}{1}{0}}% \def\xintiiLtorEq #1#2{\romannumeral0\xintiiifgt {#1}{#2}{0}{1}}% \def\xintiiGtorEq #1#2{\romannumeral0\xintiiiflt {#1}{#2}{0}{1}}% \def\xintiiNeq #1#2{\romannumeral0\xintiiifeq {#1}{#2}{0}{1}}% \def\xintIsZero {\romannumeral0\xintiszero }% \def\xintiszero #1{\if0\xintSgn{#1}\xint_afterfi{ 1}\else\xint_afterfi{ 0}\fi}% \def\xintIsNotZero {\romannumeral0\xintisnotzero }% \def\xintisnotzero #1{\if0\xintSgn{#1}\xint_afterfi{ 0}\else\xint_afterfi{ 1}\fi}% \def\xintiiIsZero {\romannumeral0\xintiiiszero }% \def\xintiiiszero #1{\if0\xintiiSgn{#1}\xint_afterfi{ 1}\else\xint_afterfi{ 0}\fi}% \def\xintiiIsNotZero {\romannumeral0\xintiiisnotzero }% \def\xintiiisnotzero #1{\if0\xintiiSgn{#1}\xint_afterfi{ 0}\else\xint_afterfi{ 1}\fi}% \let\xintIsTrue\xintIsNotZero \let\xintNot\xintIsZero \let\xintIsFalse\xintIsZero \def\xintAND {\romannumeral0\xintand }% \def\xintand #1#2{\if0\xintSgn{#1}\expandafter\xint_firstoftwo \else\expandafter\xint_secondoftwo\fi { 0}{\xintisnotzero{#2}}}% \def\xintOR {\romannumeral0\xintor }% \def\xintor #1#2{\if0\xintSgn{#1}\expandafter\xint_firstoftwo \else\expandafter\xint_secondoftwo\fi {\xintisnotzero{#2}}{ 1}}% \def\xintXOR {\romannumeral0\xintxor }% \def\xintxor #1#2{\if\xintIsZero{#1}\xintIsZero{#2}% \xint_afterfi{ 0}\else\xint_afterfi{ 1}\fi }% \def\xintANDof {\romannumeral0\xintandof }% \def\xintandof #1{\expandafter\XINT_andof_a\romannumeral`&&@#1\relax }% \def\XINT_andof_a #1{\expandafter\XINT_andof_b\romannumeral`&&@#1\Z }% \def\XINT_andof_b #1% {\xint_gob_til_relax #1\XINT_andof_e\relax\XINT_andof_c #1}% \def\XINT_andof_c #1\Z {\xintifTrueAelseB {#1}{\XINT_andof_a}{\XINT_andof_no}}% \def\XINT_andof_no #1\relax { 0}% \def\XINT_andof_e #1\Z { 1}% \def\xintORof {\romannumeral0\xintorof }% \def\xintorof #1{\expandafter\XINT_orof_a\romannumeral`&&@#1\relax }% \def\XINT_orof_a #1{\expandafter\XINT_orof_b\romannumeral`&&@#1\Z }% \def\XINT_orof_b #1% {\xint_gob_til_relax #1\XINT_orof_e\relax\XINT_orof_c #1}% \def\XINT_orof_c #1\Z {\xintifTrueAelseB {#1}{\XINT_orof_yes}{\XINT_orof_a}}% \def\XINT_orof_yes #1\relax { 1}% \def\XINT_orof_e #1\Z { 0}% \def\xintXORof {\romannumeral0\xintxorof }% \def\xintxorof #1{\expandafter\XINT_xorof_a\expandafter 0\romannumeral`&&@#1\relax }% \def\XINT_xorof_a #1#2{\expandafter\XINT_xorof_b\romannumeral`&&@#2\Z #1}% \def\XINT_xorof_b #1% {\xint_gob_til_relax #1\XINT_xorof_e\relax\XINT_xorof_c #1}% \def\XINT_xorof_c #1\Z #2% {\xintifTrueAelseB {#1}{\if #20\xint_afterfi{\XINT_xorof_a 1}% \else\xint_afterfi{\XINT_xorof_a 0}\fi}% {\XINT_xorof_a #2}% }% \def\XINT_xorof_e #1\Z #2{ #2}% \def\xintGeq {\romannumeral0\xintgeq }% \def\xintgeq #1{\expandafter\XINT_geq\romannumeral0\xintnum{#1}\Z }% \def\xintiiGeq {\romannumeral0\xintiigeq }% \def\xintiigeq #1{\expandafter\XINT_iigeq\romannumeral`&&@#1\Z }% \def\XINT_iigeq #1#2\Z #3% {% \expandafter\XINT_geq_fork\expandafter #1\romannumeral`&&@#3\Z #2\Z }% \let\XINT_geq_pre \xintiigeq % TEMPORAIRE (oui, mais depuis quand ?) \let\XINT_Geq \xintGeq % TEMPORAIRE ATTENTION FAIT xintNum (et alors?) \def\XINT_geq #1#2\Z #3% {% \expandafter\XINT_geq_fork\expandafter #1\romannumeral0\xintnum{#3}\Z #2\Z }% \def\XINT_geq_fork #1#2% {% \xint_UDzerofork #1\XINT_geq_firstiszero #2\XINT_geq_secondiszero 0{}% \krof \xint_UDsignsfork #1#2\XINT_geq_minusminus #1-\XINT_geq_minusplus #2-\XINT_geq_plusminus --\XINT_geq_plusplus \krof #1#2% }% \def\XINT_geq_firstiszero #1\krof 0#2#3\Z #4\Z {\xint_UDzerofork #2{ 1}0{ 0}\krof }% \def\XINT_geq_secondiszero #1\krof #20#3\Z #4\Z { 1}% \def\XINT_geq_plusminus #1-{\XINT_geq_plusplus #1{}}% \def\XINT_geq_minusplus -#1{\XINT_geq_plusplus {}#1}% \def\XINT_geq_minusminus --{\XINT_geq_plusplus {}{}}% \def\XINT_geq_plusplus #1#2#3\Z #4\Z {\XINT_geq_pp #1#4\Z #2#3\Z }% \def\XINT_geq_pp #1\Z {% \expandafter\XINT_geq_pp_a \romannumeral0\expandafter\XINT_sepandrev_andcount \romannumeral0\XINT_zeroes_forviii #1\R\R\R\R\R\R\R\R{10}0000001\W #1\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax\xint_c_ii\xint_c_iii \R.\xint_c_vi\R.\xint_c_v\R.\xint_c_iv\R.\xint_c_iii \R.\xint_c_ii\R.\xint_c_i\R.\xint_c_\W \X }% \def\XINT_geq_pp_a #1.#2\X #3\Z {% \expandafter\XINT_geq_checklengths \the\numexpr #1\expandafter.% \romannumeral0\expandafter\XINT_sepandrev_andcount \romannumeral0\XINT_zeroes_forviii #3\R\R\R\R\R\R\R\R{10}0000001\W #3\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax \xint_c_ii\xint_c_iii \R.\xint_c_vi\R.\xint_c_v\R.\xint_c_iv\R.\xint_c_iii \R.\xint_c_ii\R.\xint_c_i\R.\xint_c_\W \Z!\Z!\Z!\Z!\Z!\W #2\Z!\Z!\Z!\Z!\Z!\W }% \def\XINT_geq_checklengths #1.#2.% {% \ifnum #1=#2 \expandafter\xint_firstoftwo \else \expandafter\xint_secondoftwo \fi \XINT_geq_aa {\XINT_geq_distinctlengths {#1}{#2}}% }% \def\XINT_geq_distinctlengths #1#2#3\W #4\W {% \ifnum #1>#2 \expandafter\xint_firstoftwo \else \expandafter\xint_secondoftwo \fi { 1}{ 0}% }% \def\XINT_geq_aa {\expandafter\XINT_geq_w\the\numexpr\XINT_geq_a \xint_c_i }% \def\XINT_geq_a #1!#2!#3!#4!#5\W #6!#7!#8!#9!% {% \XINT_geq_b #1!#6!#2!#7!#3!#8!#4!#9!#5\W }% \def\XINT_geq_b #1#2#3!#4!% {% \xint_gob_til_Z #2\XINT_geq_bi \Z \expandafter\XINT_geq_c\the\numexpr#1+1#4-#3-\xint_c_i.% }% \def\XINT_geq_c 1#1#2.% {% 1#2\expandafter!\the\numexpr\XINT_geq_d #1% }% \def\XINT_geq_d #1#2#3!#4!% {% \xint_gob_til_Z #2\XINT_geq_di \Z \expandafter\XINT_geq_e\the\numexpr#1+1#4-#3-\xint_c_i.% }% \def\XINT_geq_e 1#1#2.% {% 1#2\expandafter!\the\numexpr\XINT_geq_f #1% }% \def\XINT_geq_f #1#2#3!#4!% {% \xint_gob_til_Z #2\XINT_geq_fi \Z \expandafter\XINT_geq_g\the\numexpr#1+1#4-#3-\xint_c_i.% }% \def\XINT_geq_g 1#1#2.% {% 1#2\expandafter!\the\numexpr\XINT_geq_h #1% }% \def\XINT_geq_h #1#2#3!#4!% {% \xint_gob_til_Z #2\XINT_geq_hi \Z \expandafter\XINT_geq_i\the\numexpr#1+1#4-#3-\xint_c_i.% }% \def\XINT_geq_i 1#1#2.% {% 1#2\expandafter!\the\numexpr\XINT_geq_a #1% }% \def\XINT_geq_bi\Z \expandafter\XINT_geq_c\the\numexpr#1+1#2-#3.#4!#5!#6!#7!#8!#9!\Z !\W {% \XINT_geq_k #1#2!#5!#7!#9!% }% \def\XINT_geq_di\Z \expandafter\XINT_geq_e\the\numexpr#1+1#2-#3.#4!#5!#6!#7!#8\W {% \XINT_geq_k #1#2!#5!#7!% }% \def\XINT_geq_fi\Z \expandafter\XINT_geq_g\the\numexpr#1+1#2-#3.#4!#5!#6\W {% \XINT_geq_k #1#2!#5!% }% \def\XINT_geq_hi\Z \expandafter\XINT_geq_i\the\numexpr#1+1#2-#3.#4\W {% \XINT_geq_k #1#2!% }% \def\XINT_geq_k #1#2\W {% \xint_UDzerofork #1{-1\relax { 0}}% 0{-1\relax { 1}}% \krof }% \def\XINT_geq_w #1-1#2{#2}% \def\xintiMax {\romannumeral0\xintimax }% \def\xintimax #1% {% \expandafter\xint_max\expandafter {\romannumeral0\xintnum{#1}}% }% \def\xint_max #1#2% {% \expandafter\XINT_max_pre\expandafter {\romannumeral0\xintnum{#2}}{#1}% }% \def\xintiiMax {\romannumeral0\xintiimax }% \def\xintiimax #1% {% \expandafter\xint_iimax\expandafter {\romannumeral`&&@#1}% }% \def\xint_iimax #1#2% {% \expandafter\XINT_max_pre\expandafter {\romannumeral`&&@#2}{#1}% }% \def\XINT_max_pre #1#2{\XINT_max_fork #1\Z #2\Z {#2}{#1}}% \def\XINT_Max #1#2{\romannumeral0\XINT_max_fork #2\Z #1\Z {#1}{#2}}% \def\XINT_max_fork #1#2\Z #3#4\Z {% \xint_UDsignsfork #1#3\XINT_max_minusminus % A < 0, B < 0 #1-\XINT_max_minusplus % B < 0, A >= 0 #3-\XINT_max_plusminus % A < 0, B >= 0 --{\xint_UDzerosfork #1#3\XINT_max_zerozero % A = B = 0 #10\XINT_max_zeroplus % B = 0, A > 0 #30\XINT_max_pluszero % A = 0, B > 0 00\XINT_max_plusplus % A, B > 0 \krof }% \krof {#2}{#4}#1#3% }% \def\XINT_max_zerozero #1#2#3#4{\xint_firstoftwo_thenstop }% \def\XINT_max_zeroplus #1#2#3#4{\xint_firstoftwo_thenstop }% \def\XINT_max_pluszero #1#2#3#4{\xint_secondoftwo_thenstop }% \def\XINT_max_minusplus #1#2#3#4{\xint_firstoftwo_thenstop }% \def\XINT_max_plusminus #1#2#3#4{\xint_secondoftwo_thenstop }% \def\XINT_max_plusplus #1#2#3#4% {% \ifodd\XINT_Geq {#4#2}{#3#1} \expandafter\xint_firstoftwo_thenstop \else \expandafter\xint_secondoftwo_thenstop \fi }% \def\XINT_max_minusminus #1#2#3#4% {% \ifodd\XINT_Geq {#1}{#2} \expandafter\xint_firstoftwo_thenstop \else \expandafter\xint_secondoftwo_thenstop \fi }% \def\xintiMaxof {\romannumeral0\xintimaxof }% \def\xintimaxof #1{\expandafter\XINT_imaxof_a\romannumeral`&&@#1\relax }% \def\XINT_imaxof_a #1{\expandafter\XINT_imaxof_b\romannumeral0\xintnum{#1}\Z }% \def\XINT_imaxof_b #1\Z #2% {\expandafter\XINT_imaxof_c\romannumeral`&&@#2\Z {#1}\Z}% \def\XINT_imaxof_c #1% {\xint_gob_til_relax #1\XINT_imaxof_e\relax\XINT_imaxof_d #1}% \def\XINT_imaxof_d #1\Z {\expandafter\XINT_imaxof_b\romannumeral0\xintimax {#1}}% \def\XINT_imaxof_e #1\Z #2\Z { #2}% \def\xintiiMaxof {\romannumeral0\xintiimaxof }% \def\xintiimaxof #1{\expandafter\XINT_iimaxof_a\romannumeral`&&@#1\relax }% \def\XINT_iimaxof_a #1{\expandafter\XINT_iimaxof_b\romannumeral`&&@#1\Z }% \def\XINT_iimaxof_b #1\Z #2% {\expandafter\XINT_iimaxof_c\romannumeral`&&@#2\Z {#1}\Z}% \def\XINT_iimaxof_c #1% {\xint_gob_til_relax #1\XINT_iimaxof_e\relax\XINT_iimaxof_d #1}% \def\XINT_iimaxof_d #1\Z {\expandafter\XINT_iimaxof_b\romannumeral0\xintiimax {#1}}% \def\XINT_iimaxof_e #1\Z #2\Z { #2}% \def\xintiMin {\romannumeral0\xintimin }% \def\xintimin #1% {% \expandafter\xint_min\expandafter {\romannumeral0\xintnum{#1}}% }% \def\xint_min #1#2% {% \expandafter\XINT_min_pre\expandafter {\romannumeral0\xintnum{#2}}{#1}% }% \def\xintiiMin {\romannumeral0\xintiimin }% \def\xintiimin #1% {% \expandafter\xint_iimin\expandafter {\romannumeral`&&@#1}% }% \def\xint_iimin #1#2% {% \expandafter\XINT_min_pre\expandafter {\romannumeral`&&@#2}{#1}% }% \def\XINT_min_pre #1#2{\XINT_min_fork #1\Z #2\Z {#2}{#1}}% \def\XINT_Min #1#2{\romannumeral0\XINT_min_fork #2\Z #1\Z {#1}{#2}}% \def\XINT_min_fork #1#2\Z #3#4\Z {% \xint_UDsignsfork #1#3\XINT_min_minusminus % A < 0, B < 0 #1-\XINT_min_minusplus % B < 0, A >= 0 #3-\XINT_min_plusminus % A < 0, B >= 0 --{\xint_UDzerosfork #1#3\XINT_min_zerozero % A = B = 0 #10\XINT_min_zeroplus % B = 0, A > 0 #30\XINT_min_pluszero % A = 0, B > 0 00\XINT_min_plusplus % A, B > 0 \krof }% \krof {#2}{#4}#1#3% }% \def\XINT_min_zerozero #1#2#3#4{\xint_firstoftwo_thenstop }% \def\XINT_min_zeroplus #1#2#3#4{\xint_secondoftwo_thenstop }% \def\XINT_min_pluszero #1#2#3#4{\xint_firstoftwo_thenstop }% \def\XINT_min_minusplus #1#2#3#4{\xint_secondoftwo_thenstop }% \def\XINT_min_plusminus #1#2#3#4{\xint_firstoftwo_thenstop }% \def\XINT_min_plusplus #1#2#3#4% {% \ifodd\XINT_Geq {#4#2}{#3#1} \expandafter\xint_secondoftwo_thenstop \else \expandafter\xint_firstoftwo_thenstop \fi }% \def\XINT_min_minusminus #1#2#3#4% {% \ifodd\XINT_Geq {#1}{#2} \expandafter\xint_secondoftwo_thenstop \else \expandafter\xint_firstoftwo_thenstop \fi }% \def\xintiMinof {\romannumeral0\xintiminof }% \def\xintiminof #1{\expandafter\XINT_iminof_a\romannumeral`&&@#1\relax }% \def\XINT_iminof_a #1{\expandafter\XINT_iminof_b\romannumeral0\xintnum{#1}\Z }% \def\XINT_iminof_b #1\Z #2% {\expandafter\XINT_iminof_c\romannumeral`&&@#2\Z {#1}\Z}% \def\XINT_iminof_c #1% {\xint_gob_til_relax #1\XINT_iminof_e\relax\XINT_iminof_d #1}% \def\XINT_iminof_d #1\Z {\expandafter\XINT_iminof_b\romannumeral0\xintimin {#1}}% \def\XINT_iminof_e #1\Z #2\Z { #2}% \def\xintiiMinof {\romannumeral0\xintiiminof }% \def\xintiiminof #1{\expandafter\XINT_iiminof_a\romannumeral`&&@#1\relax }% \def\XINT_iiminof_a #1{\expandafter\XINT_iiminof_b\romannumeral`&&@#1\Z }% \def\XINT_iiminof_b #1\Z #2% {\expandafter\XINT_iiminof_c\romannumeral`&&@#2\Z {#1}\Z}% \def\XINT_iiminof_c #1% {\xint_gob_til_relax #1\XINT_iiminof_e\relax\XINT_iiminof_d #1}% \def\XINT_iiminof_d #1\Z {\expandafter\XINT_iiminof_b\romannumeral0\xintiimin {#1}}% \def\XINT_iiminof_e #1\Z #2\Z { #2}% \def\xintiiSum {\romannumeral0\xintiisum }% \def\xintiisum #1{\xintiisumexpr #1\relax }% \def\xintiiSumExpr {\romannumeral0\xintiisumexpr }% \def\xintiisumexpr {\expandafter\XINT_sumexpr\romannumeral`&&@}% \def\XINT_sumexpr {\XINT_sum_loop_a 0\Z }% \def\XINT_sum_loop_a #1\Z #2% {\expandafter\XINT_sum_loop_b \romannumeral`&&@#2\Z #1\Z \Z}% \def\XINT_sum_loop_b #1% {\xint_gob_til_relax #1\XINT_sum_finished\relax\XINT_sum_loop_c #1}% \def\XINT_sum_loop_c {\expandafter\XINT_sum_loop_a\romannumeral0\XINT_add_fork }% \def\XINT_sum_finished #1\Z #2\Z \Z { #2}% \def\xintiiPrd {\romannumeral0\xintiiprd }% \def\xintiiprd #1{\xintiiprdexpr #1\relax }% \def\xintiiPrdExpr {\romannumeral0\xintiiprdexpr }% \def\xintiiprdexpr {\expandafter\XINT_prdexpr\romannumeral`&&@}% \def\XINT_prdexpr {\XINT_prod_loop_a 1\Z }% \def\XINT_prod_loop_a #1\Z #2% {\expandafter\XINT_prod_loop_b \romannumeral`&&@#2\Z #1\Z \Z}% \def\XINT_prod_loop_b #1% {\xint_gob_til_relax #1\XINT_prod_finished\relax\XINT_prod_loop_c #1}% \def\XINT_prod_loop_c {\expandafter\XINT_prod_loop_a\romannumeral0\XINT_mul_fork }% \def\XINT_prod_finished\relax\XINT_prod_loop_c #1\Z #2\Z \Z { #2}% \def\xintiiMON {\romannumeral0\xintiimon }% \def\xintiimon #1% {% \ifodd\xintiiLDg {#1} %<- intentional space \xint_afterfi{ -1}% \else \xint_afterfi{ 1}% \fi }% \def\xintiiMMON {\romannumeral0\xintiimmon }% \def\xintiimmon #1% {% \ifodd\xintiiLDg {#1} %<- intentional space \xint_afterfi{ 1}% \else \xint_afterfi{ -1}% \fi }% \def\xintMON {\romannumeral0\xintmon }% \def\xintmon #1% {% \ifodd\xintLDg {#1} %<- intentional space \xint_afterfi{ -1}% \else \xint_afterfi{ 1}% \fi }% \def\xintMMON {\romannumeral0\xintmmon }% \def\xintmmon #1% {% \ifodd\xintLDg {#1} %<- intentional space \xint_afterfi{ 1}% \else \xint_afterfi{ -1}% \fi }% \def\xintiiOdd {\romannumeral0\xintiiodd }% \def\xintiiodd #1% {% \ifodd\xintiiLDg{#1} %<- intentional space \xint_afterfi{ 1}% \else \xint_afterfi{ 0}% \fi }% \def\xintiiEven {\romannumeral0\xintiieven }% \def\xintiieven #1% {% \ifodd\xintiiLDg{#1} %<- intentional space \xint_afterfi{ 0}% \else \xint_afterfi{ 1}% \fi }% \def\xintOdd {\romannumeral0\xintodd }% \def\xintodd #1% {% \ifodd\xintLDg{#1} %<- intentional space \xint_afterfi{ 1}% \else \xint_afterfi{ 0}% \fi }% \def\xintEven {\romannumeral0\xinteven }% \def\xinteven #1% {% \ifodd\xintLDg{#1} %<- intentional space \xint_afterfi{ 0}% \else \xint_afterfi{ 1}% \fi }% \def\xintDSHr {\romannumeral0\xintdshr }% \def\xintdshr #1#2% {% \expandafter\XINT_dshr_fork\the\numexpr#1\expandafter.\romannumeral`&&@#2;% }% \def\XINT_dshr_fork #1% {% \xint_UDzerominusfork 0#1\XINT_dshr_xzeroorneg #1-\XINT_dshr_xzeroorneg 0-\XINT_dshr_xpositive \krof #1% }% \def\XINT_dshr_xzeroorneg #1;{ 0}% \def\XINT_dshr_xpositive {% \expandafter\xint_secondoftwo_thenstop\romannumeral0\XINT_dsx_xisPos }% \def\xintDSH {\romannumeral0\xintdsh }% \def\xintdsh #1#2% {% \expandafter\XINT_dsh_fork\the\numexpr#1\expandafter.\romannumeral`&&@#2;% }% \def\XINT_dsh_fork #1% {% \xint_UDzerominusfork #1-\XINT_dsh_xiszero 0#1\XINT_dsx_xisNeg_checkA 0-{\XINT_dsh_xisPos #1}% \krof }% \def\XINT_dsh_xiszero #1.#2;{ #2}% \def\XINT_dsh_xisPos {% \expandafter\xint_firstoftwo_thenstop\romannumeral0\XINT_dsx_xisPos }% \def\xintDSx {\romannumeral0\xintdsx }% \def\xintdsx #1#2% {% \expandafter\XINT_dsx_fork\the\numexpr#1\expandafter.\romannumeral`&&@#2;% }% \def\XINT_dsx_fork #1% {% \xint_UDzerominusfork #1-\XINT_dsx_xisZero 0#1\XINT_dsx_xisNeg_checkA 0-{\XINT_dsx_xisPos #1}% \krof }% \def\XINT_dsx_xisZero #1.#2;{{#2}{0}}% \def\XINT_dsx_xisNeg_checkA #1.#2% {% \xint_gob_til_zero #2\XINT_dsx_xisNeg_Azero 0% \expandafter\XINT_dsx_append\romannumeral\XINT_rep #1\endcsname 0.#2% }% \def\XINT_dsx_xisNeg_Azero #1;{ 0}% \def\XINT_dsx_addzeros #1% {\expandafter\XINT_dsx_append\romannumeral\XINT_rep#1\endcsname0.}% \def\XINT_dsx_addzerosnofuss #1% {\expandafter\XINT_dsx_append\romannumeral\xintreplicate{#1}0.}% \def\XINT_dsx_append #1.#2;{ #2#1}% \def\XINT_dsx_xisPos #1.#2% {% \xint_UDzerominusfork #2-\XINT_dsx_AisZero 0#2\XINT_dsx_AisNeg 0-\XINT_dsx_AisPos \krof #1.#2% }% \def\XINT_dsx_AisZero #1;{{0}{0}}% \def\XINT_dsx_AisNeg #1.-#2;% {% \expandafter\XINT_dsx_AisNeg_checkiffirstempty \romannumeral0\XINT_split_xfork #1.#2\xint_bye2345678\xint_bye..% }% \def\XINT_dsx_AisNeg_checkiffirstempty #1% {% \xint_gob_til_dot #1\XINT_dsx_AisNeg_finish_zero.% \XINT_dsx_AisNeg_finish_notzero #1% }% \def\XINT_dsx_AisNeg_finish_zero.\XINT_dsx_AisNeg_finish_notzero.#1.% {% \expandafter\XINT_dsx_end \expandafter {\romannumeral0\XINT_num {-#1}}{0}% }% \def\XINT_dsx_AisNeg_finish_notzero #1.#2.% {% \expandafter\XINT_dsx_end \expandafter {\romannumeral0\XINT_num {#2}}{-#1}% }% \def\XINT_dsx_AisPos #1.#2;% {% \expandafter\XINT_dsx_AisPos_finish \romannumeral0\XINT_split_xfork #1.#2\xint_bye2345678\xint_bye..% }% \def\XINT_dsx_AisPos_finish #1.#2.% {% \expandafter\XINT_dsx_end \expandafter {\romannumeral0\XINT_num {#2}}% {\romannumeral0\XINT_num {#1}}% }% \def\XINT_dsx_end #1#2{\expandafter{#2}{#1}}% \def\xintDecSplit {\romannumeral0\xintdecsplit }% \def\xintdecsplit #1#2% {% \expandafter\XINT_split_finish \romannumeral0\expandafter\XINT_split_xfork \the\numexpr #1\expandafter.\romannumeral`&&@#2% \xint_bye2345678\xint_bye..% }% \def\xintDecSplitL {\romannumeral0\xintdecsplitl }% \def\xintdecsplitl #1#2% {% \expandafter\XINT_splitl_finish \romannumeral0\expandafter\XINT_split_xfork \the\numexpr #1\expandafter.\romannumeral`&&@#2% \xint_bye2345678\xint_bye..% }% \def\xintDecSplitR {\romannumeral0\xintdecsplitr }% \def\xintdecsplitr #1#2% {% \expandafter\XINT_splitr_finish \romannumeral0\expandafter\XINT_split_xfork \the\numexpr #1\expandafter.\romannumeral`&&@#2% \xint_bye2345678\xint_bye..% }% \def\XINT_split_finish #1.#2.{{#1}{#2}}% \def\XINT_splitl_finish #1.#2.{ #1}% \def\XINT_splitr_finish #1.#2.{ #2}% \def\XINT_split_xfork #1% {% \xint_UDzerominusfork #1-\XINT_split_zerosplit 0#1\XINT_split_fromleft 0-{\XINT_split_fromright #1}% \krof }% \def\XINT_split_zerosplit .#1\xint_bye#2\xint_bye..{ #1..}% \def\XINT_split_fromleft {\expandafter\XINT_split_fromleft_a\the\numexpr\xint_c_viii-}% \def\XINT_split_fromleft_a #1% {% \xint_UDsignfork #1\XINT_split_fromleft_b -{\XINT_split_fromleft_end_a #1}% \krof }% \def\XINT_split_fromleft_b #1.#2#3#4#5#6#7#8#9% {% \expandafter\XINT_split_fromleft_clean \the\numexpr1#2#3#4#5#6#7#8#9\expandafter \XINT_split_fromleft_a\the\numexpr\xint_c_viii-#1.% }% \def\XINT_split_fromleft_end_a #1.% {% \expandafter\XINT_split_fromleft_clean \the\numexpr1\csname XINT_split_fromleft_end#1\endcsname }% \def\XINT_split_fromleft_clean 1{ }% \expandafter\def\csname XINT_split_fromleft_end7\endcsname #1% {#1\XINT_split_fromleft_end_b}% \expandafter\def\csname XINT_split_fromleft_end6\endcsname #1#2% {#1#2\XINT_split_fromleft_end_b}% \expandafter\def\csname XINT_split_fromleft_end5\endcsname #1#2#3% {#1#2#3\XINT_split_fromleft_end_b}% \expandafter\def\csname XINT_split_fromleft_end4\endcsname #1#2#3#4% {#1#2#3#4\XINT_split_fromleft_end_b}% \expandafter\def\csname XINT_split_fromleft_end3\endcsname #1#2#3#4#5% {#1#2#3#4#5\XINT_split_fromleft_end_b}% \expandafter\def\csname XINT_split_fromleft_end2\endcsname #1#2#3#4#5#6% {#1#2#3#4#5#6\XINT_split_fromleft_end_b}% \expandafter\def\csname XINT_split_fromleft_end1\endcsname #1#2#3#4#5#6#7% {#1#2#3#4#5#6#7\XINT_split_fromleft_end_b}% \expandafter\def\csname XINT_split_fromleft_end0\endcsname #1#2#3#4#5#6#7#8% {#1#2#3#4#5#6#7#8\XINT_split_fromleft_end_b}% \def\XINT_split_fromleft_end_b #1\xint_bye#2\xint_bye.{.#1}% puis . \def\XINT_split_fromright #1.#2\xint_bye {% \expandafter\XINT_split_fromright_a \the\numexpr#1-\numexpr\XINT_length_loop #2\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\xint_relax \xint_c_viii\xint_c_vii\xint_c_vi\xint_c_v \xint_c_iv\xint_c_iii\xint_c_ii\xint_c_i\xint_c_\xint_bye .#2\xint_bye }% \def\XINT_split_fromright_a #1% {% \xint_UDsignfork #1\XINT_split_fromleft -\XINT_split_fromright_Lempty \krof }% \def\XINT_split_fromright_Lempty #1.#2\xint_bye#3..{.#2.}% \def\xintiiSqrt {\romannumeral0\xintiisqrt }% \def\xintiiSqrtR {\romannumeral0\xintiisqrtr }% \def\xintiiSquareRoot {\romannumeral0\xintiisquareroot }% \def\xintiSqrt {\romannumeral0\xintisqrt }% \def\xintiSqrtR {\romannumeral0\xintisqrtr }% \def\xintiSquareRoot {\romannumeral0\xintisquareroot }% \def\xintisqrt {\expandafter\XINT_sqrt_post\romannumeral0\xintisquareroot }% \def\xintisqrtr {\expandafter\XINT_sqrtr_post\romannumeral0\xintisquareroot }% \def\xintiisqrt {\expandafter\XINT_sqrt_post\romannumeral0\xintiisquareroot }% \def\xintiisqrtr {\expandafter\XINT_sqrtr_post\romannumeral0\xintiisquareroot }% \def\XINT_sqrt_post #1#2{\XINT_dec #1\XINT_dec_bye234567890\xint_bye}% \def\XINT_sqrtr_post #1#2{\xintiiifLt {#2}{#1}% { #1}{\XINT_dec #1\XINT_dec_bye234567890\xint_bye}}% \def\xintisquareroot #1% {\expandafter\XINT_sqrt_checkin\romannumeral0\xintnum{#1}\xint_relax }% \def\xintiisquareroot #1{\expandafter\XINT_sqrt_checkin\romannumeral`&&@#1\xint_relax }% \def\XINT_sqrt_checkin #1% {% \xint_UDzerominusfork #1-\XINT_sqrt_iszero 0#1\XINT_sqrt_isneg 0-{\XINT_sqrt #1}% \krof }% \def\XINT_sqrt_iszero #1\xint_relax {{1}{1}}% \def\XINT_sqrt_isneg #1\xint_relax {\xintError:RootOfNegative{1}{1}}% \def\XINT_sqrt #1\xint_relax {% \expandafter\XINT_sqrt_start\romannumeral0\xintlength {#1}.#1.% }% \def\XINT_sqrt_start #1.% {% \ifnum #1<\xint_c_x\xint_dothis\XINT_sqrt_small_a\fi \xint_orthat\XINT_sqrt_big_a #1.% }% \def\XINT_sqrt_small_a #1.{\XINT_sqrt_a #1.\XINT_sqrt_small_d }% \def\XINT_sqrt_big_a #1.{\XINT_sqrt_a #1.\XINT_sqrt_big_d }% \def\XINT_sqrt_a #1.% {% \ifodd #1 \expandafter\XINT_sqrt_bO \else \expandafter\XINT_sqrt_bE \fi #1.% }% \def\XINT_sqrt_bE #1.#2#3#4% {% \XINT_sqrt_c {#3#4}#2{#1}#3#4% }% \def\XINT_sqrt_bO #1.#2#3% {% \XINT_sqrt_c #3#2{#1}#3% }% \def\XINT_sqrt_c #1#2% {% \expandafter #2% \the\numexpr \ifnum #1>\xint_c_ii \ifnum #1>\xint_c_vi \ifnum #1>12 \ifnum #1>20 \ifnum #1>30 \ifnum #1>42 \ifnum #1>56 \ifnum #1>72 \ifnum #1>90 10\else 9\fi \else 8\fi \else 7\fi \else 6\fi \else 5\fi \else 4\fi \else 3\fi \else 2\fi \else 1\fi .% }% \def\XINT_sqrt_small_d #1.#2% {% \expandafter\XINT_sqrt_small_e \the\numexpr #1\ifcase \numexpr #2/\xint_c_ii-\xint_c_i\relax \or 0\or 00\or 000\or 0000\fi .% }% \def\XINT_sqrt_small_e #1.#2.% {% \expandafter\XINT_sqrt_small_ea\the\numexpr #1*#1-#2.#1.% }% \def\XINT_sqrt_small_ea #1% {% \if0#1\xint_dothis\XINT_sqrt_small_ez\fi \if-#1\xint_dothis\XINT_sqrt_small_eb\fi \xint_orthat\XINT_sqrt_small_f #1% }% \def\XINT_sqrt_small_ez 0.#1.{\expandafter{\the\numexpr#1+\xint_c_i \expandafter}\expandafter{\the\numexpr #1*\xint_c_ii+\xint_c_i}}% \def\XINT_sqrt_small_eb -#1.#2.% {% \expandafter\XINT_sqrt_small_ec \the\numexpr (#1-\xint_c_i+#2)/(\xint_c_ii*#2).#1.#2.% }% \def\XINT_sqrt_small_ec #1.#2.#3.% {% \expandafter\XINT_sqrt_small_f \the\numexpr -#2+\xint_c_ii*#3*#1+#1*#1\expandafter.\the\numexpr #3+#1.% }% \def\XINT_sqrt_small_f #1.#2.% {% \expandafter\XINT_sqrt_small_g \the\numexpr (#1+#2)/(\xint_c_ii*#2)-\xint_c_i.#1.#2.% }% \def\XINT_sqrt_small_g #1#2.% {% \if 0#1% \expandafter\XINT_sqrt_small_end \else \expandafter\XINT_sqrt_small_h \fi #1#2.% }% \def\XINT_sqrt_small_h #1.#2.#3.% {% \expandafter\XINT_sqrt_small_f \the\numexpr #2-\xint_c_ii*#1*#3+#1*#1\expandafter.% \the\numexpr #3-#1.% }% \def\XINT_sqrt_small_end #1.#2.#3.{{#3}{#2}}% \def\XINT_sqrt_big_d #1.#2% {% \ifodd #2 \xint_dothis{\expandafter\XINT_sqrt_big_eO}\fi \xint_orthat{\expandafter\XINT_sqrt_big_eE}% \the\numexpr (#2-\xint_c_i)/\xint_c_ii.#1;% }% \def\XINT_sqrt_big_eE #1;#2#3#4#5#6#7#8#9% {% \XINT_sqrt_big_eE_a #1;{#2#3#4#5#6#7#8#9}% }% \def\XINT_sqrt_big_eE_a #1.#2;#3% {% \expandafter\XINT_sqrt_bigormed_f \romannumeral0\XINT_sqrt_small_e #2000.#3.#1;% }% \def\XINT_sqrt_big_eO #1;#2#3#4#5#6#7#8#9% {% \XINT_sqrt_big_eO_a #1;{#2#3#4#5#6#7#8#9}% }% \def\XINT_sqrt_big_eO_a #1.#2;#3#4% {% \expandafter\XINT_sqrt_bigormed_f \romannumeral0\XINT_sqrt_small_e #20000.#3#4.#1;% }% \def\XINT_sqrt_bigormed_f #1#2#3;% {% \ifnum#3<\xint_c_ix \xint_dothis {\csname XINT_sqrt_med_f\romannumeral#3\endcsname}% \fi \xint_orthat\XINT_sqrt_big_f #1.#2.#3;% }% \def\XINT_sqrt_med_fv {\XINT_sqrt_med_fa .}% \def\XINT_sqrt_med_fvi {\XINT_sqrt_med_fa 0.}% \def\XINT_sqrt_med_fvii {\XINT_sqrt_med_fa 00.}% \def\XINT_sqrt_med_fviii{\XINT_sqrt_med_fa 000.}% \def\XINT_sqrt_med_fa #1.#2.#3.#4;% {% \expandafter\XINT_sqrt_med_fb \the\numexpr (#30#1-5#1)/(\xint_c_ii*#2).#1.#2.#3.% }% \def\XINT_sqrt_med_fb #1.#2.#3.#4.#5.% {% \expandafter\XINT_sqrt_small_ea \the\numexpr (#40#2-\xint_c_ii*#3*#1)*10#2+(#1*#1-#5)\expandafter.% \the\numexpr #30#2-#1.% }% \def\XINT_sqrt_big_f #1;#2#3#4#5#6#7#8#9% {% \XINT_sqrt_big_fa #1;{#2#3#4#5#6#7#8#9}% }% \def\XINT_sqrt_big_fa #1.#2.#3;#4% {% \expandafter\XINT_sqrt_big_ga \the\numexpr #3-\xint_c_viii\expandafter.% \romannumeral0\XINT_sqrt_med_fa 000.#1.#2.;#4.% }% \def\XINT_sqrt_big_ga #1.#2#3% {% \ifnum #1>\xint_c_viii \expandafter\XINT_sqrt_big_gb\else \expandafter\XINT_sqrt_big_ka \fi #1.#3.#2.% }% \def\XINT_sqrt_big_gb #1.#2.#3.% {% \expandafter\XINT_sqrt_big_gc \the\numexpr (\xint_c_ii*#2-\xint_c_i)*\xint_c_x^viii/(\xint_c_iv*#3).% #3.#2.#1;% }% \def\XINT_sqrt_big_gc #1.#2.#3.% {% \expandafter\XINT_sqrt_big_gd \romannumeral0\xintiiadd {\xintiiSub {#300000000}{\xintDouble{\xintiiMul{#2}{#1}}}00000000}% {\xintiiSqr {#1}}.% \romannumeral0\xintiisub{#200000000}{#1}.% }% \def\XINT_sqrt_big_gd #1.#2.% {% \expandafter\XINT_sqrt_big_ge #2.#1.% }% \def\XINT_sqrt_big_ge #1;#2#3#4#5#6#7#8#9% {\XINT_sqrt_big_gf #1.#2#3#4#5#6#7#8#9;}% \def\XINT_sqrt_big_gf #1;#2#3#4#5#6#7#8#9% {\XINT_sqrt_big_gg #1#2#3#4#5#6#7#8#9.}% \def\XINT_sqrt_big_gg #1.#2.#3.#4.% {% \expandafter\XINT_sqrt_big_gloop \expandafter\xint_c_xvi\expandafter.% \the\numexpr #3-\xint_c_viii\expandafter.% \romannumeral0\xintiisub {#2}{\xintiNum{#4}}.#1.% }% \def\XINT_sqrt_big_gloop #1.#2.% {% \unless\ifnum #1<#2 \xint_dothis\XINT_sqrt_big_ka \fi \xint_orthat{\XINT_sqrt_big_gi #1.}#2.% }% \def\XINT_sqrt_big_gi #1.% {% \expandafter\XINT_sqrt_big_gj\romannumeral\xintreplicate{#1}0.#1.% }% \def\XINT_sqrt_big_gj #1.#2.#3.#4.#5.% {% \expandafter\XINT_sqrt_big_gk \romannumeral0\xintiidivision {#4#1}% {\XINT_dbl #5\xint_bye2345678\xint_bye*\xint_c_ii\relax}.% #1.#5.#2.#3.% }% \def\XINT_sqrt_big_gk #1#2.#3.#4.% {% \expandafter\XINT_sqrt_big_gl \romannumeral0\xintiiadd {#2#3}{\xintiiSqr{#1}}.% \romannumeral0\xintiisub {#4#3}{#1}.% }% \def\XINT_sqrt_big_gl #1.#2.% {% \expandafter\XINT_sqrt_big_gm #2.#1.% }% \def\XINT_sqrt_big_gm #1.#2.#3.#4.#5.% {% \expandafter\XINT_sqrt_big_gn \romannumeral0\XINT_split_fromleft\xint_c_ii*#3.#5\xint_bye2345678\xint_bye..% #1.#2.#3.#4.% }% \def\XINT_sqrt_big_gn #1.#2.#3.#4.#5.#6.% {% \expandafter\XINT_sqrt_big_gloop \the\numexpr \xint_c_ii*#5\expandafter.% \the\numexpr #6-#5\expandafter.% \romannumeral0\xintiisub{#4}{\xintiNum{#1}}.#3.#2.% }% \def\XINT_sqrt_big_ka #1.#2.#3.#4.% {% \expandafter\XINT_sqrt_big_kb \romannumeral0\XINT_dsx_addzeros {#1}#3;.% \romannumeral0\xintiisub {\XINT_dsx_addzerosnofuss {\xint_c_ii*#1}#2;}% {\xintiNum{#4}}.% }% \def\XINT_sqrt_big_kb #1.#2.% {% \expandafter\XINT_sqrt_big_kc #2.#1.% }% \def\XINT_sqrt_big_kc #1% {% \if0#1\xint_dothis\XINT_sqrt_big_kz\fi \xint_orthat\XINT_sqrt_big_kloop #1% }% \def\XINT_sqrt_big_kz 0.#1.% {% \expandafter\XINT_sqrt_big_kend \romannumeral0% \xintinc{\XINT_dbl#1\xint_bye2345678\xint_bye*\xint_c_ii\relax}.#1.% }% \def\XINT_sqrt_big_kend #1.#2.% {% \expandafter{\romannumeral0\xintinc{#2}}{#1}% }% \def\XINT_sqrt_big_kloop #1.#2.% {% \expandafter\XINT_sqrt_big_ke \romannumeral0\xintiidivision{#1}% {\romannumeral0\XINT_dbl #2\xint_bye2345678\xint_bye*\xint_c_ii\relax}{#2}% }% \def\XINT_sqrt_big_ke #1% {% \if0\XINT_Sgn #1\Z \expandafter \XINT_sqrt_big_end \else \expandafter \XINT_sqrt_big_kf \fi {#1}% }% \def\XINT_sqrt_big_kf #1#2#3% {% \expandafter\XINT_sqrt_big_kg \romannumeral0\xintiisub {#3}{#1}.% \romannumeral0\xintiiadd {#2}{\xintiiSqr {#1}}.% }% \def\XINT_sqrt_big_kg #1.#2.% {% \expandafter\XINT_sqrt_big_kloop #2.#1.% }% \def\XINT_sqrt_big_end #1#2#3{{#3}{#2}}% \def\xintiiBinomial {\romannumeral0\xintiibinomial }% \def\xintiibinomial #1#2% {% \expandafter\XINT_binom_pre\the\numexpr #1\expandafter.\the\numexpr #2.% }% \def\XINT_binom_pre #1.#2.% {% \expandafter\XINT_binom_fork \the\numexpr#1-#2.#2.#1.% }% \def\xintiBinomial{\romannumeral0\xintibinomial}% \let\xintibinomial\xintiibinomial \def\XINT_binom_fork #1#2.#3#4.#5#6.% {% \if-#5\xint_dothis{\xintError:OutOfRangeBinomial\space 0}\fi \if-#1\xint_dothis{ 0}\fi \if-#3\xint_dothis{ 0}\fi \if0#1\xint_dothis{ 1}\fi \if0#3\xint_dothis{ 1}\fi \ifnum #5#6>\xint_c_x^viii_mone\xint_dothis{\xintError:OutOfRangeBinomial\space 0}\fi \ifnum #1#2>#3#4 \xint_dothis{\XINT_binom_a #1#2.#3#4.}\fi \xint_orthat{\XINT_binom_a #3#4.#1#2.}% }% \def\XINT_binom_a #1.#2.% {% \expandafter\XINT_binom_b\the\numexpr \xint_c_i+#1.1.#2.100000001!1!\Z!0!% }% \def\XINT_binom_b #1.% {% \ifnum #1>9999 \xint_dothis\XINT_binom_vbigloop \fi \ifnum #1>463 \xint_dothis\XINT_binom_bigloop \fi \ifnum #1>98 \xint_dothis\XINT_binom_medloop \fi \ifnum #1>29 \xint_dothis\XINT_binom_smallloop \fi \xint_orthat\XINT_binom_vsmallloop #1.% }% \def\XINT_binom_smallloop #1.#2.#3.% {% \ifcase\numexpr #3-#2\relax \expandafter\XINT_binom_end_ \or \expandafter\XINT_binom_end_i \or \expandafter\XINT_binom_end_ii \or \expandafter\XINT_binom_end_iii \else\expandafter\XINT_binom_smallloop_a \fi #1.#2.#3.% }% \def\XINT_binom_smallloop_a #1.#2.#3.% {% \expandafter\XINT_binom_smallloop_b \the\numexpr #1+\xint_c_iv\expandafter.% \the\numexpr #2+\xint_c_iv\expandafter.% \the\numexpr #3\expandafter.% \the\numexpr\expandafter\XINT_binom_div \the\numexpr #2*(#2+\xint_c_i)*(#2+\xint_c_ii)*(#2+\xint_c_iii)\expandafter !\romannumeral0\expandafter\XINT_binom_mul \the\numexpr #1*(#1+\xint_c_i)*(#1+\xint_c_ii)*(#1+\xint_c_iii)!% }% \def\XINT_binom_smallloop_b #1.% {% \ifnum #1>98 \expandafter\XINT_binom_medloop \else \expandafter\XINT_binom_smallloop \fi #1.% }% \def\XINT_binom_medloop #1.#2.#3.% {% \ifcase\numexpr #3-#2\relax \expandafter\XINT_binom_end_ \or \expandafter\XINT_binom_end_i \or \expandafter\XINT_binom_end_ii \else\expandafter\XINT_binom_medloop_a \fi #1.#2.#3.% }% \def\XINT_binom_medloop_a #1.#2.#3.% {% \expandafter\XINT_binom_medloop_b \the\numexpr #1+\xint_c_iii\expandafter.% \the\numexpr #2+\xint_c_iii\expandafter.% \the\numexpr #3\expandafter.% \the\numexpr\expandafter\XINT_binom_div \the\numexpr #2*(#2+\xint_c_i)*(#2+\xint_c_ii)\expandafter !\romannumeral0\expandafter\XINT_binom_mul \the\numexpr #1*(#1+\xint_c_i)*(#1+\xint_c_ii)!% }% \def\XINT_binom_medloop_b #1.% {% \ifnum #1>463 \expandafter\XINT_binom_bigloop \else \expandafter\XINT_binom_medloop \fi #1.% }% \def\XINT_binom_bigloop #1.#2.#3.% {% \ifcase\numexpr #3-#2\relax \expandafter\XINT_binom_end_ \or \expandafter\XINT_binom_end_i \else\expandafter\XINT_binom_bigloop_a \fi #1.#2.#3.% }% \def\XINT_binom_bigloop_a #1.#2.#3.% {% \expandafter\XINT_binom_bigloop_b \the\numexpr #1+\xint_c_ii\expandafter.% \the\numexpr #2+\xint_c_ii\expandafter.% \the\numexpr #3\expandafter.% \the\numexpr\expandafter\XINT_binom_div \the\numexpr #2*(#2+\xint_c_i)\expandafter !\romannumeral0\expandafter\XINT_binom_mul \the\numexpr #1*(#1+\xint_c_i)!% }% \def\XINT_binom_bigloop_b #1.% {% \ifnum #1>9999 \expandafter\XINT_binom_vbigloop \else \expandafter\XINT_binom_bigloop \fi #1.% }% \def\XINT_binom_vbigloop #1.#2.#3.% {% \ifnum #3=#2 \expandafter\XINT_binom_end_ \else\expandafter\XINT_binom_vbigloop_a \fi #1.#2.#3.% }% \def\XINT_binom_vbigloop_a #1.#2.#3.% {% \expandafter\XINT_binom_vbigloop \the\numexpr #1+\xint_c_i\expandafter.% \the\numexpr #2+\xint_c_i\expandafter.% \the\numexpr #3\expandafter.% \the\numexpr\expandafter\XINT_binom_div\the\numexpr #2\expandafter !\romannumeral0\XINT_binom_mul #1!% }% \def\XINT_binom_vsmallloop #1.#2.#3.% {% \ifcase\numexpr #3-#2\relax \expandafter\XINT_binom_vsmallend_ \or \expandafter\XINT_binom_vsmallend_i \or \expandafter\XINT_binom_vsmallend_ii \or \expandafter\XINT_binom_vsmallend_iii \else\expandafter\XINT_binom_vsmallloop_a \fi #1.#2.#3.% }% \def\XINT_binom_vsmallloop_a #1.% {% \ifnum #1>26 \expandafter\XINT_binom_smallloop_a \else \expandafter\XINT_binom_vsmallloop_b \fi #1.% }% \def\XINT_binom_vsmallloop_b #1.#2.#3.% {% \expandafter\XINT_binom_vsmallloop \the\numexpr #1+\xint_c_iv\expandafter.% \the\numexpr #2+\xint_c_iv\expandafter.% \the\numexpr #3\expandafter.% \the\numexpr \expandafter\XINT_binom_vsmallmuldiv \the\numexpr #2*(#2+\xint_c_i)*(#2+\xint_c_ii)*(#2+\xint_c_iii)\expandafter !\the\numexpr #1*(#1+\xint_c_i)*(#1+\xint_c_ii)*(#1+\xint_c_iii)!% }% \def\XINT_binom_mul #1!#21!\Z!0!% {% \expandafter\XINT_rev_nounsep\expandafter{\expandafter}% \the\numexpr\expandafter\XINT_smallmul \the\numexpr\xint_c_x^viii+#1\expandafter !\romannumeral0\XINT_rev_nounsep {}1\Z!#2% \R!\R!\R!\R!\R!\R!\R!\R!\W \R!\R!\R!\R!\R!\R!\R!\R!\W 1\Z!% }% \def\XINT_binom_div #1!1\Z!% {% \expandafter\XINT_smalldivx_a \the\numexpr #1/\xint_c_ii\expandafter.% \the\numexpr \xint_c_x^viii+#1!% }% \def\XINT_binom_vsmallmuldiv #1!#2!1#3!{\xint_c_x^viii+#2*#3/#1!}% \def\XINT_binom_end_iii #1.#2.#3.% {% \expandafter\XINT_binom_finish \the\numexpr\expandafter\XINT_binom_div \the\numexpr #2*(#2+\xint_c_i)*(#2+\xint_c_ii)*(#2+\xint_c_iii)\expandafter !\romannumeral0\expandafter\XINT_binom_mul \the\numexpr #1*(#1+\xint_c_i)*(#1+\xint_c_ii)*(#1+\xint_c_iii)!% }% \def\XINT_binom_end_ii #1.#2.#3.% {% \expandafter\XINT_binom_finish \the\numexpr\expandafter\XINT_binom_div \the\numexpr #2*(#2+\xint_c_i)*(#2+\xint_c_ii)\expandafter !\romannumeral0\expandafter\XINT_binom_mul \the\numexpr #1*(#1+\xint_c_i)*(#1+\xint_c_ii)!% }% \def\XINT_binom_end_i #1.#2.#3.% {% \expandafter\XINT_binom_finish \the\numexpr\expandafter\XINT_binom_div \the\numexpr #2*(#2+\xint_c_i)\expandafter !\romannumeral0\expandafter\XINT_binom_mul \the\numexpr #1*(#1+\xint_c_i)!% }% \def\XINT_binom_end_ #1.#2.#3.% {% \expandafter\XINT_binom_finish \the\numexpr\expandafter\XINT_binom_div\the\numexpr #2\expandafter !\romannumeral0\XINT_binom_mul #1!% }% \def\XINT_binom_finish #1\Z!0!% {\XINT_unsep_cuzsmall #11\R!1\R!1\R!1\R!1\R!1\R!1\R!1\R!\W }% \def\XINT_binom_vsmallend_iii #1.% {% \ifnum #1>26 \expandafter\XINT_binom_end_iii \else \expandafter\XINT_binom_vsmallend_iiib \fi #1.% }% \def\XINT_binom_vsmallend_iiib #1.#2.#3.% {% \expandafter\XINT_binom_vsmallfinish \the\numexpr \expandafter\XINT_binom_vsmallmuldiv \the\numexpr #2*(#2+\xint_c_i)*(#2+\xint_c_ii)*(#2+\xint_c_iii)\expandafter !\the\numexpr #1*(#1+\xint_c_i)*(#1+\xint_c_ii)*(#1+\xint_c_iii)!% }% \def\XINT_binom_vsmallend_ii #1.% {% \ifnum #1>27 \expandafter\XINT_binom_end_ii \else \expandafter\XINT_binom_vsmallend_iib \fi #1.% }% \def\XINT_binom_vsmallend_iib #1.#2.#3.% {% \expandafter\XINT_binom_vsmallfinish \the\numexpr \expandafter\XINT_binom_vsmallmuldiv \the\numexpr #2*(#2+\xint_c_i)*(#2+\xint_c_ii)\expandafter !\the\numexpr #1*(#1+\xint_c_i)*(#1+\xint_c_ii)!% }% \def\XINT_binom_vsmallend_i #1.% {% \ifnum #1>28 \expandafter\XINT_binom_end_i \else \expandafter\XINT_binom_vsmallend_ib \fi #1.% }% \def\XINT_binom_vsmallend_ib #1.#2.#3.% {% \expandafter\XINT_binom_vsmallfinish \the\numexpr \expandafter\XINT_binom_vsmallmuldiv \the\numexpr #2*(#2+\xint_c_i)\expandafter !\the\numexpr #1*(#1+\xint_c_i)!% }% \def\XINT_binom_vsmallend_ #1.% {% \ifnum #1>29 \expandafter\XINT_binom_end_ \else \expandafter\XINT_binom_vsmallend_b \fi #1.% }% \def\XINT_binom_vsmallend_b #1.#2.#3.% {% \expandafter\XINT_binom_vsmallfinish \the\numexpr\XINT_binom_vsmallmuldiv #2!#1!% }% \edef\XINT_binom_vsmallfinish 1#1!1!\Z!0!% {\noexpand\expandafter\space\noexpand\the\numexpr #1\relax}% \def\xintiiPFactorial {\romannumeral0\xintiipfactorial }% \def\xintiipfactorial #1#2% {% \expandafter\XINT_pfac_fork\the\numexpr#1\expandafter.\the\numexpr #2.% }% \def\xintiPFactorial{\romannumeral0\xintipfactorial}% \let\xintipfactorial\xintiipfactorial \def\XINT_pfac_fork #1#2.#3#4.% {% \unless\ifnum #1#2<#3#4 \xint_dothis\XINT_pfac_one\fi \if-#3\xint_dothis\XINT_pfac_neg\fi \if-#1\xint_dothis\XINT_pfac_zero\fi \ifnum #3#4>\xint_c_x^viii_mone\xint_dothis\XINT_pfac_outofrange\fi \xint_orthat \XINT_pfac_a #1#2.#3#4.% }% \def\XINT_pfac_outofrange #1.#2.{\xintError:OutOfRangePFac\space 0}% \def\XINT_pfac_one #1.#2.{ 1}% \def\XINT_pfac_zero #1.#2.{ 0}% \def\XINT_pfac_neg -#1.-#2.% {% \ifnum #1>\xint_c_x^viii\xint_dothis\XINT_pfac_outofrange\fi \xint_orthat {\ifodd\numexpr#2-#1\relax\xint_afterfi{\expandafter-\romannumeral`&&@}\fi \expandafter\XINT_pfac_a }% \the\numexpr #2-\xint_c_i\expandafter.\the\numexpr#1-\xint_c_i.% }% \def\XINT_pfac_a #1.#2.% {% \expandafter\XINT_pfac_b\the\numexpr \xint_c_i+#1.#2.100000001!1\Z!% 1\R!1\R!1\R!1\R!1\R!1\R!1\R!1\R!\W }% \def\XINT_pfac_b #1.% {% \ifnum #1>9999 \xint_dothis\XINT_pfac_vbigloop \fi \ifnum #1>463 \xint_dothis\XINT_pfac_bigloop \fi \ifnum #1>98 \xint_dothis\XINT_pfac_medloop \fi \xint_orthat\XINT_pfac_smallloop #1.% }% \def\XINT_pfac_smallloop #1.#2.% {% \ifcase\numexpr #2-#1\relax \expandafter\XINT_pfac_end_ \or \expandafter\XINT_pfac_end_i \or \expandafter\XINT_pfac_end_ii \or \expandafter\XINT_pfac_end_iii \else\expandafter\XINT_pfac_smallloop_a \fi #1.#2.% }% \def\XINT_pfac_smallloop_a #1.#2.% {% \expandafter\XINT_pfac_smallloop_b \the\numexpr #1+\xint_c_iv\expandafter.% \the\numexpr #2\expandafter.% \the\numexpr\expandafter\XINT_smallmul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)*(#1+\xint_c_iii)!% }% \def\XINT_pfac_smallloop_b #1.% {% \ifnum #1>98 \expandafter\XINT_pfac_medloop \else \expandafter\XINT_pfac_smallloop \fi #1.% }% \def\XINT_pfac_medloop #1.#2.% {% \ifcase\numexpr #2-#1\relax \expandafter\XINT_pfac_end_ \or \expandafter\XINT_pfac_end_i \or \expandafter\XINT_pfac_end_ii \else\expandafter\XINT_pfac_medloop_a \fi #1.#2.% }% \def\XINT_pfac_medloop_a #1.#2.% {% \expandafter\XINT_pfac_medloop_b \the\numexpr #1+\xint_c_iii\expandafter.% \the\numexpr #2\expandafter.% \the\numexpr\expandafter\XINT_smallmul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)!% }% \def\XINT_pfac_medloop_b #1.% {% \ifnum #1>463 \expandafter\XINT_pfac_bigloop \else \expandafter\XINT_pfac_medloop \fi #1.% }% \def\XINT_pfac_bigloop #1.#2.% {% \ifcase\numexpr #2-#1\relax \expandafter\XINT_pfac_end_ \or \expandafter\XINT_pfac_end_i \else\expandafter\XINT_pfac_bigloop_a \fi #1.#2.% }% \def\XINT_pfac_bigloop_a #1.#2.% {% \expandafter\XINT_pfac_bigloop_b \the\numexpr #1+\xint_c_ii\expandafter.% \the\numexpr #2\expandafter.% \the\numexpr\expandafter \XINT_smallmul\the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)!% }% \def\XINT_pfac_bigloop_b #1.% {% \ifnum #1>9999 \expandafter\XINT_pfac_vbigloop \else \expandafter\XINT_pfac_bigloop \fi #1.% }% \def\XINT_pfac_vbigloop #1.#2.% {% \ifnum #2=#1 \expandafter\XINT_pfac_end_ \else\expandafter\XINT_pfac_vbigloop_a \fi #1.#2.% }% \def\XINT_pfac_vbigloop_a #1.#2.% {% \expandafter\XINT_pfac_vbigloop \the\numexpr #1+\xint_c_i\expandafter.% \the\numexpr #2\expandafter.% \the\numexpr\expandafter\XINT_smallmul\the\numexpr\xint_c_x^viii+#1!% }% \def\XINT_pfac_end_iii #1.#2.% {% \expandafter\XINT_mul_out \the\numexpr\expandafter\XINT_smallmul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)*(#1+\xint_c_iii)!% }% \def\XINT_pfac_end_ii #1.#2.% {% \expandafter\XINT_mul_out \the\numexpr\expandafter\XINT_smallmul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)!% }% \def\XINT_pfac_end_i #1.#2.% {% \expandafter\XINT_mul_out \the\numexpr\expandafter\XINT_smallmul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)!% }% \def\XINT_pfac_end_ #1.#2.% {% \expandafter\XINT_mul_out \the\numexpr\expandafter\XINT_smallmul\the\numexpr \xint_c_x^viii+#1!% }% \def\xintiiE {\romannumeral0\xintiie }% used in \xintMod. \def\xintiie #1#2% {\expandafter\XINT_iie_fork\the\numexpr #2\expandafter.\romannumeral`&&@#1;}% \def\XINT_iie_fork #1% {% \xint_UDsignfork #1\XINT_iie_neg -\XINT_iie_a \krof #1% }% \def\XINT_iie_a #1.% {\expandafter\XINT_dsx_append\romannumeral\XINT_rep #1\endcsname 0.}% \def\XINT_iie_neg #1.#2;{ #2}% \catcode`! 11 \def\xintMax {\Did_you_mean_iiMax?or_load_xintfrac!}% \def\xintMin {\Did_you_mean_iiMin?or_load_xintfrac!}% \def\xintMaxof {\Did_you_mean_iMaxof?or_load_xintfrac!}% \def\xintMinof {\Did_you_mean_iMinof?or_load_xintfrac!}% \def\xintSum {\Did_you_mean_iiSum?or_load_xintfrac!}% \def\xintPrd {\Did_you_mean_iiPrd?or_load_xintfrac!}% \def\xintPrdExpr {\Did_you_mean_iiPrdExpr?or_load_xintfrac!}% \def\xintSumExpr {\Did_you_mean_iiSumExpr?or_load_xintfrac!}% \XINT_restorecatcodes_endinput% \endinput %% %% End of file `xint.sty'.