%% %% 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.05 of May 1st, 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 % @ \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 \edef\XINT@restorecatcodes@endinput {% \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 % # \catcode64=\the\catcode64 % @ \catcode125=\the\catcode125 % } \catcode123=\the\catcode123 % { \endlinechar=\the\endlinechar \catcode13=\the\catcode13 % ^^M \catcode32=\the\catcode32 % \catcode61=\the\catcode61\relax % = \noexpand\endinput }% \def\XINT@setcatcodes {% \catcode61=12 % = \catcode32=10 % space \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ \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 % / }% \XINT@setcatcodes }% \ChangeCatcodesIfInputNotAborted \begingroup \catcode91=12 % [ \catcode93=12 % ] \catcode58=12 % : (does not really matter, was letter) \expandafter\ifx\csname ProvidesPackage\endcsname\relax \def\x#1#2#3[#4]{\endgroup \immediate\write-1{Package: #3 #4}% \xdef#1{#4}% }% \else \def\x#1#2[#3]{\endgroup #2[{#3}]% \ifx#1\@undefined \xdef#1{#3}% \fi \ifx#1\relax \xdef#1{#3}% \fi }% \fi \expandafter\x\csname ver@xint.sty\endcsname \ProvidesPackage{xint}% [2013/05/01 v1.05 Expandable operations on long numbers (jfB)]% \def\xint@gobble #1{}% \def\xint@gobble@one #1{}% \def\xint@gobble@two #1#2{}% \def\xint@gobble@three #1#2#3{}% \def\xint@gobble@four #1#2#3#4{}% \def\xint@gobble@five #1#2#3#4#5{}% \def\xint@gobble@six #1#2#3#4#5#6{}% \def\xint@gobble@seven #1#2#3#4#5#6#7{}% \def\xint@gobble@eight #1#2#3#4#5#6#7#8{}% \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 #1#2{{#2}{#1}}% \def\xint@exchangetwo@keepbraces@andstop #1#2{ {#2}{#1}}% \def\xint@xpxp@andstop {\expandafter\expandafter\expandafter\space }% \def\xint@minus@andstop { -}% \def\xint@r #1\R {}% \def\xint@w #1\W {}% \def\xint@z #1\Z {}% \def\xint@zero #10{}% \def\xint@one #11{}% \def\xint@minus #1-{}% \def\xint@relax #1\relax {}% \def\xint@quatrezeros #10000{}% \def\xint@bracedundef {\xint@undef }% \def\xint@UDzerofork #10\dummy #2#3\xint@UDkrof {#2}% \def\xint@UDsignfork #1-\dummy #2#3\xint@UDkrof {#2}% \def\xint@UDwfork #1\W\dummy #2#3\xint@UDkrof {#2}% \def\xint@UDzerosfork #100\dummy #2#3\xint@UDkrof {#2}% \def\xint@UDonezerofork #110\dummy #2#3\xint@UDkrof {#2}% \def\xint@UDzerominusfork #10-\dummy #2#3\xint@UDkrof {#2}% \def\xint@UDsignsfork #1--\dummy #2#3\xint@UDkrof {#2}% \def\xint@afterfi #1#2\fi {\fi #1}% \def\xintRev {\romannumeral0\xintrev }% \def\xintrev #1% {% \expandafter\expandafter\expandafter \xint@rev \expandafter\expandafter\expandafter {#1}% }% \def\xint@rev #1% {% \XINT@rev@fork #1\Z }% \def\XINT@rev@fork #1#2% {% \xint@UDsignfork #1\dummy \XINT@rev@negative -\dummy \XINT@rev@nonnegative \xint@UDkrof #1#2% }% \def\XINT@rev@negative #1#2\Z {% \expandafter\xint@minus@andstop\romannumeral0\XINT@rev {#2}% }% \def\XINT@rev@nonnegative #1\Z {% \XINT@rev {#1}% }% \def\XINT@Rev {\romannumeral0\XINT@rev }% \let\xintReverseOrder \XINT@Rev \def\XINT@rev #1% {% \XINT@rord@main {}#1% \xint@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF }% \def\XINT@rord@main #1#2#3#4#5#6#7#8#9% {% \XINT@strip@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@UNDEF {% \expandafter\space\XINT@strip@UNDEF #1% }% \def\XINT@strip@undef #1\xint@undef {}% \def\XINT@strip@UNDEF #1\xint@UNDEF {}% \def\XINT@RQ #1#2#3#4#5#6#7#8#9% {% \xint@r #9\XINT@RQ@end\R\XINT@RQ {#9#8#7#6#5#4#3#2#1}% }% \def\XINT@RQ@end\R\XINT@RQ #1#2\Z {% \XINT@RQ@end@ #1\Z }% \def\XINT@RQ@end@ #1#2#3#4#5#6#7#8% {% \xint@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@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@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF }% \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@w #8\xint@cuz@enda\W \xint@z #8\xint@cuz@endb\Z \XINT@cuz@checka {#1#2#3#4#5#6#7#8}% }% \def\xint@cuz@enda #1\XINT@cuz@checka #2% {% \xint@cuz@endaa #2% }% \def\xint@cuz@endaa #1#2#3#4#5\Z {% \expandafter\space\the\numexpr #1#2#3#4\relax }% \def\xint@cuz@endb\Z\XINT@cuz@checka #1{ 0}% \def\XINT@cuz@checka #1% {% \expandafter \XINT@cuz@checkb \the\numexpr #1\relax }% \def\XINT@cuz@checkb #1% {% \xint@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\XINT@isOne #1{\romannumeral0\XINT@isone #1\W\Z }% \def\XINT@isone #1#2% {% \xint@one #1\XINT@isone@b 1\expandafter\space\expandafter 0\xint@z #2% }% \def\XINT@isone@b #1\xint@z #2% {% \xint@w #2\XINT@isone@yes\W\expandafter\space\expandafter 0\xint@z }% \def\XINT@isone@yes #1\Z{ 1}% \def\xintiNum {\romannumeral0\xintinum }% \def\xintinum #1% {% \expandafter\expandafter\expandafter \XINT@num \expandafter\expandafter\expandafter {#1}% }% \let\xintNum\xintiNum \let\xintnum\xintinum \def\XINT@Num {\romannumeral0\XINT@num }% \def\XINT@num #1{\XINT@num@loop #1\R\R\R\R\R\R\R\R\Z }% \def\XINT@num@loop #1#2#3#4#5#6#7#8% {% \xint@r #8\XINT@num@end\R\XINT@num@NumEight #1#2#3#4#5#6#7#8% }% \def\XINT@num@end\R\XINT@num@NumEight #1\R #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\relax = 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@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\R #2\Z { #1}% \def\xintiLen {\romannumeral0\xintilen }% \def\xintilen #1% {% \expandafter\expandafter\expandafter \XINT@length@fork #1\R\R\R\R\R\R\R\R\Z }% \let\xintLen\xintiLen \let\xintlen\xintilen \def\XINT@Len #1{\romannumeral0\XINT@length@fork #1\R\R\R\R\R\R\R\R\Z }% \def\XINT@length@fork #1% {% \expandafter\XINT@length@loop \xint@UDsignfork #1\dummy {{0}}% -\dummy {{0}#1}% \xint@UDkrof }% \def\XINT@Length #1{\romannumeral0\XINT@length@loop {0}#1\R\R\R\R\R\R\R\R\Z }% \def\XINT@length #1{\XINT@length@loop {0}#1\R\R\R\R\R\R\R\R\Z }% \let\xintLength\XINT@Length \def\XINT@length@loop #1#2#3#4#5#6#7#8#9% {% \xint@r #9\XINT@length@end {#2#3#4#5#6#7#8#9}\R \expandafter\XINT@length@loop\expandafter {\the\numexpr #1+8\relax}% }% \def\XINT@length@end #1\R\expandafter\XINT@length@loop\expandafter #2#3\Z {% \XINT@length@end@ #1\W\W\W\W\W\W\W\W\Z {#2}% }% \def\XINT@length@end@ #1\R #2#3#4#5#6#7#8#9\Z {% \xint@w #2\XINT@length@end@i #3\XINT@length@end@ii #4\XINT@length@end@iii #5\XINT@length@end@iv #6\XINT@length@end@v #7\XINT@length@end@vi #8\XINT@length@end@vii \W\XINT@length@end@viii }% \def\XINT@length@end@viii #1% {\expandafter\space\the\numexpr #1-8\relax}% \def\XINT@length@end@vii #1\XINT@length@end@viii #2% {\expandafter\space\the\numexpr #2-7\relax}% \def\XINT@length@end@vi #1\XINT@length@end@viii #2% {\expandafter\space\the\numexpr #2-6\relax}% \def\XINT@length@end@v #1\XINT@length@end@viii #2% {\expandafter\space\the\numexpr #2-5\relax}% \def\XINT@length@end@iv #1\XINT@length@end@viii #2% {\expandafter\space\the\numexpr #2-4\relax}% \def\XINT@length@end@iii #1\XINT@length@end@viii #2% {\expandafter\space\the\numexpr #2-3\relax}% \def\XINT@length@end@ii #1\XINT@length@end@viii #2% {\expandafter\space\the\numexpr #2-2\relax}% \def\XINT@length@end@i #1\XINT@length@end@viii #2% {\expandafter\space\the\numexpr #2-1\relax}% \def\xintAssign #1\to {% \expandafter\expandafter\expandafter \XINT@assign@a #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% {% \edef\XINT@restoreescapechar {\escapechar\the\escapechar\relax}% \escapechar -1 \edef\xint@arrayname {\string #1}% \XINT@restoreescapechar \count 255 0 \expandafter\expandafter\expandafter \XINT@assignarray@loop #1\xint@undef \csname\xint@arrayname 00\endcsname \csname\xint@arrayname 0\endcsname {\xint@arrayname}% #2% }% \def\XINT@assignarray@loop #1% {% \def\xint@temp {#1}% \ifx\xint@bracedundef\xint@temp \edef\xint@temp{\the\count 255 }% \expandafter\let\csname\xint@arrayname0\endcsname\xint@temp \expandafter\XINT@assignarray@end \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 {\expandafter\XINT@assignarray@@end }% \def\XINT@assignarray@@end #1% {% \expandafter\XINT@assignarray@@@end\expandafter #1% }% \def\XINT@assignarray@@@end #1#2#3% {% \expandafter\XINT@assignarray@@@@end \expandafter #1\expandafter #2\expandafter{#3}% }% \def\XINT@assignarray@@@@end #1#2#3#4% {% \def #4##1% {\romannumeral0% \expandafter\expandafter\expandafter #1% \expandafter\expandafter\expandafter {##1}% }% \def #1##1% {% \ifnum ##1< 0 \xint@afterfi {\xintError:ArrayIndexIsNegative \expandafter\space 0}% \else \xint@afterfi {% \ifnum ##1> #2 \xint@afterfi {\xintError:ArrayIndexBeyondLimit \expandafter\space 0}% \else \xint@afterfi {\expandafter\expandafter\expandafter \space\csname #3##1\endcsname}% \fi}% \fi }% }% \let\xintDigitsOf\xintAssignArray \def\xintApply {\romannumeral0\xintapply }% \def\xintapply #1#2% {% \expandafter\expandafter\expandafter \XINT@apply \expandafter\expandafter\expandafter {#2}{#1}% }% \def\XINT@apply #1#2% {% \XINT@apply@loop@a {}{#2}#1\Z }% \def\XINT@apply@loop@a #1#2#3% {% \xint@z #3\XINT@apply@end\Z \expandafter\expandafter\expandafter \XINT@apply@loop@b \expandafter\expandafter\expandafter {#2{#3}}{#1}{#2}% }% \def\XINT@apply@loop@b #1#2{\XINT@apply@loop@a {#2{#1}}}% \def\XINT@apply@end\Z \expandafter\expandafter\expandafter \XINT@apply@loop@b \expandafter\expandafter\expandafter #1#2#3{ #2}% \def\xintListWithSep {\romannumeral0\xintlistwithsep }% \long\def\xintlistwithsep #1#2% {% \expandafter\expandafter\expandafter \XINT@lws \expandafter\expandafter\expandafter {#2}{#1}% }% \long\def\XINT@lws #1#2% {% \XINT@lws@start {#2}#1\Z }% \long\def\XINT@lws@start #1#2% {% \xint@z #2\XINT@lws@dont\Z \XINT@lws@loop@a {#2}{#1}% }% \long\def\XINT@lws@dont\Z\XINT@lws@loop@a #1#2{ #2}% \long\def\XINT@lws@loop@a #1#2#3% {% \xint@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\xintiSgn {\romannumeral0\xintisgn }% \def\xintisgn #1% {% \expandafter\expandafter\expandafter \XINT@sgn #1\Z% }% \let\xintSgn\xintiSgn \let\xintsgn\xintisgn \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}% \xint@UDkrof }% \def\xintiOpp {\romannumeral0\xintiopp }% \def\xintiopp #1% {% \expandafter\expandafter\expandafter \XINT@opp #1% }% \let\xintOpp\xintiOpp \let\xintopp\xintiopp \def\XINT@Opp #1{\romannumeral0\XINT@opp #1}% \def\XINT@opp #1% {% \expandafter\space \xint@UDzerominusfork #1-\dummy 0% zero 0#1\dummy {}% negative 0-\dummy {-#1}% positive \xint@UDkrof }% \def\xintiAbs {\romannumeral0\xintiabs }% \def\xintiabs #1% {% \expandafter\expandafter\expandafter \XINT@abs #1% }% \let\xintAbs\xintiAbs \let\xintabs\xintiabs \def\XINT@Abs #1{\romannumeral0\XINT@abs #1}% \def\XINT@abs #1% {% \xint@UDsignfork #1\dummy \space -\dummy { #1}% \xint@UDkrof }% \def\XINT@add@A #1#2#3#4#5#6% {% \xint@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@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@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@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF #1% }% \def\XINT@add@C #1#2#3#4#5% {% \xint@w #2\xint@add@cz\W\XINT@add@CD {#5#4#3#2}{#1}%q }% \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@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@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@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@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@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@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@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF #1% }% \def\XINT@addm@C #1#2#3#4#5% {% \xint@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@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@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@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 1+10#1#2#3\relax }% \def\XINT@addp@CDw #1#2#3#4#5#6% {% \xint@quatrezeros #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 1+100#1#2\relax }% \def\XINT@addp@CDx #1#2#3#4#5#6% {% \xint@quatrezeros #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 1+1000#1\relax }% \def\XINT@addp@CDy #1#2#3#4#5#6% {% \xint@quatrezeros #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@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@quatrezeros #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@quatrezeros #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@quatrezeros #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\xintiAdd {\romannumeral0\xintiadd }% \def\xintiadd #1% {% \expandafter\expandafter\expandafter \xint@add \expandafter\expandafter\expandafter {#1}% }% \let\xintAdd\xintiAdd \let\xintadd\xintiadd \def\xint@add #1#2% {% \expandafter\expandafter\expandafter \XINT@add@fork #2\Z #1\Z }% \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 \xint@UDkrof }% \xint@UDkrof {#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\expandafter{% \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% \def\XINT@add@@pre #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\xintiSub {\romannumeral0\xintisub }% \def\xintisub #1% {% \expandafter\expandafter\expandafter \xint@sub \expandafter\expandafter\expandafter {#1}% }% \let\xintSub\xintiSub \let\xintsub\xintisub \def\xint@sub #1#2% {% \expandafter\expandafter\expandafter \XINT@sub@fork #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 }% \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 \xint@UDkrof }% \xint@UDkrof {#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@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@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\expandafter{% \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% \def\XINT@sub@@pre #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@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@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-1\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 \xint@UDkrof {#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@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF #1% }% \def\XINT@sub@C #1#2#3#4#5% {% \xint@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-1\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@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@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF #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@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@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF \W\X\Y\Z #1% }% \def\XINT@sub@E #1#2#3#4#5#6% {% \xint@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 - \xint@UDkrof {#3}% }% \def\XINT@sub@DD {\expandafter\xint@minus@andstop\romannumeral0\XINT@sub@D }% \def\XINT@sub@Fdec #1#2#3#4#5#6% {% \xint@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-1\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@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}% \xint@UDkrof #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 \xint@UDkrof }% \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@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF }% \def\XINT@sub@KK #1#2#3#4#5#6% {% \xint@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\romannumeral 0\XINT@cuz@loop #3\W\W\W\W\W\W\W\Z }% \def\xintiCmp {\romannumeral0\xinticmp }% \def\xinticmp #1% {% \expandafter\expandafter\expandafter \xint@cmp \expandafter\expandafter\expandafter {#1}% }% \let\xintCmp\xintiCmp \let\xintcmp\xinticmp \def\xint@cmp #1#2% {% \expandafter\expandafter\expandafter \XINT@cmp@fork #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 \xint@UDkrof }% \xint@UDkrof {#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\expandafter{% \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% \def\XINT@cmp@@pre #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@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@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-1\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@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 \xint@UDkrof }% \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@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@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\xintiGeq {\romannumeral0\xintigeq }% \def\xintigeq #1% {% \expandafter\expandafter\expandafter \xint@geq \expandafter\expandafter\expandafter {#1}% }% \let\xintGeq\xintiGeq \let\xintgeq\xintigeq \def\xint@geq #1#2% {% \expandafter\expandafter\expandafter\XINT@geq@fork #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 \xint@UDkrof }% \xint@UDkrof {#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\expandafter{% \romannumeral0\XINT@RQ {}#1\R\R\R\R\R\R\R\R\Z }% }% \def\XINT@geq@@pre #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@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@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-1\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@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 \xint@UDkrof }% \def\xintiMax {\romannumeral0\xintimax }% \def\xintimax #1% {% \expandafter\expandafter\expandafter \xint@max \expandafter\expandafter\expandafter {#1}% }% \let\xintMax\xintiMax \let\xintmax\xintimax \def\xint@max #1#2% {% \expandafter\expandafter\expandafter \XINT@max@pre \expandafter\expandafter\expandafter {#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 \xint@UDkrof }% \xint@UDkrof {#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\xintiMin {\romannumeral0\xintimin }% \def\xintimin #1% {% \expandafter\expandafter\expandafter \xint@min \expandafter\expandafter\expandafter {#1}% }% \let\xintMin\xintiMin \let\xintmin\xintimin \def\xint@min #1#2% {% \expandafter\expandafter\expandafter \XINT@min@pre \expandafter\expandafter\expandafter {#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 \xint@UDkrof }% \xint@UDkrof {#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\xintiSum {\romannumeral0\xintisum }% \def\xintisum #1{\xintisumexpr #1\relax }% \def\xintiSumExpr {\romannumeral0\xintisumexpr }% \def\xintisumexpr {% \expandafter\expandafter\expandafter\XINT@sumexpr }% \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\expandafter\expandafter\XINT@sum@checksign #3\Z {#1}{#2}% }% \def\XINT@sum@checksign #1% {% \xint@relax #1\XINT@sum@finished\relax \xint@zero #1\XINT@sum@skipzeroinput0% \xint@UDsignfork #1\dummy \XINT@sum@N -\dummy {\XINT@sum@P #1}% \xint@UDkrof }% \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\xint@UDkrof #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\xintiMul {\romannumeral0\xintimul }% \def\xintimul #1% {% \expandafter\expandafter\expandafter \xint@mul \expandafter\expandafter\expandafter {#1}% }% \let\xintMul\xintiMul \let\xintmul\xintimul \def\xint@mul #1#2% {\expandafter\expandafter\expandafter \XINT@mul@fork #2\Z #1\Z }% \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}% \xint@UDkrof }% \xint@UDkrof {#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<5 \expandafter\XINT@mul@choice@littlebyfirst \else \ifnum #2<5 \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% {% \ifcase \numexpr (#2-3)/4\relax \or \xint@afterfi {\ifnum #1<330 \expandafter \XINT@mul@choice@same \else \expandafter \XINT@mul@choice@permute \fi}% \or \xint@afterfi {\ifnum #1<168 \expandafter \XINT@mul@choice@same \else \expandafter \XINT@mul@choice@permute \fi}% \or \xint@afterfi {\ifnum #1<109 \expandafter \XINT@mul@choice@same \else \expandafter \XINT@mul@choice@permute \fi}% \or \xint@afterfi {\ifnum #1<80 \expandafter \XINT@mul@choice@same \else \expandafter \XINT@mul@choice@permute \fi}% \or \xint@afterfi {\ifnum #1<66 \expandafter \XINT@mul@choice@same \else \expandafter \XINT@mul@choice@permute \fi}% \or \xint@afterfi {\ifnum #1<52 \expandafter \XINT@mul@choice@same \else \expandafter \XINT@mul@choice@permute \fi}% \else \expandafter \XINT@mul@choice@permute \fi }% \def\XINT@mul@choice@ii #1#2% {% \ifcase \numexpr (#1-3)/4\relax \or \xint@afterfi {\ifnum #2<330 \expandafter \XINT@mul@choice@permute \else \expandafter \XINT@mul@choice@same \fi}% \or \xint@afterfi {\ifnum #2<168 \expandafter \XINT@mul@choice@permute \else \expandafter \XINT@mul@choice@same \fi}% \or \xint@afterfi {\ifnum #2<109 \expandafter \XINT@mul@choice@permute \else \expandafter \XINT@mul@choice@same \fi}% \or \xint@afterfi {\ifnum #2<80 \expandafter \XINT@mul@choice@permute \else \expandafter \XINT@mul@choice@same \fi}% \or \xint@afterfi {\ifnum #2<66 \expandafter \XINT@mul@choice@permute \else \expandafter \XINT@mul@choice@same \fi}% \or \xint@afterfi {\ifnum #2<52 \expandafter \XINT@mul@choice@permute \else \expandafter \XINT@mul@choice@same \fi}% \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 \W\X\Y\Z #2\W\X\Y\Z }% \def\XINT@mul@choice@permute #1#2% {% \expandafter\XINT@mul@enter \romannumeral0\XINT@RQ {}#2\R\R\R\R\R\R\R\R\Z \W\X\Y\Z #1\W\X\Y\Z }% \def\XINT@mul@Ar #1#2#3#4#5#6% {% \xint@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@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 10000#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@quatrezeros #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@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 10000#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\W\X\Y\Z #2#3#4#5% {% \xint@w #5\xint@mul@enterw #4\xint@mul@enterx #3\xint@mul@entery #2\xint@mul@enterz \W\XINT@mul@start {#2#3#4#5}#1\W\X\Y\Z }% \def\xint@mul@enterw #1\xint@mul@enterx #2\xint@mul@entery #3\xint@mul@enterz \W\XINT@mul@start #4#5\W\X\Y\Z \X\Y\Z {% \XINT@mul@M {#3#2#1}#5\Z\Z\Z\Z }% \def\xint@mul@enterx #1\xint@mul@entery #2\xint@mul@enterz \W\XINT@mul@start #3#4\W\X\Y\Z \Y\Z {% \XINT@mul@M {#2#1}#4\Z\Z\Z\Z }% \def\xint@mul@entery #1\xint@mul@enterz \W\XINT@mul@start #2#3\W\X\Y\Z \Z {% \XINT@mul@M {#1}#3\Z\Z\Z\Z }% \def\XINT@mul@start #1#2\W\X\Y\Z {% \expandafter\XINT@mul@main\expandafter {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z}#2\W\X\Y\Z }% \def\XINT@mul@main #1#2\W\X\Y\Z #3#4#5#6% {% \xint@w #6\xint@mul@mainw #5\xint@mul@mainx #4\xint@mul@mainy #3\xint@mul@mainz \W\XINT@mul@compute {#1}{#3#4#5#6}#2\W\X\Y\Z }% \def\XINT@mul@compute #1#2#3\W\X\Y\Z {% \expandafter\XINT@mul@main\expandafter {\romannumeral0\expandafter \XINT@mul@Ar\expandafter0\expandafter{\expandafter}% \romannumeral0\XINT@mul@Mr {#2}#3\Z\Z\Z\Z \W\X\Y\Z 0000#1\W\X\Y\Z }#3\W\X\Y\Z }% \def\xint@mul@mainw #1\xint@mul@mainx #2\xint@mul@mainy #3\xint@mul@mainz \W\XINT@mul@compute #4#5#6\W\X\Y\Z \X\Y\Z {% \expandafter\XINT@addm@A \expandafter0\expandafter{\expandafter}% \romannumeral0% \XINT@mul@Mr {#3#2#1}#6\Z\Z\Z\Z \W\X\Y\Z 000#4\W\X\Y\Z }% \def\xint@mul@mainx #1\xint@mul@mainy #2\xint@mul@mainz \W\XINT@mul@compute #3#4#5\W\X\Y\Z \Y\Z {% \expandafter\XINT@addm@A\expandafter 0\expandafter{\expandafter}% \romannumeral0\XINT@mul@Mr {#2#1}#5\Z\Z\Z\Z \W\X\Y\Z 00#3\W\X\Y\Z }% \def\xint@mul@mainy #1\xint@mul@mainz \W\XINT@mul@compute #2#3#4\W\X\Y\Z \Z {% \expandafter\XINT@addm@A\expandafter 0\expandafter{\expandafter}% \romannumeral0\XINT@mul@Mr {#1}#4\Z\Z\Z\Z \W\X\Y\Z 0#2\W\X\Y\Z }% \def\xint@mul@mainz\W\XINT@mul@compute #1#2#3\W\X\Y\Z {% \expandafter\xint@cleanupzeros@andstop\romannumeral0\XINT@rev{#1}% }% \def\XINT@mulr@enter #1\W\X\Y\Z #2#3#4#5% {% \xint@w #5\xint@mulr@enterw #4\xint@mulr@enterx #3\xint@mulr@entery #2\xint@mulr@enterz \W\XINT@mulr@start {#2#3#4#5}#1\W\X\Y\Z }% \def\xint@mulr@enterw #1\xint@mulr@enterx #2\xint@mulr@entery #3\xint@mulr@enterz \W\XINT@mulr@start #4#5\W\X\Y\Z \X\Y\Z {% \XINT@mul@Mr {#3#2#1}#5\Z\Z\Z\Z }% \def\xint@mulr@enterx #1\xint@mulr@entery #2\xint@mulr@enterz \W\XINT@mulr@start #3#4\W\X\Y\Z \Y\Z {% \XINT@mul@Mr {#2#1}#4\Z\Z\Z\Z }% \def\xint@mulr@entery #1\xint@mulr@enterz \W\XINT@mulr@start #2#3\W\X\Y\Z \Z {% \XINT@mul@Mr {#1}#3\Z\Z\Z\Z }% \def\XINT@mulr@start #1#2\W\X\Y\Z {% \expandafter\XINT@mulr@main\expandafter {\romannumeral0\XINT@mul@Mr {#1}#2\Z\Z\Z\Z }#2\W\X\Y\Z }% \def\XINT@mulr@main #1#2\W\X\Y\Z #3#4#5#6% {% \xint@w #6\xint@mulr@mainw #5\xint@mulr@mainx #4\xint@mulr@mainy #3\xint@mulr@mainz \W\XINT@mulr@compute {#1}{#3#4#5#6}#2\W\X\Y\Z }% \def\XINT@mulr@compute #1#2#3\W\X\Y\Z {% \expandafter\XINT@mulr@main\expandafter {\romannumeral0\expandafter \XINT@mul@Ar \expandafter0\expandafter{\expandafter}% \romannumeral0\XINT@mul@Mr {#2}#3\Z\Z\Z\Z \W\X\Y\Z 0000#1\W\X\Y\Z }#3\W\X\Y\Z }% \def\xint@mulr@mainw #1\xint@mulr@mainx #2\xint@mulr@mainy #3\xint@mulr@mainz \W\XINT@mulr@compute #4#5#6\W\X\Y\Z \X\Y\Z {% \expandafter\XINT@addp@A \expandafter0\expandafter{\expandafter}% \romannumeral0\XINT@mul@Mr {#3#2#1}#6\Z\Z\Z\Z \W\X\Y\Z 000#4\W\X\Y\Z }% \def\xint@mulr@mainx #1\xint@mulr@mainy #2\xint@mulr@mainz \W\XINT@mulr@compute #3#4#5\W\X\Y\Z \Y\Z {% \expandafter\XINT@addp@A \expandafter0\expandafter{\expandafter}% \romannumeral0\XINT@mul@Mr {#2#1}#5\Z\Z\Z\Z \W\X\Y\Z 00#3\W\X\Y\Z }% \def\xint@mulr@mainy #1\xint@mulr@mainz \W\XINT@mulr@compute #2#3#4\W\X\Y\Z \Z {% \expandafter\XINT@addp@A \expandafter0\expandafter{\expandafter}% \romannumeral0\XINT@mul@Mr {#1}#4\Z\Z\Z\Z \W\X\Y\Z 0#2\W\X\Y\Z }% \def\xint@mulr@mainz\W\XINT@mulr@compute #1#2#3\W\X\Y\Z { #1}% \def\xintiSqr {\romannumeral0\xintisqr }% \def\xintisqr #1% {% \expandafter\expandafter\expandafter \XINT@sqr \expandafter\expandafter\expandafter {\xintiAbs{#1}}% fait l'expansion de #1 et se d\'ebarrasse du signe }% \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 \W\X\Y\Z #1\W\X\Y\Z }% \def\xintiPrd {\romannumeral0\xintiprd }% \def\xintiprd #1{\xintiproductexpr #1\relax }% \let\xintPrd\xintiPrd \let\xintprd\xintiprd \def\xintiProductExpr {\romannumeral0\xintiproductexpr }% \def\xintiproductexpr {% \expandafter\expandafter\expandafter\XINT@productexpr }% \let\xintProductExpr\xintiProductExpr \let\xintproductexpr\xintiproductexpr \def\XINT@productexpr {\XINT@prod@loop@a 1\Z }% \def\XINT@prod@loop@a #1\Z #2% {% \expandafter\expandafter\expandafter\XINT@prod@loop@b #2\Z #1\Z \Z }% \def\XINT@prod@loop@b #1% {% \xint@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\xintFac {\romannumeral0\xintfac }% \def\xintfac #1% {% \expandafter\expandafter\expandafter \XINT@fac@fork \expandafter\expandafter\expandafter {#1}% }% \def\XINT@Fac {\romannumeral0\XINT@fac@fork }% \def\XINT@fac@fork #1% {% \ifcase\XINT@Sgn {#1} \xint@afterfi{\expandafter\space\expandafter 1\xint@gobble }% \or \expandafter\XINT@fac@checklength \else \xint@afterfi{\xintError:FactorialOfNegativeNumber \expandafter\space\expandafter 1\xint@gobble }% \fi {#1}% }% \def\XINT@fac@checklength #1% {% \ifnum\numexpr #1\relax>999999 \xint@afterfi{\xintError:FactorialOfTooBigNumber \expandafter\space\expandafter 1\xint@gobble }% \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@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 \W\X\Y\Z #1\W\X\Y\Z }% }% \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\expandafter\expandafter\xint@pow #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 \xint@UDkrof #1{#2}% }% \def\XINT@pow@Aneg #1#2#3% {% \expandafter\expandafter\expandafter \XINT@pow@Aneg@ \expandafter\expandafter\expandafter {#3}{#2}% }% \def\XINT@pow@Aneg@ #1% {% \ifcase\XINT@Odd{#1} \or \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\expandafter\expandafter \XINT@pow@Anonneg@ \expandafter\expandafter\expandafter {#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@checkBlength \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@checkBlength #1#2% {% \ifnum\numexpr #1\relax >999999999 \expandafter\XINT@pow@BtooBig \else \expandafter\XINT@pow@loop \fi {#1}{#2}\XINT@pow@posprod \xint@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF }% \def\XINT@pow@BtooBig #1\xint@UNDEF #2\xint@UNDEF {\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\xintisqr{#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@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@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\W\X\Y\Z #1\W\X\Y\Z}% }% \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\expandafter\expandafter \xint@division \expandafter\expandafter\expandafter {#1}% }% \let\xintDivision\xintiDivision \let\xintdivision\xintidivision \def\xint@division #1#2% {% \expandafter\expandafter\expandafter \XINT@div@fork #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 \xint@UDkrof }% \xint@UDkrof {#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\xintiopp{\xintiAdd {#1}{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 \xint@afterfi{\XINT@div@prepareB@e {000}{3}{4}{#2}}% \fi }% \def\XINT@div@prepareB@BisOne #1{ {#1}{0}}% \def\XINT@div@prepareB@a #1% {% \expandafter \XINT@div@prepareB@b \expandafter {\the\numexpr 4*((#1+1)/4)}{#1}% }% \def\XINT@div@prepareB@b #1#2% {% \expandafter \XINT@div@prepareB@c \expandafter {\the\numexpr #1-#2}{#1}% }% \def\XINT@div@prepareB@c #1% {% \ifcase #1 \expandafter\XINT@div@prepareB@di \or \expandafter\XINT@div@prepareB@dii \or \expandafter\XINT@div@prepareB@diii \else \expandafter\XINT@div@prepareB@div \fi }% \def\XINT@div@prepareB@di {\XINT@div@prepareB@e {}{0}}% \def\XINT@div@prepareB@dii {\XINT@div@prepareB@e {0}{1}}% \def\XINT@div@prepareB@diii {\XINT@div@prepareB@e {00}{2}}% \def\XINT@div@prepareB@div {\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% {% \expandafter\XINT@div@prepareA@d \expandafter {\the\numexpr #1-#2}{#1}% }% \def\XINT@div@prepareA@d #1% {% \ifcase #1 \expandafter\XINT@div@prepareA@di \or \expandafter\XINT@div@prepareA@dii \or \expandafter\XINT@div@prepareA@diii \else \expandafter\XINT@div@prepareA@div \fi }% \def\XINT@div@prepareA@di {\XINT@div@prepareA@e {}}% \def\XINT@div@prepareA@dii {\XINT@div@prepareA@e {0}}% \def\XINT@div@prepareA@diii {\XINT@div@prepareA@e {00}}% \def\XINT@div@prepareA@div {\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@quatrezeros #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>9 \expandafter\XINT@div@final@dP \else \xint@afterfi {\ifnum #1<0 \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-1\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\xintisub {#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\xintisub {#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}<0 \xint@afterfi {\expandafter\XINT@div@final@dP\the\numexpr #2-1\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 à développer,c {% \ifcase \XINT@Sgn {#1} \xint@afterfi {\XINT@div@final@end {0}}% \or \xint@afterfi {\expandafter\XINT@div@final@end \expandafter % pas de leading zeros dans #1=R {\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 > 0 \expandafter\XINT@div@body@d \expandafter{\the\numexpr #1-4\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+1)/2)/(#5+1)+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}% \xint@UDkrof {#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>0 \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 100000000+#2\relax {#6}{#3}{#7}{#1#5}{#4}% }% \def\XINT@div@body@m #1#2#3#4#5#6#7#8#9% {% \ifnum #2#3#4#5>0 \xint@afterfi {\XINT@div@body@n {#9#8#7#6#5#4#3#2}}% \else \xint@afterfi {\XINT@div@body@n {#9#8#7#6}}% \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 > 0 \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@ \expandafter{#1}% }% \def\XINT@div@sub@xpxp@ #1#2% {% \expandafter\expandafter\expandafter\XINT@div@sub@xpxp@@ #2\W\X\Y\Z #1\W\X\Y\Z }% \def\XINT@div@sub@xpxp@@ {% \XINT@div@sub@A 1{}% }% \def\XINT@div@sub@A #1#2#3#4#5#6% {% \xint@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@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-1\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 \xint@UDkrof {#7}#2#3#4#5% }% \def\XINT@div@sub@D #1#2\W\X\Y\Z {% \expandafter\space \romannumeral0% \XINT@rord@main {}#2% \xint@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF #1% }% \def\XINT@div@sub@C #1#2#3#4#5% {% \xint@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-1\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@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@UNDEF \xint@undef\xint@undef\xint@undef\xint@undef \xint@undef\xint@undef\xint@undef\xint@undef \xint@UNDEF #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\expandafter\expandafter\XINT@fdg #1\W\Z }% \let\xintFDg\xintiFDg \let\xintfdg\xintifdg \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 \xint@UDkrof }% \def\xintiLDg {\romannumeral0\xintildg }% \def\xintildg #1% {% \expandafter\expandafter\expandafter \XINT@ldg \expandafter\expandafter\expandafter {#1}% }% \let\xintLDg\xintiLDg \let\xintldg\xintildg \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 }% \let\xintMON\xintiMON \let\xintmon\xintimon \let\xintMMON\xintiMMON \let\xintmmon\xintimmon \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 }% \let\xintOdd\xintiOdd \let\xintodd\xintiodd \def\xintDSL {\romannumeral0\xintdsl }% \def\xintdsl #1% {% \expandafter\expandafter\expandafter\XINT@dsl #1\Z }% \def\XINT@DSL #1{\romannumeral0\XINT@dsl #1\Z }% \def\XINT@dsl #1% {% \xint@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\expandafter\expandafter \XINT@dsr@a \expandafter\expandafter\expandafter {#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@w #2\xint@dsr@onedigit\W \xint@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\expandafter\expandafter\XINT@dshr@checkxpositive #1\Z }% \def\XINT@dshr@checkxpositive #1% {% \xint@UDzerominusfork 0#1\dummy \XINT@dshr@xzeroorneg #1-\dummy \XINT@dshr@xzeroorneg 0-\dummy \XINT@dshr@xpositive \xint@UDkrof #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\expandafter\expandafter \xint@dsh \expandafter\expandafter\expandafter {#2}{#1}% }% \def\xint@dsh #1#2% {% \expandafter\expandafter\expandafter \XINT@dsh@checksignx #2\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}% \xint@UDkrof }% \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\expandafter\expandafter \xint@dsx \expandafter\expandafter\expandafter {#2}{#1}% }% \def\xint@dsx #1#2% {% \expandafter\expandafter\expandafter\XINT@dsx@checksignx #2\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}% \xint@UDkrof }% \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@zero #1\XINT@dsx@xisNeg@Azero 0\expandafter \XINT@dsx@xisNeg@checkx\expandafter {\romannumeral0\XINT@length {#3}}{#3}\Z {#1#2}% }% \def\XINT@dsx@xisNeg@Azero #1#2#3#4#5#6#7#8{ 0}% \def\XINT@dsx@xisNeg@checkx #1% {% \ifnum #1> 9 \xint@afterfi {\xintError:TooBigDecimalShift \XINT@dsx@toobigx }% \else \expandafter \XINT@dsx@zeroloop \fi }% \def\XINT@dsx@toobigx #1#2#3{ 0}% \def\XINT@dsx@zeroloop #1% {% \ifcase #1 \XINT@dsx@exit \or \XINT@dsx@exiti \or \XINT@dsx@exitii \or \XINT@dsx@exitiii \or \XINT@dsx@exitiv \or \XINT@dsx@exitv \or \XINT@dsx@exitvi \or \XINT@dsx@exitvii \else \xint@afterfi {\expandafter \XINT@dsx@zeroloop \expandafter {\the\numexpr #1-8}00000000% }% \fi }% \def\XINT@dsx@exit #1\fi #2\Z {\fi \XINT@dsx@addzeros {#2}}% \def\XINT@dsx@exiti #1\fi #2\Z {\fi \XINT@dsx@addzeros {0#2}}% \def\XINT@dsx@exitii #1\fi #2\Z {\fi \XINT@dsx@addzeros {00#2}}% \def\XINT@dsx@exitiii #1\fi #2\Z {\fi \XINT@dsx@addzeros {000#2}}% \def\XINT@dsx@exitiv #1\fi #2\Z {\fi \XINT@dsx@addzeros {0000#2}}% \def\XINT@dsx@exitv #1\fi #2\Z {\fi \XINT@dsx@addzeros {00000#2}}% \def\XINT@dsx@exitvi #1\fi #2\Z {\fi \XINT@dsx@addzeros {000000#2}}% \def\XINT@dsx@exitvii #1\fi #2\Z {\fi \XINT@dsx@addzeros {0000000#2}}% \def\XINT@dsx@addzeros #1#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}% \xint@UDkrof }% \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@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\expandafter\expandafter \XINT@split@checksizex \expandafter\expandafter\expandafter {#2}{#1}% }% \def\XINT@split@checksizex #1% {% \ifnum\XINT@Len {#1} > 9 \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}% \xint@UDkrof }% \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% {% \ifcase #1 \XINT@split@fromleft@endsplit \or \XINT@split@fromleft@one@andend \or \XINT@split@fromleft@two@andend \or \XINT@split@fromleft@three@andend \or \XINT@split@fromleft@four@andend \or \XINT@split@fromleft@five@andend \or \XINT@split@fromleft@six@andend \or \XINT@split@fromleft@seven@andend \else \expandafter \XINT@split@fromleft@loop@perhaps \expandafter {\the\numexpr #1-8\expandafter\expandafter\expandafter }% \expandafter \XINT@split@fromleft@eight \fi }% \def\XINT@split@fromleft@endsplit #1\fi #2#3\W #4\Z {\expandafter\space\fi {#2}{#3}}% \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@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@one@andend #1\fi {\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@one }% \def\XINT@split@fromleft@one #1#2{#2{#1#2}}% \def\XINT@split@fromleft@two@andend #1\fi {\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@two }% \def\XINT@split@fromleft@two #1#2#3{#3{#1#2#3}}% \def\XINT@split@fromleft@three@andend #1\fi {\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@three }% \def\XINT@split@fromleft@three #1#2#3#4{#4{#1#2#3#4}}% \def\XINT@split@fromleft@four@andend #1\fi {\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@four }% \def\XINT@split@fromleft@four #1#2#3#4#5{#5{#1#2#3#4#5}}% \def\XINT@split@fromleft@five@andend #1\fi {\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@five }% \def\XINT@split@fromleft@five #1#2#3#4#5#6{#6{#1#2#3#4#5#6}}% \def\XINT@split@fromleft@six@andend #1\fi {\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@six }% \def\XINT@split@fromleft@six #1#2#3#4#5#6#7{#7{#1#2#3#4#5#6#7}}% \def\XINT@split@fromleft@seven@andend #1\fi {\fi\expandafter\XINT@split@fromleft@checkiftoofar\XINT@split@fromleft@seven }% \def\XINT@split@fromleft@seven #1#2#3#4#5#6#7#8{#8{#1#2#3#4#5#6#7#8}}% \def\XINT@split@fromleft@checkiftoofar #1#2#3\W #4\Z {% \xint@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% {% \ifcase #1 \expandafter\XINT@split@fromright@endsplit \or \XINT@split@fromright@one@andend \or \XINT@split@fromright@two@andend \or \XINT@split@fromright@three@andend \or \XINT@split@fromright@four@andend \or \XINT@split@fromright@five@andend \or \XINT@split@fromright@six@andend \or \XINT@split@fromright@seven@andend \else \expandafter \XINT@split@fromright@loop@perhaps \expandafter {\the\numexpr #1-8\expandafter\expandafter\expandafter }% \expandafter \XINT@split@fromright@eight \fi }% \def\XINT@split@fromright@endsplit #1#2\W #3\Z #4% {% \expandafter\space\expandafter {\romannumeral0\XINT@rev{#2}}{#1}% }% \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@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@one@andend #1\fi {\fi\expandafter \XINT@split@fromright@checkiftoofar\XINT@split@fromright@one }% \def\XINT@split@fromright@one #1#2{#2{#2#1}}% \def\XINT@split@fromright@two@andend #1\fi {\fi\expandafter \XINT@split@fromright@checkiftoofar\XINT@split@fromright@two }% \def\XINT@split@fromright@two #1#2#3{#3{#3#2#1}}% \def\XINT@split@fromright@three@andend #1\fi {\fi\expandafter \XINT@split@fromright@checkiftoofar\XINT@split@fromright@three }% \def\XINT@split@fromright@three #1#2#3#4{#4{#4#3#2#1}}% \def\XINT@split@fromright@four@andend #1\fi {\fi\expandafter \XINT@split@fromright@checkiftoofar\XINT@split@fromright@four }% \def\XINT@split@fromright@four #1#2#3#4#5{#5{#5#4#3#2#1}}% \def\XINT@split@fromright@five@andend #1\fi {\fi\expandafter \XINT@split@fromright@checkiftoofar\XINT@split@fromright@five }% \def\XINT@split@fromright@five #1#2#3#4#5#6{#6{#6#5#4#3#2#1}}% \def\XINT@split@fromright@six@andend #1\fi {\fi\expandafter \XINT@split@fromright@checkiftoofar\XINT@split@fromright@six }% \def\XINT@split@fromright@six #1#2#3#4#5#6#7{#7{#7#6#5#4#3#2#1}}% \def\XINT@split@fromright@seven@andend #1\fi {\fi\expandafter \XINT@split@fromright@checkiftoofar\XINT@split@fromright@seven }% \def\XINT@split@fromright@seven #1#2#3#4#5#6#7#8{#8{#8#7#6#5#4#3#2#1}}% \def\XINT@split@fromright@checkiftoofar #1% {% \xint@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}}% \XINT@restorecatcodes@endinput% \endinput %% %% End of file `xint.sty'.