%% %% This is file `xintcore.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% xint.dtx (with options: `xintcore') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from xintcore.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file xint.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- %% The xint bundle 1.4b 2020/02/25 %% Copyright (C) 2013-2020 by Jean-Francois Burnol %% xintcore: Expandable arithmetic on big integers %% --------------------------------------------------------------- \begingroup\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ \catcode35=6 % # \catcode44=12 % , \catcode45=12 % - \catcode46=12 % . \catcode58=12 % : \let\z\endgroup \expandafter\let\expandafter\x\csname ver@xintcore.sty\endcsname \expandafter\let\expandafter\w\csname ver@xintkernel.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{xintcore}{\numexpr not available, aborting input}% \aftergroup\endinput \else \ifx\x\relax % plain-TeX, first loading of xintcore.sty \ifx\w\relax % but xintkernel.sty not yet loaded. \def\z{\endgroup\input xintkernel.sty\relax}% \fi \else \def\empty {}% \ifx\x\empty % LaTeX, first loading, % variable is initialized, but \ProvidesPackage not yet seen \ifx\w\relax % xintkernel.sty not yet loaded. \def\z{\endgroup\RequirePackage{xintkernel}}% \fi \else \aftergroup\endinput % xintkernel already loaded. \fi \fi \fi \z% \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintcore}% [2020/02/25 v1.4b Expandable arithmetic on big integers (JFB)]% \csname XINT_Clamped_istrapped\endcsname \csname XINT_ConversionSyntax_istrapped\endcsname \csname XINT_DivisionByZero_istrapped\endcsname \csname XINT_DivisionImpossible_istrapped\endcsname \csname XINT_DivisionUndefined_istrapped\endcsname \csname XINT_InvalidOperation_istrapped\endcsname \csname XINT_Overflow_istrapped\endcsname \csname XINT_Underflow_istrapped\endcsname \catcode`- 11 \def\XINT_ConversionSyntax-signal {{InvalidOperation}}% \let\XINT_DivisionImpossible-signal\XINT_ConversionSyntax-signal \let\XINT_DivisionUndefined-signal \XINT_ConversionSyntax-signal \let\XINT_InvalidContext-signal \XINT_ConversionSyntax-signal \catcode`- 12 \def\XINT_signalcondition #1{\expandafter\XINT_signalcondition_a \romannumeral0\ifcsname XINT_#1-signal\endcsname \xint_dothis{\csname XINT_#1-signal\endcsname}% \fi\xint_orthat{{#1}}{#1}}% \def\XINT_signalcondition_a #1#2#3#4#5{% copied over from Python Decimal module \ifcsname XINT_#1_isignoredflag\endcsname \xint_dothis{\csname XINT_#1.handler\endcsname {#4}}% \fi \expandafter\xint_gobble_i\csname XINT_#1Flag_ON\endcsname \unless\ifcsname XINT_#1_istrapped\endcsname \xint_dothis{\csname XINT_#2.handler\endcsname {#4}}% \fi \xint_orthat{% % the flag raised is named after the signal #1, but we show condition #2 \XINT_expandableerror{#2 (hit thrice)}% \XINT_expandableerror{#3}% \XINT_expandableerror{next: #5}% % not for X3.274 %\XINT_expandableerror{, or I\xintUse{...}, or I\xintCTRLC}% \xint_stop_atfirstofone{#5}% }% }% %% \let\xintUse\xint_stop_atfirstofthree % defined in xint.sty \def\XINT_ifFlagRaised #1{% \ifcsname XINT_#1Flag_ON\endcsname \expandafter\xint_firstoftwo \else \expandafter\xint_secondoftwo \fi}% \def\XINT_resetFlag #1% {\expandafter\let\csname XINT_#1Flag_ON\endcsname\XINT_undefined}% \def\XINT_resetFlags {% WIP \XINT_resetFlag{InvalidOperation}% also from DivisionUndefined \XINT_resetFlag{DivisionByZero}% \XINT_resetFlag{Underflow}% (\xintiiPow with negative exponent) \XINT_resetFlag{Overflow}% not encountered so far in xint code 1.2l % .. others .. }% \def\XINT_RaiseFlag #1{\expandafter\xint_gobble_i\csname XINT_#1Flag_ON\endcsname}% \catcode`. 11 \let\XINT_Clamped.handler\xint_firstofone % WIP \def\XINT_InvalidOperation.handler#1{_NaN}% WIP \def\XINT_ConversionSyntax.handler#1{_NaN}% WIP \def\XINT_DivisionByZero.handler#1{_SignedInfinity(#1)}% WIP \def\XINT_DivisionImpossible.handler#1{_NaN}% WIP \def\XINT_DivisionUndefined.handler#1{_NaN}% WIP \let\XINT_Inexact.handler\xint_firstofone % WIP \def\XINT_InvalidContext.handler#1{_NaN}% WIP \let\XINT_Rounded.handler\xint_firstofone % WIP \let\XINT_Subnormal.handler\xint_firstofone% WIP \def\XINT_Overflow.handler#1{_NaN}% WIP \def\XINT_Underflow.handler#1{_NaN}% WIP \catcode`. 12 \ifdefined\m@ne\let\xint_c_mone\m@ne \else\csname newcount\endcsname\xint_c_mone \xint_c_mone -1 \fi \ifdefined\xint_c_x^viii\else \csname newcount\endcsname\xint_c_x^viii \xint_c_x^viii 100000000 \fi \ifdefined\xint_c_x^ix\else \csname newcount\endcsname\xint_c_x^ix \xint_c_x^ix 1000000000 \fi \newcount\xint_c_x^viii_mone \xint_c_x^viii_mone 99999999 \newcount\xint_c_xii_e_viii \xint_c_xii_e_viii 1200000000 \newcount\xint_c_xi_e_viii_mone \xint_c_xi_e_viii_mone 1099999999 \def\XINT_cuz_small#1{% \def\XINT_cuz_small ##1##2##3##4##5##6##7##8% {% \expandafter#1\the\numexpr ##1##2##3##4##5##6##7##8\relax }}\XINT_cuz_small{ }% \def\xintiNum {\romannumeral0\xintinum }% \def\xintinum #1% {% \expandafter\XINT_num_cleanup\the\numexpr\expandafter\XINT_num_loop \romannumeral`&&@#1\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\Z }% \def\xintNum {\romannumeral0\xintnum }% \let\xintnum\xintinum \def\XINT_num #1% {% \expandafter\XINT_num_cleanup\the\numexpr\XINT_num_loop #1\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\Z }% \def\XINT_num_loop #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_xint: #9\XINT_num_end\xint: #1#2#3#4#5#6#7#8#9% \ifnum \numexpr #1#2#3#4#5#6#7#8#9+\xint_c_ = \xint_c_ \expandafter\XINT_num_loop \else \expandafter\relax \fi }% \def\XINT_num_end\xint:#1\xint:{#1+\xint_c_\xint:}% empty input ok \def\XINT_num_cleanup #1\xint:#2\Z { #1}% \def\xintiiSgn {\romannumeral0\xintiisgn }% \def\xintiisgn #1% {% \expandafter\XINT_sgn \romannumeral`&&@#1\xint: }% \def\XINT_sgn #1#2\xint: {% \xint_UDzerominusfork #1-{ 0}% 0#1{-1}% 0-{ 1}% \krof }% \def\XINT_Sgn #1#2\xint: {% \xint_UDzerominusfork #1-{0}% 0#1{-1}% 0-{1}% \krof }% \def\XINT_cntSgn #1#2\xint: {% \xint_UDzerominusfork #1-\xint_c_ 0#1\xint_c_mone 0-\xint_c_i \krof }% \def\xintiiOpp {\romannumeral0\xintiiopp }% \def\xintiiopp #1% {% \expandafter\XINT_opp \romannumeral`&&@#1% }% \def\XINT_Opp #1{\romannumeral0\XINT_opp #1}% \def\XINT_opp #1% {% \xint_UDzerominusfork #1-{ 0}% zero 0#1{ }% negative 0-{ -#1}% positive \krof }% \def\xintiiAbs {\romannumeral0\xintiiabs }% \def\xintiiabs #1% {% \expandafter\XINT_abs \romannumeral`&&@#1% }% \def\XINT_abs #1% {% \xint_UDsignfork #1{ }% -{ #1}% \krof }% \def\xintFDg {\romannumeral0\xintfdg }% \def\xintfdg #1{\expandafter\XINT_fdg \romannumeral`&&@#1\xint:\Z}% \def\XINT_FDg #1% {\romannumeral0\expandafter\XINT_fdg\romannumeral`&&@\xintnum{#1}\xint:\Z }% \def\XINT_fdg #1#2#3\Z {% \xint_UDzerominusfork #1-{ 0}% zero 0#1{ #2}% negative 0-{ #1}% positive \krof }% \def\xintLDg {\romannumeral0\xintldg }% \def\xintldg #1{\expandafter\XINT_ldg_fork\romannumeral`&&@#1% \XINT_ldg_c{}{}{}{}{}{}{}{}\xint_bye\relax}% \def\XINT_ldg_fork #1% {% \xint_UDsignfork #1\XINT_ldg -{\XINT_ldg#1}% \krof }% \def\XINT_ldg #1{% \def\XINT_ldg ##1##2##3##4##5##6##7##8##9% {\expandafter#1% \the\numexpr##9##8##7##6##5##4##3##2##1*\xint_c_+\XINT_ldg_a##9}% }\XINT_ldg{ }% \def\XINT_ldg_a#1#2{\XINT_ldg_cbye#2\XINT_ldg_d#1\XINT_ldg_c\XINT_ldg_b#2}% \def\XINT_ldg_b#1#2#3#4#5#6#7#8#9{#9#8#7#6#5#4#3#2#1*\xint_c_+\XINT_ldg_a#9}% \def\XINT_ldg_c #1#2\xint_bye{#1}% \def\XINT_ldg_cbye #1\XINT_ldg_c{}% \def\XINT_ldg_d#1#2\xint_bye{#1}% \def\xintDouble {\romannumeral0\xintdouble}% \def\xintdouble #1{\expandafter\XINT_dbl_fork\romannumeral`&&@#1% \xint_bye2345678\xint_bye*\xint_c_ii\relax}% \def\XINT_dbl_fork #1% {% \xint_UDsignfork #1\XINT_dbl_neg -\XINT_dbl \krof #1% }% \def\XINT_dbl_neg-{\expandafter-\romannumeral0\XINT_dbl}% \def\XINT_dbl #1{% \def\XINT_dbl ##1##2##3##4##5##6##7##8% {\expandafter#1\the\numexpr##1##2##3##4##5##6##7##8\XINT_dbl_a}% }\XINT_dbl{ }% \def\XINT_dbl_a #1#2#3#4#5#6#7#8% {\expandafter\XINT_dbl_e\the\numexpr 1#1#2#3#4#5#6#7#8\XINT_dbl_a}% \def\XINT_dbl_e#1{*\xint_c_ii\if#13+\xint_c_i\fi\relax}% \def\xintHalf {\romannumeral0\xinthalf}% \def\xinthalf #1{\expandafter\XINT_half_fork\romannumeral`&&@#1% \xint_bye\xint_Bye345678\xint_bye *\xint_c_v+\xint_c_v)/\xint_c_x-\xint_c_i\relax}% \def\XINT_half_fork #1% {% \xint_UDsignfork #1\XINT_half_neg -\XINT_half \krof #1% }% \def\XINT_half_neg-{\xintiiopp\XINT_half}% \def\XINT_half #1{% \def\XINT_half ##1##2##3##4##5##6##7##8% {\expandafter#1\the\numexpr(##1##2##3##4##5##6##7##8\XINT_half_a}% }\XINT_half{ }% \def\XINT_half_a#1{\xint_Bye#1\xint_bye\XINT_half_b#1}% \def\XINT_half_b #1#2#3#4#5#6#7#8% {\expandafter\XINT_half_e\the\numexpr(1#1#2#3#4#5#6#7#8\XINT_half_a}% \def\XINT_half_e#1{*\xint_c_v+#1-\xint_c_v)\relax}% \def\xintInc {\romannumeral0\xintinc}% \def\xintinc #1{\expandafter\XINT_inc_fork\romannumeral`&&@#1% \xint_bye23456789\xint_bye+\xint_c_i\relax}% \def\XINT_inc_fork #1% {% \xint_UDsignfork #1\XINT_inc_neg -\XINT_inc \krof #1% }% \def\XINT_inc_neg-#1\xint_bye#2\relax {\xintiiopp\XINT_dec #1\XINT_dec_bye234567890\xint_bye}% \def\XINT_inc #1{% \def\XINT_inc ##1##2##3##4##5##6##7##8##9% {\expandafter#1\the\numexpr##1##2##3##4##5##6##7##8##9\XINT_inc_a}% }\XINT_inc{ }% \def\XINT_inc_a #1#2#3#4#5#6#7#8#9% {\expandafter\XINT_inc_e\the\numexpr 1#1#2#3#4#5#6#7#8#9\XINT_inc_a}% \def\XINT_inc_e#1{\if#12+\xint_c_i\fi\relax}% \def\xintDec {\romannumeral0\xintdec}% \def\xintdec #1{\expandafter\XINT_dec_fork\romannumeral`&&@#1% \XINT_dec_bye234567890\xint_bye}% \def\XINT_dec_fork #1% {% \xint_UDsignfork #1\XINT_dec_neg -\XINT_dec \krof #1% }% \def\XINT_dec_neg-#1\XINT_dec_bye#2\xint_bye {\expandafter-% \romannumeral0\XINT_inc #1\xint_bye23456789\xint_bye+\xint_c_i\relax}% \def\XINT_dec #1{% \def\XINT_dec ##1##2##3##4##5##6##7##8##9% {\expandafter#1\the\numexpr##1##2##3##4##5##6##7##8##9\XINT_dec_a}% }\XINT_dec{ }% \def\XINT_dec_a #1#2#3#4#5#6#7#8#9% {\expandafter\XINT_dec_e\the\numexpr 1#1#2#3#4#5#6#7#8#9\XINT_dec_a}% \def\XINT_dec_bye #1\XINT_dec_a#2#3\xint_bye {\if#20-\xint_c_ii\relax+\else-\fi\xint_c_i\relax}% \def\XINT_dec_e#1{\unless\if#11\xint_dothis{-\xint_c_i#1}\fi\xint_orthat\relax}% \def\xintDSL {\romannumeral0\xintdsl }% \def\xintdsl #1{\expandafter\XINT_dsl\romannumeral`&&@#10}% \def\XINT_dsl#1{% \def\XINT_dsl ##1{\xint_gob_til_zero ##1\xint_dsl_zero 0#1##1}% }\XINT_dsl{ }% \def\xint_dsl_zero 0 0{ }% \def\xintDSR{\romannumeral0\xintdsr}% \def\xintdsr #1{\expandafter\XINT_dsr_fork\romannumeral`&&@#1% \xint_bye\xint_Bye3456789\xint_bye+\xint_c_v)/\xint_c_x-\xint_c_i\relax}% \def\XINT_dsr_fork #1% {% \xint_UDsignfork #1\XINT_dsr_neg -\XINT_dsr \krof #1% }% \def\XINT_dsr_neg-{\xintiiopp\XINT_dsr}% \def\XINT_dsr #1{% \def\XINT_dsr ##1##2##3##4##5##6##7##8##9% {\expandafter#1\the\numexpr(##1##2##3##4##5##6##7##8##9\XINT_dsr_a}% }\XINT_dsr{ }% \def\XINT_dsr_a#1{\xint_Bye#1\xint_bye\XINT_dsr_b#1}% \def\XINT_dsr_b #1#2#3#4#5#6#7#8#9% {\expandafter\XINT_dsr_e\the\numexpr(1#1#2#3#4#5#6#7#8#9\XINT_dsr_a}% \def\XINT_dsr_e #1{)\relax}% \def\xintDSRr{\romannumeral0\xintdsrr}% \def\xintdsrr #1{\expandafter\XINT_dsrr_fork\romannumeral`&&@#1% \xint_bye\xint_Bye3456789\xint_bye/\xint_c_x\relax}% \def\XINT_dsrr_fork #1% {% \xint_UDsignfork #1\XINT_dsrr_neg -\XINT_dsrr \krof #1% }% \def\XINT_dsrr_neg-{\xintiiopp\XINT_dsrr}% \def\XINT_dsrr #1{% \def\XINT_dsrr ##1##2##3##4##5##6##7##8##9% {\expandafter#1\the\numexpr##1##2##3##4##5##6##7##8##9\XINT_dsrr_a}% }\XINT_dsrr{ }% \def\XINT_dsrr_a#1{\xint_Bye#1\xint_bye\XINT_dsrr_b#1}% \def\XINT_dsrr_b #1#2#3#4#5#6#7#8#9% {\expandafter\XINT_dsrr_e\the\numexpr1#1#2#3#4#5#6#7#8#9\XINT_dsrr_a}% \let\XINT_dsrr_e\XINT_inc_e \def\XINT_cuz #1{% \def\XINT_cuz {\expandafter#1\the\numexpr\XINT_cuz_loop}% }\XINT_cuz{ }% \def\XINT_cuz_loop #1#2#3#4#5#6#7#8#9% {% #1#2#3#4#5#6#7#8% \xint_gob_til_R #9\XINT_cuz_hitend\R \ifnum #1#2#3#4#5#6#7#8>\xint_c_ \expandafter\XINT_cuz_cleantoend \else\expandafter\XINT_cuz_loop \fi #9% }% \def\XINT_cuz_hitend\R #1\R{\relax}% \def\XINT_cuz_cleantoend #1\R{\relax #1}% \def\XINT_cuz_byviii #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_R #9\XINT_cuz_byviii_e \R \xint_gob_til_eightzeroes #1#2#3#4#5#6#7#8\XINT_cuz_byviii_z 00000000% \XINT_cuz_byviii_done #1#2#3#4#5#6#7#8#9% }% \def\XINT_cuz_byviii_z 00000000\XINT_cuz_byviii_done 00000000{\XINT_cuz_byviii}% \def\XINT_cuz_byviii_done #1\R { #1}% \def\XINT_cuz_byviii_e\R #1\XINT_cuz_byviii_done #2\R{ #2}% \def\XINT_unsep_loop #1!#2!#3!#4!#5!#6!#7!#8!#9!% {% \expandafter\XINT_unsep_clean \the\numexpr #1\expandafter\XINT_unsep_clean \the\numexpr #2\expandafter\XINT_unsep_clean \the\numexpr #3\expandafter\XINT_unsep_clean \the\numexpr #4\expandafter\XINT_unsep_clean \the\numexpr #5\expandafter\XINT_unsep_clean \the\numexpr #6\expandafter\XINT_unsep_clean \the\numexpr #7\expandafter\XINT_unsep_clean \the\numexpr #8\expandafter\XINT_unsep_clean \the\numexpr #9\XINT_unsep_loop }% \def\XINT_unsep_clean 1{\relax}% \def\XINT_unsep_cuzsmall {% \expandafter\XINT_unsep_cuzsmall_x\the\numexpr0\XINT_unsep_loop }% \def\XINT_unsep_cuzsmall_x #1{% \def\XINT_unsep_cuzsmall_x 0##1##2##3##4##5##6##7##8% {% \expandafter#1\the\numexpr ##1##2##3##4##5##6##7##8\relax }}\XINT_unsep_cuzsmall_x{ }% \def\XINT_div_unsepQ_delim {\xint_bye!2!3!4!5!6!7!8!9!\xint_bye\xint_c_i\relax\Z}% \def\XINT_div_unsepQ {% \expandafter\XINT_div_unsepQ_x\the\numexpr0\XINT_unsep_loop }% \def\XINT_div_unsepQ_x #1{% \def\XINT_div_unsepQ_x 0##1##2##3##4##5##6##7##8##9% {% \xint_gob_til_Z ##9\XINT_div_unsepQ_one\Z \xint_gob_til_eightzeroes ##1##2##3##4##5##6##7##8\XINT_div_unsepQ_y 00000000% \expandafter#1\the\numexpr ##1##2##3##4##5##6##7##8\relax ##9% }}\XINT_div_unsepQ_x{ }% \def\XINT_div_unsepQ_y #1{% \def\XINT_div_unsepQ_y ##1\relax ##2##3##4##5##6##7##8##9% {% \expandafter#1\the\numexpr ##2##3##4##5##6##7##8##9\relax }}\XINT_div_unsepQ_y{ }% \def\XINT_div_unsepQ_one#1\expandafter{\expandafter}% \def\XINT_div_unsepR {% \expandafter\XINT_div_unsepR_x\the\numexpr0\XINT_unsep_loop }% \def\XINT_div_unsepR_x#1{% \def\XINT_div_unsepR_x 0{\expandafter#1\the\numexpr\XINT_cuz_loop}% }\XINT_div_unsepR_x{ }% \def\XINT_zeroes_forviii #1#2#3#4#5#6#7#8% {% \xint_gob_til_R #8\XINT_zeroes_forviii_end\R\XINT_zeroes_forviii }% \def\XINT_zeroes_forviii_end#1{% \def\XINT_zeroes_forviii_end\R\XINT_zeroes_forviii ##1##2##3##4##5##6##7##8##9\W {% \expandafter#1\xint_gob_til_one ##2##3##4##5##6##7##8% }}\XINT_zeroes_forviii_end{ }% \def\XINT_sepbyviii_Z #1#2#3#4#5#6#7#8% {% 1#1#2#3#4#5#6#7#8\expandafter!\the\numexpr\XINT_sepbyviii_Z }% \def\XINT_sepbyviii_Z_end #1\relax {;!}% \def\XINT_sepbyviii_andcount {% \expandafter\XINT_sepbyviii_andcount_a\the\numexpr\XINT_sepbyviii }% \def\XINT_sepbyviii #1#2#3#4#5#6#7#8% {% 1#1#2#3#4#5#6#7#8\expandafter!\the\numexpr\XINT_sepbyviii }% \def\XINT_sepbyviii_end #1\relax {\relax\XINT_sepbyviii_andcount_end!}% \def\XINT_sepbyviii_andcount_a {\XINT_sepbyviii_andcount_b \xint_c_\xint:}% \def\XINT_sepbyviii_andcount_b #1\xint:#2!#3!#4!#5!#6!#7!#8!#9!% {% #2\expandafter!\the\numexpr#3\expandafter!\the\numexpr#4\expandafter !\the\numexpr#5\expandafter!\the\numexpr#6\expandafter!\the\numexpr #7\expandafter!\the\numexpr#8\expandafter!\the\numexpr#9\expandafter!\the\numexpr \expandafter\XINT_sepbyviii_andcount_b\the\numexpr #1+\xint_c_viii\xint:% }% \def\XINT_sepbyviii_andcount_end #1\XINT_sepbyviii_andcount_b\the\numexpr #2+\xint_c_viii\xint:#3#4\W {\expandafter\xint:\the\numexpr #2+#3\xint:}% \def\XINT_rsepbyviii #1#2#3#4#5#6#7#8% {% \XINT_rsepbyviii_b {#1#2#3#4#5#6#7#8}% }% \def\XINT_rsepbyviii_b #1#2#3#4#5#6#7#8#9% {% #2#3#4#5#6#7#8#9\expandafter!\the\numexpr 1#1\expandafter\xint:\the\numexpr 1\XINT_rsepbyviii }% \def\XINT_rsepbyviii_end_B #1\relax #2#3{#2\xint:}% \def\XINT_rsepbyviii_end_A #11#2\expandafter #3\relax #4#5{#5!1#2\xint:}% \def\XINT_sepandrev {% \expandafter\XINT_sepandrev_a\the\numexpr 1\XINT_rsepbyviii }% \def\XINT_sepandrev_a {\XINT_sepandrev_b {}}% \def\XINT_sepandrev_b #1#2\xint:#3\xint:#4\xint:#5\xint:#6\xint:#7\xint:#8\xint:#9\xint:% {% \xint_gob_til_R #9\XINT_sepandrev_end\R \XINT_sepandrev_b {#9!#8!#7!#6!#5!#4!#3!#2!#1}% }% \def\XINT_sepandrev_end\R\XINT_sepandrev_b #1#2\W {\XINT_sepandrev_done #1}% \def\XINT_sepandrev_done #11#2!{ }% \def\XINT_sepandrev_andcount {% \expandafter\XINT_sepandrev_andcount_a\the\numexpr 1\XINT_rsepbyviii }% \def\XINT_sepandrev_andcount_a {\XINT_sepandrev_andcount_b 0!{}}% \def\XINT_sepandrev_andcount_b #1!#2#3\xint:#4\xint:#5\xint:#6\xint:#7\xint:#8\xint:#9\xint:% {% \xint_gob_til_R #9\XINT_sepandrev_andcount_end\R \expandafter\XINT_sepandrev_andcount_b \the\numexpr #1+\xint_c_i!% {#9!#8!#7!#6!#5!#4!#3!#2}% }% \def\XINT_sepandrev_andcount_end\R \expandafter\XINT_sepandrev_andcount_b\the\numexpr #1+\xint_c_i!#2#3#4\W {\expandafter\XINT_sepandrev_andcount_done\the\numexpr #3+\xint_c_xiv*#1!#2}% \def\XINT_sepandrev_andcount_done#1{% \def\XINT_sepandrev_andcount_done##1!##21##3!{\expandafter#1\the\numexpr##1-##3\xint:}% }\XINT_sepandrev_andcount_done{ }% \def\XINT_rev_nounsep #1#2!#3!#4!#5!#6!#7!#8!#9!% {% \xint_gob_til_R #9\XINT_rev_nounsep_end\R \XINT_rev_nounsep {#9!#8!#7!#6!#5!#4!#3!#2!#1}% }% \def\XINT_rev_nounsep_end\R\XINT_rev_nounsep #1#2\W {\XINT_rev_nounsep_done #1}% \def\XINT_rev_nounsep_done #11{ 1}% \def\XINT_unrevbyviii #11#2!1#3!1#4!1#5!1#6!1#7!1#8!1#9!% {% \xint_gob_til_R #9\XINT_unrevbyviii_a\R \XINT_unrevbyviii {#9#8#7#6#5#4#3#2#1}% }% \def\XINT_unrevbyviii_a#1{% \def\XINT_unrevbyviii_a\R\XINT_unrevbyviii ##1##2\W {\expandafter#1\romannumeral`&&@\xint_gob_til_sc ##1}% }\XINT_unrevbyviii_a{ }% \def\XINT_smallunrevbyviii 1#1!1#2!1#3!1#4!1#5!1#6!1#7!1#8!#9\W% {% \expandafter\XINT_cuz_small\xint_gob_til_sc #8#7#6#5#4#3#2#1% }% \def\xintiiAdd {\romannumeral0\xintiiadd }% \def\xintiiadd #1{\expandafter\XINT_iiadd\romannumeral`&&@#1\xint:}% \def\XINT_iiadd #1#2\xint:#3% {% \expandafter\XINT_add_nfork\expandafter#1\romannumeral`&&@#3\xint:#2\xint: }% \def\XINT_add_fork #1#2\xint:#3\xint:{\XINT_add_nfork #1#3\xint:#2\xint:}% \def\XINT_add_nfork #1#2% {% \xint_UDzerofork #1\XINT_add_firstiszero #2\XINT_add_secondiszero 0{}% \krof \xint_UDsignsfork #1#2\XINT_add_minusminus #1-\XINT_add_minusplus #2-\XINT_add_plusminus --\XINT_add_plusplus \krof #1#2% }% \def\XINT_add_firstiszero #1\krof 0#2#3\xint:#4\xint:{ #2#3}% \def\XINT_add_secondiszero #1\krof #20#3\xint:#4\xint:{ #2#4}% \def\XINT_add_minusminus #1#2% {\expandafter-\romannumeral0\XINT_add_pp_a {}{}}% \def\XINT_add_minusplus #1#2{\XINT_sub_mm_a {}#2}% \def\XINT_add_plusminus #1#2% {\expandafter\XINT_opp\romannumeral0\XINT_sub_mm_a #1{}}% \def\XINT_add_pp_a #1#2#3\xint: {% \expandafter\XINT_add_pp_b \romannumeral0\expandafter\XINT_sepandrev_andcount \romannumeral0\XINT_zeroes_forviii #2#3\R\R\R\R\R\R\R\R{10}0000001\W #2#3\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax\xint_c_ii\xint_c_i \R\xint:\xint_c_xii \R\xint:\xint_c_x \R\xint:\xint_c_viii \R\xint:\xint_c_vi \R\xint:\xint_c_iv \R\xint:\xint_c_ii \R\xint:\xint_c_\W \X #1% }% \let\XINT_add_plusplus \XINT_add_pp_a \def\XINT_add_pp_b #1\xint:#2\X #3\xint: {% \expandafter\XINT_add_checklengths \the\numexpr #1\expandafter\xint:% \romannumeral0\expandafter\XINT_sepandrev_andcount \romannumeral0\XINT_zeroes_forviii #3\R\R\R\R\R\R\R\R{10}0000001\W #3\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax\xint_c_ii\xint_c_i \R\xint:\xint_c_xii \R\xint:\xint_c_x \R\xint:\xint_c_viii \R\xint:\xint_c_vi \R\xint:\xint_c_iv \R\xint:\xint_c_ii \R\xint:\xint_c_\W 1;!1;!1;!1;!\W #21;!1;!1;!1;!\W 1\R!1\R!1\R!1\R!1\R!1\R!1\R!1\R!\W }% \def\XINT_add_checklengths #1\xint:#2\xint:% {% \ifnum #2>#1 \expandafter\XINT_add_exchange \else \expandafter\XINT_add_A \fi #1\xint:#2\xint:% }% \def\XINT_add_exchange #1\xint:#2\xint:#3\W #4\W {% \XINT_add_A #2\xint:#1\xint:#4\W #3\W }% \def\XINT_add_A #1\xint:#2\xint:% {% \ifnum #1>\xint_c_vi \expandafter\XINT_add_aa \else \expandafter\XINT_add_aa_small \fi }% \def\XINT_add_aa {\expandafter\XINT_add_out\the\numexpr\XINT_add_a \xint_c_ii}% \def\XINT_add_out{\expandafter\XINT_cuz_small\romannumeral0\XINT_unrevbyviii {}}% \def\XINT_add_aa_small {\expandafter\XINT_smallunrevbyviii\the\numexpr\XINT_add_a \xint_c_ii}% \def\XINT_add_a #1!#2!#3!#4!#5\W #6!#7!#8!#9!% {% \XINT_add_b #1!#6!#2!#7!#3!#8!#4!#9!% #5\W }% \def\XINT_add_b #11#2#3!#4!% {% \xint_gob_til_sc #2\XINT_add_bi ;% \expandafter\XINT_add_c\the\numexpr#1+1#2#3+#4-\xint_c_ii\xint:% }% \def\XINT_add_bi;\expandafter\XINT_add_c \the\numexpr#1+#2+#3-\xint_c_ii\xint:#4!#5!#6!#7!#8!#9!\W {% \XINT_add_k #1#3!#5!#7!#9!% }% \def\XINT_add_c #1#2\xint:% {% 1#2\expandafter!\the\numexpr\XINT_add_d #1% }% \def\XINT_add_d #11#2#3!#4!% {% \xint_gob_til_sc #2\XINT_add_di ;% \expandafter\XINT_add_e\the\numexpr#1+1#2#3+#4-\xint_c_ii\xint:% }% \def\XINT_add_di;\expandafter\XINT_add_e \the\numexpr#1+#2+#3-\xint_c_ii\xint:#4!#5!#6!#7!#8\W {% \XINT_add_k #1#3!#5!#7!% }% \def\XINT_add_e #1#2\xint:% {% 1#2\expandafter!\the\numexpr\XINT_add_f #1% }% \def\XINT_add_f #11#2#3!#4!% {% \xint_gob_til_sc #2\XINT_add_fi ;% \expandafter\XINT_add_g\the\numexpr#1+1#2#3+#4-\xint_c_ii\xint:% }% \def\XINT_add_fi;\expandafter\XINT_add_g \the\numexpr#1+#2+#3-\xint_c_ii\xint:#4!#5!#6\W {% \XINT_add_k #1#3!#5!% }% \def\XINT_add_g #1#2\xint:% {% 1#2\expandafter!\the\numexpr\XINT_add_h #1% }% \def\XINT_add_h #11#2#3!#4!% {% \xint_gob_til_sc #2\XINT_add_hi ;% \expandafter\XINT_add_i\the\numexpr#1+1#2#3+#4-\xint_c_ii\xint:% }% \def\XINT_add_hi;% \expandafter\XINT_add_i\the\numexpr#1+#2+#3-\xint_c_ii\xint:#4\W {% \XINT_add_k #1#3!% }% \def\XINT_add_i #1#2\xint:% {% 1#2\expandafter!\the\numexpr\XINT_add_a #1% }% \def\XINT_add_k #1{\if #12\expandafter\XINT_add_ke\else\expandafter\XINT_add_l \fi}% \def\XINT_add_ke #11;#2\W {\XINT_add_kf #11;!}% \def\XINT_add_kf 1{1\relax }% \def\XINT_add_l 1#1#2{\xint_gob_til_sc #1\XINT_add_lf ;\XINT_add_m 1#1#2}% \def\XINT_add_lf #1\W {1\relax 00000001!1;!}% \def\XINT_add_m #1!{\expandafter\XINT_add_n\the\numexpr\xint_c_i+#1\xint:}% \def\XINT_add_n #1#2\xint:{1#2\expandafter!\the\numexpr\XINT_add_o #1}% \def\XINT_add_o #1{\if #12\expandafter\XINT_add_l\else\expandafter\XINT_add_ke \fi}% \def\xintiiCmp {\romannumeral0\xintiicmp }% \def\xintiicmp #1{\expandafter\XINT_iicmp\romannumeral`&&@#1\xint:}% \def\XINT_iicmp #1#2\xint:#3% {% \expandafter\XINT_cmp_nfork\expandafter #1\romannumeral`&&@#3\xint:#2\xint: }% \def\XINT_cmp_nfork #1#2% {% \xint_UDzerofork #1\XINT_cmp_firstiszero #2\XINT_cmp_secondiszero 0{}% \krof \xint_UDsignsfork #1#2\XINT_cmp_minusminus #1-\XINT_cmp_minusplus #2-\XINT_cmp_plusminus --\XINT_cmp_plusplus \krof #1#2% }% \def\XINT_cmp_firstiszero #1\krof 0#2#3\xint:#4\xint: {% \xint_UDzerominusfork #2-{ 0}% 0#2{ 1}% 0-{ -1}% \krof }% \def\XINT_cmp_secondiszero #1\krof #20#3\xint:#4\xint: {% \xint_UDzerominusfork #2-{ 0}% 0#2{ -1}% 0-{ 1}% \krof }% \def\XINT_cmp_plusminus #1\xint:#2\xint:{ 1}% \def\XINT_cmp_minusplus #1\xint:#2\xint:{ -1}% \def\XINT_cmp_minusminus --{\expandafter\XINT_opp\romannumeral0\XINT_cmp_plusplus {}{}}% \def\XINT_cmp_plusplus #1#2#3\xint: {% \expandafter\XINT_cmp_pp \the\numexpr\expandafter\XINT_sepbyviii_andcount \romannumeral0\XINT_zeroes_forviii #2#3\R\R\R\R\R\R\R\R{10}0000001\W #2#3\XINT_sepbyviii_end 2345678\relax \xint_c_vii!\xint_c_vi!\xint_c_v!\xint_c_iv!% \xint_c_iii!\xint_c_ii!\xint_c_i!\xint_c_\W #1% }% \def\XINT_cmp_pp #1\xint:#2\xint:#3\xint: {% \expandafter\XINT_cmp_checklengths \the\numexpr #2\expandafter\xint:% \the\numexpr\expandafter\XINT_sepbyviii_andcount \romannumeral0\XINT_zeroes_forviii #3\R\R\R\R\R\R\R\R{10}0000001\W #3\XINT_sepbyviii_end 2345678\relax \xint_c_vii!\xint_c_vi!\xint_c_v!\xint_c_iv!% \xint_c_iii!\xint_c_ii!\xint_c_i!\xint_c_\W #1;!1;!1;!1;!\W }% \def\XINT_cmp_checklengths #1\xint:#2\xint:#3\xint: {% \ifnum #1=#3 \expandafter\xint_firstoftwo \else \expandafter\xint_secondoftwo \fi \XINT_cmp_a {\XINT_cmp_distinctlengths {#1}{#3}}#2;!1;!1;!1;!\W }% \def\XINT_cmp_distinctlengths #1#2#3\W #4\W {% \ifnum #1>#2 \expandafter\xint_firstoftwo \else \expandafter\xint_secondoftwo \fi { -1}{ 1}% }% \def\XINT_cmp_a 1#1!1#2!1#3!1#4!#5\W 1#6!1#7!1#8!1#9!% {% \xint_gob_til_sc #1\XINT_cmp_equal ;% \ifnum #1>#6 \XINT_cmp_gt\fi \ifnum #1<#6 \XINT_cmp_lt\fi \xint_gob_til_sc #2\XINT_cmp_equal ;% \ifnum #2>#7 \XINT_cmp_gt\fi \ifnum #2<#7 \XINT_cmp_lt\fi \xint_gob_til_sc #3\XINT_cmp_equal ;% \ifnum #3>#8 \XINT_cmp_gt\fi \ifnum #3<#8 \XINT_cmp_lt\fi \xint_gob_til_sc #4\XINT_cmp_equal ;% \ifnum #4>#9 \XINT_cmp_gt\fi \ifnum #4<#9 \XINT_cmp_lt\fi \XINT_cmp_a #5\W }% \def\XINT_cmp_lt#1{\def\XINT_cmp_lt\fi ##1\W ##2\W {\fi#1-1}}\XINT_cmp_lt{ }% \def\XINT_cmp_gt#1{\def\XINT_cmp_gt\fi ##1\W ##2\W {\fi#11}}\XINT_cmp_gt{ }% \def\XINT_cmp_equal #1\W #2\W { 0}% \def\xintiiSub {\romannumeral0\xintiisub }% \def\xintiisub #1{\expandafter\XINT_iisub\romannumeral`&&@#1\xint:}% \def\XINT_iisub #1#2\xint:#3% {% \expandafter\XINT_sub_nfork\expandafter #1\romannumeral`&&@#3\xint:#2\xint: }% \def\XINT_sub_nfork #1#2% {% \xint_UDzerofork #1\XINT_sub_firstiszero #2\XINT_sub_secondiszero 0{}% \krof \xint_UDsignsfork #1#2\XINT_sub_minusminus #1-\XINT_sub_minusplus #2-\XINT_sub_plusminus --\XINT_sub_plusplus \krof #1#2% }% \def\XINT_sub_firstiszero #1\krof 0#2#3\xint:#4\xint:{\XINT_opp #2#3}% \def\XINT_sub_secondiszero #1\krof #20#3\xint:#4\xint:{ #2#4}% \def\XINT_sub_plusminus #1#2{\XINT_add_pp_a #1{}}% \def\XINT_sub_plusplus #1#2% {\expandafter\XINT_opp\romannumeral0\XINT_sub_mm_a #1#2}% \def\XINT_sub_minusplus #1#2% {\expandafter-\romannumeral0\XINT_add_pp_a {}#2}% \def\XINT_sub_minusminus #1#2{\XINT_sub_mm_a {}{}}% \def\XINT_sub_mm_a #1#2#3\xint: {% \expandafter\XINT_sub_mm_b \romannumeral0\expandafter\XINT_sepandrev_andcount \romannumeral0\XINT_zeroes_forviii #2#3\R\R\R\R\R\R\R\R{10}0000001\W #2#3\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax\xint_c_ii\xint_c_i \R\xint:\xint_c_xii \R\xint:\xint_c_x \R\xint:\xint_c_viii \R\xint:\xint_c_vi \R\xint:\xint_c_iv \R\xint:\xint_c_ii \R\xint:\xint_c_\W \X #1% }% \def\XINT_sub_mm_b #1\xint:#2\X #3\xint: {% \expandafter\XINT_sub_checklengths \the\numexpr #1\expandafter\xint:% \romannumeral0\expandafter\XINT_sepandrev_andcount \romannumeral0\XINT_zeroes_forviii #3\R\R\R\R\R\R\R\R{10}0000001\W #3\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax\xint_c_ii\xint_c_i \R\xint:\xint_c_xii \R\xint:\xint_c_x \R\xint:\xint_c_viii \R\xint:\xint_c_vi \R\xint:\xint_c_iv \R\xint:\xint_c_ii \R\xint:\xint_c_\W 1;!1;!1;!1;!\W #21;!1;!1;!1;!\W 1;!1\R!1\R!1\R!1\R!% 1\R!1\R!1\R!1\R!\W }% \def\XINT_sub_checklengths #1\xint:#2\xint:% {% \ifnum #2>#1 \expandafter\XINT_sub_exchange \else \expandafter\XINT_sub_aa \fi }% \def\XINT_sub_exchange #1\W #2\W {% \expandafter\XINT_opp\romannumeral0\XINT_sub_aa #2\W #1\W }% \def\XINT_sub_aa {% \expandafter\XINT_sub_out\the\numexpr\XINT_sub_a\xint_c_i }% \def\XINT_sub_out {\XINT_unrevbyviii{}}% \def\XINT_sub_a #1!#2!#3!#4!#5\W #6!#7!#8!#9!% {% \XINT_sub_b #1!#6!#2!#7!#3!#8!#4!#9!% #5\W }% \def\XINT_sub_b #1#2#3#4!#5!% {% \xint_gob_til_sc #3\XINT_sub_bi ;% \expandafter\XINT_sub_c\the\numexpr#1+1#5-#3#4-\xint_c_i\xint:% }% \def\XINT_sub_c 1#1#2\xint:% {% 1#2\expandafter!\the\numexpr\XINT_sub_d #1% }% \def\XINT_sub_d #1#2#3#4!#5!% {% \xint_gob_til_sc #3\XINT_sub_di ;% \expandafter\XINT_sub_e\the\numexpr#1+1#5-#3#4-\xint_c_i\xint: }% \def\XINT_sub_e 1#1#2\xint:% {% 1#2\expandafter!\the\numexpr\XINT_sub_f #1% }% \def\XINT_sub_f #1#2#3#4!#5!% {% \xint_gob_til_sc #3\XINT_sub_fi ;% \expandafter\XINT_sub_g\the\numexpr#1+1#5-#3#4-\xint_c_i\xint: }% \def\XINT_sub_g 1#1#2\xint:% {% 1#2\expandafter!\the\numexpr\XINT_sub_h #1% }% \def\XINT_sub_h #1#2#3#4!#5!% {% \xint_gob_til_sc #3\XINT_sub_hi ;% \expandafter\XINT_sub_i\the\numexpr#1+1#5-#3#4-\xint_c_i\xint: }% \def\XINT_sub_i 1#1#2\xint:% {% 1#2\expandafter!\the\numexpr\XINT_sub_a #1% }% \def\XINT_sub_bi;% \expandafter\XINT_sub_c\the\numexpr#1+1#2-#3\xint: #4!#5!#6!#7!#8!#9!\W {% \XINT_sub_k #1#2!#5!#7!#9!% }% \def\XINT_sub_di;% \expandafter\XINT_sub_e\the\numexpr#1+1#2-#3\xint: #4!#5!#6!#7!#8\W {% \XINT_sub_k #1#2!#5!#7!% }% \def\XINT_sub_fi;% \expandafter\XINT_sub_g\the\numexpr#1+1#2-#3\xint: #4!#5!#6\W {% \XINT_sub_k #1#2!#5!% }% \def\XINT_sub_hi;% \expandafter\XINT_sub_i\the\numexpr#1+1#2-#3\xint: #4\W {% \XINT_sub_k #1#2!% }% \def\XINT_sub_k #1#2#3% {% \xint_gob_til_sc #3\XINT_sub_p;\XINT_sub_l #1#2#3% }% \def\XINT_sub_l #1% {\xint_UDzerofork #1\XINT_sub_l_carry 0\XINT_sub_l_Ia\krof}% \def\XINT_sub_l_Ia 1#1;!#2\W{1\relax#1;!1\XINT_sub_fix_none!}% \def\XINT_sub_l_carry 1#1!{\ifcase #1 \expandafter \XINT_sub_l_Id \or \expandafter \XINT_sub_l_Ic \else\expandafter \XINT_sub_l_Ib\fi 1#1!}% \def\XINT_sub_l_Ib #1;#2\W {-\xint_c_i+#1;!1\XINT_sub_fix_none!}% \def\XINT_sub_l_Ic 1#1!1#2#3!#4;#5\W {% \xint_gob_til_sc #2\XINT_sub_l_Ica;% 1\relax 00000000!1#2#3!#4;!1\XINT_sub_fix_none!% }% \def\XINT_sub_l_Ica#1\W {% 1;!1\XINT_sub_fix_cuz!% 1;!1\R!1\R!1\R!1\R!1\R!1\R!1\R!1\R!\W \xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\Z }% \def\XINT_sub_l_Id 1#1!% {199999999\expandafter!\the\numexpr \XINT_sub_l_Id_a}% \def\XINT_sub_l_Id_a 1#1!{\ifcase #1 \expandafter \XINT_sub_l_Id \or \expandafter \XINT_sub_l_Id_b \else\expandafter \XINT_sub_l_Ib\fi 1#1!}% \def\XINT_sub_l_Id_b 1#1!1#2#3!#4;#5\W {% \xint_gob_til_sc #2\XINT_sub_l_Ida;% 1\relax 00000000!1#2#3!#4;!1\XINT_sub_fix_none!% }% \def\XINT_sub_l_Ida#1\XINT_sub_fix_none{1;!1\XINT_sub_fix_none}% \def\XINT_sub_p;\XINT_sub_l #1#2\W #3\W {% \xint_UDzerofork #1{1;!1\XINT_sub_fix_neg!% 1;!1\R!1\R!1\R!1\R!1\R!1\R!1\R!1\R!\W \xint_bye2345678\xint_bye1099999988\relax}% A - B, B > A 0{1;!1\XINT_sub_fix_cuz!% 1;!1\R!1\R!1\R!1\R!1\R!1\R!1\R!1\R!\W}% \krof \xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\xint:\Z }% \def\XINT_sub_fix_none;{\XINT_cuz_small}% \def\XINT_sub_fix_cuz ;{\expandafter\XINT_num_cleanup\the\numexpr\XINT_num_loop}% \def\XINT_sub_fix_neg;% {% \expandafter-\romannumeral0\expandafter \XINT_sub_comp_finish\the\numexpr\XINT_sub_comp_loop }% \def\XINT_sub_comp_finish 0{\XINT_sub_fix_cuz;}% \def\XINT_sub_comp_loop #1#2#3#4#5#6#7#8% {% \expandafter\XINT_sub_comp_clean \the\numexpr \xint_c_xi_e_viii_mone-#1#2#3#4#5#6#7#8\XINT_sub_comp_loop }% \def\XINT_sub_comp_clean 1#1{+#1\relax}% \def\xintiiMul {\romannumeral0\xintiimul }% \def\xintiimul #1% {% \expandafter\XINT_iimul\romannumeral`&&@#1\xint: }% \def\XINT_iimul #1#2\xint:#3% {% \expandafter\XINT_mul_nfork\expandafter #1\romannumeral`&&@#3\xint:#2\xint: }% \def\XINT_mul_fork #1#2\xint:#3\xint:{\XINT_mul_nfork #1#3\xint:#2\xint:}% \def\XINT_mul_nfork #1#2% {% \xint_UDzerofork #1\XINT_mul_zero #2\XINT_mul_zero 0{}% \krof \xint_UDsignsfork #1#2\XINT_mul_minusminus #1-\XINT_mul_minusplus #2-\XINT_mul_plusminus --\XINT_mul_plusplus \krof #1#2% }% \def\XINT_mul_zero #1\krof #2#3\xint:#4\xint:{ 0}% \def\XINT_mul_minusminus #1#2{\XINT_mul_plusplus {}{}}% \def\XINT_mul_minusplus #1#2% {\expandafter-\romannumeral0\XINT_mul_plusplus {}#2}% \def\XINT_mul_plusminus #1#2% {\expandafter-\romannumeral0\XINT_mul_plusplus #1{}}% \def\XINT_mul_plusplus #1#2#3\xint: {% \expandafter\XINT_mul_pre_b \romannumeral0\expandafter\XINT_sepandrev_andcount \romannumeral0\XINT_zeroes_forviii #2#3\R\R\R\R\R\R\R\R{10}0000001\W #2#3\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax\xint_c_ii\xint_c_i \R\xint:\xint_c_xii \R\xint:\xint_c_x \R\xint:\xint_c_viii \R\xint:\xint_c_vi \R\xint:\xint_c_iv \R\xint:\xint_c_ii \R\xint:\xint_c_\W \W #1% }% \def\XINT_mul_pre_b #1\xint:#2\W #3\xint: {% \expandafter\XINT_mul_checklengths \the\numexpr #1\expandafter\xint:% \romannumeral0\expandafter\XINT_sepandrev_andcount \romannumeral0\XINT_zeroes_forviii #3\R\R\R\R\R\R\R\R{10}0000001\W #3\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax\xint_c_ii\xint_c_i \R\xint:\xint_c_xii \R\xint:\xint_c_x \R\xint:\xint_c_viii \R\xint:\xint_c_vi \R\xint:\xint_c_iv \R\xint:\xint_c_ii \R\xint:\xint_c_\W 1;!\W #21;!% 1\R!1\R!1\R!1\R!1\R!1\R!1\R!1\R!\W }% \def\XINT_mul_checklengths #1\xint:#2\xint:% {% \ifnum #2=\xint_c_i\expandafter\XINT_mul_smallbyfirst\fi \ifnum #1=\xint_c_i\expandafter\XINT_mul_smallbysecond\fi \ifnum #2<#1 \ifnum \numexpr (#2-\xint_c_i)*(#1-#2)<383 \XINT_mul_exchange \fi \else \ifnum \numexpr (#1-\xint_c_i)*(#2-#1)>383 \XINT_mul_exchange \fi \fi \XINT_mul_start }% \def\XINT_mul_smallbyfirst #1\XINT_mul_start 1#2!1;!\W {% \ifnum#2=\xint_c_i\expandafter\XINT_mul_oneisone\fi \ifnum#2<\xint_c_xxii\expandafter\XINT_mul_verysmall\fi \expandafter\XINT_mul_out\the\numexpr\XINT_smallmul 1#2!% }% \def\XINT_mul_smallbysecond #1\XINT_mul_start #2\W 1#3!1;!% {% \ifnum#3=\xint_c_i\expandafter\XINT_mul_oneisone\fi \ifnum#3<\xint_c_xxii\expandafter\XINT_mul_verysmall\fi \expandafter\XINT_mul_out\the\numexpr\XINT_smallmul 1#3!#2% }% \def\XINT_mul_oneisone #1!{\XINT_mul_out }% \def\XINT_mul_verysmall\expandafter\XINT_mul_out \the\numexpr\XINT_smallmul 1#1!% {\expandafter\XINT_mul_out\the\numexpr\XINT_verysmallmul 0\xint:#1!}% \def\XINT_mul_exchange #1\XINT_mul_start #2\W #31;!% {\fi\fi\XINT_mul_start #31;!\W #2}% \def\XINT_mul_start {\expandafter\XINT_mul_out\the\numexpr\XINT_mul_loop 100000000!1;!\W}% \def\XINT_mul_out {\expandafter\XINT_cuz_small\romannumeral0\XINT_unrevbyviii {}}% \def\XINT_mul_loop #1\W #2\W 1#3!% {% \xint_gob_til_sc #3\XINT_mul_e ;% \expandafter\XINT_mul_a\the\numexpr \XINT_smallmul 1#3!#2\W #1\W #2\W }% \def\XINT_mul_a #1\W #2\W {% \expandafter\XINT_mul_b\the\numexpr \XINT_add_a \xint_c_ii #21;!1;!1;!\W #11;!1;!1;!\W\W }% \def\XINT_mul_b 1#1!{1#1\expandafter!\the\numexpr\XINT_mul_loop }% \def\XINT_mul_e;#1\W 1#2\W #3\W {1\relax #2}% \def\XINT_minimulwc_a 1#1\xint:#2\xint:#3!#4#5#6#7#8\xint:% {% \expandafter\XINT_minimulwc_b \the\numexpr \xint_c_x^ix+#1+#3*#8\xint: #3*#4#5#6#7+#2*#8\xint: #2*#4#5#6#7\xint:% }% \def\XINT_minimulwc_b 1#1#2#3#4#5#6\xint:#7\xint:% {% \expandafter\XINT_minimulwc_c \the\numexpr \xint_c_x^ix+#1#2#3#4#5+#7\xint:#6\xint:% }% \def\XINT_minimulwc_c 1#1#2#3#4#5#6\xint:#7\xint:#8\xint:% {% 1#6#7\expandafter!% \the\numexpr\expandafter\XINT_smallmul_a \the\numexpr \xint_c_x^viii+#1#2#3#4#5+#8\xint:% }% \def\XINT_smallmul 1#1#2#3#4#5!{\XINT_smallmul_a 100000000\xint:#1#2#3#4\xint:#5!}% \def\XINT_smallmul_a #1\xint:#2\xint:#3!1#4!% {% \xint_gob_til_sc #4\XINT_smallmul_e;% \XINT_minimulwc_a #1\xint:#2\xint:#3!#4\xint:#2\xint:#3!% }% \def\XINT_smallmul_e;\XINT_minimulwc_a 1#1\xint:#2;#3!% {\xint_gob_til_eightzeroes #1\XINT_smallmul_f 000000001\relax #1!1;!}% \def\XINT_smallmul_f 000000001\relax 00000000!1{1\relax}% \def\XINT_verysmallmul #1\xint:#2!1#3!% {% \xint_gob_til_sc #3\XINT_verysmallmul_e;% \expandafter\XINT_verysmallmul_a \the\numexpr #2*#3+#1\xint:#2!% }% \def\XINT_verysmallmul_e;\expandafter\XINT_verysmallmul_a\the\numexpr #1+#2#3\xint:#4!% {\xint_gob_til_zero #2\XINT_verysmallmul_f 0\xint_c_x^viii+#2#3!1;!}% \def\XINT_verysmallmul_f #1!1{1\relax}% \def\XINT_verysmallmul_a #1#2\xint:% {% \unless\ifnum #1#2<\xint_c_x^ix \expandafter\XINT_verysmallmul_bi\else \expandafter\XINT_verysmallmul_bj\fi \the\numexpr \xint_c_x^ix+#1#2\xint:% }% \def\XINT_verysmallmul_bj{\expandafter\XINT_verysmallmul_cj }% \def\XINT_verysmallmul_cj 1#1#2\xint:% {1#2\expandafter!\the\numexpr\XINT_verysmallmul #1\xint:}% \def\XINT_verysmallmul_bi\the\numexpr\xint_c_x^ix+#1#2#3\xint:% {1#3\expandafter!\the\numexpr\XINT_verysmallmul #1#2\xint:}% \def\XINT_minimul_a #1\xint:#2!#3#4#5#6#7!% {% \expandafter\XINT_minimul_b \the\numexpr \xint_c_x^viii+#2*#7\xint:#2*#3#4#5#6+#1*#7\xint:#1*#3#4#5#6\xint:% }% \def\XINT_minimul_b 1#1#2#3#4#5\xint:#6\xint:% {% \expandafter\XINT_minimul_c \the\numexpr \xint_c_x^ix+#1#2#3#4+#6\xint:#5\xint:% }% \def\XINT_minimul_c 1#1#2#3#4#5#6\xint:#7\xint:#8\xint:% {% 1#6#7\expandafter!\the\numexpr \xint_c_x^viii+#1#2#3#4#5+#8!% }% \def\xintiiDivision {\romannumeral0\xintiidivision }% \def\xintiidivision #1{\expandafter\XINT_iidivision \romannumeral`&&@#1\xint:}% \def\XINT_iidivision #1#2\xint:#3{\expandafter\XINT_iidivision_a\expandafter #1% \romannumeral`&&@#3\xint:#2\xint:}% \def\XINT_iidivision_a #1#2% #1 de A, #2 de B. {% \if0#2\xint_dothis{\XINT_iidivision_divbyzero #1#2}\fi \if0#1\xint_dothis\XINT_iidivision_aiszero\fi \if-#2\xint_dothis{\expandafter\XINT_iidivision_bneg \romannumeral0\XINT_iidivision_bpos #1}\fi \xint_orthat{\XINT_iidivision_bpos #1#2}% }% \def\XINT_iidivision_divbyzero#1#2#3\xint:#4\xint: {\if0#1\xint_dothis{\XINT_signalcondition{DivisionUndefined}}\fi \xint_orthat{\XINT_signalcondition{DivisionByZero}}% {Division of #1#4 by #2#3}{}{{0}{0}}}% \def\XINT_iidivision_aiszero #1\xint:#2\xint:{{0}{0}}% \def\XINT_iidivision_bneg #1% q->-q, r unchanged {\expandafter{\romannumeral0\XINT_opp #1}}% \def\XINT_iidivision_bpos #1% {% \xint_UDsignfork #1\XINT_iidivision_aneg -{\XINT_iidivision_apos #1}% \krof }% \def\XINT_iidivision_apos #1#2\xint:#3\xint:{\XINT_div_prepare {#2}{#1#3}}% \def\XINT_iidivision_aneg #1\xint:#2\xint: {\expandafter \XINT_iidivision_aneg_b\romannumeral0\XINT_div_prepare {#1}{#2}{#1}}% \def\XINT_iidivision_aneg_b #1#2{\if0\XINT_Sgn #2\xint: \expandafter\XINT_iidivision_aneg_rzero \else \expandafter\XINT_iidivision_aneg_rpos \fi {#1}{#2}}% \def\XINT_iidivision_aneg_rzero #1#2#3{{-#1}{0}}% necessarily q was >0 \def\XINT_iidivision_aneg_rpos #1% {% \expandafter\XINT_iidivision_aneg_end\expandafter {\expandafter-\romannumeral0\xintinc {#1}}% q-> -(1+q) }% \def\XINT_iidivision_aneg_end #1#2#3% {% \expandafter\xint_exchangetwo_keepbraces \expandafter{\romannumeral0\XINT_sub_mm_a {}{}#3\xint:#2\xint:}{#1}% r-> b-r }% \def\XINT_div_prepare #1% {% \XINT_div_prepare_a #1\R\R\R\R\R\R\R\R {10}0000001\W !{#1}% }% \def\XINT_div_prepare_a #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_R #9\XINT_div_prepare_small\R \XINT_div_prepare_b #9% }% \def\XINT_div_prepare_small\R #1!#2% {% \ifcase #2 \or\expandafter\XINT_div_BisOne \or\expandafter\XINT_div_BisTwo \else\expandafter\XINT_div_small_a \fi {#2}% }% \def\XINT_div_BisOne #1#2{{#2}{0}}% \def\XINT_div_BisTwo #1#2% {% \expandafter\expandafter\expandafter\XINT_div_BisTwo_a \ifodd\xintLDg{#2} \expandafter1\else \expandafter0\fi {#2}% }% \def\XINT_div_BisTwo_a #1#2% {% \expandafter{\romannumeral0\XINT_half #2\xint_bye\xint_Bye345678\xint_bye *\xint_c_v+\xint_c_v)/\xint_c_x-\xint_c_i\relax}{#1}% }% \def\XINT_div_small_a #1#2% {% \expandafter\XINT_div_small_b \the\numexpr #1/\xint_c_ii\expandafter \xint:\the\numexpr \xint_c_x^viii+#1\expandafter!% \romannumeral0% \XINT_div_small_ba #2\R\R\R\R\R\R\R\R{10}0000001\W #2\XINT_sepbyviii_Z_end 2345678\relax }% \def\XINT_div_small_b #1!#2{#2#1!}% \def\XINT_div_small_ba #1#2#3#4#5#6#7#8#9% {% \xint_gob_til_R #9\XINT_div_smallsmall\R \expandafter\XINT_div_dosmalldiv \the\numexpr\expandafter\XINT_sepbyviii_Z \romannumeral0\XINT_zeroes_forviii #1#2#3#4#5#6#7#8#9% }% \def\XINT_div_smallsmall\R \expandafter\XINT_div_dosmalldiv \the\numexpr\expandafter\XINT_sepbyviii_Z \romannumeral0\XINT_zeroes_forviii #1\R #2\relax {{\XINT_div_dosmallsmall}{#1}}% \def\XINT_div_dosmallsmall #1\xint:1#2!#3% {% \expandafter\XINT_div_smallsmallend \the\numexpr (#3+#1)/#2-\xint_c_i\xint:#2\xint:#3\xint:% }% \def\XINT_div_smallsmallend #1\xint:#2\xint:#3\xint:{\expandafter {\the\numexpr #1\expandafter}\expandafter{\the\numexpr #3-#1*#2}}% \def\XINT_div_dosmalldiv {{\expandafter\XINT_sdiv_out\the\numexpr\XINT_smalldivx_a}}% \def\XINT_div_prepare_b {\expandafter\XINT_div_prepare_c\romannumeral0\XINT_zeroes_forviii }% \def\XINT_div_prepare_c #1!% {% \XINT_div_prepare_d #1.00000000!{#1}% }% \def\XINT_div_prepare_d #1#2#3#4#5#6#7#8#9% {% \expandafter\XINT_div_prepare_e\xint_gob_til_dot #1#2#3#4#5#6#7#8#9!% }% \def\XINT_div_prepare_e #1!#2!#3#4% {% \XINT_div_prepare_f #4#3\X {#1}{#3}% }% \def\XINT_div_prepare_f #1#2#3#4#5#6#7#8#9\X {% \expandafter\XINT_div_prepare_g \the\numexpr #1#2#3#4#5#6#7#8+\xint_c_i\expandafter \xint:\the\numexpr (#1#2#3#4#5#6#7#8+\xint_c_i)/\xint_c_ii\expandafter \xint:\the\numexpr #1#2#3#4#5#6#7#8\expandafter \xint:\romannumeral0\XINT_sepandrev_andcount #1#2#3#4#5#6#7#8#9\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax\xint_c_ii\xint_c_i \R\xint:\xint_c_xii \R\xint:\xint_c_x \R\xint:\xint_c_viii \R\xint:\xint_c_vi \R\xint:\xint_c_iv \R\xint:\xint_c_ii \R\xint:\xint_c_\W \X }% \def\XINT_div_prepare_g #1\xint:#2\xint:#3\xint:#4\xint:#5\X #6#7#8% {% \expandafter\XINT_div_prepare_h \the\numexpr\expandafter\XINT_sepbyviii_andcount \romannumeral0\XINT_zeroes_forviii #8#7\R\R\R\R\R\R\R\R{10}0000001\W #8#7\XINT_sepbyviii_end 2345678\relax \xint_c_vii!\xint_c_vi!\xint_c_v!\xint_c_iv!% \xint_c_iii!\xint_c_ii!\xint_c_i!\xint_c_\W {#1}{#2}{#3}{#4}{#5}{#6}% }% \def\XINT_div_prepare_h #11\xint:#2\xint:#3#4#5#6%#7#8% {% \XINT_div_start_a {#2}{#6}{#1}{#3}{#4}{#5}%{#7}{#8}% }% \def\XINT_div_start_a #1#2% {% \ifnum #1 < #2 \expandafter\XINT_div_zeroQ \else \expandafter\XINT_div_start_b \fi {#1}{#2}% }% \def\XINT_div_zeroQ #1#2#3#4#5#6#7% {% \expandafter\XINT_div_zeroQ_end \romannumeral0\XINT_unsep_cuzsmall #3\xint_bye!2!3!4!5!6!7!8!9!\xint_bye\xint_c_i\relax\xint: }% \def\XINT_div_zeroQ_end #1\xint:#2% {\expandafter{\expandafter0\expandafter}\XINT_div_cleanR #1#2\xint:}% \def\XINT_div_start_b #1#2#3#4#5#6% {% \expandafter\XINT_div_finish\the\numexpr \XINT_div_start_c {#2}\xint:#3\xint:{#6}{{#1}{#2}{{#4}{#5}}{#6}}% }% \def\XINT_div_finish {% \expandafter\XINT_div_finish_a \romannumeral`&&@\XINT_div_unsepQ }% \def\XINT_div_finish_a #1\Z #2\xint:{\XINT_div_finish_b #2\xint:{#1}}% \def\XINT_div_finish_b #1% {% \if0#1% \expandafter\XINT_div_finish_bRzero \else \expandafter\XINT_div_finish_bRpos \fi #1% }% \def\XINT_div_finish_bRzero 0\xint:#1#2{{#1}{0}}% \def\XINT_div_finish_bRpos #1\xint:#2#3% {% \expandafter\xint_exchangetwo_keepbraces\XINT_div_cleanR #1#3\xint:{#2}% }% \def\XINT_div_cleanR #100000000\xint:{{#1}}% \def\XINT_div_start_c #1% {% \ifnum #1>\xint_c_vi \expandafter\XINT_div_start_ca \else \expandafter\XINT_div_start_cb \fi {#1}% }% \def\XINT_div_start_ca #1#2\xint:#3!#4!#5!#6!#7!#8!#9!% {% \expandafter\XINT_div_start_c\expandafter {\the\numexpr #1-\xint_c_vii}#2#3!#4!#5!#6!#7!#8!#9!\xint:% }% \def\XINT_div_start_cb #1% {\csname XINT_div_start_c_\romannumeral\numexpr#1\endcsname}% \def\XINT_div_start_c_i #1\xint:#2!% {\XINT_div_start_c_ #1#2!\xint:}% \def\XINT_div_start_c_ii #1\xint:#2!#3!% {\XINT_div_start_c_ #1#2!#3!\xint:}% \def\XINT_div_start_c_iii #1\xint:#2!#3!#4!% {\XINT_div_start_c_ #1#2!#3!#4!\xint:}% \def\XINT_div_start_c_iv #1\xint:#2!#3!#4!#5!% {\XINT_div_start_c_ #1#2!#3!#4!#5!\xint:}% \def\XINT_div_start_c_v #1\xint:#2!#3!#4!#5!#6!% {\XINT_div_start_c_ #1#2!#3!#4!#5!#6!\xint:}% \def\XINT_div_start_c_vi #1\xint:#2!#3!#4!#5!#6!#7!% {\XINT_div_start_c_ #1#2!#3!#4!#5!#6!#7!\xint:}% \def\XINT_div_start_c_ 1#1!#2\xint:#3\xint:#4#5#6% {% \XINT_div_I_a {#1}{#4}{1#1!#2}{#6}{00000000}#5{#3}{#6}% }% \def\XINT_div_I_a #1#2% {% \expandafter\XINT_div_I_b\the\numexpr #1/#2\xint:{#1}{#2}% }% \def\XINT_div_I_b #1% {% \xint_gob_til_zero #1\XINT_div_I_czero 0\XINT_div_I_c #1% }% \def\XINT_div_I_czero 0\XINT_div_I_c 0\xint:#1#2#3#4#5{1#5\XINT_div_I_g {#3}}% \def\XINT_div_I_c #1\xint:#2#3% {% \expandafter\XINT_div_I_da\the\numexpr #2-#1*#3\xint:#1\xint:{#2}{#3}% }% \def\XINT_div_I_da #1\xint:% {% \ifnum #1>\xint_c_ix \expandafter\XINT_div_I_dP \else \ifnum #1<\xint_c_ \expandafter\expandafter\expandafter\XINT_div_I_dN \else \expandafter\expandafter\expandafter\XINT_div_I_db \fi \fi }% \def\XINT_div_I_dN #1\xint:% {% \expandafter\XINT_div_I_b\the\numexpr #1-\xint_c_i\xint:% }% \def\XINT_div_I_db #1\xint:#2#3#4#5% {% \expandafter\XINT_div_I_dc\expandafter #1% \romannumeral0\expandafter\XINT_div_sub\expandafter {\romannumeral0\XINT_rev_nounsep {}#4\R!\R!\R!\R!\R!\R!\R!\R!\W}% {\the\numexpr\XINT_div_verysmallmul #1!#51;!}% \Z {#4}{#5}% }% \def\XINT_div_I_dc #1#2% {% \if-#2\expandafter\XINT_div_I_dd\else\expandafter\XINT_div_I_de\fi #1#2% }% \def\XINT_div_I_dd #1-\Z {% \if #11\expandafter\XINT_div_I_dz\fi \expandafter\XINT_div_I_dP\the\numexpr #1-\xint_c_i\xint: XX% }% \def\XINT_div_I_dz #1XX#2#3#4% {% 1#4\XINT_div_I_g {#2}% }% \def\XINT_div_I_de #1#2\Z #3#4#5{1#5+#1\XINT_div_I_g {#2}}% \def\XINT_div_I_dP #1\xint:#2#3#4#5#6% {% 1#6+#1\expandafter\XINT_div_I_g\expandafter {\romannumeral0\expandafter\XINT_div_sub\expandafter {\romannumeral0\XINT_rev_nounsep {}#4\R!\R!\R!\R!\R!\R!\R!\R!\W}% {\the\numexpr\XINT_div_verysmallmul #1!#51;!}% }% }% \def\XINT_div_I_g #1#2#3#4#5#6#7% {% \expandafter !\the\numexpr \ifnum#2=#3 \expandafter\XINT_div_exittofinish \else \expandafter\XINT_div_I_h \fi {#4}#1\xint:#6\xint:{{#4}{#5}{#3}{#2}}{#7}% }% \def\XINT_div_exittofinish #1#2\xint:#3\xint:#4#5% {% 1\expandafter\expandafter\expandafter!\expandafter\XINT_div_unsepQ_delim \romannumeral0\XINT_div_unsepR #2#3% \xint_bye!2!3!4!5!6!7!8!9!\xint_bye\xint_c_i\relax\R\xint: }% \def\XINT_div_I_h #1\xint:#2!#3\xint:#4#5% {% \XINT_div_II_b #1#2!\xint:{#5}{#4}{#3}{#5}% }% \def\XINT_div_II_b #11#2!#3!% {% \xint_gob_til_eightzeroes #2\XINT_div_II_skipc 00000000% \XINT_div_II_c #1{1#2}{#3}% }% \def\XINT_div_II_skipc 00000000\XINT_div_II_c #1#2#3#4#5\xint:#6#7% {% \XINT_div_II_k #7{#4!#5}{#6}{00000000}% }% \def\XINT_div_II_c #1#2#3#4% {% \expandafter\XINT_div_II_d\the\numexpr\XINT_div_xmini #1\xint:#2!#3!#4!{#1}{#2}#3!#4!% }% \def\XINT_div_xmini #1% {% \xint_gob_til_one #1\XINT_div_xmini_a 1\XINT_div_mini #1% }% \def\XINT_div_xmini_a 1\XINT_div_mini 1#1% {% \xint_gob_til_zero #1\XINT_div_xmini_b 0\XINT_div_mini 1#1% }% \def\XINT_div_xmini_b 0\XINT_div_mini 10#1#2#3#4#5#6#7% {% \xint_gob_til_zero #7\XINT_div_xmini_c 0\XINT_div_mini 10#1#2#3#4#5#6#7% }% \def\XINT_div_xmini_c 0\XINT_div_mini 100000000\xint:50000000!#1!#2!{#1!}% \def\XINT_div_II_d 1#1#2#3#4#5!#6#7#8\xint:#9% {% \expandafter\XINT_div_II_e \romannumeral0\expandafter\XINT_div_sub\expandafter {\romannumeral0\XINT_rev_nounsep {}#8\R!\R!\R!\R!\R!\R!\R!\R!\W}% {\the\numexpr\XINT_div_smallmul_a 100000000\xint:#1#2#3#4\xint:#5!#91;!}% \xint:{#6}{#7}{#9}{#1#2#3#4#5}% }% \def\XINT_div_II_e 1#1!% {% \xint_gob_til_eightzeroes #1\XINT_div_II_skipf 00000000% \XINT_div_II_f 1#1!% }% \def\XINT_div_II_skipf 00000000\XINT_div_II_f 100000000!#1\xint:#2#3#4#5#6% {% \XINT_div_II_k #6{#1}{#4}{#5}% }% \def\XINT_div_II_f #1!#2!#3\xint:% {% \XINT_div_II_fa {#1!#2!}{#1!#2!#3}% }% \def\XINT_div_II_fa #1#2#3#4% {% \expandafter\XINT_div_II_g \the\numexpr\XINT_div_xmini #3\xint:#4!#1{#2}% }% \def\XINT_div_II_g 1#1#2#3#4#5!#6#7#8% {% \expandafter \XINT_div_II_h \the\numexpr 1#1#2#3#4#5+#8\expandafter\expandafter\expandafter \xint:\expandafter\expandafter\expandafter {\expandafter\xint_gob_til_exclam \romannumeral0\expandafter\XINT_div_sub\expandafter {\romannumeral0\XINT_rev_nounsep {}#6\R!\R!\R!\R!\R!\R!\R!\R!\W}% {\the\numexpr\XINT_div_smallmul_a 100000000\xint:#1#2#3#4\xint:#5!#71;!}}% {#7}% }% \def\XINT_div_II_h 1#1\xint:#2#3#4% {% \XINT_div_II_k #4{#2}{#3}{#1}% }% \def\XINT_div_II_k #1#2#3#4#5% {% \expandafter\XINT_div_II_l \the\numexpr #4-\xint_c_i\xint:{#3}#1{#2}#5\xint:% }% \def\XINT_div_II_l #1\xint:#2#3#4#51#6!% {% \XINT_div_II_m {{#1}{#2}{{#3}{#4}}{#5}}{#5}{#6}1#6!% }% \def\XINT_div_II_m #1#2#3#4\xint:#5#6% {% \XINT_div_I_a {#3}{#2}{#4}{#5}{#6}#1% }% \def\XINT_div_minimulwc_a 1#1\xint:#2\xint:#3!#4#5#6#7#8\xint:% {% \expandafter\XINT_div_minimulwc_b \the\numexpr \xint_c_x^ix+#1+#3*#8\xint:#3*#4#5#6#7+#2*#8\xint:#2*#4#5#6#7\xint:% }% \def\XINT_div_minimulwc_b 1#1#2#3#4#5#6\xint:#7\xint:% {% \expandafter\XINT_div_minimulwc_c \the\numexpr \xint_c_x^ix+#1#2#3#4#5+#7\xint:#6\xint:% }% \def\XINT_div_minimulwc_c 1#1#2#3#4#5#6\xint:#7\xint:#8\xint:% {% 1#6#7\expandafter!% \the\numexpr\expandafter\XINT_div_smallmul_a \the\numexpr \xint_c_x^viii+#1#2#3#4#5+#8\xint:% }% \def\XINT_div_smallmul_a #1\xint:#2\xint:#3!1#4!% {% \xint_gob_til_sc #4\XINT_div_smallmul_e;% \XINT_div_minimulwc_a #1\xint:#2\xint:#3!#4\xint:#2\xint:#3!% }% \def\XINT_div_smallmul_e;\XINT_div_minimulwc_a 1#1\xint:#2;#3!{1\relax #1!}% \def\XINT_div_verysmallmul #1% {\xint_gob_til_one #1\XINT_div_verysmallisone 1\XINT_div_verysmallmul_a 0\xint:#1}% \def\XINT_div_verysmallisone 1\XINT_div_verysmallmul_a 0\xint:1!1#11;!% {1\relax #1100000000!}% \def\XINT_div_verysmallmul_a #1\xint:#2!1#3!% {% \xint_gob_til_sc #3\XINT_div_verysmallmul_e;% \expandafter\XINT_div_verysmallmul_b \the\numexpr \xint_c_x^ix+#2*#3+#1\xint:#2!% }% \def\XINT_div_verysmallmul_b 1#1#2\xint:% {1#2\expandafter!\the\numexpr\XINT_div_verysmallmul_a #1\xint:}% \def\XINT_div_verysmallmul_e;#1;+#2#3!{1\relax 0000000#2!}% \def\XINT_div_sub #1#2% {% \expandafter\XINT_div_sub_clean \the\numexpr\expandafter\XINT_div_sub_a\expandafter 1#2;!;!;!;!;!\W #1;!;!;!;!;!\W }% \def\XINT_div_sub_clean #1-#2#3\W {% \if1#2\expandafter\XINT_rev_nounsep\else\expandafter\XINT_div_sub_neg\fi {}#1\R!\R!\R!\R!\R!\R!\R!\R!\W }% \def\XINT_div_sub_neg #1\W { -}% \def\XINT_div_sub_a #1!#2!#3!#4!#5\W #6!#7!#8!#9!% {% \XINT_div_sub_b #1!#6!#2!#7!#3!#8!#4!#9!#5\W }% \def\XINT_div_sub_b #1#2#3!#4!% {% \xint_gob_til_sc #4\XINT_div_sub_bi ;% \expandafter\XINT_div_sub_c\the\numexpr#1-#3+1#4-\xint_c_i\xint:% }% \def\XINT_div_sub_c 1#1#2\xint:% {% 1#2\expandafter!\the\numexpr\XINT_div_sub_d #1% }% \def\XINT_div_sub_d #1#2#3!#4!% {% \xint_gob_til_sc #4\XINT_div_sub_di ;% \expandafter\XINT_div_sub_e\the\numexpr#1-#3+1#4-\xint_c_i\xint:% }% \def\XINT_div_sub_e 1#1#2\xint:% {% 1#2\expandafter!\the\numexpr\XINT_div_sub_f #1% }% \def\XINT_div_sub_f #1#2#3!#4!% {% \xint_gob_til_sc #4\XINT_div_sub_fi ;% \expandafter\XINT_div_sub_g\the\numexpr#1-#3+1#4-\xint_c_i\xint:% }% \def\XINT_div_sub_g 1#1#2\xint:% {% 1#2\expandafter!\the\numexpr\XINT_div_sub_h #1% }% \def\XINT_div_sub_h #1#2#3!#4!% {% \xint_gob_til_sc #4\XINT_div_sub_hi ;% \expandafter\XINT_div_sub_i\the\numexpr#1-#3+1#4-\xint_c_i\xint:% }% \def\XINT_div_sub_i 1#1#2\xint:% {% 1#2\expandafter!\the\numexpr\XINT_div_sub_a #1% }% \def\XINT_div_sub_bi;% \expandafter\XINT_div_sub_c\the\numexpr#1-#2+#3\xint:#4!#5!#6!#7!#8!#9!;!\W {% \XINT_div_sub_l #1#2!#5!#7!#9!% }% \def\XINT_div_sub_di;% \expandafter\XINT_div_sub_e\the\numexpr#1-#2+#3\xint:#4!#5!#6!#7!#8\W {% \XINT_div_sub_l #1#2!#5!#7!% }% \def\XINT_div_sub_fi;% \expandafter\XINT_div_sub_g\the\numexpr#1-#2+#3\xint:#4!#5!#6\W {% \XINT_div_sub_l #1#2!#5!% }% \def\XINT_div_sub_hi;% \expandafter\XINT_div_sub_i\the\numexpr#1-#2+#3\xint:#4\W {% \XINT_div_sub_l #1#2!% }% \def\XINT_div_sub_l #1% {% \xint_UDzerofork #1{-2\relax}% 0\XINT_div_sub_r \krof }% \def\XINT_div_sub_r #1!% {% -\ifnum 0#1=\xint_c_ 1\else2\fi\relax }% \def\XINT_sdiv_out #1;!#2!% {\expandafter {\romannumeral0\XINT_unsep_cuzsmall #1\xint_bye!2!3!4!5!6!7!8!9!\xint_bye\xint_c_i\relax}% {#2}}% \def\XINT_smalldivx_a #1\xint:1#2!1#3!% {% \expandafter\XINT_smalldivx_b \the\numexpr (#3+#1)/#2-\xint_c_i!#1\xint:#2!#3!% }% \def\XINT_smalldivx_b #1#2!% {% \if0#1\else \xint_c_x^viii+#1#2\xint_afterfi{\expandafter!\the\numexpr}\fi \XINT_smalldiv_c #1#2!% }% \def\XINT_smalldiv_c #1!#2\xint:#3!#4!% {% \expandafter\XINT_smalldiv_d\the\numexpr #4-#1*#3!#2\xint:#3!% }% \def\XINT_smalldiv_d #1!#2!1#3#4!% {% \xint_gob_til_sc #3\XINT_smalldiv_end ;% \XINT_smalldiv_e #1!#2!1#3#4!% }% \def\XINT_smalldiv_end;\XINT_smalldiv_e #1!#2!1;!{1!;!#1!}% \def\XINT_smalldiv_e #1!#2\xint:#3!% {% \expandafter\XINT_smalldiv_f\the\numexpr \xint_c_xi_e_viii_mone+#1*\xint_c_x^viii/#3!#2\xint:#3!#1!% }% \def\XINT_smalldiv_f 1#1#2#3#4#5#6!#7\xint:#8!% {% \xint_gob_til_zero #1\XINT_smalldiv_fz 0% \expandafter\XINT_smalldiv_g \the\numexpr\XINT_minimul_a #2#3#4#5\xint:#6!#8!#2#3#4#5#6!#7\xint:#8!% }% \def\XINT_smalldiv_fz 0% \expandafter\XINT_smalldiv_g\the\numexpr\XINT_minimul_a 9999\xint:9999!#1!99999999!#2!0!1#3!% {% \XINT_smalldiv_i \xint:#3!\xint_c_!#2!% }% \def\XINT_smalldiv_g 1#1!1#2!#3!#4!#5!#6!% {% \expandafter\XINT_smalldiv_h\the\numexpr 1#6-#1\xint:#2!#5!#3!#4!% }% \def\XINT_smalldiv_h 1#1#2\xint:#3!#4!% {% \expandafter\XINT_smalldiv_i\the\numexpr #4-#3+#1-\xint_c_i\xint:#2!% }% \def\XINT_smalldiv_i #1\xint:#2!#3!#4\xint:#5!% {% \expandafter\XINT_smalldiv_j\the\numexpr (#1#2+#4)/#5-\xint_c_i!#3!#1#2!#4\xint:#5!% }% \def\XINT_smalldiv_j #1!#2!% {% \xint_c_x^viii+#1+#2\expandafter!\the\numexpr\XINT_smalldiv_k #1!% }% \def\XINT_smalldiv_k #1!#2!#3\xint:#4!% {% \expandafter\XINT_smalldiv_d\the\numexpr #2-#1*#4!#3\xint:#4!% }% \def\XINT_div_mini #1\xint:#2!1#3!% {% \expandafter\XINT_div_mini_a\the\numexpr \xint_c_xi_e_viii_mone+#3*\xint_c_x^viii/#1!#1\xint:#2!#3!% }% \def\XINT_div_mini_a 1#1#2#3#4#5#6!#7\xint:#8!% {% \xint_gob_til_zero #1\XINT_div_mini_w 0% \expandafter\XINT_div_mini_b \the\numexpr\XINT_minimul_a #2#3#4#5\xint:#6!#7!#2#3#4#5#6!#7\xint:#8!% }% \def\XINT_div_mini_w 0% \expandafter\XINT_div_mini_b\the\numexpr\XINT_minimul_a 9999\xint:9999!#1!99999999!#2\xint:#3!00000000!#4!% {% \xint_c_x^viii_mone+(#4+#3)/#2!% }% \def\XINT_div_mini_b 1#1!1#2!#3!#4!#5!#6!% {% \expandafter\XINT_div_mini_c \the\numexpr 1#6-#1\xint:#2!#5!#3!#4!% }% \def\XINT_div_mini_c 1#1#2\xint:#3!#4!% {% \expandafter\XINT_div_mini_d \the\numexpr #4-#3+#1-\xint_c_i\xint:#2!% }% \def\XINT_div_mini_d #1\xint:#2!#3!#4\xint:#5!% {% \xint_c_x^viii_mone+#3+(#1#2+#5)/#4!% }% \def\xintiiQuo {\romannumeral0\xintiiquo }% \def\xintiiRem {\romannumeral0\xintiirem }% \def\xintiiquo {\expandafter\xint_stop_atfirstoftwo\romannumeral0\xintiidivision }% \def\xintiirem {\expandafter\xint_stop_atsecondoftwo\romannumeral0\xintiidivision }% \def\xintiiDivRound {\romannumeral0\xintiidivround }% \def\xintiidivround #1{\expandafter\XINT_iidivround\romannumeral`&&@#1\xint:}% \def\XINT_iidivround #1#2\xint:#3% {\expandafter\XINT_iidivround_a\expandafter #1\romannumeral`&&@#3\xint:#2\xint:}% \def\XINT_iidivround_a #1#2% #1 de A, #2 de B. {% \if0#2\xint_dothis{\XINT_iidivround_divbyzero#1#2}\fi \if0#1\xint_dothis\XINT_iidivround_aiszero\fi \if-#2\xint_dothis{\XINT_iidivround_bneg #1}\fi \xint_orthat{\XINT_iidivround_bpos #1#2}% }% \def\XINT_iidivround_divbyzero #1#2#3\xint:#4\xint: {\XINT_signalcondition{DivisionByZero}{Division of #1#4 by #2#3}{}{0}}% \def\XINT_iidivround_aiszero #1\xint:#2\xint:{ 0}% \def\XINT_iidivround_bpos #1% {% \xint_UDsignfork #1{\xintiiopp\XINT_iidivround_pos {}}% -{\XINT_iidivround_pos #1}% \krof }% \def\XINT_iidivround_bneg #1% {% \xint_UDsignfork #1{\XINT_iidivround_pos {}}% -{\xintiiopp\XINT_iidivround_pos #1}% \krof }% \def\XINT_iidivround_pos #1#2\xint:#3\xint: {% \expandafter\expandafter\expandafter\XINT_dsrr \expandafter\xint_firstoftwo \romannumeral0\XINT_div_prepare {#2}{#1#30}% \xint_bye\xint_Bye3456789\xint_bye/\xint_c_x\relax }% \def\xintiiDivTrunc {\romannumeral0\xintiidivtrunc }% \def\xintiidivtrunc #1{\expandafter\XINT_iidivtrunc\romannumeral`&&@#1\xint:}% \def\XINT_iidivtrunc #1#2\xint:#3{\expandafter\XINT_iidivtrunc_a\expandafter #1% \romannumeral`&&@#3\xint:#2\xint:}% \def\XINT_iidivtrunc_a #1#2% #1 de A, #2 de B. {% \if0#2\xint_dothis{\XINT_iidivtrunc_divbyzero#1#2}\fi \if0#1\xint_dothis\XINT_iidivtrunc_aiszero\fi \if-#2\xint_dothis{\XINT_iidivtrunc_bneg #1}\fi \xint_orthat{\XINT_iidivtrunc_bpos #1#2}% }% \let\XINT_iidivtrunc_divbyzero\XINT_iidivround_divbyzero \let\XINT_iidivtrunc_aiszero \XINT_iidivround_aiszero \def\XINT_iidivtrunc_bpos #1% {% \xint_UDsignfork #1{\xintiiopp\XINT_iidivtrunc_pos {}}% -{\XINT_iidivtrunc_pos #1}% \krof }% \def\XINT_iidivtrunc_bneg #1% {% \xint_UDsignfork #1{\XINT_iidivtrunc_pos {}}% -{\xintiiopp\XINT_iidivtrunc_pos #1}% \krof }% \def\XINT_iidivtrunc_pos #1#2\xint:#3\xint: {\expandafter\xint_stop_atfirstoftwo \romannumeral0\XINT_div_prepare {#2}{#1#3}}% \def\xintiiModTrunc {\romannumeral0\xintiimodtrunc }% \def\xintiimodtrunc #1{\expandafter\XINT_iimodtrunc\romannumeral`&&@#1\xint:}% \def\XINT_iimodtrunc #1#2\xint:#3{\expandafter\XINT_iimodtrunc_a\expandafter #1% \romannumeral`&&@#3\xint:#2\xint:}% \def\XINT_iimodtrunc_a #1#2% #1 de A, #2 de B. {% \if0#2\xint_dothis{\XINT_iimodtrunc_divbyzero#1#2}\fi \if0#1\xint_dothis\XINT_iimodtrunc_aiszero\fi \if-#2\xint_dothis{\XINT_iimodtrunc_bneg #1}\fi \xint_orthat{\XINT_iimodtrunc_bpos #1#2}% }% \let\XINT_iimodtrunc_divbyzero\XINT_iidivround_divbyzero \let\XINT_iimodtrunc_aiszero \XINT_iidivround_aiszero \def\XINT_iimodtrunc_bpos #1% {% \xint_UDsignfork #1{\xintiiopp\XINT_iimodtrunc_pos {}}% -{\XINT_iimodtrunc_pos #1}% \krof }% \def\XINT_iimodtrunc_bneg #1% {% \xint_UDsignfork #1{\xintiiopp\XINT_iimodtrunc_pos {}}% -{\XINT_iimodtrunc_pos #1}% \krof }% \def\XINT_iimodtrunc_pos #1#2\xint:#3\xint: {\expandafter\xint_stop_atsecondoftwo\romannumeral0\XINT_div_prepare {#2}{#1#3}}% \def\xintiiDivMod {\romannumeral0\xintiidivmod }% \def\xintiidivmod #1{\expandafter\XINT_iidivmod\romannumeral`&&@#1\xint:}% \def\XINT_iidivmod #1#2\xint:#3{\expandafter\XINT_iidivmod_a\expandafter #1% \romannumeral`&&@#3\xint:#2\xint:}% \def\XINT_iidivmod_a #1#2% #1 de A, #2 de B. {% \if0#2\xint_dothis{\XINT_iidivmod_divbyzero#1#2}\fi \if0#1\xint_dothis\XINT_iidivmod_aiszero\fi \if-#2\xint_dothis{\XINT_iidivmod_bneg #1}\fi \xint_orthat{\XINT_iidivmod_bpos #1#2}% }% \def\XINT_iidivmod_divbyzero #1#2\xint:#3\xint: {% \XINT_signalcondition{DivisionByZero}{Division by #2 of #1#3}{}% {{0}{0}}% à revoir... }% \def\XINT_iidivmod_aiszero #1\xint:#2\xint:{{0}{0}}% \def\XINT_iidivmod_bneg #1% {% \expandafter\XINT_iidivmod_bneg_finish \romannumeral0\xint_UDsignfork #1{\XINT_iidivmod_bpos {}}% -{\XINT_iidivmod_bpos {-#1}}% \krof }% \def\XINT_iidivmod_bneg_finish#1#2% {% \expandafter\xint_exchangetwo_keepbraces\expandafter {\romannumeral0\xintiiopp#2}{#1}% }% \def\XINT_iidivmod_bpos #1#2\xint:#3\xint:{\xintiidivision{#1#3}{#2}}% \def\xintiiDivFloor {\romannumeral0\xintiidivfloor}% \def\xintiidivfloor {\expandafter\xint_stop_atfirstoftwo \romannumeral0\xintiidivmod}% \def\xintiiMod {\romannumeral0\xintiimod}% \def\xintiimod {\expandafter\xint_stop_atsecondoftwo \romannumeral0\xintiidivmod}% \def\xintiiSqr {\romannumeral0\xintiisqr }% \def\xintiisqr #1% {% \expandafter\XINT_sqr\romannumeral0\xintiiabs{#1}\xint: }% \def\XINT_sqr #1\xint: {% \expandafter\XINT_sqr_a \romannumeral0\expandafter\XINT_sepandrev_andcount \romannumeral0\XINT_zeroes_forviii #1\R\R\R\R\R\R\R\R{10}0000001\W #1\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax\xint_c_ii\xint_c_i \R\xint:\xint_c_xii \R\xint:\xint_c_x \R\xint:\xint_c_viii \R\xint:\xint_c_vi \R\xint:\xint_c_iv \R\xint:\xint_c_ii \R\xint:\xint_c_\W \xint: }% \def\XINT_sqr_a #1\xint: {% \ifnum #1=\xint_c_i \expandafter\XINT_sqr_small \else\expandafter\XINT_sqr_start\fi }% \def\XINT_sqr_small 1#1#2#3#4#5!\xint: {% \ifnum #1#2#3#4#5<46341 \expandafter\XINT_sqr_verysmall\fi \expandafter\XINT_sqr_small_out \the\numexpr\XINT_minimul_a #1#2#3#4\xint:#5!#1#2#3#4#5!% }% \def\XINT_sqr_verysmall#1{% \def\XINT_sqr_verysmall \expandafter\XINT_sqr_small_out\the\numexpr\XINT_minimul_a ##1!##2!% {\expandafter#1\the\numexpr ##2*##2\relax}% }\XINT_sqr_verysmall{ }% \def\XINT_sqr_small_out 1#1!1#2!% {% \XINT_cuz #2#1\R }% \def\XINT_sqr_start #1\xint: {% \expandafter\XINT_mul_out \the\numexpr\XINT_mul_loop 100000000!1;!\W #11;!\W #11;!% 1\R!1\R!1\R!1\R!1\R!1\R!1\R!1\R!\W }% \def\xintiiPow {\romannumeral0\xintiipow }% \def\xintiipow #1#2% {% \expandafter\xint_pow\the\numexpr #2\expandafter .\romannumeral`&&@#1\xint: }% \def\xint_pow #1.#2%#3\xint: {% \xint_UDzerominusfork #2-\XINT_pow_AisZero 0#2\XINT_pow_Aneg 0-{\XINT_pow_Apos #2}% \krof {#1}% }% \def\XINT_pow_AisZero #1#2\xint: {% \ifcase\XINT_cntSgn #1\xint: \xint_afterfi { 1}% \or \xint_afterfi { 0}% \else \xint_afterfi {\XINT_signalcondition{DivisionByZero}{Zero to power #1}{}{0}}% \fi }% \def\XINT_pow_Aneg #1% {% \ifodd #1 \expandafter\XINT_opp\romannumeral0% \fi \XINT_pow_Apos {}{#1}% }% \def\XINT_pow_Apos #1#2{\XINT_pow_Apos_a {#2}#1}% \def\XINT_pow_Apos_a #1#2#3% {% \xint_gob_til_xint: #3\XINT_pow_Apos_short\xint: \XINT_pow_AatleastTwo {#1}#2#3% }% \def\XINT_pow_Apos_short\xint:\XINT_pow_AatleastTwo #1#2\xint: {% \ifcase #2 \xintError:thiscannothappen \or \expandafter\XINT_pow_AisOne \else\expandafter\XINT_pow_AatleastTwo \fi {#1}#2\xint: }% \def\XINT_pow_AisOne #1\xint:{ 1}% \def\XINT_pow_AatleastTwo #1% {% \ifcase\XINT_cntSgn #1\xint: \expandafter\XINT_pow_BisZero \or \expandafter\XINT_pow_I_in \else \expandafter\XINT_pow_BisNegative \fi {#1}% }% \def\XINT_pow_BisNegative #1\xint:{\XINT_signalcondition{Underflow}{Inverse power can not be represented by an integer}{}{0}}% \def\XINT_pow_BisZero #1\xint:{ 1}% \def\XINT_pow_I_in #1#2\xint: {% \expandafter\XINT_pow_I_loop \the\numexpr #1\expandafter\xint:% \romannumeral0\expandafter\XINT_sepandrev \romannumeral0\XINT_zeroes_forviii #2\R\R\R\R\R\R\R\R{10}0000001\W #2\XINT_rsepbyviii_end_A 2345678% \XINT_rsepbyviii_end_B 2345678\relax XX% \R\xint:\R\xint:\R\xint:\R\xint:\R\xint:\R\xint:\R\xint:\R\xint:\W 1;!\W 1\R!1\R!1\R!1\R!1\R!1\R!1\R!1\R!\W }% \def\XINT_pow_I_loop #1\xint:% {% \ifnum #1 = \xint_c_i\expandafter\XINT_pow_I_exit\fi \ifodd #1 \expandafter\XINT_pow_II_in \else \expandafter\XINT_pow_I_squareit \fi #1\xint:% }% \def\XINT_pow_I_exit \ifodd #1\fi #2\xint:#3\W {\XINT_mul_out #3}% \def\XINT_pow_I_squareit #1\xint:#2\W% {% \expandafter\XINT_pow_I_loop \the\numexpr #1/\xint_c_ii\expandafter\xint:% \the\numexpr\XINT_pow_mulbutcheckifsmall #2\W #2\W }% \def\XINT_pow_mulbutcheckifsmall #1!1#2% {% \xint_gob_til_sc #2\XINT_pow_mul_small;% \XINT_mul_loop 100000000!1;!\W #1!1#2% }% \def\XINT_pow_mul_small;\XINT_mul_loop 100000000!1;!\W 1#1!1;!\W {% \XINT_smallmul 1#1!% }% \def\XINT_pow_II_in #1\xint:#2\W {% \expandafter\XINT_pow_II_loop \the\numexpr #1/\xint_c_ii-\xint_c_i\expandafter\xint:% \the\numexpr\XINT_pow_mulbutcheckifsmall #2\W #2\W #2\W }% \def\XINT_pow_II_loop #1\xint:% {% \ifnum #1 = \xint_c_i\expandafter\XINT_pow_II_exit\fi \ifodd #1 \expandafter\XINT_pow_II_odda \else \expandafter\XINT_pow_II_even \fi #1\xint:% }% \def\XINT_pow_II_exit\ifodd #1\fi #2\xint:#3\W #4\W {% \expandafter\XINT_mul_out \the\numexpr\XINT_pow_mulbutcheckifsmall #4\W #3% }% \def\XINT_pow_II_even #1\xint:#2\W {% \expandafter\XINT_pow_II_loop \the\numexpr #1/\xint_c_ii\expandafter\xint:% \the\numexpr\XINT_pow_mulbutcheckifsmall #2\W #2\W }% \def\XINT_pow_II_odda #1\xint:#2\W #3\W {% \expandafter\XINT_pow_II_oddb \the\numexpr #1/\xint_c_ii-\xint_c_i\expandafter\xint:% \the\numexpr\XINT_pow_mulbutcheckifsmall #3\W #2\W #2\W }% \def\XINT_pow_II_oddb #1\xint:#2\W #3\W {% \expandafter\XINT_pow_II_loop \the\numexpr #1\expandafter\xint:% \the\numexpr\XINT_pow_mulbutcheckifsmall #3\W #3\W #2\W }% \def\xintiiFac {\romannumeral0\xintiifac }% \def\xintiifac #1{\expandafter\XINT_fac_fork\the\numexpr#1.}% \def\XINT_fac_fork #1#2.% {% \xint_UDzerominusfork #1-\XINT_fac_zero 0#1\XINT_fac_neg 0-\XINT_fac_checksize \krof #1#2.% }% \def\XINT_fac_zero #1.{ 1}% \def\XINT_fac_neg #1.{\XINT_signalcondition{InvalidOperation}{Factorial of negative: (#1)!}{}{0}}% \def\XINT_fac_checksize #1.% {% \ifnum #1>\xint_c_x^iv \xint_dothis{\XINT_fac_toobig #1.}\fi \ifnum #1>465 \xint_dothis{\XINT_fac_bigloop_a #1.}\fi \ifnum #1>101 \xint_dothis{\XINT_fac_medloop_a #1.\XINT_mul_out}\fi \xint_orthat{\XINT_fac_smallloop_a #1.\XINT_mul_out}% 1\R!1\R!1\R!1\R!1\R!1\R!1\R!1\R!\W }% \def\XINT_fac_toobig #1.#2\W{\XINT_signalcondition{InvalidOperation}{Factorial of too big argument: #1 > 10000}{}{0}}% \def\XINT_fac_bigloop_a #1.% {% \expandafter\XINT_fac_bigloop_b \the\numexpr #1+\xint_c_i-\xint_c_ii*((#1-464)/\xint_c_ii).#1.% }% \def\XINT_fac_bigloop_b #1.#2.% {% \expandafter\XINT_fac_medloop_a \the\numexpr #1-\xint_c_i.{\XINT_fac_bigloop_loop #1.#2.}% }% \def\XINT_fac_bigloop_loop #1.#2.% {% \ifnum #1>#2 \expandafter\XINT_fac_bigloop_exit\fi \expandafter\XINT_fac_bigloop_loop \the\numexpr #1+\xint_c_ii\expandafter.% \the\numexpr #2\expandafter.\the\numexpr\XINT_fac_bigloop_mul #1!% }% \def\XINT_fac_bigloop_exit #1!{\XINT_mul_out}% \def\XINT_fac_bigloop_mul #1!% {% \expandafter\XINT_smallmul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)!% }% \def\XINT_fac_medloop_a #1.% {% \expandafter\XINT_fac_medloop_b \the\numexpr #1+\xint_c_i-\xint_c_iii*((#1-100)/\xint_c_iii).#1.% }% \def\XINT_fac_medloop_b #1.#2.% {% \expandafter\XINT_fac_smallloop_a \the\numexpr #1-\xint_c_i.{\XINT_fac_medloop_loop #1.#2.}% }% \def\XINT_fac_medloop_loop #1.#2.% {% \ifnum #1>#2 \expandafter\XINT_fac_loop_exit\fi \expandafter\XINT_fac_medloop_loop \the\numexpr #1+\xint_c_iii\expandafter.% \the\numexpr #2\expandafter.\the\numexpr\XINT_fac_medloop_mul #1!% }% \def\XINT_fac_medloop_mul #1!% {% \expandafter\XINT_smallmul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)!% }% \def\XINT_fac_smallloop_a #1.% {% \csname XINT_fac_smallloop_\the\numexpr #1-\xint_c_iv*(#1/\xint_c_iv)\relax \endcsname #1.% }% \expandafter\def\csname XINT_fac_smallloop_1\endcsname #1.% {% \XINT_fac_smallloop_loop 2.#1.100000001!1;!% }% \expandafter\def\csname XINT_fac_smallloop_-2\endcsname #1.% {% \XINT_fac_smallloop_loop 3.#1.100000002!1;!% }% \expandafter\def\csname XINT_fac_smallloop_-1\endcsname #1.% {% \XINT_fac_smallloop_loop 4.#1.100000006!1;!% }% \expandafter\def\csname XINT_fac_smallloop_0\endcsname #1.% {% \XINT_fac_smallloop_loop 5.#1.1000000024!1;!% }% \def\XINT_fac_smallloop_loop #1.#2.% {% \ifnum #1>#2 \expandafter\XINT_fac_loop_exit\fi \expandafter\XINT_fac_smallloop_loop \the\numexpr #1+\xint_c_iv\expandafter.% \the\numexpr #2\expandafter.\the\numexpr\XINT_fac_smallloop_mul #1!% }% \def\XINT_fac_smallloop_mul #1!% {% \expandafter\XINT_smallmul \the\numexpr \xint_c_x^viii+#1*(#1+\xint_c_i)*(#1+\xint_c_ii)*(#1+\xint_c_iii)!% }% \def\XINT_fac_loop_exit #1!#2;!#3{#3#2;!}% \def\XINT_useiimessage #1% used in LaTeX only {% \XINT_ifFlagRaised {#1}% {\@backslashchar#1 (load xintfrac or use \@backslashchar xintii\xint_gobble_iv#1!)\MessageBreak}% {}% }% \XINT_restorecatcodes_endinput% \endinput %% %% End of file `xintcore.sty'.