%% %% 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 (version 1.09c of October 9, 2013) %% xint: Expandable operations on long numbers %% Copyright (C) 2013 by Jean-Francois Burnol %%---------------------------------------------------------------- %% \begingroup\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ \catcode95=11 % _ \catcode35=6 % # \catcode44=12 % , \catcode45=12 % - \catcode46=12 % . \catcode58=12 % : \expandafter\let\expandafter\x\csname ver@xint.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 \else \def\empty {}% \ifx\x\empty % LaTeX, first loading, % variable is initialized, but \ProvidesPackage not yet seen \else \y{xint}{I was already loaded, aborting input}% \aftergroup\endinput \fi \fi \fi \def\ChangeCatcodesIfInputNotAborted {% \endgroup \def\XINT_storecatcodes {% takes care of all, to allow more economical code in modules \catcode63=\the\catcode63 % ? xintexpr \catcode124=\the\catcode124 % | xintexpr \catcode38=\the\catcode38 % & xintexpr \catcode64=\the\catcode64 % @ xintexpr \catcode33=\the\catcode33 % ! xintexpr \catcode93=\the\catcode93 % ] -, xintfrac, xintseries, xintcfrac \catcode91=\the\catcode91 % [ -, xintfrac, xintseries, xintcfrac \catcode36=\the\catcode36 % $ xintgcd only \catcode94=\the\catcode94 % ^ \catcode96=\the\catcode96 % ` \catcode47=\the\catcode47 % / \catcode41=\the\catcode41 % ) \catcode40=\the\catcode40 % ( \catcode42=\the\catcode42 % * \catcode43=\the\catcode43 % + \catcode62=\the\catcode62 % > \catcode60=\the\catcode60 % < \catcode58=\the\catcode58 % : \catcode46=\the\catcode46 % . \catcode45=\the\catcode45 % - \catcode44=\the\catcode44 % , \catcode35=\the\catcode35 % # \catcode95=\the\catcode95 % _ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar \catcode13=\the\catcode13 % ^^M \catcode32=\the\catcode32 % \catcode61=\the\catcode61\relax % = }% \edef\XINT_restorecatcodes_endinput {% \XINT_storecatcodes\noexpand\endinput % }% \def\XINT_setcatcodes {% \catcode61=12 % = \catcode32=10 % space \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode95=11 % _ (replaces @ everywhere, starting with 1.06b) \catcode35=6 % # \catcode44=12 % , \catcode45=12 % - \catcode46=12 % . \catcode58=11 % : (made letter for error cs) \catcode60=12 % < \catcode62=12 % > \catcode43=12 % + \catcode42=12 % * \catcode40=12 % ( \catcode41=12 % ) \catcode47=12 % / \catcode96=12 % ` \catcode94=11 % ^ \catcode36=3 % $ \catcode91=12 % [ \catcode93=12 % ] \catcode33=11 % ! \catcode64=11 % @ \catcode38=12 % & \catcode124=12 % | \catcode63=11 % ? }% \XINT_setcatcodes }% \ChangeCatcodesIfInputNotAborted \def\XINTsetupcatcodes {% for use by other modules \edef\XINT_restorecatcodes_endinput {% \XINT_storecatcodes\noexpand\endinput % }% \XINT_setcatcodes }% \ifdefined\ProvidesPackage \let\XINT_providespackage\relax \else \def\XINT_providespackage #1#2[#3]% {\immediate\write-1{Package: #2 #3}% \expandafter\xdef\csname ver@#2.sty\endcsname{#3}}% \fi \XINT_providespackage \ProvidesPackage {xint}% [2013/10/09 v1.09c Expandable operations on long numbers (jfB)]% \def\xint_gobble_ {}% \def\xint_gobble_i #1{}% \def\xint_gobble_ii #1#2{}% \def\xint_gobble_iii #1#2#3{}% \def\xint_gobble_iv #1#2#3#4{}% \def\xint_gobble_v #1#2#3#4#5{}% \def\xint_gobble_vi #1#2#3#4#5#6{}% \def\xint_gobble_vii #1#2#3#4#5#6#7{}% \def\xint_gobble_viii #1#2#3#4#5#6#7#8{}% \def\xint_firstofone #1{#1}% \def\xint_firstoftwo #1#2{#1}% \def\xint_secondoftwo #1#2{#2}% \def\xint_firstoftwo_andstop #1#2{ #1}% \def\xint_secondoftwo_andstop #1#2{ #2}% \def\xint_exchangetwo_keepbraces_andstop #1#2{ {#2}{#1}}% \def\xint_firstofthree #1#2#3{#1}% \def\xint_secondofthree #1#2#3{#2}% \def\xint_thirdofthree #1#2#3{#3}% \def\xint_minus_andstop { -}% \def\xint_gob_til_R #1\R {}% \def\xint_gob_til_W #1\W {}% \def\xint_gob_til_Z #1\Z {}% \def\xint_gob_til_zero #10{}% \def\xint_gob_til_one #11{}% \def\xint_gob_til_G #1G{}% \def\xint_gob_til_minus #1-{}% \def\xint_gob_til_zeros_iii #1000{}% \def\xint_gob_til_zeros_iv #10000{}% \def\xint_gob_til_relax #1\relax {}% \def\xint_gob_til_xint_undef #1\xint_undef {}% \def\xint_gob_til_xint_relax #1\xint_relax {}% \def\xint_UDzerofork #10\dummy #2#3\krof {#2}% \def\xint_UDsignfork #1-\dummy #2#3\krof {#2}% \def\xint_UDwfork #1\W\dummy #2#3\krof {#2}% \def\xint_UDzerosfork #100\dummy #2#3\krof {#2}% \def\xint_UDonezerofork #110\dummy #2#3\krof {#2}% \def\xint_UDzerominusfork #10-\dummy #2#3\krof {#2}% \def\xint_UDsignsfork #1--\dummy #2#3\krof {#2}% \def\xint_afterfi #1#2\fi {\fi #1}% \let\xint_relax\relax \def\xint_braced_xint_relax {\xint_relax }% \chardef\xint_c_ 0 \chardef\xint_c_i 1 \chardef\xint_c_ii 2 \chardef\xint_c_iii 3 \chardef\xint_c_iv 4 \chardef\xint_c_v 5 \chardef\xint_c_viii 8 \chardef\xint_c_ix 9 \chardef\xint_c_x 10 \newcount\xint_c_x^viii \xint_c_x^viii 100000000 \newtoks\XINT_toks \def\xintRev {\romannumeral0\xintrev }% \def\xintrev #1% {% \expandafter\XINT_rev_fork \romannumeral-`0#1\xint_relax % empty #1 ok \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax }% \def\XINT_rev_fork #1% {% \xint_UDsignfork #1\dummy {\expandafter\xint_minus_andstop \romannumeral0\XINT_rord_main {}}% -\dummy {\XINT_rord_main {}#1}% \krof }% \def\XINT_Rev {\romannumeral0\XINT_rev }% \def\xintReverseOrder {\romannumeral0\XINT_rev }% \def\XINT_rev #1% {% \XINT_rord_main {}#1% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax }% \def\XINT_rord_main #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_xint_undef #9\XINT_rord_cleanup\xint_undef \XINT_rord_main {#9#8#7#6#5#4#3#2#1}% }% \def\XINT_rord_cleanup\xint_undef\XINT_rord_main #1#2\xint_relax {% \expandafter\space\xint_gob_til_xint_relax #1% }% \def\xintRevWithBraces {\romannumeral0\xintrevwithbraces }% \def\xintRevWithBracesNoExpand {\romannumeral0\xintrevwithbracesnoexpand }% \def\xintrevwithbraces #1% {% \expandafter\XINT_revwbr_loop\expandafter{\expandafter}% \romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \def\xintrevwithbracesnoexpand #1% {% \XINT_revwbr_loop {}% #1\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \def\XINT_revwbr_loop #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_xint_relax #9\XINT_revwbr_finish_a\xint_relax \XINT_revwbr_loop {{#9}{#8}{#7}{#6}{#5}{#4}{#3}{#2}#1}% }% \def\XINT_revwbr_finish_a\xint_relax\XINT_revwbr_loop #1#2\Z {% \XINT_revwbr_finish_b #2\R\R\R\R\R\R\R\Z #1% }% \def\XINT_revwbr_finish_b #1#2#3#4#5#6#7#8\Z {% \xint_gob_til_R #1\XINT_revwbr_finish_c 8% #2\XINT_revwbr_finish_c 7% #3\XINT_revwbr_finish_c 6% #4\XINT_revwbr_finish_c 5% #5\XINT_revwbr_finish_c 4% #6\XINT_revwbr_finish_c 3% #7\XINT_revwbr_finish_c 2% \R\XINT_revwbr_finish_c 1\Z }% \def\XINT_revwbr_finish_c #1#2\Z {% \expandafter\expandafter\expandafter \space \csname xint_gobble_\romannumeral #1\endcsname }% \def\xintiLen {\romannumeral0\xintilen }% \def\xintilen #1% {% \expandafter\XINT_length_fork \romannumeral0\xintnum{#1}\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \let\xintLen\xintiLen \let\xintlen\xintilen \def\XINT_Len #1% {% \romannumeral0\XINT_length_fork #1\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \def\XINT_length_fork #1% {% \expandafter\XINT_length_loop \xint_UDsignfork #1\dummy {{0}}% -\dummy {{0}#1}% \krof }% \def\XINT_Length {\romannumeral0\XINT_length }% \def\XINT_length #1% {% \XINT_length_loop {0}#1\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \let\xintLength\XINT_Length \def\XINT_length_loop #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_xint_relax #9\XINT_length_finish_a\xint_relax \expandafter\XINT_length_loop\expandafter {\the\numexpr #1+8\relax}% }% \def\XINT_length_finish_a\xint_relax \expandafter\XINT_length_loop\expandafter #1#2\Z {% \XINT_length_finish_b #2\W\W\W\W\W\W\W\Z {#1}% }% \def\XINT_length_finish_b #1#2#3#4#5#6#7#8\Z {% \xint_gob_til_W #1\XINT_length_finish_c 8% #2\XINT_length_finish_c 7% #3\XINT_length_finish_c 6% #4\XINT_length_finish_c 5% #5\XINT_length_finish_c 4% #6\XINT_length_finish_c 3% #7\XINT_length_finish_c 2% \W\XINT_length_finish_c 1\Z }% \def\XINT_length_finish_c #1#2\Z #3% {\expandafter\space\the\numexpr #3-#1\relax}% \def\xintCSVtoList {\romannumeral0\xintcsvtolist }% \def\xintCSVtoListNoExpand {\romannumeral0\xintcsvtolistnoexpand }% \def\xintcsvtolist #1% {% \expandafter\XINT_csvtol_loop_a\expandafter {\expandafter}\romannumeral-`0#1% ,\xint_undef,\xint_undef,\xint_undef,\xint_undef ,\xint_undef,\xint_undef,\xint_undef,\xint_undef,\Z }% \def\xintcsvtolistnoexpand #1% {% \XINT_csvtol_loop_a {}#1,\xint_undef,\xint_undef,\xint_undef,\xint_undef ,\xint_undef,\xint_undef,\xint_undef,\xint_undef,\Z }% \def\XINT_csvtol_loop_a #1#2,#3,#4,#5,#6,#7,#8,#9,% {% \xint_gob_til_xint_undef #9\XINT_csvtol_finish_a\xint_undef \XINT_csvtol_loop_b {#1}{{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}% }% \def\XINT_csvtol_loop_b #1#2{\XINT_csvtol_loop_a {#1#2}}% \def\XINT_csvtol_finish_a\xint_undef\XINT_csvtol_loop_b #1#2#3\Z {% \XINT_csvtol_finish_b #3\R,\R,\R,\R,\R,\R,\R,\Z #2{#1}% }% \def\XINT_csvtol_finish_b #1,#2,#3,#4,#5,#6,#7,#8\Z {% \xint_gob_til_R #1\XINT_csvtol_finish_c 8% #2\XINT_csvtol_finish_c 7% #3\XINT_csvtol_finish_c 6% #4\XINT_csvtol_finish_c 5% #5\XINT_csvtol_finish_c 4% #6\XINT_csvtol_finish_c 3% #7\XINT_csvtol_finish_c 2% \R\XINT_csvtol_finish_c 1\Z }% \def\XINT_csvtol_finish_c #1#2\Z {% \csname XINT_csvtol_finish_d\romannumeral #1\endcsname }% \def\XINT_csvtol_finish_dviii #1#2#3#4#5#6#7#8#9{ #9}% \def\XINT_csvtol_finish_dvii #1#2#3#4#5#6#7#8#9{ #9{#1}}% \def\XINT_csvtol_finish_dvi #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}}% \def\XINT_csvtol_finish_dv #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}}% \def\XINT_csvtol_finish_div #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}}% \def\XINT_csvtol_finish_diii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}}% \def\XINT_csvtol_finish_dii #1#2#3#4#5#6#7#8#9{ #9{#1}{#2}{#3}{#4}{#5}{#6}}% \def\XINT_csvtol_finish_di #1#2#3#4#5#6#7#8#9% { #9{#1}{#2}{#3}{#4}{#5}{#6}{#7}}% \def\xintListWithSep {\romannumeral0\xintlistwithsep }% \def\xintListWithSepNoExpand {\romannumeral0\xintlistwithsepnoexpand }% \long\def\xintlistwithsep #1#2% {\expandafter\XINT_lws\expandafter {\romannumeral-`0#2}{#1}}% \long\def\XINT_lws #1#2{\XINT_lws_start {#2}#1\Z }% \long\def\xintlistwithsepnoexpand #1#2{\XINT_lws_start {#1}#2\Z }% \long\def\XINT_lws_start #1#2% {% \xint_gob_til_Z #2\XINT_lws_dont\Z \XINT_lws_loop_a {#2}{#1}% }% \long\def\XINT_lws_dont\Z\XINT_lws_loop_a #1#2{ }% \long\def\XINT_lws_loop_a #1#2#3% {% \xint_gob_til_Z #3\XINT_lws_end\Z \XINT_lws_loop_b {#1}{#2#3}{#2}% }% \long\def\XINT_lws_loop_b #1#2{\XINT_lws_loop_a {#1#2}}% \long\def\XINT_lws_end\Z\XINT_lws_loop_b #1#2#3{ #1}% \def\xintNthElt {\romannumeral0\xintnthelt }% \def\xintNthEltNoExpand {\romannumeral0\xintntheltnoexpand }% \def\xintnthelt #1% {% \expandafter\XINT_nthelt_a\expandafter {\the\numexpr #1}% }% \def\xintntheltnoexpand #1% {% \expandafter\XINT_ntheltnoexpand_a\expandafter {\the\numexpr #1}% }% \def\XINT_nthelt_a #1#2% {% \ifnum #1<0 \xint_afterfi{\expandafter\XINT_nthelt_c\expandafter {\romannumeral0\xintrevwithbraces {#2}}{-#1}}% \else \xint_afterfi{\expandafter\XINT_nthelt_c\expandafter {\romannumeral-`0#2}{#1}}% \fi }% \def\XINT_ntheltnoexpand_a #1#2% {% \ifnum #1<0 \xint_afterfi{\expandafter\XINT_nthelt_c\expandafter {\romannumeral0\xintrevwithbracesnoexpand {#2}}{-#1}}% \else \xint_afterfi{\expandafter\XINT_nthelt_c\expandafter {#2}{#1}}% \fi }% \def\XINT_nthelt_c #1#2% {% \ifnum #2>\xint_c_ \expandafter\XINT_nthelt_loop_a \else \expandafter\XINT_length_loop \fi {#2}#1\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \def\XINT_nthelt_loop_a #1% {% \ifnum #1>\xint_c_viii \expandafter\XINT_nthelt_loop_b \else \expandafter\XINT_nthelt_getit \fi {#1}% }% \def\XINT_nthelt_loop_b #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_xint_relax #9\XINT_nthelt_silentend\xint_relax \expandafter\XINT_nthelt_loop_a\expandafter{\the\numexpr #1-8\relax}% }% \def\XINT_nthelt_silentend #1\Z { }% \def\XINT_nthelt_getit #1% {% \expandafter\expandafter\expandafter\XINT_nthelt_finish \csname xint_gobble_\romannumeral\numexpr#1-1\endcsname }% \def\XINT_nthelt_finish #1#2\Z {% \xint_UDwfork #1\dummy { }% \W\dummy { #1}% \krof }% \def\xintApply {\romannumeral0\xintapply }% \def\xintApplyNoExpand {\romannumeral0\xintapplynoexpand }% \def\xintapply #1#2% {% \expandafter\XINT_apply\expandafter {\romannumeral-`0#2}% {#1}% }% \def\XINT_apply #1#2{\XINT_apply_loop_a {}{#2}#1\Z }% \def\xintapplynoexpand #1#2{\XINT_apply_loop_a {}{#1}#2\Z }% \def\XINT_apply_loop_a #1#2#3% {% \xint_gob_til_Z #3\XINT_apply_end\Z \expandafter \XINT_apply_loop_b \expandafter {\romannumeral-`0#2{#3}}{#1}{#2}% }% \def\XINT_apply_loop_b #1#2{\XINT_apply_loop_a {#2{#1}}}% \def\XINT_apply_end\Z\expandafter\XINT_apply_loop_b\expandafter #1#2#3{ #2}% \def\xintApplyUnbraced {\romannumeral0\xintapplyunbraced }% \def\xintApplyUnbracedNoExpand {\romannumeral0\xintapplyunbracednoexpand }% \def\xintapplyunbraced #1#2% {% \expandafter\XINT_applyunbr\expandafter {\romannumeral-`0#2}% {#1}% }% \def\XINT_applyunbr #1#2{\XINT_applyunbr_loop_a {}{#2}#1\Z }% \def\xintapplyunbracednoexpand #1#2% {\XINT_applyunbr_loop_a {}{#1}#2\Z }% \def\XINT_applyunbr_loop_a #1#2#3% {% \xint_gob_til_Z #3\XINT_applyunbr_end\Z \expandafter\XINT_applyunbr_loop_b \expandafter {\romannumeral-`0#2{#3}}{#1}{#2}% }% \def\XINT_applyunbr_loop_b #1#2{\XINT_applyunbr_loop_a {#2#1}}% \def\XINT_applyunbr_end\Z \expandafter\XINT_applyunbr_loop_b\expandafter #1#2#3{ #2}% \def\xintSeq {\romannumeral0\xintseq }% \def\xintseq #1{\XINT_seq_chkopt #1\Z }% \def\XINT_seq_chkopt #1% {% \ifx [#1\expandafter\XINT_seq_opt \else\expandafter\XINT_seq_noopt \fi #1% }% \def\XINT_seq_noopt #1\Z #2% {% \expandafter\XINT_seq\expandafter {\the\numexpr#1\expandafter}\expandafter{\the\numexpr #2}% }% \def\XINT_seq #1#2% {% \ifcase\xintiSgn{\the\numexpr #2-#1\relax} \expandafter\xint_firstoftwo_andstop \or \expandafter\XINT_seq_p \else \expandafter\XINT_seq_n \fi {#2}{#1}% }% \def\XINT_seq_p #1#2% {% \ifnum #1>#2 \xint_afterfi{\expandafter\XINT_seq_p}% \else \expandafter\XINT_seq_e \fi \expandafter{\the\numexpr #1-1}{#2}{#1}% }% \def\XINT_seq_n #1#2% {% \ifnum #1<#2 \xint_afterfi{\expandafter\XINT_seq_n}% \else \expandafter\XINT_seq_e \fi \expandafter{\the\numexpr #1+1}{#2}{#1}% }% \def\XINT_seq_e #1#2#3{ }% \def\XINT_seq_opt [\Z #1]#2#3% {% \expandafter\XINT_seqo\expandafter {\the\numexpr #2\expandafter}\expandafter {\the\numexpr #3\expandafter}\expandafter {\the\numexpr #1}% }% \def\XINT_seqo #1#2% {% \ifcase\xintiSgn{\the\numexpr #2-#1\relax} \expandafter\XINT_seqo_a \or \expandafter\XINT_seqo_pa \else \expandafter\XINT_seqo_na \fi {#1}{#2}% }% \def\XINT_seqo_a #1#2#3{ {#1}}% \def\XINT_seqo_o #1#2#3#4{ #4}% \def\XINT_seqo_pa #1#2#3% {% \ifcase\XINT_Sgn {#3} \expandafter\XINT_seqo_o \or \expandafter\XINT_seqo_pb \else \xint_afterfi{\expandafter\space\xint_gobble_iv}% \fi {#1}{#2}{#3}{{#1}}% }% \def\XINT_seqo_pb #1#2#3% {% \expandafter\XINT_seqo_pc\expandafter{\the\numexpr #1+#3}{#2}{#3}% }% \def\XINT_seqo_pc #1#2% {% \ifnum#1>#2 \expandafter\XINT_seqo_o \else \expandafter\XINT_seqo_pd \fi {#1}{#2}% }% \def\XINT_seqo_pd #1#2#3#4{\XINT_seqo_pb {#1}{#2}{#3}{#4{#1}}}% \def\XINT_seqo_na #1#2#3% {% \ifcase\XINT_Sgn {#3} \expandafter\XINT_seqo_o \or \xint_afterfi{\expandafter\space\xint_gobble_iv}% \else \expandafter\XINT_seqo_nb \fi {#1}{#2}{#3}{{#1}}% }% \def\XINT_seqo_nb #1#2#3% {% \expandafter\XINT_seqo_nc\expandafter{\the\numexpr #1+#3}{#2}{#3}% }% \def\XINT_seqo_nc #1#2% {% \ifnum#1<#2 \expandafter\XINT_seqo_o \else \expandafter\XINT_seqo_nd \fi {#1}{#2}% }% \def\XINT_seqo_nd #1#2#3#4{\XINT_seqo_nb {#1}{#2}{#3}{#4{#1}}}% \catcode`z 3% \def\xintApplyInline #1#2% {% \expandafter\def\expandafter\XINT_inline_macro\expandafter ##\expandafter 1% \expandafter {#1{##1}}% \expandafter\XINT_inline_b\romannumeral-`0#2z% }% \def\XINT_inline_b {\futurelet\XINT_token\XINT_inline_c }% \def\XINT_inline_c {% \ifx\XINT_token z\expandafter\xint_gobble_i \else \expandafter\XINT_inline_d \fi }% \def\XINT_inline_d #1% {% \def\XINT_item{{#1}}\futurelet\XINT_token\XINT_inline_e }% \def\XINT_inline_e {% \ifx\XINT_token z% \expandafter\XINT_inline_w \else \expandafter\XINT_inline_f \fi }% \def\XINT_inline_f {% \expandafter\XINT_inline_g\expandafter{\XINT_inline_macro {##1}}% }% \def\XINT_inline_g #1% {% \expandafter\XINT_inline_macro\XINT_item \def\XINT_inline_macro ##1{#1}\XINT_inline_d }% \def\XINT_inline_w #1% swallows list terminator {% \expandafter\XINT_inline_macro\XINT_item }% \def\xintFor {\futurelet\XINT_token\XINT_for_ifstar }% \def\XINT_for_ifstar {\ifx\XINT_token*\expandafter\XINT_forx \else\expandafter\XINT_for \fi }% \def\XINT_for #1#2in#3#4#5% {% \XINT_toks \expandafter{\csname XINT_for_d\romannumeral#2\endcsname {#5}}% \expandafter\XINT_for_b #3,z,% }% \def\XINT_forx *#1#2in#3#4#5% {% \XINT_toks \expandafter{\csname XINT_forx_d\romannumeral#2\endcsname {#5}}% \expandafter\XINT_forx_b\romannumeral-`0#3z% }% \def\XINT_for_b {\futurelet\XINT_token\XINT_for_c }% \def\XINT_for_c {% \ifx\XINT_token z\expandafter\xint_gobble_iv\fi \the\XINT_toks }% \def\XINT_for_di #1#2,% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {#2}{####2}{####3}{####4}}% \XINT_toks {\XINT_x\XINT_for_di {#1}}% \futurelet\XINT_token\XINT_for_e }% \def\XINT_for_dii #1#2,% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {####1}{#2}{####3}{####4}}% \XINT_toks {\XINT_x \XINT_for_dii {#1}}% \futurelet\XINT_token\XINT_for_e }% \def\XINT_for_diii #1#2,% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {####1}{####2}{#2}{####4}}% \XINT_toks {\XINT_x \XINT_for_diii {#1}}% \futurelet\XINT_token\XINT_for_e }% \def\XINT_for_div #1#2,% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {####1}{####2}{####3}{#2}}% \XINT_toks {\XINT_x \XINT_for_div {#1}}% \futurelet\XINT_token\XINT_for_e }% \def\XINT_for_e {% \ifx\XINT_token z\xint_afterfi{\expandafter\XINT_x \xint_gobble_iv}\fi \the\XINT_toks }% \def\XINT_forx_b {\futurelet\XINT_token\XINT_forx_c }% \def\XINT_forx_c {% \ifx\XINT_token z\expandafter\xint_gobble_iii\fi \the\XINT_toks }% \def\XINT_forx_di #1#2% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {#2}{####2}{####3}{####4}}% \XINT_toks {\XINT_x \XINT_forx_di {#1}}% \futurelet\XINT_token\XINT_forx_e }% \def\XINT_forx_dii #1#2% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {####1}{#2}{####3}{####4}}% \XINT_toks {\XINT_x \XINT_forx_dii {#1}}% \futurelet\XINT_token\XINT_forx_e }% \def\XINT_forx_diii #1#2% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {####1}{####2}{#2}{####4}}% \XINT_toks {\XINT_x \XINT_forx_diii {#1}}% \futurelet\XINT_token\XINT_forx_e }% \def\XINT_forx_div #1#2% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {####1}{####2}{####3}{#2}}% \XINT_toks {\XINT_x \XINT_forx_div {#1}}% \futurelet\XINT_token\XINT_forx_e }% \def\XINT_forx_e {% \ifx\XINT_token z\xint_afterfi{\expandafter\XINT_x \xint_gobble_iii}\fi \the\XINT_toks }% \def\xintForpair #1#2#3#4in#5#6#7% {% \XINT_toks \expandafter{% \csname XINT_forii_d\romannumeral#2\endcsname {#7}}% \expandafter\XINT_forii_b #5,z,% }% \def\XINT_forii_b {\futurelet\XINT_token\XINT_forii_c }% \def\XINT_forii_c {% \ifx\XINT_token z\expandafter\xint_gobble_iv\fi \the\XINT_toks }% \def\XINT_forii_di #1(#2,#3),% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {#2}{#3}{####3}{####4}}% \XINT_toks {\XINT_x\XINT_forii_di {#1}}% \futurelet\XINT_token\XINT_for_e }% \def\XINT_forii_dii #1(#2,#3),% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {####1}{#2}{#3}{####4}}% \XINT_toks {\XINT_x \XINT_forii_dii {#1}}% \futurelet\XINT_token\XINT_for_e }% \def\XINT_forii_diii #1(#2,#3),% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {####1}{####2}{#2}{#3}}% \XINT_toks {\XINT_x \XINT_forii_diii {#1}}% \futurelet\XINT_token\XINT_for_e }% \def\xintForthree #1#2#3in#4#5#6% {% \XINT_toks \expandafter{% \csname XINT_foriii_d\romannumeral#2\endcsname {#6}}% \expandafter\XINT_foriii_b #4,z,% }% \def\XINT_foriii_b {\futurelet\XINT_token\XINT_foriii_c }% \def\XINT_foriii_c {% \ifx\XINT_token z\expandafter\xint_gobble_iv\fi \the\XINT_toks }% \def\XINT_foriii_di #1(#2,#3,#4),% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {#2}{#3}{#4}{####4}}% \XINT_toks {\XINT_x\XINT_foriii_di {#1}}% \futurelet\XINT_token\XINT_for_e }% \def\XINT_foriii_dii #1(#2,#3,#4),% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {####1}{#2}{#3}{#4}}% \XINT_toks {\XINT_x \XINT_foriii_dii {#1}}% \futurelet\XINT_token\XINT_for_e }% \def\xintForfour #1#2#3in#4#5#6% {% \XINT_toks {\XINT_foriv_di {#6}}% \expandafter\XINT_foriv_b #4,z,% }% \def\XINT_foriv_b {\futurelet\XINT_token\XINT_foriv_c }% \def\XINT_foriv_c {% \ifx\XINT_token z\expandafter\xint_gobble_iv\fi \the\XINT_toks }% \def\XINT_foriv_di #1(#2,#3,#4,#5),% {% \def\XINT_y ##1##2##3##4{#1}% \def\XINT_x {\XINT_y {#2}{#3}{#4}{#5}}% \XINT_toks {\XINT_x\XINT_foriv_di {#1}}% \futurelet\XINT_token\XINT_for_e }% \catcode`z 11 \def\xintAssign #1\to {% \expandafter\XINT_assign_a\romannumeral-`0#1{}\to }% \def\XINT_assign_a #1% attention to the # at the beginning of next line #{% \def\xint_temp {#1}% \ifx\empty\xint_temp \expandafter\XINT_assign_b \else \expandafter\XINT_assign_B \fi }% \def\XINT_assign_b #1#2\to #3% {% \edef #3{#1}\def\xint_temp {#2}% \ifx\empty\xint_temp \else \xint_afterfi{\XINT_assign_a #2\to }% \fi }% \def\XINT_assign_B #1\to #2% {% \edef #2{\xint_temp}% }% \def\xintRelaxArray #1% {% \edef\XINT_restoreescapechar {\escapechar\the\escapechar\relax}% \escapechar -1 \edef\xint_arrayname {\string #1}% \XINT_restoreescapechar \expandafter\let\expandafter\xint_temp \csname\xint_arrayname 0\endcsname \count 255 0 \loop \global\expandafter\let \csname\xint_arrayname\the\count255\endcsname\relax \ifnum \count 255 < \xint_temp \advance\count 255 1 \repeat \global\expandafter\let\csname\xint_arrayname 00\endcsname\relax \global\let #1\relax }% \def\xintAssignArray #1\to #2% 1.06b: #1 may now be empty {% \edef\XINT_restoreescapechar {\escapechar\the\escapechar\relax }% \escapechar -1 \edef\xint_arrayname {\string #2}% \XINT_restoreescapechar \count 255 0 \expandafter\XINT_assignarray_loop \romannumeral-`0#1\xint_relax \csname\xint_arrayname 00\endcsname \csname\xint_arrayname 0\endcsname {\xint_arrayname}% #2% }% \def\XINT_assignarray_loop #1% {% \def\xint_temp {#1}% \ifx\xint_braced_xint_relax\xint_temp \expandafter\edef\csname\xint_arrayname 0\endcsname{\the\count 255 }% \expandafter\expandafter\expandafter\XINT_assignarray_end_a \else \advance\count 255 1 \expandafter\edef \csname\xint_arrayname\the\count 255\endcsname{\xint_temp }% \expandafter\XINT_assignarray_loop \fi }% \def\XINT_assignarray_end_a #1% {% \expandafter\XINT_assignarray_end_b\expandafter #1% }% \def\XINT_assignarray_end_b #1#2#3% {% \expandafter\XINT_assignarray_end_c \expandafter #1\expandafter #2\expandafter {#3}% }% \def\XINT_assignarray_end_c #1#2#3#4% {% \def #4##1% {% \romannumeral0\expandafter #1\expandafter{\the\numexpr ##1}% }% \def #1##1% {% \ifnum ##1< 0 \xint_afterfi {\xintError:ArrayIndexIsNegative\space 0}% \else \xint_afterfi {% \ifnum ##1>#2 \xint_afterfi {\xintError:ArrayIndexBeyondLimit\space 0}% \else \xint_afterfi {\expandafter\expandafter\expandafter \space\csname #3##1\endcsname}% \fi}% \fi }% }% \let\xintDigitsOf\xintAssignArray \def\XINT_RQ #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_R #9\XINT_RQ_end_a\R\XINT_RQ {#9#8#7#6#5#4#3#2#1}% }% \def\XINT_RQ_end_a\R\XINT_RQ #1#2\Z {% \XINT_RQ_end_b #1\Z }% \def\XINT_RQ_end_b #1#2#3#4#5#6#7#8% {% \xint_gob_til_R #8\XINT_RQ_end_viii #7\XINT_RQ_end_vii #6\XINT_RQ_end_vi #5\XINT_RQ_end_v #4\XINT_RQ_end_iv #3\XINT_RQ_end_iii #2\XINT_RQ_end_ii \R\XINT_RQ_end_i \Z #2#3#4#5#6#7#8% }% \def\XINT_RQ_end_viii #1\Z #2#3#4#5#6#7#8#9\Z { #9}% \def\XINT_RQ_end_vii #1\Z #2#3#4#5#6#7#8#9\Z { #8#9000}% \def\XINT_RQ_end_vi #1\Z #2#3#4#5#6#7#8#9\Z { #7#8#900}% \def\XINT_RQ_end_v #1\Z #2#3#4#5#6#7#8#9\Z { #6#7#8#90}% \def\XINT_RQ_end_iv #1\Z #2#3#4#5#6#7#8#9\Z { #5#6#7#8#9}% \def\XINT_RQ_end_iii #1\Z #2#3#4#5#6#7#8#9\Z { #4#5#6#7#8#9000}% \def\XINT_RQ_end_ii #1\Z #2#3#4#5#6#7#8#9\Z { #3#4#5#6#7#8#900}% \def\XINT_RQ_end_i \Z #1#2#3#4#5#6#7#8\Z { #1#2#3#4#5#6#7#80}% \def\XINT_SQ #1#2#3#4#5#6#7#8% {% \xint_gob_til_R #8\XINT_SQ_end_a\R\XINT_SQ {#8#7#6#5#4#3#2#1}% }% \def\XINT_SQ_end_a\R\XINT_SQ #1#2\Z {% \XINT_SQ_end_b #1\Z }% \def\XINT_SQ_end_b #1#2#3#4#5#6#7% {% \xint_gob_til_R #7\XINT_SQ_end_vii #6\XINT_SQ_end_vi #5\XINT_SQ_end_v #4\XINT_SQ_end_iv #3\XINT_SQ_end_iii #2\XINT_SQ_end_ii \R\XINT_SQ_end_i \Z #2#3#4#5#6#7% }% \def\XINT_SQ_end_vii #1\Z #2#3#4#5#6#7#8\Z { #8}% \def\XINT_SQ_end_vi #1\Z #2#3#4#5#6#7#8\Z { #7#8000000}% \def\XINT_SQ_end_v #1\Z #2#3#4#5#6#7#8\Z { #6#7#800000}% \def\XINT_SQ_end_iv #1\Z #2#3#4#5#6#7#8\Z { #5#6#7#80000}% \def\XINT_SQ_end_iii #1\Z #2#3#4#5#6#7#8\Z { #4#5#6#7#8000}% \def\XINT_SQ_end_ii #1\Z #2#3#4#5#6#7#8\Z { #3#4#5#6#7#800}% \def\XINT_SQ_end_i \Z #1#2#3#4#5#6#7\Z { #1#2#3#4#5#6#70}% \def\XINT_OQ #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_R #9\XINT_OQ_end_a\R\XINT_OQ {#9#8#7#6#5#4#3#2#1}% }% \def\XINT_OQ_end_a\R\XINT_OQ #1#2\Z {% \XINT_OQ_end_b #1\Z }% \def\XINT_OQ_end_b #1#2#3#4#5#6#7#8% {% \xint_gob_til_R #8\XINT_OQ_end_viii #7\XINT_OQ_end_vii #6\XINT_OQ_end_vi #5\XINT_OQ_end_v #4\XINT_OQ_end_iv #3\XINT_OQ_end_iii #2\XINT_OQ_end_ii \R\XINT_OQ_end_i \Z #2#3#4#5#6#7#8% }% \def\XINT_OQ_end_viii #1\Z #2#3#4#5#6#7#8#9\Z { #9}% \def\XINT_OQ_end_vii #1\Z #2#3#4#5#6#7#8#9\Z { #8#90000000}% \def\XINT_OQ_end_vi #1\Z #2#3#4#5#6#7#8#9\Z { #7#8#9000000}% \def\XINT_OQ_end_v #1\Z #2#3#4#5#6#7#8#9\Z { #6#7#8#900000}% \def\XINT_OQ_end_iv #1\Z #2#3#4#5#6#7#8#9\Z { #5#6#7#8#90000}% \def\XINT_OQ_end_iii #1\Z #2#3#4#5#6#7#8#9\Z { #4#5#6#7#8#9000}% \def\XINT_OQ_end_ii #1\Z #2#3#4#5#6#7#8#9\Z { #3#4#5#6#7#8#900}% \def\XINT_OQ_end_i \Z #1#2#3#4#5#6#7#8\Z { #1#2#3#4#5#6#7#80}% \def\xint_cleanupzeros_andstop #1#2#3#4% {% \expandafter\space\the\numexpr #1#2#3#4\relax }% \def\xint_cleanupzeros_nospace #1#2#3#4% {% \the\numexpr #1#2#3#4\relax }% \def\XINT_rev_andcuz #1% {% \expandafter\xint_cleanupzeros_andstop \romannumeral0\XINT_rord_main {}#1% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax }% \def\XINT_cuz #1% {% \XINT_cuz_loop #1\W\W\W\W\W\W\W\Z% }% \def\XINT_cuz_loop #1#2#3#4#5#6#7#8% {% \xint_gob_til_W #8\xint_cuz_end_a\W \xint_gob_til_Z #8\xint_cuz_end_A\Z \XINT_cuz_check_a {#1#2#3#4#5#6#7#8}% }% \def\xint_cuz_end_a #1\XINT_cuz_check_a #2% {% \xint_cuz_end_b #2% }% \def\xint_cuz_end_b #1#2#3#4#5\Z {% \expandafter\space\the\numexpr #1#2#3#4\relax }% \def\xint_cuz_end_A \Z\XINT_cuz_check_a #1{ 0}% \def\XINT_cuz_check_a #1% {% \expandafter\XINT_cuz_check_b\the\numexpr #1\relax }% \def\XINT_cuz_check_b #1% {% \xint_gob_til_zero #1\xint_cuz_backtoloop 0\XINT_cuz_stop #1% }% \def\XINT_cuz_stop #1\W #2\Z{ #1}% \def\xint_cuz_backtoloop 0\XINT_cuz_stop 0{\XINT_cuz_loop }% \def\xintIsOne {\romannumeral0\xintisone }% \def\xintisone #1{\expandafter\XINT_isone \romannumeral0\xintnum{#1}\W\Z }% \def\XINT_isOne #1{\romannumeral0\XINT_isone #1\W\Z }% \def\XINT_isone #1#2% {% \xint_gob_til_one #1\XINT_isone_b 1% \expandafter\space\expandafter 0\xint_gob_til_Z #2% }% \def\XINT_isone_b #1\xint_gob_til_Z #2% {% \xint_gob_til_W #2\XINT_isone_yes \W \expandafter\space\expandafter 0\xint_gob_til_Z }% \def\XINT_isone_yes #1\Z { 1}% \def\xintiNum {\romannumeral0\xintinum }% \def\xintinum #1% {% \expandafter\XINT_num_loop \romannumeral-`0#1\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \let\xintNum\xintiNum \let\xintnum\xintinum \def\XINT_num #1% {% \XINT_num_loop #1\xint_relax\xint_relax\xint_relax\xint_relax \xint_relax\xint_relax\xint_relax\xint_relax\Z }% \def\XINT_num_loop #1#2#3#4#5#6#7#8% {% \xint_gob_til_xint_relax #8\XINT_num_end\xint_relax \XINT_num_NumEight #1#2#3#4#5#6#7#8% }% \def\XINT_num_end\xint_relax\XINT_num_NumEight #1\xint_relax #2\Z {% \expandafter\space\the\numexpr #1+0\relax }% \def\XINT_num_NumEight #1#2#3#4#5#6#7#8% {% \ifnum \numexpr #1#2#3#4#5#6#7#8+0= 0 \xint_afterfi {\expandafter\XINT_num_keepsign_a \the\numexpr #1#2#3#4#5#6#7#81\relax}% \else \xint_afterfi {\expandafter\XINT_num_finish \the\numexpr #1#2#3#4#5#6#7#8\relax}% \fi }% \def\XINT_num_keepsign_a #1% {% \xint_gob_til_one#1\XINT_num_gobacktoloop 1\XINT_num_keepsign_b }% \def\XINT_num_gobacktoloop 1\XINT_num_keepsign_b {\XINT_num_loop }% \def\XINT_num_keepsign_b #1{\XINT_num_loop -}% \def\XINT_num_finish #1\xint_relax #2\Z { #1}% \def\xintiSgn {\romannumeral0\xintisgn }% \def\xintisgn #1% {% \expandafter\XINT_sgn \romannumeral-`0#1\Z% }% \def\xintSgn {\romannumeral0\xintsgn }% \def\xintsgn #1% {% \expandafter\XINT_sgn \romannumeral0\xintnum{#1}\Z% }% \def\XINT_Sgn #1{\romannumeral0\XINT_sgn #1\Z }% \def\XINT_sgn #1#2\Z {% \xint_UDzerominusfork #1-\dummy { 0}% 0#1\dummy { -1}% 0-\dummy { 1}% \krof }% \def\xintBool #1{\romannumeral-`0% \csname if#1\endcsname\expandafter1\else\expandafter0\fi }% \def\xintToggle #1{\romannumeral-`0\iftoggle{#1}{1}{0}}% \def\xintSgnFork {\romannumeral0\xintsgnfork }% \def\xintsgnfork #1% {% \ifcase #1 \xint_afterfi{\expandafter\space\xint_secondofthree}% \or\xint_afterfi{\expandafter\space\xint_thirdofthree}% \else\xint_afterfi{\expandafter\space\xint_firstofthree}% \fi }% \def\xintifSgn {\romannumeral0\xintifsgn }% \def\xintifsgn #1% {% \ifcase \romannumeral0\xintsgn{#1} \xint_afterfi{\expandafter\space\xint_secondofthree}% \or\xint_afterfi{\expandafter\space\xint_thirdofthree}% \else\xint_afterfi{\expandafter\space\xint_firstofthree}% \fi }% \def\xintifZero {\romannumeral0\xintifzero }% \def\xintifzero #1% {% \if\xintSgn{\xintAbs{#1}}0% \xint_afterfi{\expandafter\space\xint_firstoftwo}% \else \xint_afterfi{\expandafter\space\xint_secondoftwo}% \fi }% \def\xintifNotZero {\romannumeral0\xintifnotzero }% \def\xintifnotzero #1% {% \if\xintSgn{\xintAbs{#1}}1% \xint_afterfi{\expandafter\space\xint_firstoftwo}% \else \xint_afterfi{\expandafter\space\xint_secondoftwo}% \fi }% \let\xintifTrue\xintifNotZero \def\xintifEq {\romannumeral0\xintifeq }% \def\xintifeq #1#2% {% \if\xintCmp{#1}{#2}0% \xint_afterfi{\expandafter\space\xint_firstoftwo}% \else\xint_afterfi{\expandafter\space\xint_secondoftwo}% \fi }% \def\xintifGt {\romannumeral0\xintifgt }% \def\xintifgt #1#2% {% \if\xintCmp{#1}{#2}1% \xint_afterfi{\expandafter\space\xint_firstoftwo}% \else\xint_afterfi{\expandafter\space\xint_secondoftwo}% \fi }% \def\xintifLt {\romannumeral0\xintiflt }% \def\xintiflt #1#2% {% \xintSgnFork{\xintCmp{#1}{#2}}% {\expandafter\space\xint_firstoftwo}% {\expandafter\space\xint_secondoftwo}% {\expandafter\space\xint_secondoftwo}% }% \def\xintiiOpp {\romannumeral0\xintiiopp }% \def\xintiiopp #1% {% \expandafter\XINT_opp \romannumeral-`0#1% }% \def\xintiOpp {\romannumeral0\xintiopp }% \def\xintiopp #1% {% \expandafter\XINT_opp \romannumeral0\xintnum{#1}% }% \let\xintOpp\xintiOpp \let\xintopp\xintiopp \def\XINT_Opp #1{\romannumeral0\XINT_opp #1}% \def\XINT_opp #1% {% \xint_UDzerominusfork #1-\dummy { 0}% zero 0#1\dummy { }% negative 0-\dummy { -#1}% positive \krof }% \def\xintiiAbs {\romannumeral0\xintiiabs }% \def\xintiiabs #1% {% \expandafter\XINT_abs \romannumeral-`0#1% }% \def\xintiAbs {\romannumeral0\xintiabs }% \def\xintiabs #1% {% \expandafter\XINT_abs \romannumeral0\xintnum{#1}% }% \let\xintAbs\xintiAbs \let\xintabs\xintiabs \def\XINT_Abs #1{\romannumeral0\XINT_abs #1}% \def\XINT_abs #1% {% \xint_UDsignfork #1\dummy { }% -\dummy { #1}% \krof }% \def\XINT_add_A #1#2#3#4#5#6% {% \xint_gob_til_W #3\xint_add_az\W \XINT_add_AB #1{#3#4#5#6}{#2}% }% \def\xint_add_az\W\XINT_add_AB #1#2% {% \XINT_add_AC_checkcarry #1% }% \def\XINT_add_AB #1#2#3#4\W\X\Y\Z #5#6#7#8% {% \xint_gob_til_W #5\xint_add_bz\W \XINT_add_ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% \def\XINT_add_ABE #1#2#3#4#5#6% {% \expandafter\XINT_add_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.% }% \def\XINT_add_ABEA #1#2#3.#4% {% \XINT_add_A #2{#3#4}% }% \def\xint_add_bz\W\XINT_add_ABE #1#2#3#4#5#6% {% \expandafter\XINT_add_CC\the\numexpr #1+10#5#4#3#2\relax.% }% \def\XINT_add_CC #1#2#3.#4% {% \XINT_add_AC_checkcarry #2{#3#4}% on va examiner et \'eliminer #2 }% \def\XINT_add_AC_checkcarry #1% {% \xint_gob_til_zero #1\xint_add_AC_nocarry 0\XINT_add_C }% \def\xint_add_AC_nocarry 0\XINT_add_C #1#2\W\X\Y\Z {% \expandafter \xint_cleanupzeros_andstop \romannumeral0% \XINT_rord_main {}#2% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax #1% }% \def\XINT_add_C #1#2#3#4#5% {% \xint_gob_til_W #2\xint_add_cz\W \XINT_add_CD {#5#4#3#2}{#1}% }% \def\XINT_add_CD #1% {% \expandafter\XINT_add_CC\the\numexpr 1+10#1\relax.% }% \def\xint_add_cz\W\XINT_add_CD #1#2{ 1#2}% \def\XINT_addr_A #1#2#3#4#5#6% {% \xint_gob_til_W #3\xint_addr_az\W \XINT_addr_B #1{#3#4#5#6}{#2}% }% \def\xint_addr_az\W\XINT_addr_B #1#2% {% \XINT_addr_AC_checkcarry #1% }% \def\XINT_addr_B #1#2#3#4\W\X\Y\Z #5#6#7#8% {% \xint_gob_til_W #5\xint_addr_bz\W \XINT_addr_E #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% \def\XINT_addr_E #1#2#3#4#5#6% {% \expandafter\XINT_addr_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax }% \def\XINT_addr_ABEA #1#2#3#4#5#6#7% {% \XINT_addr_A #2{#7#6#5#4#3}% }% \def\xint_addr_bz\W\XINT_addr_E #1#2#3#4#5#6% {% \expandafter\XINT_addr_CC\the\numexpr #1+10#5#4#3#2\relax }% \def\XINT_addr_CC #1#2#3#4#5#6#7% {% \XINT_addr_AC_checkcarry #2{#7#6#5#4#3}% }% \def\XINT_addr_AC_checkcarry #1% {% \xint_gob_til_zero #1\xint_addr_AC_nocarry 0\XINT_addr_C }% \def\xint_addr_AC_nocarry 0\XINT_addr_C #1#2\W\X\Y\Z { #1#2}% \def\XINT_addr_C #1#2#3#4#5% {% \xint_gob_til_W #2\xint_addr_cz\W \XINT_addr_D {#5#4#3#2}{#1}% }% \def\XINT_addr_D #1% {% \expandafter\XINT_addr_CC\the\numexpr 1+10#1\relax }% \def\xint_addr_cz\W\XINT_addr_D #1#2{ #21000}% \def\XINT_addm_A #1#2#3#4#5#6% {% \xint_gob_til_W #3\xint_addm_az\W \XINT_addm_AB #1{#3#4#5#6}{#2}% }% \def\xint_addm_az\W\XINT_addm_AB #1#2% {% \XINT_addm_AC_checkcarry #1% }% \def\XINT_addm_AB #1#2#3#4\W\X\Y\Z #5#6#7#8% {% \XINT_addm_ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% \def\XINT_addm_ABE #1#2#3#4#5#6% {% \expandafter\XINT_addm_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax.% }% \def\XINT_addm_ABEA #1#2#3.#4% {% \XINT_addm_A #2{#3#4}% }% \def\XINT_addm_AC_checkcarry #1% {% \xint_gob_til_zero #1\xint_addm_AC_nocarry 0\XINT_addm_C }% \def\xint_addm_AC_nocarry 0\XINT_addm_C #1#2\W\X\Y\Z {% \expandafter \xint_cleanupzeros_andstop \romannumeral0% \XINT_rord_main {}#2% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax #1% }% \def\XINT_addm_C #1#2#3#4#5% {% \xint_gob_til_W #5\xint_addm_cw #4\xint_addm_cx #3\xint_addm_cy #2\xint_addm_cz \W\XINT_addm_CD {#5#4#3#2}{#1}% }% \def\XINT_addm_CD #1% {% \expandafter\XINT_addm_CC\the\numexpr 1+10#1\relax.% }% \def\XINT_addm_CC #1#2#3.#4% {% \XINT_addm_AC_checkcarry #2{#3#4}% }% \def\xint_addm_cw #1\xint_addm_cx #2\xint_addm_cy #3\xint_addm_cz \W\XINT_addm_CD {% \expandafter\XINT_addm_CDw\the\numexpr 1+#1#2#3\relax.% }% \def\XINT_addm_CDw #1.#2#3\X\Y\Z {% \XINT_addm_end #1#3% }% \def\xint_addm_cx #1\xint_addm_cy #2\xint_addm_cz \W\XINT_addm_CD {% \expandafter\XINT_addm_CDx\the\numexpr 1+#1#2\relax.% }% \def\XINT_addm_CDx #1.#2#3\Y\Z {% \XINT_addm_end #1#3% }% \def\xint_addm_cy #1\xint_addm_cz \W\XINT_addm_CD {% \expandafter\XINT_addm_CDy\the\numexpr 1+#1\relax.% }% \def\XINT_addm_CDy #1.#2#3\Z {% \XINT_addm_end #1#3% }% \def\xint_addm_cz\W\XINT_addm_CD #1#2#3{\XINT_addm_end #1#3}% \def\XINT_addm_end #1#2#3#4#5% {\expandafter\space\the\numexpr #1#2#3#4#5\relax}% \def\XINT_addp_A #1#2#3#4#5#6% {% \xint_gob_til_W #3\xint_addp_az\W \XINT_addp_AB #1{#3#4#5#6}{#2}% }% \def\xint_addp_az\W\XINT_addp_AB #1#2% {% \XINT_addp_AC_checkcarry #1% }% \def\XINT_addp_AC_checkcarry #1% {% \xint_gob_til_zero #1\xint_addp_AC_nocarry 0\XINT_addp_C }% \def\xint_addp_AC_nocarry 0\XINT_addp_C {% \XINT_addp_F }% \def\XINT_addp_AB #1#2#3#4\W\X\Y\Z #5#6#7#8% {% \XINT_addp_ABE #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% \def\XINT_addp_ABE #1#2#3#4#5#6% {% \expandafter\XINT_addp_ABEA\the\numexpr #1+10#5#4#3#2+#6\relax }% \def\XINT_addp_ABEA #1#2#3#4#5#6#7% {% \XINT_addp_A #2{#7#6#5#4#3}%<-- attention on met donc \`a droite }% \def\XINT_addp_C #1#2#3#4#5% {% \xint_gob_til_W #5\xint_addp_cw #4\xint_addp_cx #3\xint_addp_cy #2\xint_addp_cz \W\XINT_addp_CD {#5#4#3#2}{#1}% }% \def\XINT_addp_CD #1% {% \expandafter\XINT_addp_CC\the\numexpr 1+10#1\relax }% \def\XINT_addp_CC #1#2#3#4#5#6#7% {% \XINT_addp_AC_checkcarry #2{#7#6#5#4#3}% }% \def\xint_addp_cw #1\xint_addp_cx #2\xint_addp_cy #3\xint_addp_cz \W\XINT_addp_CD {% \expandafter\XINT_addp_CDw\the\numexpr \xint_c_i+10#1#2#3\relax }% \def\XINT_addp_CDw #1#2#3#4#5#6% {% \xint_gob_til_zeros_iv #2#3#4#5\XINT_addp_endDw_zeros 0000\XINT_addp_endDw #2#3#4#5% }% \def\XINT_addp_endDw_zeros 0000\XINT_addp_endDw 0000#1\X\Y\Z{ #1}% \def\XINT_addp_endDw #1#2#3#4#5\X\Y\Z{ #5#4#3#2#1}% \def\xint_addp_cx #1\xint_addp_cy #2\xint_addp_cz \W\XINT_addp_CD {% \expandafter\XINT_addp_CDx\the\numexpr \xint_c_i+100#1#2\relax }% \def\XINT_addp_CDx #1#2#3#4#5#6% {% \xint_gob_til_zeros_iv #2#3#4#5\XINT_addp_endDx_zeros 0000\XINT_addp_endDx #2#3#4#5% }% \def\XINT_addp_endDx_zeros 0000\XINT_addp_endDx 0000#1\Y\Z{ #1}% \def\XINT_addp_endDx #1#2#3#4#5\Y\Z{ #5#4#3#2#1}% \def\xint_addp_cy #1\xint_addp_cz\W\XINT_addp_CD {% \expandafter\XINT_addp_CDy\the\numexpr \xint_c_i+1000#1\relax }% \def\XINT_addp_CDy #1#2#3#4#5#6% {% \xint_gob_til_zeros_iv #2#3#4#5\XINT_addp_endDy_zeros 0000\XINT_addp_endDy #2#3#4#5% }% \def\XINT_addp_endDy_zeros 0000\XINT_addp_endDy 0000#1\Z{ #1}% \def\XINT_addp_endDy #1#2#3#4#5\Z{ #5#4#3#2#1}% \def\xint_addp_cz\W\XINT_addp_CD #1#2{ #21000}% \def\XINT_addp_F #1#2#3#4#5% {% \xint_gob_til_W #5\xint_addp_Gw #4\xint_addp_Gx #3\xint_addp_Gy #2\xint_addp_Gz \W\XINT_addp_G {#2#3#4#5}{#1}% }% \def\XINT_addp_G #1#2% {% \XINT_addp_F {#2#1}% }% \def\xint_addp_Gw #1\xint_addp_Gx #2\xint_addp_Gy #3\xint_addp_Gz \W\XINT_addp_G #4% {% \xint_gob_til_zeros_iv #3#2#10\XINT_addp_endGw_zeros 0000\XINT_addp_endGw #3#2#10% }% \def\XINT_addp_endGw_zeros 0000\XINT_addp_endGw 0000#1\X\Y\Z{ #1}% \def\XINT_addp_endGw #1#2#3#4#5\X\Y\Z{ #5#1#2#3#4}% \def\xint_addp_Gx #1\xint_addp_Gy #2\xint_addp_Gz \W\XINT_addp_G #3% {% \xint_gob_til_zeros_iv #2#100\XINT_addp_endGx_zeros 0000\XINT_addp_endGx #2#100% }% \def\XINT_addp_endGx_zeros 0000\XINT_addp_endGx 0000#1\Y\Z{ #1}% \def\XINT_addp_endGx #1#2#3#4#5\Y\Z{ #5#1#2#3#4}% \def\xint_addp_Gy #1\xint_addp_Gz \W\XINT_addp_G #2% {% \xint_gob_til_zeros_iv #1000\XINT_addp_endGy_zeros 0000\XINT_addp_endGy #1000% }% \def\XINT_addp_endGy_zeros 0000\XINT_addp_endGy 0000#1\Z{ #1}% \def\XINT_addp_endGy #1#2#3#4#5\Z{ #5#1#2#3#4}% \def\xint_addp_Gz\W\XINT_addp_G #1#2{ #2}% \def\xintiiAdd {\romannumeral0\xintiiadd }% \def\xintiiadd #1% {% \expandafter\xint_iiadd\expandafter{\romannumeral-`0#1}% }% \def\xint_iiadd #1#2% {% \expandafter\XINT_add_fork \romannumeral-`0#2\Z #1\Z }% \def\xintiAdd {\romannumeral0\xintiadd }% \def\xintiadd #1% {% \expandafter\xint_add\expandafter{\romannumeral0\xintnum{#1}}% }% \def\xint_add #1#2% {% \expandafter\XINT_add_fork \romannumeral0\xintnum{#2}\Z #1\Z }% \let\xintAdd\xintiAdd \let\xintadd\xintiadd \def\XINT_Add #1#2{\romannumeral0\XINT_add_fork #2\Z #1\Z }% \def\XINT_add #1#2{\XINT_add_fork #2\Z #1\Z }% \def\XINT_add_fork #1#2\Z #3#4\Z {% \xint_UDzerofork #1\dummy \XINT_add_secondiszero #3\dummy \XINT_add_firstiszero 0\dummy {\xint_UDsignsfork #1#3\dummy \XINT_add_minusminus % #1 = #3 = - #1-\dummy \XINT_add_minusplus % #1 = - #3-\dummy \XINT_add_plusminus % #3 = - --\dummy \XINT_add_plusplus \krof }% \krof {#2}{#4}#1#3% }% \def\XINT_add_secondiszero #1#2#3#4{ #4#2}% \def\XINT_add_firstiszero #1#2#3#4{ #3#1}% \def\XINT_add_minusminus #1#2#3#4% {% \expandafter\xint_minus_andstop% \romannumeral0\XINT_add_pre {#2}{#1}% }% \def\XINT_add_minusplus #1#2#3#4% {% \XINT_sub_pre {#4#2}{#1}% }% \def\XINT_add_plusminus #1#2#3#4% {% \XINT_sub_pre {#3#1}{#2}% }% \def\XINT_add_plusplus #1#2#3#4% {% \XINT_add_pre {#4#2}{#3#1}% }% \def\XINT_add_pre #1% {% \expandafter\XINT_add_pre_b\expandafter {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% \def\XINT_add_pre_b #1#2% {% \expandafter\XINT_add_A \expandafter0\expandafter{\expandafter}% \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% \def\xintiiSub {\romannumeral0\xintiisub }% \def\xintiisub #1% {% \expandafter\xint_iisub\expandafter{\romannumeral-`0#1}% }% \def\xint_iisub #1#2% {% \expandafter\XINT_sub_fork \romannumeral-`0#2\Z #1\Z }% \def\xintiSub {\romannumeral0\xintisub }% \def\xintisub #1% {% \expandafter\xint_sub\expandafter{\romannumeral0\xintnum{#1}}% }% \def\xint_sub #1#2% {% \expandafter\XINT_sub_fork \romannumeral0\xintnum{#2}\Z #1\Z }% \def\XINT_Sub #1#2{\romannumeral0\XINT_sub_fork #2\Z #1\Z }% \def\XINT_sub #1#2{\XINT_sub_fork #2\Z #1\Z }% \let\xintSub\xintiSub \let\xintsub\xintisub \def\XINT_sub_fork #1#2\Z #3#4\Z {% \xint_UDsignsfork #1#3\dummy \XINT_sub_minusminus #1-\dummy \XINT_sub_minusplus % attention, #3=0 possible #3-\dummy \XINT_sub_plusminus % attention, #1=0 possible --\dummy {\xint_UDzerofork #1\dummy \XINT_sub_secondiszero #3\dummy \XINT_sub_firstiszero 0\dummy \XINT_sub_plusplus \krof }% \krof {#2}{#4}#1#3% }% \def\XINT_sub_secondiszero #1#2#3#4{ #4#2}% \def\XINT_sub_firstiszero #1#2#3#4{ -#3#1}% \def\XINT_sub_plusplus #1#2#3#4% {% \XINT_sub_pre {#4#2}{#3#1}% }% \def\XINT_sub_minusminus #1#2#3#4% {% \XINT_sub_pre {#1}{#2}% }% \def\XINT_sub_minusplus #1#2#3#4% {% \xint_gob_til_zero #4\xint_sub_mp0\XINT_add_pre {#4#2}{#1}% }% \def\xint_sub_mp0\XINT_add_pre #1#2{ #2}% \def\XINT_sub_plusminus #1#2#3#4% {% \xint_gob_til_zero #3\xint_sub_pm0\expandafter\xint_minus_andstop% \romannumeral0\XINT_add_pre {#2}{#3#1}% }% \def\xint_sub_pm #1\XINT_add_pre #2#3{ -#2}% \def\XINT_sub_pre #1% {% \expandafter\XINT_sub_pre_b\expandafter {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% \def\XINT_sub_pre_b #1#2% {% \expandafter\XINT_sub_A \expandafter1\expandafter{\expandafter}% \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1 \W\X\Y\Z }% \def\XINT_sub_A #1#2#3\W\X\Y\Z #4#5#6#7% {% \xint_gob_til_W #4\xint_sub_az \W\XINT_sub_B #1{#4#5#6#7}{#2}#3\W\X\Y\Z }% \def\XINT_sub_B #1#2#3#4#5#6#7% {% \xint_gob_til_W #4\xint_sub_bz \W\XINT_sub_onestep #1#2{#7#6#5#4}{#3}% }% \def\XINT_sub_onestep #1#2#3#4#5#6% {% \expandafter\XINT_sub_backtoA\the\numexpr 11#5#4#3#2-#6+#1-\xint_c_i\relax.% }% \def\XINT_sub_backtoA #1#2#3.#4% {% \XINT_sub_A #2{#3#4}% }% \def\xint_sub_bz \W\XINT_sub_onestep #1#2#3#4#5#6#7% {% \xint_UDzerofork #1\dummy \XINT_sub_C % une retenue 0\dummy \XINT_sub_D % pas de retenue \krof {#7}#2#3#4#5% }% \def\XINT_sub_D #1#2\W\X\Y\Z {% \expandafter \xint_cleanupzeros_andstop \romannumeral0% \XINT_rord_main {}#2% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax #1% }% \def\XINT_sub_C #1#2#3#4#5% {% \xint_gob_til_W #2\xint_sub_cz \W\XINT_sub_AC_onestep {#5#4#3#2}{#1}% }% \def\XINT_sub_AC_onestep #1% {% \expandafter\XINT_sub_backtoC\the\numexpr 11#1-\xint_c_i\relax.% }% \def\XINT_sub_backtoC #1#2#3.#4% {% \XINT_sub_AC_checkcarry #2{#3#4}% la retenue va \^etre examin\'ee }% \def\XINT_sub_AC_checkcarry #1% {% \xint_gob_til_one #1\xint_sub_AC_nocarry 1\XINT_sub_C }% \def\xint_sub_AC_nocarry 1\XINT_sub_C #1#2\W\X\Y\Z {% \expandafter \XINT_cuz_loop \romannumeral0% \XINT_rord_main {}#2% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax #1\W\W\W\W\W\W\W\Z }% \def\xint_sub_cz\W\XINT_sub_AC_onestep #1% {% \XINT_cuz }% \def\xint_sub_az\W\XINT_sub_B #1#2#3#4#5#6#7% {% \xint_gob_til_W #4\xint_sub_ez \W\XINT_sub_Eenter #1{#3}#4#5#6#7% }% \def\XINT_sub_Eenter #1#2% {% \expandafter \XINT_sub_E\expandafter1\expandafter{\expandafter}% \romannumeral0% \XINT_rord_main {}#2% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax \W\X\Y\Z #1% }% \def\XINT_sub_E #1#2#3#4#5#6% {% \xint_gob_til_W #3\xint_sub_F\W \XINT_sub_Eonestep #1{#6#5#4#3}{#2}% }% \def\XINT_sub_Eonestep #1#2% {% \expandafter\XINT_sub_backtoE\the\numexpr 109999-#2+#1\relax.% }% \def\XINT_sub_backtoE #1#2#3.#4% {% \XINT_sub_E #2{#3#4}% }% \def\xint_sub_F\W\XINT_sub_Eonestep #1#2#3#4% {% \xint_UDonezerofork #4#1\dummy {\XINT_sub_Fdec 0}% soustraire 1. Et faire signe - #1#4\dummy {\XINT_sub_Finc 1}% additionner 1. Et faire signe - 10\dummy \XINT_sub_DD % terminer. Mais avec signe - \krof {#3}% }% \def\XINT_sub_DD {\expandafter\xint_minus_andstop\romannumeral0\XINT_sub_D }% \def\XINT_sub_Fdec #1#2#3#4#5#6% {% \xint_gob_til_W #3\xint_sub_Fdec_finish\W \XINT_sub_Fdec_onestep #1{#6#5#4#3}{#2}% }% \def\XINT_sub_Fdec_onestep #1#2% {% \expandafter\XINT_sub_backtoFdec\the\numexpr 11#2+#1-\xint_c_i\relax.% }% \def\XINT_sub_backtoFdec #1#2#3.#4% {% \XINT_sub_Fdec #2{#3#4}% }% \def\xint_sub_Fdec_finish\W\XINT_sub_Fdec_onestep #1#2% {% \expandafter\xint_minus_andstop\romannumeral0\XINT_cuz }% \def\XINT_sub_Finc #1#2#3#4#5#6% {% \xint_gob_til_W #3\xint_sub_Finc_finish\W \XINT_sub_Finc_onestep #1{#6#5#4#3}{#2}% }% \def\XINT_sub_Finc_onestep #1#2% {% \expandafter\XINT_sub_backtoFinc\the\numexpr 10#2+#1\relax.% }% \def\XINT_sub_backtoFinc #1#2#3.#4% {% \XINT_sub_Finc #2{#3#4}% }% \def\xint_sub_Finc_finish\W\XINT_sub_Finc_onestep #1#2#3% {% \xint_UDzerofork #1\dummy {\expandafter\xint_minus_andstop\xint_cleanupzeros_nospace}% 0\dummy { -1}% \krof #3% }% \def\xint_sub_ez\W\XINT_sub_Eenter #1% {% \xint_UDzerofork #1\dummy \XINT_sub_K % il y a une retenue 0\dummy \XINT_sub_L % pas de retenue \krof }% \def\XINT_sub_L #1\W\X\Y\Z {\XINT_cuz_loop #1\W\W\W\W\W\W\W\Z }% \def\XINT_sub_K #1% {% \expandafter \XINT_sub_KK\expandafter1\expandafter{\expandafter}% \romannumeral0% \XINT_rord_main {}#1% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax }% \def\XINT_sub_KK #1#2#3#4#5#6% {% \xint_gob_til_W #3\xint_sub_KK_finish\W \XINT_sub_KK_onestep #1{#6#5#4#3}{#2}% }% \def\XINT_sub_KK_onestep #1#2% {% \expandafter\XINT_sub_backtoKK\the\numexpr 109999-#2+#1\relax.% }% \def\XINT_sub_backtoKK #1#2#3.#4% {% \XINT_sub_KK #2{#3#4}% }% \def\xint_sub_KK_finish\W\XINT_sub_KK_onestep #1#2#3% {% \expandafter\xint_minus_andstop \romannumeral0\XINT_cuz_loop #3\W\W\W\W\W\W\W\Z }% \def\xintiCmp {\romannumeral0\xinticmp }% \def\xinticmp #1% {% \expandafter\xint_cmp\expandafter{\romannumeral0\xintnum{#1}}% }% \let\xintCmp\xintiCmp \let\xintcmp\xinticmp \def\xint_cmp #1#2% {% \expandafter\XINT_cmp_fork \romannumeral0\xintnum{#2}\Z #1\Z }% \def\XINT_Cmp #1#2{\romannumeral0\XINT_cmp_fork #2\Z #1\Z }% \def\XINT_cmp_fork #1#2\Z #3#4\Z {% \xint_UDsignsfork #1#3\dummy \XINT_cmp_minusminus #1-\dummy \XINT_cmp_minusplus #3-\dummy \XINT_cmp_plusminus --\dummy {\xint_UDzerosfork #1#3\dummy \XINT_cmp_zerozero #10\dummy \XINT_cmp_zeroplus #30\dummy \XINT_cmp_pluszero 00\dummy \XINT_cmp_plusplus \krof }% \krof {#2}{#4}#1#3% }% \def\XINT_cmp_minusplus #1#2#3#4{ 1}% \def\XINT_cmp_plusminus #1#2#3#4{ -1}% \def\XINT_cmp_zerozero #1#2#3#4{ 0}% \def\XINT_cmp_zeroplus #1#2#3#4{ 1}% \def\XINT_cmp_pluszero #1#2#3#4{ -1}% \def\XINT_cmp_plusplus #1#2#3#4% {% \XINT_cmp_pre {#4#2}{#3#1}% }% \def\XINT_cmp_minusminus #1#2#3#4% {% \XINT_cmp_pre {#1}{#2}% }% \def\XINT_cmp_pre #1% {% \expandafter\XINT_cmp_pre_b\expandafter {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% \def\XINT_cmp_pre_b #1#2% {% \expandafter\XINT_cmp_A \expandafter1\expandafter{\expandafter}% \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% \def\XINT_cmp_A #1#2#3\W\X\Y\Z #4#5#6#7% {% \xint_gob_til_W #4\xint_cmp_az\W \XINT_cmp_B #1{#4#5#6#7}{#2}#3\W\X\Y\Z }% \def\XINT_cmp_B #1#2#3#4#5#6#7% {% \xint_gob_til_W#4\xint_cmp_bz\W \XINT_cmp_onestep #1#2{#7#6#5#4}{#3}% }% \def\XINT_cmp_onestep #1#2#3#4#5#6% {% \expandafter\XINT_cmp_backtoA\the\numexpr 11#5#4#3#2-#6+#1-\xint_c_i\relax.% }% \def\XINT_cmp_backtoA #1#2#3.#4% {% \XINT_cmp_A #2{#3#4}% }% \def\xint_cmp_bz\W\XINT_cmp_onestep #1\Z { 1}% \def\xint_cmp_az\W\XINT_cmp_B #1#2#3#4#5#6#7% {% \xint_gob_til_W #4\xint_cmp_ez\W \XINT_cmp_Eenter #1{#3}#4#5#6#7% }% \def\XINT_cmp_Eenter #1\Z { -1}% \def\xint_cmp_ez\W\XINT_cmp_Eenter #1% {% \xint_UDzerofork #1\dummy \XINT_cmp_K % il y a une retenue 0\dummy \XINT_cmp_L % pas de retenue \krof }% \def\XINT_cmp_K #1\Z { -1}% \def\XINT_cmp_L #1{\XINT_OneIfPositive_main #1}% \def\XINT_OneIfPositive #1% {% \XINT_OneIfPositive_main #1\W\X\Y\Z% }% \def\XINT_OneIfPositive_main #1#2#3#4% {% \xint_gob_til_Z #4\xint_OneIfPositive_terminated\Z \XINT_OneIfPositive_onestep #1#2#3#4% }% \def\xint_OneIfPositive_terminated\Z\XINT_OneIfPositive_onestep\W\X\Y\Z { 0}% \def\XINT_OneIfPositive_onestep #1#2#3#4% {% \expandafter\XINT_OneIfPositive_check\the\numexpr #1#2#3#4\relax }% \def\XINT_OneIfPositive_check #1% {% \xint_gob_til_zero #1\xint_OneIfPositive_backtomain 0% \XINT_OneIfPositive_finish #1% }% \def\XINT_OneIfPositive_finish #1\W\X\Y\Z{ 1}% \def\xint_OneIfPositive_backtomain 0\XINT_OneIfPositive_finish 0% {\XINT_OneIfPositive_main }% \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\xintIsZero {\romannumeral0\xintiszero }% \def\xintiszero #1{\xintifsgn {#1}{0}{1}{0}}% \def\xintIsNotZero {\romannumeral0\xintisnotzero }% \def\xintisnotzero #1{\xintifsgn {#1}{1}{0}{1}}% \let\xintIsTrue\xintIsNotZero \let\xintNot\xintIsZero \def\xintIsTrue:csv #1{\expandafter\XINT_istrue:_a\romannumeral-`0#1,,^}% \def\XINT_istrue:_a {\XINT_istrue:_b {}}% \def\XINT_istrue:_b #1#2,% {\expandafter\XINT_istrue:_c\romannumeral-`0#2,{#1}}% \def\XINT_istrue:_c #1{\if #1,\expandafter\XINT_istrue:_f \else\expandafter\XINT_istrue:_d\fi #1}% \def\XINT_istrue:_d #1,% {\expandafter\XINT_istrue:_e\romannumeral0\xintisnotzero {#1},}% \def\XINT_istrue:_e #1,#2{\XINT_istrue:_b {#2,#1}}% \def\XINT_istrue:_f ,#1#2^{\xint_gobble_i #1}% \def\xintAND {\romannumeral0\xintand }% \def\xintand #1#2{\xintifzero {#1}{0}{\xintifzero {#2}{0}{1}}}% \def\xintOR {\romannumeral0\xintor }% \def\xintor #1#2{\xintifzero {#1}{\xintifzero {#2}{0}{1}}{1}}% \def\xintXOR {\romannumeral0\xintxor }% \def\xintxor #1#2{\ifcase \numexpr\xintIsZero{#1}+\xintIsZero{#2}\relax \xint_afterfi{ 0}% \or\xint_afterfi{ 1}% \else\xint_afterfi { 0}% \fi }% \def\xintANDof {\romannumeral0\xintandof }% \def\xintandof #1{\expandafter\XINT_andof_a\romannumeral-`0#1\relax }% \def\XINT_andof_a #1{\expandafter\XINT_andof_b\romannumeral-`0#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 {\xintifZero{#1}{\XINT_andof_no}{\XINT_andof_a}}% \def\XINT_andof_no #1\relax { 0}% \def\XINT_andof_e #1\Z { 1}% \def\xintANDof:csv #1{\expandafter\XINT_andof:_a\romannumeral-`0#1,,^}% \def\XINT_andof:_a {\expandafter\XINT_andof:_b\romannumeral-`0}% \def\XINT_andof:_b #1{\if #1,\expandafter\XINT_andof:_e \else\expandafter\XINT_andof:_c\fi #1}% \def\XINT_andof:_c #1,{\xintifZero{#1}{\XINT_andof:_no}{\XINT_andof:_a}}% \def\XINT_andof:_no #1^{0}% \def\XINT_andof:_e #1^{1}% \def\xintORof {\romannumeral0\xintorof }% \def\xintorof #1{\expandafter\XINT_orof_a\romannumeral-`0#1\relax }% \def\XINT_orof_a #1{\expandafter\XINT_orof_b\romannumeral-`0#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 {\xintifZero{#1}{\XINT_orof_a}{\XINT_orof_yes}}% \def\XINT_orof_yes #1\relax { 1}% \def\XINT_orof_e #1\Z { 0}% \def\xintORof:csv #1{\expandafter\XINT_orof:_a\romannumeral-`0#1,,^}% \def\XINT_orof:_a {\expandafter\XINT_orof:_b\romannumeral-`0}% \def\XINT_orof:_b #1{\if #1,\expandafter\XINT_orof:_e \else\expandafter\XINT_orof:_c\fi #1}% \def\XINT_orof:_c #1,{\xintifZero{#1}{\XINT_orof:_a}{\XINT_orof:_yes}}% \def\XINT_orof:_yes #1^{1}% \def\XINT_orof:_e #1^{0}% \def\xintXORof {\romannumeral0\xintxorof }% \def\xintxorof #1{\expandafter\XINT_xorof_a\expandafter 0\romannumeral-`0#1\relax }% \def\XINT_xorof_a #1#2{\expandafter\XINT_xorof_b\romannumeral-`0#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% {\xintifZero {#1}{\XINT_xorof_a #2}{\ifcase #2 \xint_afterfi{\XINT_xorof_a 1}% \else \xint_afterfi{\XINT_xorof_a 0}% \fi }% }% \def\XINT_xorof_e #1\Z #2{ #2}% \def\xintXORof:csv #1{\expandafter\XINT_xorof:_a\expandafter 0\romannumeral-`0#1,,^}% \def\XINT_xorof:_a #1#2,{\expandafter\XINT_xorof:_b\romannumeral-`0#2,#1}% \def\XINT_xorof:_b #1{\if #1,\expandafter\XINT_xorof:_e \else\expandafter\XINT_xorof:_c\fi #1}% \def\XINT_xorof:_c #1,#2% {\xintifZero {#1}{\XINT_xorof:_a #2}{\ifcase #2 \xint_afterfi{\XINT_xorof:_a 1}% \else \xint_afterfi{\XINT_xorof:_a 0}% \fi }% }% \def\XINT_xorof:_e ,#1#2^{#1}% allows empty list \def\xintiGeq {\romannumeral0\xintigeq }% \def\xintigeq #1% {% \expandafter\xint_geq\expandafter {\romannumeral0\xintnum{#1}}% }% \let\xintGeq\xintiGeq \let\xintgeq\xintigeq \def\xint_geq #1#2% {% \expandafter\XINT_geq_fork \romannumeral0\xintnum{#2}\Z #1\Z }% \def\XINT_Geq #1#2{\romannumeral0\XINT_geq_fork #2\Z #1\Z }% \def\XINT_geq_fork #1#2\Z #3#4\Z {% \xint_UDzerofork #1\dummy \XINT_geq_secondiszero % |#1#2|=0 #3\dummy \XINT_geq_firstiszero % |#1#2|>0 0\dummy {\xint_UDsignsfork #1#3\dummy \XINT_geq_minusminus #1-\dummy \XINT_geq_minusplus #3-\dummy \XINT_geq_plusminus --\dummy \XINT_geq_plusplus \krof }% \krof {#2}{#4}#1#3% }% \def\XINT_geq_secondiszero #1#2#3#4{ 1}% \def\XINT_geq_firstiszero #1#2#3#4{ 0}% \def\XINT_geq_plusplus #1#2#3#4{\XINT_geq_pre {#4#2}{#3#1}}% \def\XINT_geq_minusminus #1#2#3#4{\XINT_geq_pre {#2}{#1}}% \def\XINT_geq_minusplus #1#2#3#4{\XINT_geq_pre {#4#2}{#1}}% \def\XINT_geq_plusminus #1#2#3#4{\XINT_geq_pre {#2}{#3#1}}% \def\XINT_geq_pre #1% {% \expandafter\XINT_geq_pre_b\expandafter {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% \def\XINT_geq_pre_b #1#2% {% \expandafter\XINT_geq_A \expandafter1\expandafter{\expandafter}% \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1 \W\X\Y\Z }% \def\XINT_geq_A #1#2#3\W\X\Y\Z #4#5#6#7% {% \xint_gob_til_W #4\xint_geq_az\W \XINT_geq_B #1{#4#5#6#7}{#2}#3\W\X\Y\Z }% \def\XINT_geq_B #1#2#3#4#5#6#7% {% \xint_gob_til_W #4\xint_geq_bz\W \XINT_geq_onestep #1#2{#7#6#5#4}{#3}% }% \def\XINT_geq_onestep #1#2#3#4#5#6% {% \expandafter\XINT_geq_backtoA\the\numexpr 11#5#4#3#2-#6+#1-\xint_c_i\relax.% }% \def\XINT_geq_backtoA #1#2#3.#4% {% \XINT_geq_A #2{#3#4}% }% \def\xint_geq_bz\W\XINT_geq_onestep #1\W\X\Y\Z { 1}% \def\xint_geq_az\W\XINT_geq_B #1#2#3#4#5#6#7% {% \xint_gob_til_W #4\xint_geq_ez\W \XINT_geq_Eenter #1% }% \def\XINT_geq_Eenter #1\W\X\Y\Z { 0}% \def\xint_geq_ez\W\XINT_geq_Eenter #1% {% \xint_UDzerofork #1\dummy { 0} % il y a une retenue 0\dummy { 1} % pas de retenue \krof }% \def\xintiMax {\romannumeral0\xintimax }% \def\xintimax #1% {% \expandafter\xint_max\expandafter {\romannumeral0\xintnum{#1}}% }% \let\xintMax\xintiMax \let\xintmax\xintimax \def\xint_max #1#2% {% \expandafter\XINT_max_pre\expandafter {\romannumeral0\xintnum{#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\dummy \XINT_max_minusminus % A < 0, B < 0 #1-\dummy \XINT_max_minusplus % B < 0, A >= 0 #3-\dummy \XINT_max_plusminus % A < 0, B >= 0 --\dummy {\xint_UDzerosfork #1#3\dummy \XINT_max_zerozero % A = B = 0 #10\dummy \XINT_max_zeroplus % B = 0, A > 0 #30\dummy \XINT_max_pluszero % A = 0, B > 0 00\dummy \XINT_max_plusplus % A, B > 0 \krof }% \krof {#2}{#4}#1#3% }% \def\XINT_max_zerozero #1#2#3#4{\xint_firstoftwo_andstop }% \def\XINT_max_zeroplus #1#2#3#4{\xint_firstoftwo_andstop }% \def\XINT_max_pluszero #1#2#3#4{\xint_secondoftwo_andstop }% \def\XINT_max_minusplus #1#2#3#4{\xint_firstoftwo_andstop }% \def\XINT_max_plusminus #1#2#3#4{\xint_secondoftwo_andstop }% \def\XINT_max_plusplus #1#2#3#4% {% \ifodd\XINT_Geq {#4#2}{#3#1} \expandafter\xint_firstoftwo_andstop \else \expandafter\xint_secondoftwo_andstop \fi }% \def\XINT_max_minusminus #1#2#3#4% {% \ifodd\XINT_Geq {#1}{#2} \expandafter\xint_firstoftwo_andstop \else \expandafter\xint_secondoftwo_andstop \fi }% \def\xintiMaxof {\romannumeral0\xintimaxof }% \def\xintimaxof #1{\expandafter\XINT_imaxof_a\romannumeral-`0#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-`0#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}% \let\xintMaxof\xintiMaxof \let\xintmaxof\xintimaxof \def\xintiMin {\romannumeral0\xintimin }% \def\xintimin #1% {% \expandafter\xint_min\expandafter {\romannumeral0\xintnum{#1}}% }% \let\xintMin\xintiMin \let\xintmin\xintimin \def\xint_min #1#2% {% \expandafter\XINT_min_pre\expandafter {\romannumeral0\xintnum{#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\dummy \XINT_min_minusminus % A < 0, B < 0 #1-\dummy \XINT_min_minusplus % B < 0, A >= 0 #3-\dummy \XINT_min_plusminus % A < 0, B >= 0 --\dummy {\xint_UDzerosfork #1#3\dummy \XINT_min_zerozero % A = B = 0 #10\dummy \XINT_min_zeroplus % B = 0, A > 0 #30\dummy \XINT_min_pluszero % A = 0, B > 0 00\dummy \XINT_min_plusplus % A, B > 0 \krof }% \krof {#2}{#4}#1#3% }% \def\XINT_min_zerozero #1#2#3#4{\xint_firstoftwo_andstop }% \def\XINT_min_zeroplus #1#2#3#4{\xint_secondoftwo_andstop }% \def\XINT_min_pluszero #1#2#3#4{\xint_firstoftwo_andstop }% \def\XINT_min_minusplus #1#2#3#4{\xint_secondoftwo_andstop }% \def\XINT_min_plusminus #1#2#3#4{\xint_firstoftwo_andstop }% \def\XINT_min_plusplus #1#2#3#4% {% \ifodd\XINT_Geq {#4#2}{#3#1} \expandafter\xint_secondoftwo_andstop \else \expandafter\xint_firstoftwo_andstop \fi }% \def\XINT_min_minusminus #1#2#3#4% {% \ifodd\XINT_Geq {#1}{#2} \expandafter\xint_secondoftwo_andstop \else \expandafter\xint_firstoftwo_andstop \fi }% \def\xintiMinof {\romannumeral0\xintiminof }% \def\xintiminof #1{\expandafter\XINT_iminof_a\romannumeral-`0#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-`0#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}% \let\xintMinof\xintiMinof \let\xintminof\xintiminof \def\xintiSum {\romannumeral0\xintisum }% \def\xintisum #1{\xintisumexpr #1\relax }% \def\xintiSumExpr {\romannumeral0\xintisumexpr }% \def\xintisumexpr {\expandafter\XINT_sumexpr\romannumeral-`0}% \let\xintSum\xintiSum \let\xintsum\xintisum \let\xintSumExpr\xintiSumExpr \let\xintsumexpr\xintisumexpr \def\XINT_sumexpr {\XINT_sum_loop {0000}{0000}}% \def\XINT_sum_loop #1#2#3% {% \expandafter\XINT_sum_checksign\romannumeral-`0#3\Z {#1}{#2}% }% \def\XINT_sum_checksign #1% {% \xint_gob_til_relax #1\XINT_sum_finished\relax \xint_gob_til_zero #1\XINT_sum_skipzeroinput0% \xint_UDsignfork #1\dummy \XINT_sum_N -\dummy {\XINT_sum_P #1}% \krof }% \def\XINT_sum_finished #1\Z #2#3% {% \XINT_sub_A 1{}#3\W\X\Y\Z #2\W\X\Y\Z }% \def\XINT_sum_skipzeroinput #1\krof #2\Z {\XINT_sum_loop }% \def\XINT_sum_P #1\Z #2% {% \expandafter\XINT_sum_loop\expandafter {\romannumeral0\expandafter \XINT_addr_A\expandafter0\expandafter{\expandafter}% \romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #2\W\X\Y\Z }% }% \def\XINT_sum_N #1\Z #2#3% {% \expandafter\XINT_sum_NN\expandafter {\romannumeral0\expandafter \XINT_addr_A\expandafter0\expandafter{\expandafter}% \romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #3\W\X\Y\Z }{#2}% }% \def\XINT_sum_NN #1#2{\XINT_sum_loop {#2}{#1}}% \def\xintiiMul {\romannumeral0\xintiimul }% \def\xintiimul #1% {% \expandafter\xint_iimul\expandafter {\romannumeral-`0#1}% }% \def\xint_iimul #1#2% {% \expandafter\XINT_mul_fork \romannumeral-`0#2\Z #1\Z }% \def\xintiMul {\romannumeral0\xintimul }% \def\xintimul #1% {% \expandafter\xint_mul\expandafter {\romannumeral0\xintnum{#1}}% }% \def\xint_mul #1#2% {% \expandafter\XINT_mul_fork \romannumeral0\xintnum{#2}\Z #1\Z }% \let\xintMul\xintiMul \let\xintmul\xintimul \def\XINT_Mul #1#2{\romannumeral0\XINT_mul_fork #2\Z #1\Z }% \def\XINT_mul_fork #1#2\Z #3#4\Z {% \xint_UDzerofork #1\dummy \XINT_mul_zero #3\dummy \XINT_mul_zero 0\dummy {\xint_UDsignsfork #1#3\dummy \XINT_mul_minusminus % #1 = #3 = - #1-\dummy {\XINT_mul_minusplus #3}% % #1 = - #3-\dummy {\XINT_mul_plusminus #1}% % #3 = - --\dummy {\XINT_mul_plusplus #1#3}% \krof }% \krof {#2}{#4}% }% \def\XINT_mul_zero #1#2{ 0}% \def\XINT_mul_minusminus #1#2% {% \expandafter\XINT_mul_choice_a \expandafter{\romannumeral0\XINT_length {#2}}% {\romannumeral0\XINT_length {#1}}{#1}{#2}% }% \def\XINT_mul_minusplus #1#2#3% {% \expandafter\xint_minus_andstop\romannumeral0\expandafter \XINT_mul_choice_a \expandafter{\romannumeral0\XINT_length {#1#3}}% {\romannumeral0\XINT_length {#2}}{#2}{#1#3}% }% \def\XINT_mul_plusminus #1#2#3% {% \expandafter\xint_minus_andstop\romannumeral0\expandafter \XINT_mul_choice_a \expandafter{\romannumeral0\XINT_length {#3}}% {\romannumeral0\XINT_length {#1#2}}{#1#2}{#3}% }% \def\XINT_mul_plusplus #1#2#3#4% {% \expandafter\XINT_mul_choice_a \expandafter{\romannumeral0\XINT_length {#2#4}}% {\romannumeral0\XINT_length {#1#3}}{#1#3}{#2#4}% }% \def\XINT_mul_choice_a #1#2% {% \expandafter\XINT_mul_choice_b\expandafter{#2}{#1}% }% \def\XINT_mul_choice_b #1#2% {% \ifnum #1<\xint_c_v \expandafter\XINT_mul_choice_littlebyfirst \else \ifnum #2<\xint_c_v \expandafter\expandafter\expandafter\XINT_mul_choice_littlebysecond \else \expandafter\expandafter\expandafter\XINT_mul_choice_compare \fi \fi {#1}{#2}% }% \def\XINT_mul_choice_littlebyfirst #1#2#3#4% {% \expandafter\XINT_mul_M \expandafter{\the\numexpr #3\expandafter}% \romannumeral0\XINT_RQ {}#4\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z }% \def\XINT_mul_choice_littlebysecond #1#2#3#4% {% \expandafter\XINT_mul_M \expandafter{\the\numexpr #4\expandafter}% \romannumeral0\XINT_RQ {}#3\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z }% \def\XINT_mul_choice_compare #1#2% {% \ifnum #1>#2 \expandafter \XINT_mul_choice_i \else \expandafter \XINT_mul_choice_ii \fi {#1}{#2}% }% \def\XINT_mul_choice_i #1#2% {% \ifnum #1<\numexpr\ifcase \numexpr (#2-\xint_c_iii)/\xint_c_iv\relax \or 330\or 168\or 109\or 80\or 66\or 52\else 0\fi\relax \expandafter\XINT_mul_choice_same \else \expandafter\XINT_mul_choice_permute \fi }% \def\XINT_mul_choice_ii #1#2% {% \ifnum #2<\numexpr\ifcase \numexpr (#1-\xint_c_iii)/\xint_c_iv\relax \or 330\or 168\or 109\or 80\or 66\or 52\else 0\fi\relax \expandafter\XINT_mul_choice_permute \else \expandafter\XINT_mul_choice_same \fi }% \def\XINT_mul_choice_same #1#2% {% \expandafter\XINT_mul_enter \romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z #2\W\W\W\W }% \def\XINT_mul_choice_permute #1#2% {% \expandafter\XINT_mul_enter \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z #1\W\W\W\W }% \def\XINT_mul_Ar #1#2#3#4#5#6% {% \xint_gob_til_Z #6\xint_mul_br\Z\XINT_mul_Br #1{#6#5#4#3}{#2}% }% \def\xint_mul_br\Z\XINT_mul_Br #1#2% {% \XINT_addr_AC_checkcarry #1% }% \def\XINT_mul_Br #1#2#3#4\W\X\Y\Z #5#6#7#8% {% \expandafter\XINT_mul_ABEAr \the\numexpr #1+10#2+#8#7#6#5\relax.{#3}#4\W\X\Y\Z }% \def\XINT_mul_ABEAr #1#2#3#4#5#6.#7% {% \XINT_mul_Ar #2{#7#6#5#4#3}% }% \def\XINT_mul_Mr #1% {% \expandafter\XINT_mul_Mr_checkifzeroorone\expandafter{\the\numexpr #1}% }% \def\XINT_mul_Mr_checkifzeroorone #1% {% \ifcase #1 \expandafter\XINT_mul_Mr_zero \or \expandafter\XINT_mul_Mr_one \else \expandafter\XINT_mul_Nr \fi {0000}{}{#1}% }% \def\XINT_mul_Mr_zero #1\Z\Z\Z\Z { 0000}% \def\XINT_mul_Mr_one #1#2#3#4\Z\Z\Z\Z { #4}% \def\XINT_mul_Nr #1#2#3#4#5#6#7% {% \xint_gob_til_Z #4\xint_mul_pr\Z\XINT_mul_Pr {#1}{#3}{#7#6#5#4}{#2}{#3}% }% \def\XINT_mul_Pr #1#2#3% {% \expandafter\XINT_mul_Lr\the\numexpr \xint_c_x^viii+#1+#2*#3\relax }% \def\XINT_mul_Lr 1#1#2#3#4#5#6#7#8#9% {% \XINT_mul_Nr {#1#2#3#4}{#9#8#7#6#5}% }% \def\xint_mul_pr\Z\XINT_mul_Pr #1#2#3#4#5% {% \xint_gob_til_zeros_iv #1\XINT_mul_Mr_end_nocarry 0000% \XINT_mul_Mr_end_carry #1{#4}% }% \def\XINT_mul_Mr_end_nocarry 0000\XINT_mul_Mr_end_carry 0000#1{ #1}% \def\XINT_mul_Mr_end_carry #1#2#3#4#5{ #5#4#3#2#1}% \def\XINT_mul_M #1% {% \expandafter\XINT_mul_M_checkifzeroorone\expandafter{\the\numexpr #1}% }% \def\XINT_mul_M_checkifzeroorone #1% {% \ifcase #1 \expandafter\XINT_mul_M_zero \or \expandafter\XINT_mul_M_one \else \expandafter\XINT_mul_N \fi {0000}{}{#1}% }% \def\XINT_mul_M_zero #1\Z\Z\Z\Z { 0}% \def\XINT_mul_M_one #1#2#3#4\Z\Z\Z\Z {% \expandafter\xint_cleanupzeros_andstop\romannumeral0\XINT_rev{#4}% }% \def\XINT_mul_N #1#2#3#4#5#6#7% {% \xint_gob_til_Z #4\xint_mul_p\Z\XINT_mul_P {#1}{#3}{#7#6#5#4}{#2}{#3}% }% \def\XINT_mul_P #1#2#3% {% \expandafter\XINT_mul_L\the\numexpr \xint_c_x^viii+#1+#2*#3\relax }% \def\XINT_mul_L 1#1#2#3#4#5#6#7#8#9% {% \XINT_mul_N {#1#2#3#4}{#5#6#7#8#9}% }% \def\xint_mul_p\Z\XINT_mul_P #1#2#3#4#5% {% \XINT_mul_M_end #1#4% }% \def\XINT_mul_M_end #1#2#3#4#5#6#7#8% {% \expandafter\space\the\numexpr #1#2#3#4#5#6#7#8\relax }% \def\XINT_mul_enter #1\Z\Z\Z\Z #2#3#4#5% {% \xint_gob_til_W #5\XINT_mul_exit_a\W \XINT_mul_start {#2#3#4#5}#1\Z\Z\Z\Z }% \def\XINT_mul_exit_a\W\XINT_mul_start #1% {% \XINT_mul_exit_b #1% }% \def\XINT_mul_exit_b #1#2#3#4% {% \xint_gob_til_W #2\XINT_mul_exit_ci #3\XINT_mul_exit_cii \W\XINT_mul_exit_ciii #1#2#3#4% }% \def\XINT_mul_exit_ciii #1\W #2\Z\Z\Z\Z \W\W\W {% \XINT_mul_M {#1}#2\Z\Z\Z\Z }% \def\XINT_mul_exit_cii\W\XINT_mul_exit_ciii #1\W\W #2\Z\Z\Z\Z \W\W {% \XINT_mul_M {#1}#2\Z\Z\Z\Z }% \def\XINT_mul_exit_ci\W\XINT_mul_exit_cii \W\XINT_mul_exit_ciii #1\W\W\W #2\Z\Z\Z\Z \W {% \XINT_mul_M {#1}#2\Z\Z\Z\Z }% \def\XINT_mul_start #1#2\Z\Z\Z\Z {% \expandafter\XINT_mul_main\expandafter {\romannumeral0\XINT_mul_Mr {#1}#2\Z\Z\Z\Z}#2\Z\Z\Z\Z }% \def\XINT_mul_main #1#2\Z\Z\Z\Z #3#4#5#6% {% \xint_gob_til_W #6\XINT_mul_finish_a\W \XINT_mul_compute {#3#4#5#6}{#1}#2\Z\Z\Z\Z }% \def\XINT_mul_compute #1#2#3\Z\Z\Z\Z {% \expandafter\XINT_mul_main\expandafter {\romannumeral0\expandafter \XINT_mul_Ar\expandafter0\expandafter{\expandafter}% \romannumeral0\XINT_mul_Mr {#1}#3\Z\Z\Z\Z \W\X\Y\Z 0000#2\W\X\Y\Z }#3\Z\Z\Z\Z }% \def\XINT_mul_finish_a\W\XINT_mul_compute #1% {% \XINT_mul_finish_b #1% }% \def\XINT_mul_finish_b #1#2#3#4% {% \xint_gob_til_W #1\XINT_mul_finish_c #2\XINT_mul_finish_ci #3\XINT_mul_finish_cii \W\XINT_mul_finish_ciii #1#2#3#4% }% \def\XINT_mul_finish_ciii #1\W #2#3\Z\Z\Z\Z \W\W\W {% \expandafter\XINT_addm_A\expandafter0\expandafter{\expandafter}% \romannumeral0\XINT_mul_Mr {#1}#3\Z\Z\Z\Z \W\X\Y\Z 000#2\W\X\Y\Z }% \def\XINT_mul_finish_cii \W\XINT_mul_finish_ciii #1\W\W #2#3\Z\Z\Z\Z \W\W {% \expandafter\XINT_addm_A\expandafter0\expandafter{\expandafter}% \romannumeral0\XINT_mul_Mr {#1}#3\Z\Z\Z\Z \W\X\Y\Z 00#2\W\X\Y\Z }% \def\XINT_mul_finish_ci #1\XINT_mul_finish_ciii #2\W\W\W #3#4\Z\Z\Z\Z \W {% \expandafter\XINT_addm_A\expandafter0\expandafter{\expandafter}% \romannumeral0\XINT_mul_Mr {#2}#4\Z\Z\Z\Z \W\X\Y\Z 0#3\W\X\Y\Z }% \def\XINT_mul_finish_c #1\XINT_mul_finish_ciii \W\W\W\W #2#3\Z\Z\Z\Z {% \expandafter\xint_cleanupzeros_andstop\romannumeral0\XINT_rev{#2}% }% \def\XINT_mulr_enter #1\Z\Z\Z\Z #2#3#4#5% {% \xint_gob_til_W #5\XINT_mulr_exit_a\W \XINT_mulr_start {#2#3#4#5}#1\Z\Z\Z\Z }% \def\XINT_mulr_exit_a\W\XINT_mulr_start #1% {% \XINT_mulr_exit_b #1% }% \def\XINT_mulr_exit_b #1#2#3#4% {% \xint_gob_til_W #2\XINT_mulr_exit_ci #3\XINT_mulr_exit_cii \W\XINT_mulr_exit_ciii #1#2#3#4% }% \def\XINT_mulr_exit_ciii #1\W #2\Z\Z\Z\Z \W\W\W {% \XINT_mul_Mr {#1}#2\Z\Z\Z\Z }% \def\XINT_mulr_exit_cii\W\XINT_mulr_exit_ciii #1\W\W #2\Z\Z\Z\Z \W\W {% \XINT_mul_Mr {#1}#2\Z\Z\Z\Z }% \def\XINT_mulr_exit_ci\W\XINT_mulr_exit_cii \W\XINT_mulr_exit_ciii #1\W\W\W #2\Z\Z\Z\Z \W {% \XINT_mul_Mr {#1}#2\Z\Z\Z\Z }% \def\XINT_mulr_start #1#2\Z\Z\Z\Z {% \expandafter\XINT_mulr_main\expandafter {\romannumeral0\XINT_mul_Mr {#1}#2\Z\Z\Z\Z}#2\Z\Z\Z\Z }% \def\XINT_mulr_main #1#2\Z\Z\Z\Z #3#4#5#6% {% \xint_gob_til_W #6\XINT_mulr_finish_a\W \XINT_mulr_compute {#3#4#5#6}{#1}#2\Z\Z\Z\Z }% \def\XINT_mulr_compute #1#2#3\Z\Z\Z\Z {% \expandafter\XINT_mulr_main\expandafter {\romannumeral0\expandafter \XINT_mul_Ar\expandafter0\expandafter{\expandafter}% \romannumeral0\XINT_mul_Mr {#1}#3\Z\Z\Z\Z \W\X\Y\Z 0000#2\W\X\Y\Z }#3\Z\Z\Z\Z }% \def\XINT_mulr_finish_a\W\XINT_mulr_compute #1% {% \XINT_mulr_finish_b #1% }% \def\XINT_mulr_finish_b #1#2#3#4% {% \xint_gob_til_W #1\XINT_mulr_finish_c #2\XINT_mulr_finish_ci #3\XINT_mulr_finish_cii \W\XINT_mulr_finish_ciii #1#2#3#4% }% \def\XINT_mulr_finish_ciii #1\W #2#3\Z\Z\Z\Z \W\W\W {% \expandafter\XINT_addp_A\expandafter0\expandafter{\expandafter}% \romannumeral0\XINT_mul_Mr {#1}#3\Z\Z\Z\Z \W\X\Y\Z 000#2\W\X\Y\Z }% \def\XINT_mulr_finish_cii \W\XINT_mulr_finish_ciii #1\W\W #2#3\Z\Z\Z\Z \W\W {% \expandafter\XINT_addp_A\expandafter0\expandafter{\expandafter}% \romannumeral0\XINT_mul_Mr {#1}#3\Z\Z\Z\Z \W\X\Y\Z 00#2\W\X\Y\Z }% \def\XINT_mulr_finish_ci #1\XINT_mulr_finish_ciii #2\W\W\W #3#4\Z\Z\Z\Z \W {% \expandafter\XINT_addp_A\expandafter0\expandafter{\expandafter}% \romannumeral0\XINT_mul_Mr {#2}#4\Z\Z\Z\Z \W\X\Y\Z 0#3\W\X\Y\Z }% \def\XINT_mulr_finish_c #1\XINT_mulr_finish_ciii \W\W\W\W #2#3\Z\Z\Z\Z { #2}% \def\xintiiSqr {\romannumeral0\xintiisqr }% \def\xintiisqr #1% {% \expandafter\XINT_sqr\expandafter {\romannumeral0\xintiiabs{#1}}% }% \def\xintiSqr {\romannumeral0\xintisqr }% \def\xintisqr #1% {% \expandafter\XINT_sqr\expandafter {\romannumeral0\xintiabs{#1}}% }% \let\xintSqr\xintiSqr \let\xintsqr\xintisqr \def\XINT_sqr #1% {% \expandafter\XINT_mul_enter \romannumeral0% \XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z #1\W\W\W\W }% \def\xintiPrd {\romannumeral0\xintiprd }% \def\xintiprd #1{\xintiprdexpr #1\relax }% \let\xintPrd\xintiPrd \let\xintprd\xintiprd \def\xintiPrdExpr {\romannumeral0\xintiprdexpr }% \def\xintiprdexpr {\expandafter\XINT_prdexpr\romannumeral-`0}% \let\xintPrdExpr\xintiPrdExpr \let\xintprdexpr\xintiprdexpr \def\XINT_prdexpr {\XINT_prod_loop_a 1\Z }% \def\XINT_prod_loop_a #1\Z #2% {% \expandafter\XINT_prod_loop_b \romannumeral-`0#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 #1\Z #2\Z \Z { #2}% \def\xintiFac {\romannumeral0\xintifac }% \def\xintifac #1% {% \expandafter\XINT_fac_fork\expandafter{\the\numexpr #1}% }% \def\xintFac {\romannumeral0\xintfac }% \def\xintfac #1% {% \expandafter\XINT_fac_fork\expandafter{\romannumeral0\xintnum{#1}}% }% \def\XINT_fac_fork #1% {% \ifcase\XINT_Sgn {#1} \xint_afterfi{\expandafter\space\expandafter 1\xint_gobble_i }% \or \expandafter\XINT_fac_checklength \else \xint_afterfi{\expandafter\xintError:FactorialOfNegativeNumber \expandafter\space\expandafter 1\xint_gobble_i }% \fi {#1}% }% \def\XINT_fac_checklength #1% {% \ifnum #1>999999 \xint_afterfi{\expandafter\xintError:FactorialOfTooBigNumber \expandafter\space\expandafter 1\xint_gobble_i }% \else \xint_afterfi{\ifnum #1>9999 \expandafter\XINT_fac_big_loop \else \expandafter\XINT_fac_loop \fi }% \fi {#1}% }% \def\XINT_fac_big_loop #1{\XINT_fac_big_loop_main {10000}{#1}{}}% \def\XINT_fac_big_loop_main #1#2#3% {% \ifnum #1<#2 \expandafter \XINT_fac_big_loop_main \expandafter {\the\numexpr #1+1\expandafter }% \else \expandafter\XINT_fac_big_docomputation \fi {#2}{#3{#1}}% }% \def\XINT_fac_big_docomputation #1#2% {% \expandafter \XINT_fac_bigcompute_loop \expandafter {\romannumeral0\XINT_fac_loop {9999}}#2\relax }% \def\XINT_fac_bigcompute_loop #1#2% {% \xint_gob_til_relax #2\XINT_fac_bigcompute_end\relax \expandafter\XINT_fac_bigcompute_loop\expandafter {\expandafter\XINT_mul_enter \romannumeral0\XINT_RQ {}#2\R\R\R\R\R\R\R\R\Z \Z\Z\Z\Z #1\W\W\W\W }% }% \def\XINT_fac_bigcompute_end #1#2#3#4#5% {% \XINT_fac_bigcompute_end_ #5% }% \def\XINT_fac_bigcompute_end_ #1\R #2\Z \W\X\Y\Z #3\W\X\Y\Z { #3}% \def\XINT_fac_loop #1{\XINT_fac_loop_main 1{1000}{#1}}% \def\XINT_fac_loop_main #1#2#3% {% \ifnum #3>#1 \else \expandafter\XINT_fac_loop_exit \fi \expandafter\XINT_fac_loop_main\expandafter {\the\numexpr #1+1\expandafter }\expandafter {\romannumeral0\XINT_mul_Mr {#1}#2\Z\Z\Z\Z }% {#3}% }% \def\XINT_fac_loop_exit #1#2#3#4#5#6#7% {% \XINT_fac_loop_exit_ #6% }% \def\XINT_fac_loop_exit_ #1#2#3% {% \XINT_mul_M }% \def\xintiPow {\romannumeral0\xintipow }% \def\xintipow #1% {% \expandafter\xint_pow\romannumeral0\xintnum{#1}\Z% }% \let\xintPow\xintiPow \let\xintpow\xintipow \def\xint_pow #1#2\Z {% \xint_UDsignfork #1\dummy \XINT_pow_Aneg -\dummy \XINT_pow_Anonneg \krof #1{#2}% }% \def\XINT_pow_Aneg #1#2#3% {% \expandafter\XINT_pow_Aneg_\expandafter{\the\numexpr #3}{#2}% }% \def\XINT_pow_Aneg_ #1% {% \ifodd #1 \expandafter\XINT_pow_Aneg_Bodd \fi \XINT_pow_Anonneg_ {#1}% }% \def\XINT_pow_Aneg_Bodd #1% {% \expandafter\XINT_opp\romannumeral0\XINT_pow_Anonneg_ }% \def\XINT_pow_Anonneg #1#2#3% {% \expandafter\XINT_pow_Anonneg_\expandafter {\the\numexpr #3}{#1#2}% }% \def\XINT_pow_Anonneg_ #1#2% {% \ifcase\XINT_Cmp {#2}{1} \expandafter\XINT_pow_AisOne \or \expandafter\XINT_pow_AatleastTwo \else \expandafter\XINT_pow_AisZero \fi {#1}{#2}% }% \def\XINT_pow_AisOne #1#2{ 1}% \def\XINT_pow_AisZero #1#2% {% \ifcase\XINT_Sgn {#1} \xint_afterfi { 1}% \or \xint_afterfi { 0}% \else \xint_afterfi {\xintError:DivisionByZero\space 0}% \fi }% \def\XINT_pow_AatleastTwo #1% {% \ifcase\XINT_Sgn {#1} \expandafter\XINT_pow_BisZero \or \expandafter\XINT_pow_checkBsize \else \expandafter\XINT_pow_BisNegative \fi {#1}% }% \def\XINT_pow_BisNegative #1#2{\xintError:FractionRoundedToZero\space 0}% \def\XINT_pow_BisZero #1#2{ 1}% \def\XINT_pow_checkBsize #1#2% {% \ifnum #1>999999999 \expandafter\XINT_pow_BtooBig \else \expandafter\XINT_pow_loop \fi {#1}{#2}\XINT_pow_posprod \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax }% \def\XINT_pow_BtooBig #1\xint_relax #2\xint_relax {\xintError:ExponentTooBig\space 0}% \def\XINT_pow_loop #1#2% {% \ifnum #1 = 1 \expandafter\XINT_pow_loop_end \else \xint_afterfi{\expandafter\XINT_pow_loop_a \expandafter{\the\numexpr 2*(#1/2)-#1\expandafter }% b mod 2 \expandafter{\the\numexpr #1-#1/2\expandafter }% [b/2] \expandafter{\romannumeral0\xintiisqr{#2}}}% \fi {{#2}}% }% \def\XINT_pow_loop_end {\romannumeral0\XINT_rord_main {}\relax }% \def\XINT_pow_loop_a #1% {% \ifnum #1 = 1 \expandafter\XINT_pow_loop \else \expandafter\XINT_pow_loop_throwaway \fi }% \def\XINT_pow_loop_throwaway #1#2#3% {% \XINT_pow_loop {#1}{#2}% }% \def\XINT_pow_posprod #1% {% \XINT_pow_pprod_checkifempty #1\Z }% \def\XINT_pow_pprod_checkifempty #1% {% \xint_gob_til_relax #1\XINT_pow_pprod_emptyproduct\relax \XINT_pow_pprod_RQfirst #1% }% \def\XINT_pow_pprod_emptyproduct #1\Z { 1}% \def\XINT_pow_pprod_RQfirst #1\Z {% \expandafter\XINT_pow_pprod_getnext\expandafter {\romannumeral0\XINT_RQ {}#1\R\R\R\R\R\R\R\R\Z}% }% \def\XINT_pow_pprod_getnext #1#2% {% \XINT_pow_pprod_checkiffinished #2\Z {#1}% }% \def\XINT_pow_pprod_checkiffinished #1% {% \xint_gob_til_relax #1\XINT_pow_pprod_end\relax \XINT_pow_pprod_compute #1% }% \def\XINT_pow_pprod_compute #1\Z #2% {% \expandafter\XINT_pow_pprod_getnext\expandafter {\romannumeral0\XINT_mulr_enter #2\Z\Z\Z\Z #1\W\W\W\W }% }% \def\XINT_pow_pprod_end\relax\XINT_pow_pprod_compute #1\Z #2% {% \expandafter\xint_cleanupzeros_andstop \romannumeral0\XINT_rev {#2}% }% \def\xintiQuo {\romannumeral0\xintiquo }% \def\xintiRem {\romannumeral0\xintirem }% \def\xintiquo {\expandafter\xint_firstoftwo_andstop \romannumeral0\xintidivision }% \def\xintirem {\expandafter\xint_secondoftwo_andstop \romannumeral0\xintidivision }% \let\xintQuo\xintiQuo \let\xintquo\xintiquo \let\xintRem\xintiRem \let\xintrem\xintirem \def\xintiDivision {\romannumeral0\xintidivision }% \def\xintidivision #1% {% \expandafter\xint_division\expandafter {\romannumeral0\xintnum{#1}}% }% \let\xintDivision\xintiDivision \let\xintdivision\xintidivision \def\xint_division #1#2% {% \expandafter\XINT_div_fork \romannumeral0\xintnum{#2}\Z #1\Z }% \def\XINT_Division #1#2{\romannumeral0\XINT_div_fork #2\Z #1\Z }% \def\XINT_div_fork #1#2\Z #3#4\Z {% \xint_UDzerofork #1\dummy \XINT_div_BisZero #3\dummy \XINT_div_AisZero 0\dummy {\xint_UDsignfork #1\dummy \XINT_div_BisNegative % B < 0 #3\dummy \XINT_div_AisNegative % A < 0, B > 0 -\dummy \XINT_div_plusplus % B > 0, A > 0 \krof }% \krof {#2}{#4}#1#3% #1#2=B, #3#4=A }% \def\XINT_div_BisZero #1#2#3#4{\xintError:DivisionByZero\space {0}{0}}% \def\XINT_div_AisZero #1#2#3#4{ {0}{0}}% \def\XINT_div_plusplus #1#2#3#4% {% \XINT_div_prepare {#3#1}{#4#2}% }% \def\XINT_div_BisNegative #1#2#3#4% {% \expandafter\XINT_div_BisNegative_post \romannumeral0\XINT_div_fork #1\Z #4#2\Z }% \def\XINT_div_BisNegative_post #1% {% \expandafter\space\expandafter {\romannumeral0\XINT_opp #1}% }% \def\XINT_div_AisNegative #1#2#3#4% {% \expandafter\XINT_div_AisNegative_post \romannumeral0\XINT_div_prepare {#3#1}{#2}{#3#1}% }% \def\XINT_div_AisNegative_post #1#2% {% \ifcase\XINT_Sgn {#2} \expandafter \XINT_div_AisNegative_zerorem \or \expandafter \XINT_div_AisNegative_posrem \fi {#1}{#2}% }% \def\XINT_div_AisNegative_zerorem #1#2#3% {% \expandafter\space\expandafter {\romannumeral0\XINT_opp #1}{0}% }% \def\XINT_div_AisNegative_posrem #1% {% \expandafter \XINT_div_AisNegative_posrem_b \expandafter {\romannumeral0\xintiiopp{\xintInc {#1}}}% }% \def\XINT_div_AisNegative_posrem_b #1#2#3% {% \expandafter \xint_exchangetwo_keepbraces_andstop \expandafter {\romannumeral0\XINT_sub {#3}{#2}}{#1}% }% \def\XINT_div_prepare #1% {% \expandafter \XINT_div_prepareB_aa \expandafter {\romannumeral0\XINT_length {#1}}{#1}% B > 0 ici }% \def\XINT_div_prepareB_aa #1% {% \ifnum #1=1 \expandafter\XINT_div_prepareB_ab \else \expandafter\XINT_div_prepareB_a \fi {#1}% }% \def\XINT_div_prepareB_ab #1#2% {% \ifnum #2=1 \expandafter\XINT_div_prepareB_BisOne \else \expandafter\XINT_div_prepareB_e \fi {000}{3}{4}{#2}% }% \def\XINT_div_prepareB_BisOne #1#2#3#4#5{ {#5}{0}}% \def\XINT_div_prepareB_a #1% {% \expandafter\XINT_div_prepareB_c\expandafter {\the\numexpr \xint_c_iv*((#1+\xint_c_i)/\xint_c_iv)}{#1}% }% \def\XINT_div_prepareB_c #1#2% {% \ifcase \numexpr #1-#2\relax \expandafter\XINT_div_prepareB_d \or \expandafter\XINT_div_prepareB_di \or \expandafter\XINT_div_prepareB_dii \or \expandafter\XINT_div_prepareB_diii \fi {#1}% }% \def\XINT_div_prepareB_d {\XINT_div_prepareB_e {}{0}}% \def\XINT_div_prepareB_di {\XINT_div_prepareB_e {0}{1}}% \def\XINT_div_prepareB_dii {\XINT_div_prepareB_e {00}{2}}% \def\XINT_div_prepareB_diii {\XINT_div_prepareB_e {000}{3}}% \def\XINT_div_prepareB_e #1#2#3#4% {% \XINT_div_prepareB_f #4#1\Z {#3}{#2}{#1}% }% \def\XINT_div_prepareB_f #1#2#3#4#5\Z {% \expandafter \XINT_div_prepareB_g \expandafter {\romannumeral0\XINT_rev {#1#2#3#4#5}}{#1#2#3#4}% }% \def\XINT_div_prepareB_g #1#2#3#4#5#6% {% \XINT_div_prepareA_a {#6#5}{#2}{#3}{#1}{#4}% }% \def\XINT_div_prepareA_a #1% {% \expandafter \XINT_div_prepareA_b \expandafter {\romannumeral0\XINT_length {#1}}{#1}% A >0 ici }% \def\XINT_div_prepareA_b #1% {% \expandafter\XINT_div_prepareA_c\expandafter{\the\numexpr 4*((#1+1)/4)}{#1}% }% \def\XINT_div_prepareA_c #1#2% {% \ifcase \numexpr #1-#2\relax \expandafter\XINT_div_prepareA_d \or \expandafter\XINT_div_prepareA_di \or \expandafter\XINT_div_prepareA_dii \or \expandafter\XINT_div_prepareA_diii \fi {#1}% }% \def\XINT_div_prepareA_d {\XINT_div_prepareA_e {}}% \def\XINT_div_prepareA_di {\XINT_div_prepareA_e {0}}% \def\XINT_div_prepareA_dii {\XINT_div_prepareA_e {00}}% \def\XINT_div_prepareA_diii {\XINT_div_prepareA_e {000}}% \def\XINT_div_prepareA_e #1#2#3% {% \XINT_div_startswitch {#1#3}{#2}% }% \def\XINT_div_startswitch #1#2#3#4% {% \ifnum #2 > #4 \expandafter\XINT_div_body_a \else \ifnum #2 = #4 \expandafter\expandafter\expandafter\XINT_div_final_a \else \expandafter\expandafter\expandafter\XINT_div_finished_a \fi\fi {#1}{#4}{#3}{0000}{#2}% }% \def\XINT_div_finished_a #1#2#3% {% \expandafter\XINT_div_finished_b\expandafter {\romannumeral0\XINT_cuz {#1}}% }% \def\XINT_div_finished_b #1#2#3#4#5% {% \ifcase \XINT_Sgn {#1} \xint_afterfi {\XINT_div_finished_c {0}}% \or \xint_afterfi {\expandafter\XINT_div_finished_c\expandafter {\romannumeral0\XINT_dsh_checksignx #5\Z {#1}}% }% \fi {#2}% }% \def\XINT_div_finished_c #1#2% {% \expandafter\space\expandafter {\romannumeral0\XINT_rev_andcuz {#2}}{#1}% }% \def\XINT_div_final_a #1% {% \XINT_div_final_b #1\Z }% \def\XINT_div_final_b #1#2#3#4#5\Z {% \xint_gob_til_zeros_iv #1#2#3#4\xint_div_final_c0000% \XINT_div_final_c {#1#2#3#4}{#1#2#3#4#5}% }% \def\xint_div_final_c0000\XINT_div_final_c #1{\XINT_div_finished_a }% \def\XINT_div_final_c #1#2#3#4% {% \expandafter \XINT_div_final_da \expandafter {\the\numexpr #1-(#1/#4)*#4\expandafter }\expandafter {\the\numexpr #1/#4\expandafter }\expandafter {\romannumeral0\xint_cleanupzeros_andstop #2}% }% \def\XINT_div_final_da #1% {% \ifnum #1>\xint_c_ix \expandafter\XINT_div_final_dP \else \xint_afterfi {\ifnum #1<\xint_c_ \expandafter\XINT_div_final_dN \else \expandafter\XINT_div_final_db \fi }% \fi }% \def\XINT_div_final_dN #1% {% \expandafter\XINT_div_final_dP\the\numexpr #1-\xint_c_i\relax }% \def\XINT_div_final_dP #1#2#3#4#5% q,A,Q,L,B (puis c) {% \expandafter \XINT_div_final_f \expandafter {\romannumeral0\xintiisub {#2}% {\romannumeral0\XINT_mul_M {#1}#5\Z\Z\Z\Z }}% {\romannumeral0\XINT_add_A 0{}#1000\W\X\Y\Z #3\W\X\Y\Z }% }% \def\XINT_div_final_db #1#2#3#4#5% q,A,Q,L,B (puis c) {% \expandafter\XINT_div_final_dc\expandafter {\romannumeral0\xintiisub {#2}% {\romannumeral0\XINT_mul_M {#1}#5\Z\Z\Z\Z }}% {#1}{#2}{#3}{#4}{#5}% }% \def\XINT_div_final_dc #1#2% {% \ifnum\XINT_Sgn{#1}<\xint_c_ \xint_afterfi {\expandafter\XINT_div_final_dP\the\numexpr #2-\xint_c_i\relax}% \else \xint_afterfi {\XINT_div_final_e {#1}#2}% \fi }% \def\XINT_div_final_e #1#2#3#4#5#6% A final, q, trash, Q, L, B {% \XINT_div_final_f {#1}% {\romannumeral0\XINT_add_A 0{}#2000\W\X\Y\Z #4\W\X\Y\Z }% }% \def\XINT_div_final_f #1#2#3% R,Q \`a d\'evelopper,c {% \ifcase \XINT_Sgn {#1} \xint_afterfi {\XINT_div_final_end {0}}% \or \xint_afterfi {\expandafter\XINT_div_final_end\expandafter {\romannumeral0\XINT_dsh_checksignx #3\Z {#1}}% }% \fi {#2}% }% \def\XINT_div_final_end #1#2% {% \expandafter\space\expandafter {#2}{#1}% }% \def\XINT_div_body_a #1% {% \XINT_div_body_b #1\Z {#1}% }% \def\XINT_div_body_b #1#2#3#4#5#6#7#8#9\Z {% \XINT_div_body_c {#1#2#3#4#5#6#7#8}% }% \def\XINT_div_body_c #1#2#3% {% \XINT_div_body_d {#3}{}#2\Z {#1}{#3}% }% \def\XINT_div_body_d #1#2#3#4#5#6% {% \ifnum #1 >\xint_c_ \expandafter\XINT_div_body_d \expandafter{\the\numexpr #1-\xint_c_iv\expandafter }% \else \expandafter\XINT_div_body_e \fi {#6#5#4#3#2}% }% \def\XINT_div_body_e #1#2\Z #3% {% \XINT_div_body_f {#3}{#1}{#2}% }% \def\XINT_div_body_f #1#2#3#4#5#6#7#8% {% \expandafter\XINT_div_body_gg \the\numexpr (#1+(#5+\xint_c_i)/\xint_c_ii)/(#5+\xint_c_i)+99999\relax {#8}{#2}{#8}{#4}{#5}{#3}{#6}{#7}{#8}% }% \def\XINT_div_body_gg #1#2#3#4#5#6% {% \xint_UDzerofork #2\dummy \XINT_div_body_gk 0\dummy {\XINT_div_body_ggk #2}% \krof {#3#4#5#6}% }% \def\XINT_div_body_gk #1#2#3% {% \expandafter\XINT_div_body_h \romannumeral0\XINT_div_sub_xpxp {\romannumeral0\XINT_mul_Mr {#1}#2\Z\Z\Z\Z }{#3}\Z {#1}% }% \def\XINT_div_body_ggk #1#2#3% {% \expandafter \XINT_div_body_gggk \expandafter {\romannumeral0\XINT_mul_Mr {#1}0000#3\Z\Z\Z\Z }% {\romannumeral0\XINT_mul_Mr {#2}#3\Z\Z\Z\Z }% {#1#2}% }% \def\XINT_div_body_gggk #1#2#3#4% {% \expandafter\XINT_div_body_h \romannumeral0\XINT_div_sub_xpxp {\romannumeral0\expandafter\XINT_mul_Ar \expandafter0\expandafter{\expandafter}#2\W\X\Y\Z #1\W\X\Y\Z }% {#4}\Z {#3}% }% \def\XINT_div_body_h #1#2#3#4#5#6#7#8#9\Z {% \ifnum #1#2#3#4>\xint_c_ \xint_afterfi{\XINT_div_body_i {#1#2#3#4#5#6#7#8}}% \else \expandafter\XINT_div_body_k \fi {#1#2#3#4#5#6#7#8#9}% }% \def\XINT_div_body_k #1#2#3% {% \XINT_div_body_l {#1}{#2}% }% \def\XINT_div_body_i #1#2#3#4#5#6% {% \expandafter\XINT_div_body_j \expandafter{\the\numexpr (#1+(#6+1)/2)/(#6+1)-1}% {#2}{#3}{#4}{#5}{#6}% }% \def\XINT_div_body_j #1#2#3#4% {% \expandafter \XINT_div_body_l \expandafter {\romannumeral0\XINT_div_sub_xpxp {\romannumeral0\XINT_mul_Mr {#1}#4\Z\Z\Z\Z }{\XINT_Rev{#2}}}% {#3+#1}% }% \def\XINT_div_body_l #1#2#3#4#5#6#7% {% \expandafter\XINT_div_body_m \the\numexpr \xint_c_x^viii+#2\relax {#6}{#3}{#7}{#1#5}{#4}% }% \def\XINT_div_body_m 1#1#2#3#4#5#6#7#8% {% \ifnum #1#2#3#4>\xint_c_ \xint_afterfi {\XINT_div_body_n {#8#7#6#5#4#3#2#1}}% \else \xint_afterfi {\XINT_div_body_n {#8#7#6#5}}% \fi }% \def\XINT_div_body_n #1#2% {% \expandafter\XINT_div_body_o\expandafter {\romannumeral0\XINT_addr_A 0{}#1\W\X\Y\Z #2\W\X\Y\Z }% }% \def\XINT_div_body_o #1#2#3#4% {% \XINT_div_body_p {#3}{#2}{}#4\Z {#1}% }% \def\XINT_div_body_p #1#2#3#4#5#6#7% {% \ifnum #1 > #2 \xint_afterfi {\ifnum #4#5#6#7 > \xint_c_ \expandafter\XINT_div_body_q \else \expandafter\XINT_div_body_repeatp \fi }% \else \expandafter\XINT_div_gotofinal_a \fi {#1}{#2}{#3}#4#5#6#7% }% \def\XINT_div_body_repeatp #1#2#3#4#5#6#7% {% \expandafter\XINT_div_body_p\expandafter{\the\numexpr #1-4}{#2}{0000#3}% }% \def\XINT_div_body_q #1#2#3#4\Z #5#6% {% \XINT_div_body_b #4\Z {#4}{#2}{#6}{#3#5}{#1}% }% \def\XINT_div_gotofinal_a #1#2#3#4\Z % {% \XINT_div_gotofinal_b #3\Z {#4}{#1}% }% \def\XINT_div_gotofinal_b 0000#1\Z #2#3#4#5% {% \XINT_div_final_a {#2}{#3}{#5}{#1#4}{#3}% }% \def\XINT_div_sub_xpxp #1% {% \expandafter \XINT_div_sub_xpxp_a \expandafter{#1}% }% \def\XINT_div_sub_xpxp_a #1#2% {% \expandafter\expandafter\expandafter\XINT_div_sub_xpxp_b #2\W\X\Y\Z #1\W\X\Y\Z }% \def\XINT_div_sub_xpxp_b {% \XINT_div_sub_A 1{}% }% \def\XINT_div_sub_A #1#2#3#4#5#6% {% \xint_gob_til_W #3\xint_div_sub_az\W \XINT_div_sub_B #1{#3#4#5#6}{#2}% }% \def\XINT_div_sub_B #1#2#3#4\W\X\Y\Z #5#6#7#8% {% \xint_gob_til_W #5\xint_div_sub_bz\W \XINT_div_sub_onestep #1#2{#8#7#6#5}{#3}#4\W\X\Y\Z }% \def\XINT_div_sub_onestep #1#2#3#4#5#6% {% \expandafter\XINT_div_sub_backtoA \the\numexpr 11#5#4#3#2-#6+#1-\xint_c_i\relax.% }% \def\XINT_div_sub_backtoA #1#2#3.#4% {% \XINT_div_sub_A #2{#3#4}% }% \def\xint_div_sub_bz\W\XINT_div_sub_onestep #1#2#3#4#5#6#7% {% \xint_UDzerofork #1\dummy \XINT_div_sub_C % 0\dummy \XINT_div_sub_D % pas de retenue \krof {#7}#2#3#4#5% }% \def\XINT_div_sub_D #1#2\W\X\Y\Z {% \expandafter\space \romannumeral0% \XINT_rord_main {}#2% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax #1% }% \def\XINT_div_sub_C #1#2#3#4#5% {% \xint_gob_til_W #2\xint_div_sub_cz\W \XINT_div_sub_AC_onestep {#5#4#3#2}{#1}% }% \def\XINT_div_sub_AC_onestep #1% {% \expandafter\XINT_div_sub_backtoC\the\numexpr 11#1-\xint_c_i\relax.% }% \def\XINT_div_sub_backtoC #1#2#3.#4% {% \XINT_div_sub_AC_checkcarry #2{#3#4}% la retenue va \^etre examin\'ee }% \def\XINT_div_sub_AC_checkcarry #1% {% \xint_gob_til_one #1\xint_div_sub_AC_nocarry 1\XINT_div_sub_C }% \def\xint_div_sub_AC_nocarry 1\XINT_div_sub_C #1#2\W\X\Y\Z {% \expandafter\space \romannumeral0% \XINT_rord_main {}#2% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax #1% }% \def\xint_div_sub_cz\W\XINT_div_sub_AC_onestep #1#2{ #2}% \def\xint_div_sub_az\W\XINT_div_sub_B #1#2#3#4\Z { #3}% \def\xintiFDg {\romannumeral0\xintifdg }% \def\xintifdg #1% {% \expandafter\XINT_fdg \romannumeral-`0#1\W\Z }% \def\xintFDg {\romannumeral0\xintfdg }% \def\xintfdg #1% {% \expandafter\XINT_fdg \romannumeral0\xintnum{#1}\W\Z }% \def\XINT_FDg #1{\romannumeral0\XINT_fdg #1\W\Z }% \def\XINT_fdg #1#2#3\Z {% \xint_UDzerominusfork #1-\dummy { 0}% zero 0#1\dummy { #2}% negative 0-\dummy { #1}% positive \krof }% \def\xintiLDg {\romannumeral0\xintildg }% \def\xintildg #1% {% \expandafter\XINT_ldg\expandafter {\romannumeral-`0#1}% }% \def\xintLDg {\romannumeral0\xintldg }% \def\xintldg #1% {% \expandafter\XINT_ldg\expandafter {\romannumeral0\xintnum{#1}}% }% \def\XINT_LDg #1{\romannumeral0\XINT_ldg {#1}}% \def\XINT_ldg #1% {% \expandafter\XINT_ldg_\romannumeral0\XINT_rev {#1}\Z }% \def\XINT_ldg_ #1#2\Z{ #1}% \def\xintiMON {\romannumeral0\xintimon }% \def\xintimon #1% {% \ifodd\xintiLDg {#1} \xint_afterfi{ -1}% \else \xint_afterfi{ 1}% \fi }% \def\xintiMMON {\romannumeral0\xintimmon }% \def\xintimmon #1% {% \ifodd\xintiLDg {#1} \xint_afterfi{ 1}% \else \xint_afterfi{ -1}% \fi }% \def\xintMON {\romannumeral0\xintmon }% \def\xintmon #1% {% \ifodd\xintLDg {#1} \xint_afterfi{ -1}% \else \xint_afterfi{ 1}% \fi }% \def\xintMMON {\romannumeral0\xintmmon }% \def\xintmmon #1% {% \ifodd\xintLDg {#1} \xint_afterfi{ 1}% \else \xint_afterfi{ -1}% \fi }% \def\xintiOdd {\romannumeral0\xintiodd }% \def\xintiodd #1% {% \ifodd\xintiLDg{#1} \xint_afterfi{ 1}% \else \xint_afterfi{ 0}% \fi }% \def\XINT_Odd #1% {\romannumeral0% \ifodd\XINT_LDg{#1} \xint_afterfi{ 1}% \else \xint_afterfi{ 0}% \fi }% \def\xintOdd {\romannumeral0\xintodd }% \def\xintodd #1% {% \ifodd\xintLDg{#1} \xint_afterfi{ 1}% \else \xint_afterfi{ 0}% \fi }% \def\xintDSL {\romannumeral0\xintdsl }% \def\xintdsl #1% {% \expandafter\XINT_dsl \romannumeral-`0#1\Z }% \def\XINT_DSL #1{\romannumeral0\XINT_dsl #1\Z }% \def\XINT_dsl #1% {% \xint_gob_til_zero #1\xint_dsl_zero 0\XINT_dsl_ #1% }% \def\xint_dsl_zero 0\XINT_dsl_ 0#1\Z { 0}% \def\XINT_dsl_ #1\Z { #10}% \def\xintDSR {\romannumeral0\xintdsr }% \def\xintdsr #1% {% \expandafter\XINT_dsr_a\expandafter {\romannumeral-`0#1}\W\Z }% \def\XINT_DSR #1{\romannumeral0\XINT_dsr_a {#1}\W\Z }% \def\XINT_dsr_a {% \expandafter\XINT_dsr_b\romannumeral0\XINT_rev }% \def\XINT_dsr_b #1#2#3\Z {% \xint_gob_til_W #2\xint_dsr_onedigit\W \xint_gob_til_minus #2\xint_dsr_onedigit-% \expandafter\XINT_dsr_removew \romannumeral0\XINT_rev {#2#3}% }% \def\xint_dsr_onedigit #1\XINT_rev #2{ 0}% \def\XINT_dsr_removew #1\W { }% \def\xintDSHr {\romannumeral0\xintdshr }% \def\xintdshr #1% {% \expandafter\XINT_dshr_checkxpositive \the\numexpr #1\relax\Z }% \def\XINT_dshr_checkxpositive #1% {% \xint_UDzerominusfork 0#1\dummy \XINT_dshr_xzeroorneg #1-\dummy \XINT_dshr_xzeroorneg 0-\dummy \XINT_dshr_xpositive \krof #1% }% \def\XINT_dshr_xzeroorneg #1\Z #2{ 0}% \def\XINT_dshr_xpositive #1\Z {% \expandafter\xint_secondoftwo_andstop\romannumeral0\xintdsx {#1}% }% \def\xintDSH {\romannumeral0\xintdsh }% \def\xintdsh #1#2% {% \expandafter\xint_dsh\expandafter {\romannumeral-`0#2}{#1}% }% \def\xint_dsh #1#2% {% \expandafter\XINT_dsh_checksignx \the\numexpr #2\relax\Z {#1}% }% \def\XINT_dsh_checksignx #1% {% \xint_UDzerominusfork #1-\dummy \XINT_dsh_xiszero 0#1\dummy \XINT_dsx_xisNeg_checkA % on passe direct dans DSx 0-\dummy {\XINT_dsh_xisPos #1}% \krof }% \def\XINT_dsh_xiszero #1\Z #2{ #2}% \def\XINT_dsh_xisPos #1\Z #2% {% \expandafter\xint_firstoftwo_andstop \romannumeral0\XINT_dsx_checksignA #2\Z {#1}% via DSx }% \def\xintDSx {\romannumeral0\xintdsx }% \def\xintdsx #1#2% {% \expandafter\xint_dsx\expandafter {\romannumeral-`0#2}{#1}% }% \def\xint_dsx #1#2% {% \expandafter\XINT_dsx_checksignx \the\numexpr #2\relax\Z {#1}% }% \def\XINT_DSx #1#2{\romannumeral0\XINT_dsx_checksignx #1\Z {#2}}% \def\XINT_dsx #1#2{\XINT_dsx_checksignx #1\Z {#2}}% \def\XINT_dsx_checksignx #1% {% \xint_UDzerominusfork #1-\dummy \XINT_dsx_xisZero 0#1\dummy \XINT_dsx_xisNeg_checkA 0-\dummy {\XINT_dsx_xisPos #1}% \krof }% \def\XINT_dsx_xisZero #1\Z #2{ {#2}{0}}% attention comme x > 0 \def\XINT_dsx_xisNeg_checkA #1\Z #2% {% \XINT_dsx_xisNeg_checkA_ #2\Z {#1}% }% \def\XINT_dsx_xisNeg_checkA_ #1#2\Z #3% {% \xint_gob_til_zero #1\XINT_dsx_xisNeg_Azero 0% \XINT_dsx_xisNeg_checkx {#3}{#3}{}\Z {#1#2}% }% \def\XINT_dsx_xisNeg_Azero #1\Z #2{ 0}% \def\XINT_dsx_xisNeg_checkx #1% {% \ifnum #1>999999999 \xint_afterfi {\xintError:TooBigDecimalShift \expandafter\space\expandafter 0\xint_gobble_iv }% \else \expandafter \XINT_dsx_zeroloop \fi }% \def\XINT_dsx_zeroloop #1#2% {% \ifnum #1<9 \XINT_dsx_exita\fi \expandafter\XINT_dsx_zeroloop\expandafter {\the\numexpr #1-8}{#200000000}% }% \def\XINT_dsx_exita\fi\expandafter\XINT_dsx_zeroloop {% \fi\expandafter\XINT_dsx_exitb }% \def\XINT_dsx_exitb #1#2% {% \expandafter\expandafter\expandafter \XINT_dsx_addzeros\csname xint_gobble_\romannumeral -#1\endcsname #2% }% \def\XINT_dsx_addzeros #1\Z #2{ #2#1}% \def\XINT_dsx_xisPos #1\Z #2% {% \XINT_dsx_checksignA #2\Z {#1}% }% \def\XINT_dsx_checksignA #1% {% \xint_UDzerominusfork #1-\dummy \XINT_dsx_AisZero 0#1\dummy \XINT_dsx_AisNeg 0-\dummy {\XINT_dsx_AisPos #1}% \krof }% \def\XINT_dsx_AisZero #1\Z #2{ {0}{0}}% \def\XINT_dsx_AisNeg #1\Z #2% {% \expandafter\XINT_dsx_AisNeg_dosplit_andcheckfirst \romannumeral0\XINT_split_checksizex {#2}{#1}% }% \def\XINT_dsx_AisNeg_dosplit_andcheckfirst #1% {% \XINT_dsx_AisNeg_checkiffirstempty #1\Z }% \def\XINT_dsx_AisNeg_checkiffirstempty #1% {% \xint_gob_til_Z #1\XINT_dsx_AisNeg_finish_zero\Z \XINT_dsx_AisNeg_finish_notzero #1% }% \def\XINT_dsx_AisNeg_finish_zero\Z \XINT_dsx_AisNeg_finish_notzero\Z #1% {% \expandafter\XINT_dsx_end \expandafter {\romannumeral0\XINT_num {-#1}}{0}% }% \def\XINT_dsx_AisNeg_finish_notzero #1\Z #2% {% \expandafter\XINT_dsx_end \expandafter {\romannumeral0\XINT_num {#2}}{-#1}% }% \def\XINT_dsx_AisPos #1\Z #2% {% \expandafter\XINT_dsx_AisPos_finish \romannumeral0\XINT_split_checksizex {#2}{#1}% }% \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\space\expandafter{#2}{#1}% }% \def\xintDecSplitL {\romannumeral0\xintdecsplitl }% \def\xintDecSplitR {\romannumeral0\xintdecsplitr }% \def\xintdecsplitl {% \expandafter\xint_firstoftwo_andstop \romannumeral0\xintdecsplit }% \def\xintdecsplitr {% \expandafter\xint_secondoftwo_andstop \romannumeral0\xintdecsplit }% \def\xintDecSplit {\romannumeral0\xintdecsplit }% \def\xintdecsplit #1#2% {% \expandafter \xint_split \expandafter {\romannumeral0\xintiabs {#2}}{#1}% fait expansion de A }% \def\xint_split #1#2% {% \expandafter\XINT_split_checksizex\expandafter{\the\numexpr #2}{#1}% }% \def\XINT_split_checksizex #1% 999999999 is anyhow very big, could be reduced {% \ifnum\numexpr\XINT_Abs{#1}>999999999 \xint_afterfi {\xintError:TooBigDecimalSplit\XINT_split_bigx }% \else \expandafter\XINT_split_xfork \fi #1\Z }% \def\XINT_split_bigx #1\Z #2% {% \ifcase\XINT_Sgn {#1} \or \xint_afterfi { {}{#2}}% positive big x \else \xint_afterfi { {#2}{}}% negative big x \fi }% \def\XINT_split_xfork #1% {% \xint_UDzerominusfork #1-\dummy \XINT_split_zerosplit 0#1\dummy \XINT_split_fromleft 0-\dummy {\XINT_split_fromright #1}% \krof }% \def\XINT_split_zerosplit #1\Z #2{ {#2}{}}% \def\XINT_split_fromleft #1\Z #2% {% \XINT_split_fromleft_loop {#1}{}#2\W\W\W\W\W\W\W\W\Z }% \def\XINT_split_fromleft_loop #1% {% \ifnum #1<8 \XINT_split_fromleft_exita\fi \expandafter\XINT_split_fromleft_loop_perhaps\expandafter {\the\numexpr #1-8\expandafter}\XINT_split_fromleft_eight }% \def\XINT_split_fromleft_eight #1#2#3#4#5#6#7#8#9{#9{#1#2#3#4#5#6#7#8#9}}% \def\XINT_split_fromleft_loop_perhaps #1#2% {% \xint_gob_til_W #2\XINT_split_fromleft_toofar\W \XINT_split_fromleft_loop {#1}% }% \def\XINT_split_fromleft_toofar\W\XINT_split_fromleft_loop #1#2#3\Z {% \XINT_split_fromleft_toofar_b #2\Z }% \def\XINT_split_fromleft_toofar_b #1\W #2\Z { {#1}{}}% \def\XINT_split_fromleft_exita\fi \expandafter\XINT_split_fromleft_loop_perhaps\expandafter #1#2% {\fi \XINT_split_fromleft_exitb #1}% \def\XINT_split_fromleft_exitb\the\numexpr #1-8\expandafter {% \csname XINT_split_fromleft_endsplit_\romannumeral #1\endcsname }% \def\XINT_split_fromleft_endsplit_ #1#2\W #3\Z { {#1}{#2}}% \def\XINT_split_fromleft_endsplit_i #1#2% {\XINT_split_fromleft_checkiftoofar #2{#1#2}}% \def\XINT_split_fromleft_endsplit_ii #1#2#3% {\XINT_split_fromleft_checkiftoofar #3{#1#2#3}}% \def\XINT_split_fromleft_endsplit_iii #1#2#3#4% {\XINT_split_fromleft_checkiftoofar #4{#1#2#3#4}}% \def\XINT_split_fromleft_endsplit_iv #1#2#3#4#5% {\XINT_split_fromleft_checkiftoofar #5{#1#2#3#4#5}}% \def\XINT_split_fromleft_endsplit_v #1#2#3#4#5#6% {\XINT_split_fromleft_checkiftoofar #6{#1#2#3#4#5#6}}% \def\XINT_split_fromleft_endsplit_vi #1#2#3#4#5#6#7% {\XINT_split_fromleft_checkiftoofar #7{#1#2#3#4#5#6#7}}% \def\XINT_split_fromleft_endsplit_vii #1#2#3#4#5#6#7#8% {\XINT_split_fromleft_checkiftoofar #8{#1#2#3#4#5#6#7#8}}% \def\XINT_split_fromleft_checkiftoofar #1#2#3\W #4\Z {% \xint_gob_til_W #1\XINT_split_fromleft_wenttoofar\W \space {#2}{#3}% }% \def\XINT_split_fromleft_wenttoofar\W\space #1% {% \XINT_split_fromleft_wenttoofar_b #1\Z }% \def\XINT_split_fromleft_wenttoofar_b #1\W #2\Z { {#1}}% \def\XINT_split_fromright #1\Z #2% {% \expandafter \XINT_split_fromright_a \expandafter {\romannumeral0\XINT_rev {#2}}{#1}{#2}% }% \def\XINT_split_fromright_a #1#2% {% \XINT_split_fromright_loop {#2}{}#1\W\W\W\W\W\W\W\W\Z }% \def\XINT_split_fromright_loop #1% {% \ifnum #1<8 \XINT_split_fromright_exita\fi \expandafter\XINT_split_fromright_loop_perhaps\expandafter {\the\numexpr #1-8\expandafter }\XINT_split_fromright_eight }% \def\XINT_split_fromright_eight #1#2#3#4#5#6#7#8#9{#9{#9#8#7#6#5#4#3#2#1}}% \def\XINT_split_fromright_loop_perhaps #1#2% {% \xint_gob_til_W #2\XINT_split_fromright_toofar\W \XINT_split_fromright_loop {#1}% }% \def\XINT_split_fromright_toofar\W\XINT_split_fromright_loop #1#2#3\Z { {}}% \def\XINT_split_fromright_exita\fi \expandafter\XINT_split_fromright_loop_perhaps\expandafter #1#2% {\fi \XINT_split_fromright_exitb #1}% \def\XINT_split_fromright_exitb\the\numexpr #1-8\expandafter {% \csname XINT_split_fromright_endsplit_\romannumeral #1\endcsname }% \def\XINT_split_fromright_endsplit_ #1#2\W #3\Z #4% {% \expandafter\space\expandafter {\romannumeral0\XINT_rev{#2}}{#1}% }% \def\XINT_split_fromright_endsplit_i #1#2% {\XINT_split_fromright_checkiftoofar #2{#2#1}}% \def\XINT_split_fromright_endsplit_ii #1#2#3% {\XINT_split_fromright_checkiftoofar #3{#3#2#1}}% \def\XINT_split_fromright_endsplit_iii #1#2#3#4% {\XINT_split_fromright_checkiftoofar #4{#4#3#2#1}}% \def\XINT_split_fromright_endsplit_iv #1#2#3#4#5% {\XINT_split_fromright_checkiftoofar #5{#5#4#3#2#1}}% \def\XINT_split_fromright_endsplit_v #1#2#3#4#5#6% {\XINT_split_fromright_checkiftoofar #6{#6#5#4#3#2#1}}% \def\XINT_split_fromright_endsplit_vi #1#2#3#4#5#6#7% {\XINT_split_fromright_checkiftoofar #7{#7#6#5#4#3#2#1}}% \def\XINT_split_fromright_endsplit_vii #1#2#3#4#5#6#7#8% {\XINT_split_fromright_checkiftoofar #8{#8#7#6#5#4#3#2#1}}% \def\XINT_split_fromright_checkiftoofar #1% {% \xint_gob_til_W #1\XINT_split_fromright_wenttoofar\W \XINT_split_fromright_endsplit_ }% \def\XINT_split_fromright_wenttoofar\W\XINT_split_fromright_endsplit_ #1\Z #2% { {}{#2}}% \def\xintDouble {\romannumeral0\xintdouble }% \def\xintdouble #1% {% \expandafter\XINT_dbl\romannumeral-`0#1% \R\R\R\R\R\R\R\Z \W\W\W\W\W\W\W }% \def\XINT_dbl #1% {% \xint_UDzerominusfork #1-\dummy \XINT_dbl_zero 0#1\dummy \XINT_dbl_neg 0-\dummy {\XINT_dbl_pos #1}% \krof }% \def\XINT_dbl_zero #1\Z \W\W\W\W\W\W\W { 0}% \def\XINT_dbl_neg {\expandafter\xint_minus_andstop\romannumeral0\XINT_dbl_pos }% \def\XINT_dbl_pos {% \expandafter\XINT_dbl_a \expandafter{\expandafter}\expandafter 0% \romannumeral0\XINT_SQ {}% }% \def\XINT_dbl_a #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_W #9\XINT_dbl_end_a\W \expandafter\XINT_dbl_b \the\numexpr \xint_c_x^viii+#2+\xint_c_ii*#9#8#7#6#5#4#3\relax {#1}% }% \def\XINT_dbl_b 1#1#2#3#4#5#6#7#8#9% {% \XINT_dbl_a {#2#3#4#5#6#7#8#9}{#1}% }% \def\XINT_dbl_end_a #1+#2+#3\relax #4% {% \expandafter\XINT_dbl_end_b #2#4% }% \def\XINT_dbl_end_b #1#2#3#4#5#6#7#8% {% \expandafter\space\the\numexpr #1#2#3#4#5#6#7#8\relax }% \def\xintHalf {\romannumeral0\xinthalf }% \def\xinthalf #1% {% \expandafter\XINT_half\romannumeral-`0#1% \R\R\R\R\R\R\R\Z \W\W\W\W\W\W\W }% \def\XINT_half #1% {% \xint_UDzerominusfork #1-\dummy \XINT_half_zero 0#1\dummy \XINT_half_neg 0-\dummy {\XINT_half_pos #1}% \krof }% \def\XINT_half_zero #1\Z \W\W\W\W\W\W\W { 0}% \def\XINT_half_neg {\expandafter\XINT_opp\romannumeral0\XINT_half_pos }% \def\XINT_half_pos {\expandafter\XINT_half_a\romannumeral0\XINT_SQ {}}% \def\XINT_half_a #1#2#3#4#5#6#7#8% {% \xint_gob_til_W #8\XINT_half_dont\W \expandafter\XINT_half_b \the\numexpr \xint_c_x^viii+\xint_c_v*#7#6#5#4#3#2#1\relax #8% }% \def\XINT_half_dont\W\expandafter\XINT_half_b \the\numexpr \xint_c_x^viii+\xint_c_v*#1#2#3#4#5#6#7\relax \W\W\W\W\W\W\W {% \expandafter\space \the\numexpr (#1#2#3#4#5#6#7+\xint_c_i)/\xint_c_ii-\xint_c_i \relax }% \def\XINT_half_b 1#1#2#3#4#5#6#7#8% {% \XINT_half_c {#2#3#4#5#6#7}{#1}% }% \def\XINT_half_c #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_W #3\XINT_half_end_a #2\W \expandafter\XINT_half_d \the\numexpr \xint_c_x^viii+\xint_c_v*#9#8#7#6#5#4#3+#2\relax {#1}% }% \def\XINT_half_d 1#1#2#3#4#5#6#7#8#9% {% \XINT_half_c {#2#3#4#5#6#7#8#9}{#1}% }% \def\XINT_half_end_a #1\W #2\relax #3% {% \xint_gob_til_zero #1\XINT_half_end_b 0\space #1#3% }% \def\XINT_half_end_b 0\space 0#1#2#3#4#5#6#7% {% \expandafter\space\the\numexpr #1#2#3#4#5#6#7\relax }% \def\xintDec {\romannumeral0\xintdec }% \def\xintdec #1% {% \expandafter\XINT_dec\romannumeral-`0#1% \R\R\R\R\R\R\R\R\Z \W\W\W\W\W\W\W\W }% \def\XINT_dec #1% {% \xint_UDzerominusfork #1-\dummy \XINT_dec_zero 0#1\dummy \XINT_dec_neg 0-\dummy {\XINT_dec_pos #1}% \krof }% \def\XINT_dec_zero #1\W\W\W\W\W\W\W\W { -1}% \def\XINT_dec_neg {\expandafter\xint_minus_andstop\romannumeral0\XINT_inc_pos }% \def\XINT_dec_pos {% \expandafter\XINT_dec_a \expandafter{\expandafter}% \romannumeral0\XINT_OQ {}% }% \def\XINT_dec_a #1#2#3#4#5#6#7#8#9% {% \expandafter\XINT_dec_b \the\numexpr 11#9#8#7#6#5#4#3#2-\xint_c_i\relax {#1}% }% \def\XINT_dec_b 1#1% {% \xint_gob_til_one #1\XINT_dec_A 1\XINT_dec_c }% \def\XINT_dec_c #1#2#3#4#5#6#7#8#9{\XINT_dec_a {#1#2#3#4#5#6#7#8#9}}% \def\XINT_dec_A 1\XINT_dec_c #1#2#3#4#5#6#7#8#9% {\XINT_dec_B {#1#2#3#4#5#6#7#8#9}}% \def\XINT_dec_B #1#2\W\W\W\W\W\W\W\W {% \expandafter\XINT_dec_cleanup \romannumeral0\XINT_rord_main {}#2% \xint_relax \xint_undef\xint_undef\xint_undef\xint_undef \xint_undef\xint_undef\xint_undef\xint_undef \xint_relax #1% }% \def\XINT_dec_cleanup #1#2#3#4#5#6#7#8% {\expandafter\space\the\numexpr #1#2#3#4#5#6#7#8\relax }% \def\xintInc {\romannumeral0\xintinc }% \def\xintinc #1% {% \expandafter\XINT_inc\romannumeral-`0#1% \R\R\R\R\R\R\R\R\Z \W\W\W\W\W\W\W\W }% \def\XINT_inc #1% {% \xint_UDzerominusfork #1-\dummy \XINT_inc_zero 0#1\dummy \XINT_inc_neg 0-\dummy {\XINT_inc_pos #1}% \krof }% \def\XINT_inc_zero #1\W\W\W\W\W\W\W\W { 1}% \def\XINT_inc_neg {\expandafter\XINT_opp\romannumeral0\XINT_dec_pos }% \def\XINT_inc_pos {% \expandafter\XINT_inc_a \expandafter{\expandafter}% \romannumeral0\XINT_OQ {}% }% \def\XINT_inc_a #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_W #9\XINT_inc_end\W \expandafter\XINT_inc_b \the\numexpr 10#9#8#7#6#5#4#3#2+\xint_c_i\relax {#1}% }% \def\XINT_inc_b 1#1% {% \xint_gob_til_zero #1\XINT_inc_A 0\XINT_inc_c }% \def\XINT_inc_c #1#2#3#4#5#6#7#8#9{\XINT_inc_a {#1#2#3#4#5#6#7#8#9}}% \def\XINT_inc_A 0\XINT_inc_c #1#2#3#4#5#6#7#8#9% {\XINT_dec_B {#1#2#3#4#5#6#7#8#9}}% \def\XINT_inc_end\W #1\relax #2{ 1#2}% \def\XINT_dsx_addzerosnofuss #1{\XINT_dsx_zeroloop {#1}{}\Z }% \def\xintiSqrt {\romannumeral0\xintisqrt }% \def\xintisqrt {\expandafter\XINT_sqrt_post\romannumeral0\xintisquareroot }% \def\XINT_sqrt_post #1#2{\XINT_dec_pos #1\R\R\R\R\R\R\R\R\Z \W\W\W\W\W\W\W\W }% \def\xintiSquareRoot {\romannumeral0\xintisquareroot }% \def\xintisquareroot #1% {\expandafter\XINT_sqrt_checkin\romannumeral0\xintnum{#1}\Z}% \def\XINT_sqrt_checkin #1% {% \xint_UDzerominusfork #1-\dummy \XINT_sqrt_iszero 0#1\dummy \XINT_sqrt_isneg 0-\dummy {\XINT_sqrt #1}% \krof }% \def\XINT_sqrt_iszero #1\Z { 0}% \def\XINT_sqrt_isneg #1\Z {\xintError:RootOfNegative\space 0}% \def\XINT_sqrt #1\Z {% \expandafter\XINT_sqrt_start\expandafter {\romannumeral0\XINT_length {#1}}{#1}% }% \def\XINT_sqrt_start #1% {% \ifnum #1<\xint_c_x \expandafter\XINT_sqrt_small_a \else \expandafter\XINT_sqrt_big_a \fi {#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_bB \else \expandafter\XINT_sqrt_bA \fi {#1}% }% \def\XINT_sqrt_bA #1#2#3% {% \XINT_sqrt_bA_b #3\Z #2{#1}{#3}% }% \def\XINT_sqrt_bA_b #1#2#3\Z {% \XINT_sqrt_c {#1#2}% }% \def\XINT_sqrt_bB #1#2#3% {% \XINT_sqrt_bB_b #3\Z #2{#1}{#3}% }% \def\XINT_sqrt_bB_b #1#2\Z {% \XINT_sqrt_c #1% }% \def\XINT_sqrt_c #1#2% {% \expandafter #2% \ifcase #1 \or 2\or 2\or 2\or 3\or 3\or 3\or 3\or 3\or %3+5 4\or 4\or 4\or 4\or 4\or 4\or 4\or %+7 5\or 5\or 5\or 5\or 5\or 5\or 5\or 5\or 5\or %+9 6\or 6\or 6\or 6\or 6\or 6\or 6\or 6\or 6\or 6\or 6\or %+11 7\or 7\or 7\or 7\or 7\or 7\or 7\or 7\or 7\or 7\or 7\or 7\or 7\or %+13 8\or 8\or 8\or 8\or 8\or 8\or 8\or 8\or 8\or 8\or 8\or 8\or 8\or 8\or 8\or %+15 9\or 9\or 9\or 9\or 9\or 9\or 9\or 9\or 9\or 9\or 9\or 9\or 9\or 9\or 9\or 9\or 9\or %+17 10\or 10\or 10\or 10\or 10\or 10\or 10\or 10\or 10\or 10\or 10\or 10\or 10\or 10\or 10\or 10\or 10\or 10\or 10\or\fi %+19 }% \def\XINT_sqrt_small_d #1\or #2\fi #3% {% \fi \expandafter\XINT_sqrt_small_de \ifcase \numexpr #3/\xint_c_ii-\xint_c_i\relax {}% \or 0% \or {00}% \or {000}% \or {0000}% \or \fi {#1}% }% \def\XINT_sqrt_small_de #1\or #2\fi #3% {% \fi\XINT_sqrt_small_e {#3#1}% }% \def\XINT_sqrt_small_e #1#2% {% \expandafter\XINT_sqrt_small_f\expandafter {\the\numexpr #1*#1-#2}{#1}% }% \def\XINT_sqrt_small_f #1#2% {% \expandafter\XINT_sqrt_small_g\expandafter {\the\numexpr ((#1+#2)/(\xint_c_ii*#2))-\xint_c_i}{#1}{#2}% }% \def\XINT_sqrt_small_g #1% {% \ifnum #1>\xint_c_ \expandafter\XINT_sqrt_small_h \else \expandafter\XINT_sqrt_small_end \fi {#1}% }% \def\XINT_sqrt_small_h #1#2#3% {% \expandafter\XINT_sqrt_small_f\expandafter {\the\numexpr #2-\xint_c_ii*#1*#3+#1*#1\expandafter}\expandafter {\the\numexpr #3-#1}% }% \def\XINT_sqrt_small_end #1#2#3{ {#3}{#2}}% \def\XINT_sqrt_big_d #1\or #2\fi #3% {% \fi \ifodd #3 \xint_afterfi{\expandafter\XINT_sqrt_big_eB}% \else \xint_afterfi{\expandafter\XINT_sqrt_big_eA}% \fi \expandafter{\the\numexpr #3/\xint_c_ii }{#1}% }% \def\XINT_sqrt_big_eA #1#2#3% {% \XINT_sqrt_big_eA_a #3\Z {#2}{#1}{#3}% }% \def\XINT_sqrt_big_eA_a #1#2#3#4#5#6#7#8#9\Z {% \XINT_sqrt_big_eA_b {#1#2#3#4#5#6#7#8}% }% \def\XINT_sqrt_big_eA_b #1#2% {% \expandafter\XINT_sqrt_big_f \romannumeral0\XINT_sqrt_small_e {#2000}{#1}{#1}% }% \def\XINT_sqrt_big_eB #1#2#3% {% \XINT_sqrt_big_eB_a #3\Z {#2}{#1}{#3}% }% \def\XINT_sqrt_big_eB_a #1#2#3#4#5#6#7#8#9% {% \XINT_sqrt_big_eB_b {#1#2#3#4#5#6#7#8#9}% }% \def\XINT_sqrt_big_eB_b #1#2\Z #3% {% \expandafter\XINT_sqrt_big_f \romannumeral0\XINT_sqrt_small_e {#30000}{#1}{#1}% }% \def\XINT_sqrt_big_f #1#2#3#4% {% \expandafter\XINT_sqrt_big_f_a\expandafter {\the\numexpr #2+#3\expandafter}\expandafter {\romannumeral0\XINT_dsx_addzerosnofuss {\numexpr #4-\xint_c_iv\relax}{#1}}{#4}% }% \def\XINT_sqrt_big_f_a #1#2#3#4% {% \expandafter\XINT_sqrt_big_g\expandafter {\romannumeral0\xintiisub {\XINT_dsx_addzerosnofuss {\numexpr \xint_c_ii*#3-\xint_c_viii\relax}{#1}}{#4}}% {#2}{#3}% }% \def\XINT_sqrt_big_g #1#2% {% \expandafter\XINT_sqrt_big_j \romannumeral0\xintidivision{#1} {\romannumeral0\XINT_dbl_pos #2\R\R\R\R\R\R\R\Z \W\W\W\W\W\W\W }{#2}% }% \def\XINT_sqrt_big_j #1% {% \ifcase\XINT_Sgn {#1} \expandafter \XINT_sqrt_big_end \or \expandafter \XINT_sqrt_big_k \fi {#1}% }% \def\XINT_sqrt_big_k #1#2#3% {% \expandafter\XINT_sqrt_big_l\expandafter {\romannumeral0\xintiisub {#3}{#1}}% {\romannumeral0\xintiiadd {#2}{\xintiiSqr {#1}}}% }% \def\XINT_sqrt_big_l #1#2% {% \expandafter\XINT_sqrt_big_g\expandafter {#2}{#1}% }% \def\XINT_sqrt_big_end #1#2#3#4{ {#3}{#2}}% \XINT_restorecatcodes_endinput% \endinput %% %% End of file `xint.sty'.