diff options
author | Karl Berry <karl@freefriends.org> | 2021-05-05 19:43:26 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-05-05 19:43:26 +0000 |
commit | 5a1103024f621793e1581f1b92622a79b2f2571c (patch) | |
tree | 73fd76c959f2e4deb2d3302e45e1cf128f7cd262 /Master/texmf-dist/tex | |
parent | 9a5889e58edc1fefd23ea27d4db6a872c7d84959 (diff) |
xint (5may21)
git-svn-id: svn://tug.org/texlive/trunk@59089 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xint.sty | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintbinhex.sty | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintcfrac.sty | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintcore.sty | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintexpr.sty | 105 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintfrac.sty | 407 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintgcd.sty | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintkernel.sty | 28 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintlog.sty | 1717 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintseries.sty | 20 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xinttools.sty | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xinttrig.sty | 946 |
12 files changed, 2527 insertions, 732 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty index 731eec9eba8..a0c06cb0417 100644 --- a/Master/texmf-dist/tex/generic/xint/xint.sty +++ b/Master/texmf-dist/tex/generic/xint/xint.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle 1.4d 2021/03/29 +%% The xint bundle 1.4e 2021/05/05 %% Copyright (C) 2013-2021 by Jean-Francois Burnol %% xint: Expandable operations on big integers %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty (loaded by xintcore.sty) \XINT_providespackage \ProvidesPackage{xint}% - [2021/03/29 v1.4d Expandable operations on big integers (JFB)]% + [2021/05/05 v1.4e Expandable operations on big integers (JFB)]% \long\def\xint_firstofthree #1#2#3{#1}% \long\def\xint_secondofthree #1#2#3{#2}% \long\def\xint_thirdofthree #1#2#3{#3}% @@ -1646,7 +1646,7 @@ {No uniformdeviate at engine level, returning 0.} 0% }% \fi -\XINT_restorecatcodes_endinput% +\XINTrestorecatcodesendinput% \endinput %% %% End of file `xint.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty index ef4b736636f..7482824c7ec 100644 --- a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty +++ b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle 1.4d 2021/03/29 +%% The xint bundle 1.4e 2021/05/05 %% Copyright (C) 2013-2021 by Jean-Francois Burnol %% xintbinhex: Expandable binary and hexadecimal conversions %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintbinhex}% - [2021/03/29 v1.4d Expandable binary and hexadecimal conversions (JFB)]% + [2021/05/05 v1.4e Expandable binary and hexadecimal conversions (JFB)]% \newcount\xint_c_ii^xv \xint_c_ii^xv 32768 \newcount\xint_c_ii^xvi \xint_c_ii^xvi 65536 \def\XINT_tmpa #1{\ifx\relax#1\else @@ -496,7 +496,7 @@ }% \def\XINT_chtb_N {\expandafter-\romannumeral0\XINT_chtb_main }% \def\XINT_chtb_main {\csname space\csname\XINT_htb_loop}% -\XINT_restorecatcodes_endinput% +\XINTrestorecatcodesendinput% \endinput %% %% End of file `xintbinhex.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty index 19f31a35d06..dc8b8838729 100644 --- a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty +++ b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle 1.4d 2021/03/29 +%% The xint bundle 1.4e 2021/05/05 %% Copyright (C) 2013-2021 by Jean-Francois Burnol %% xintcfrac: Expandable continued fractions with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintcfrac}% - [2021/03/29 v1.4d Expandable continued fractions with xint package (JFB)]% + [2021/05/05 v1.4e Expandable continued fractions with xint package (JFB)]% \def\xintCFrac {\romannumeral0\xintcfrac }% \def\xintcfrac #1% {% @@ -1053,7 +1053,7 @@ \expandafter\XINT_gctgc_end_b }% \def\XINT_gctgc_end_b #1#2#3{ #3{#1}}% -\XINT_restorecatcodes_endinput% +\XINTrestorecatcodesendinput% \endinput %% %% End of file `xintcfrac.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintcore.sty b/Master/texmf-dist/tex/generic/xint/xintcore.sty index c6690c5fd00..b1e52e326fd 100644 --- a/Master/texmf-dist/tex/generic/xint/xintcore.sty +++ b/Master/texmf-dist/tex/generic/xint/xintcore.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle 1.4d 2021/03/29 +%% The xint bundle 1.4e 2021/05/05 %% Copyright (C) 2013-2021 by Jean-Francois Burnol %% xintcore: Expandable arithmetic on big integers %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintcore}% - [2021/03/29 v1.4d Expandable arithmetic on big integers (JFB)]% + [2021/05/05 v1.4e Expandable arithmetic on big integers (JFB)]% \csname XINT_Clamped_istrapped\endcsname \csname XINT_ConversionSyntax_istrapped\endcsname \csname XINT_DivisionByZero_istrapped\endcsname @@ -2194,7 +2194,7 @@ (load xintfrac or use \@backslashchar xintii\xint_gobble_iv#1!)\MessageBreak}% {}% }% -\XINT_restorecatcodes_endinput% +\XINTrestorecatcodesendinput% \endinput %% %% End of file `xintcore.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty index c6889155f66..baf227ba966 100644 --- a/Master/texmf-dist/tex/generic/xint/xintexpr.sty +++ b/Master/texmf-dist/tex/generic/xint/xintexpr.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle 1.4d 2021/03/29 +%% The xint bundle 1.4e 2021/05/05 %% Copyright (C) 2013-2021 by Jean-Francois Burnol %% xintexpr: Expandable expression parser %% --------------------------------------------------------------- @@ -82,17 +82,27 @@ \XINTsetupcatcodes% \XINT_providespackage \ProvidesPackage{xintexpr}% - [2021/03/29 v1.4d Expandable expression parser (JFB)]% + [2021/05/05 v1.4e Expandable expression parser (JFB)]% \catcode`! 11 \let\XINT_Cmp \xintiiCmp \def\XINTfstop{\noexpand\XINTfstop}% -\def\xintDigits {\futurelet\XINT_token\xintDigitss}% -\def\xintDigitss #1={\afterassignment\xintDigitsss\mathchardef\XINTdigits=}% -\def\xintDigitsss#1{\ifx*\XINT_token\expandafter\xintreloadxinttrig\fi}% +\def\xintreloadscilibs{\xintreloadxintlog\xintreloadxinttrig}% +\def\xintDigits {\futurelet\XINT_token\xintDigits_i}% +\def\xintDigits_i#1={\afterassignment\xintDigits_j\mathchardef\XINT_digits=}% +\def\xintDigits_j#1% +{% + \let\XINTdigits=\XINT_digits + \ifx*\XINT_token\expandafter\xintreloadscilibs\fi +}% \let\xintfracSetDigits\xintSetDigits -\def\xintSetDigits#1#{\if\relax\detokenize{#1}\relax - \else\afterassignment\xintreloadxinttrig\fi - \xintfracSetDigits}% +\def\xintSetDigits#1#{\if\relax\detokenize{#1}\relax\expandafter\xintfracSetDigits + \else\expandafter\xintSetDigits_a\fi}% +\def\xintSetDigits_a#1% +{% + \mathchardef\XINT_digits=\numexpr#1\relax + \let\XINTdigits\XINT_digits + \xintreloadscilibs +}% \def\XINT:expr:toblistwith#1#2% {% {\expandafter\XINT:expr:toblist_checkempty @@ -252,9 +262,9 @@ {% \expandafter\XINT_expr_wrap \expanded - \XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTbracediRoundzero}% + \XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTiRoundzero_braced}% }% -\def\XINTbracediRoundzero#1{{\xintiRound{0}{#1}}}% +\def\XINTiRoundzero_braced#1{{\xintiRound{0}{#1}}}% \def\XINT_iexpr_withopt [#1]% {% \expandafter\XINT_iexpr_round @@ -268,11 +278,11 @@ }% \def\XINT_iexpr_round_a #1.% {% - \expandafter\XINT_expr_wrap + \expandafter\XINT_iexpr_wrap \expanded - \XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTbracedRound{#1}}% + \XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTiRound_braced{#1}}% }% -\def\XINTbracedRound#1#2{{\xintRound{#1}{#2}}}% +\def\XINTiRound_braced#1#2{{\xintiRound{#1}{#2}[\the\numexpr-#1]}}% \def\xintfloatexpro #1% {% \ifx [#1\expandafter\XINT_flexpr_withopt\else\expandafter\XINT_flexpr_noopt @@ -298,23 +308,26 @@ \expandafter\XINT_flexpr_wrap \the\numexpr#1\expandafter.% \expanded - \XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTbracedinFloat[#1]}% + \XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTinFloat_braced[#1]}% }% -\def\XINTbracedinFloat[#1]#2{{\XINTinFloat[#1]{#2}}}% +\def\XINTinFloat_braced[#1]#2{{\XINTinFloat[#1]{#2}}}% \def\XINT_expr_wrap {\XINTfstop\XINTexprprint.}% +\def\XINT_iexpr_wrap {\XINTfstop\XINTiexprprint.}% \def\XINT_iiexpr_wrap {\XINTfstop\XINTiiexprprint.}% \def\XINT_flexpr_wrap {\XINTfstop\XINTflexprprint}% \protected\def\XINTexprprint.% {\XINT:NEhook:x:toblist\XINT:expr:toblistwith\xintexprPrintOne}% \let\xintexprPrintOne\xintFracToSci +\protected\def\XINTiexprprint.% + {\XINT:NEhook:x:toblist\XINT:expr:toblistwith\xintiexprPrintOne}% +\let\xintiexprPrintOne\xintDecToString \def\xintexprEmptyItem{[]}% \protected\def\XINTiiexprprint.% {\XINT:NEhook:x:toblist\XINT:expr:toblistwith\xintiiexprPrintOne}% \let\xintiiexprPrintOne\xint_firstofone \protected\def\XINTflexprprint #1.% - {\XINT:NEhook:x:toblist\XINT:expr:toblistwith{\xintfloatexprPrintOne{#1}}}% -\def\xintfloatexprPrintOne#1% - {\romannumeral0\XINT_pfloat_opt [\xint:#1]}% bad direct jump + {\XINT:NEhook:x:toblist\XINT:expr:toblistwith{\xintfloatexprPrintOne[#1]}}% +\let\xintfloatexprPrintOne\xintPFloat_wopt \protected\def\XINTboolexprprint.% {\XINT:NEhook:x:toblist\XINT:expr:toblistwith\xintboolexprPrintOne}% \def\xintboolexprPrintOne#1{\xintiiifNotZero{#1}{True}{False}}% @@ -339,9 +352,20 @@ \def\xintbareeval {\XINT_expr_start }% \def\xintbarefloateval{\XINT_flexpr_start}% \def\xintbareiieval {\XINT_iiexpr_start}% +\def\XINT_expr_unlock {\expandafter\xint_firstofone\romannumeral`&&@}% \def\xintthebareeval {\romannumeral0\expandafter\xint_stop_atfirstofone\romannumeral0\xintbareeval}% -\def\xintthebarefloateval {\romannumeral0\expandafter\xint_stop_atfirstofone\romannumeral0\xintbarefloateval}% \def\xintthebareiieval {\romannumeral0\expandafter\xint_stop_atfirstofone\romannumeral0\xintbareiieval}% +\def\xintthebarefloateval {\romannumeral0\expandafter\xint_stop_atfirstofone\romannumeral0\xintbarefloateval}% +\def\xintthebareroundedfloateval +{% + \romannumeral0\expandafter\xintthebareroundedfloateval_a\romannumeral0\xintbarefloateval +}% +\def\xintthebareroundedfloateval_a +{% + \expandafter\xint_stop_atfirstofone + \expanded\XINT:NEhook:x:mapwithin\XINT:expr:mapwithin{\XINTinFloatSdigits_braced}% +}% +\def\XINTinFloatSdigits_braced#1{{\XINTinFloatS[\XINTdigits]{#1}}}% \def\xinteval #1% {\expanded\expandafter\XINTexprprint\expandafter.\romannumeral0\xintbareeval#1\relax}% \def\xintieval #1% @@ -624,7 +648,7 @@ {% \expandafter\XINT_expr_scanexp_main_b\romannumeral`&&@#1% }% -\def\XINT_expr_scanexpr_hit_cs\ifnum#1\fi#2\XINT_expr_scanexp_again +\def\XINT_expr_scanexp_hit_cs\ifnum#1\fi#2\XINT_expr_scanexp_again {% ]\iffalse{{{\fi}}\expandafter}\romannumeral`&&@\XINT_expr_getop#2% }% @@ -1134,7 +1158,7 @@ \XINT_expr_defbin_b {flexpr} / {xiv}{xiv}{XINTinFloatDiv}% \XINT_expr_defbin_b {iiexpr} / {xiv}{xiv}{xintiiDivRound}% \XINT_expr_defbin_b {expr} ^ {xviii}{xviii}{xintPow}% -\XINT_expr_defbin_b {flexpr} ^ {xviii}{xviii}{XINTinFloatPowerH}% +\XINT_expr_defbin_b {flexpr} ^ {xviii}{xviii}{XINTinFloatSciPow}% \XINT_expr_defbin_b {iiexpr} ^ {xviii}{xviii}{xintiiPow}% \catcode`& 12 \xintFor #1 in {and,or,xor,mod} \do @@ -1817,7 +1841,7 @@ {% \expandafter\XINT_expr_put_op_first \expanded{{\romannumeral`&&@\XINT:NEhook:f:one:from:one - {\romannumeral`&&@\XINTinFloatFac#1}}\expandafter}\romannumeral`&&@\XINT_expr_getop + {\romannumeral`&&@\XINTinFloatFacdigits#1}}\expandafter}\romannumeral`&&@\XINT_expr_getop }% \def\XINT_iiexpr_op_! #1% {% @@ -1860,7 +1884,8 @@ \def\XINT_expr_defvar #1#2% {% \def\XINT_defvar_tmpa{#2}% - \expandafter\XINT_expr_defvar_a\expandafter#1\romannumeral\XINT_expr_fetch_to_semicolon + \expandafter\XINT_expr_defvar_a\expanded{\unexpanded{{#1}}\expandafter}% + \romannumeral\XINT_expr_fetch_to_semicolon }% \def\XINT_expr_defvar_a #1#2% {% @@ -1875,11 +1900,11 @@ {Aborting: not allowed to declare variable with empty name.}% \or \XINT_global - \expandafter\edef\csname XINT_expr_varvalue_\XINT_defvar_tmpa\endcsname - {\romannumeral0#1#2\relax}% + \expandafter + \edef\csname XINT_expr_varvalue_\XINT_defvar_tmpa\endcsname{#1#2\relax}% \XINT_expr_defvar_one_b\XINT_defvar_tmpa \else - \edef\XINT_defvar_tmpb{\romannumeral0#1#2\relax}% + \edef\XINT_defvar_tmpb{#1#2\relax}% \edef\XINT_defvar_tmpd{\expandafter\xintLength\expandafter{\XINT_defvar_tmpb}}% \let\XINT_defvar_tmpe\empty \if1\XINT_defvar_tmpd @@ -1913,12 +1938,12 @@ }% \catcode`~ 3 \catcode`: 11 -\def\xintdefvar {\xintexprSafeCatcodes\xintdefvar_a}% -\def\xintdefiivar {\xintexprSafeCatcodes\xintdefiivar_a}% -\def\xintdeffloatvar {\xintexprSafeCatcodes\xintdeffloatvar_a}% -\def\xintdefvar_a #1={\XINT_expr_defvar\xintthebareeval {#1}}% -\def\xintdefiivar_a #1={\XINT_expr_defvar\xintthebareiieval {#1}}% -\def\xintdeffloatvar_a #1={\XINT_expr_defvar\xintthebarefloateval {#1}}% +\def\xintdefvar {\xintexprSafeCatcodes\xintdefvar_a}% +\def\xintdefvar_a#1={\XINT_expr_defvar\xintthebareeval{#1}}% +\def\xintdefiivar {\xintexprSafeCatcodes\xintdefiivar_a}% +\def\xintdefiivar_a#1={\XINT_expr_defvar\xintthebareiieval{#1}}% +\def\xintdeffloatvar {\xintexprSafeCatcodes\xintdeffloatvar_a}% +\def\xintdeffloatvar_a #1={\XINT_expr_defvar\xintthebareroundedfloateval{#1}}% \def\xintunassignvar #1{% \edef\XINT_unvar_tmpa{#1}% \edef\XINT_unvar_tmpa {\xint_zapspaces_o\XINT_unvar_tmpa}% @@ -2791,7 +2816,7 @@ {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one - {\romannumeral`&&@\XINTinFloatFracdigits#3}}% + {\romannumeral`&&@\XINTinFloatFrac#3}}% }% \def\XINT_expr_func_floor #1#2#3% {% @@ -2825,7 +2850,6 @@ \romannumeral`&&@\XINT:NEhook:f:one:from:one {\romannumeral`&&@\xintSqr#3}}% }% -\def\XINTinFloatSqr#1{\XINTinFloatMul{#1}{#1}}% \def\XINT_flexpr_func_sqr #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% @@ -2942,13 +2966,6 @@ }}% }% \let\XINT_flexpr_func_sqrt\XINT_expr_func_sqrt -\def\XINT_expr_func_sqrt_ #1#2#3% -{% - \expandafter #1\expandafter #2\expandafter{% - \romannumeral`&&@\XINT:NEhook:f:one:from:one - {\romannumeral`&&@\XINTinFloatSqrtdigits#3}}% -}% -\let\XINT_flexpr_func_sqrt_\XINT_expr_func_sqrt_ \def\XINT_iiexpr_func_sqrt #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% @@ -4284,13 +4301,14 @@ \fi}@ }@ \catcode`% 14 -\XINT_setcatcodes % clean up to avoid surprises if something changes +\XINTsetcatcodes % clean up to avoid surprises if something changes \newif\ifxintexprsafecatcodes \let\xintexprRestoreCatcodes\empty \def\xintexprSafeCatcodes {% \unless\ifxintexprsafecatcodes \edef\xintexprRestoreCatcodes {% + \endlinechar=\the\endlinechar \catcode59=\the\catcode59 % ; \catcode34=\the\catcode34 % " \catcode63=\the\catcode63 % ? @@ -4319,6 +4337,7 @@ }% \fi \xintexprsafecatcodestrue + \endlinechar=13 % \catcode59=12 % ; \catcode34=12 % " \catcode63=12 % ? @@ -4352,7 +4371,7 @@ {\input xinttrig.sty \input xintlog.sty }% -\XINT_restorecatcodes_endinput% +\XINTrestorecatcodesendinput% \endinput %% %% End of file `xintexpr.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty index a10aa57392a..9da94186939 100644 --- a/Master/texmf-dist/tex/generic/xint/xintfrac.sty +++ b/Master/texmf-dist/tex/generic/xint/xintfrac.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle 1.4d 2021/03/29 +%% The xint bundle 1.4e 2021/05/05 %% Copyright (C) 2013-2021 by Jean-Francois Burnol %% xintfrac: Expandable operations on fractions %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintfrac}% - [2021/03/29 v1.4d Expandable operations on fractions (JFB)]% + [2021/05/05 v1.4e Expandable operations on fractions (JFB)]% \def\XINT_cntSgnFork #1% {% \ifcase #1\expandafter\xint_secondofthree @@ -458,59 +458,37 @@ \def\XINT_spraw #1[#2#3]{\xint_gob_til_W #2\XINT_spraw_a\W\XINT_spraw_p #1[#2#3]}% \def\XINT_spraw_a\W\XINT_spraw_p #1[\W]{ #1}% \def\XINT_spraw_p #1[\W]{\xintpraw {#1}}% -\edef\xintFracToSci #1% - {\unexpanded{\expandafter\XINT_FracToSci\romannumeral`&&@}#1\string e% - \unexpanded{\Z/\W[\R]}}% +\def\xintFracToSci #1{\expandafter\XINT_FracToSci\romannumeral`&&@#1/\W[\R}% \def\XINT_FracToSci #1/#2#3[#4% {% - \xint_gob_til_W #2\XINT_FracToSci_no\W - \xint_gob_til_R #4\XINT_FracToSci_yesno\R - \XINT_FracToSci_yesyes #1/#2#3[#4% + \xint_gob_til_W #2\XINT_FracToSci_noslash\W + \xint_gob_til_R #4\XINT_FracToSci_slash_noN\R + \XINT_FracToSci_slash_N #1/#2#3[#4% }% -\def\XINT_FracToSci_no #1\XINT_FracToSci_yesyes #2[#3% +\def\XINT_FracToSci_noslash#1\XINT_FracToSci_slash_N #2[#3% {% - \xint_gob_til_R #3\XINT_FracToSci_nono\R - \XINT_FracToSci_noyes #2[#3% + \xint_gob_til_R #3\XINT_FracToSci_noslash_noN\R + \XINT_FracToSci_noslash_N #2[#3% }% -\edef\XINT_tmpa{##1\string e##2}% -\def\XINT_tmpb{\def\XINT_FracToSci_nono\R\XINT_FracToSci_noyes}% -\expandafter -\XINT_tmpb\XINT_tmpa +\def\XINT_FracToSci_noslash_noN\R\XINT_FracToSci_noslash_N #1/\W[\R{#1}% +\def\XINT_FracToSci_noslash_N #1[#2]/\W[\R% {% - #1\xint_gob_til_Z #2\XINT_FracToSci_nonono\Z - \XINT_FracToSci_nonoyes #2% -}% -\edef\XINT_tmpa{##1\string e}% - \def\XINT_tmpb{\def\XINT_FracToSci_nonoyes}% -\expandafter -\XINT_tmpb\XINT_tmpa\Z/\W[\R]{\xintFracToSciE#1}% -\def\XINT_FracToSci_nonono\Z\XINT_FracToSci_nonoyes\Z/\W[\R]{}% -\edef\XINT_tmpa{##1##2[##3]\string e}% - \def\XINT_tmpb{\def\XINT_FracToSci_noyes}% -\expandafter -\XINT_tmpb\XINT_tmpa\Z/\W[\R]% -{% - #1\xint_gob_til_zero#1\expandafter\iffalse\xint_gobble_ii0\iftrue - #2\ifnum #3=\xint_c_\else\xintFracToSciE#3\fi\fi + \ifnum#2=\xint_c_ #1\else + \romannumeral0\expandafter\XINT_pfloat_fork\romannumeral0\xintrez{#1[#2]}% + \fi }% -\edef\XINT_tmpa{##1##2/##3\string e}% - \def\XINT_tmpb{\def\XINT_FracToSci_yesno\R\XINT_FracToSci_yesyes}% -\expandafter -\XINT_tmpb\XINT_tmpa\Z/\W[\R]% +\def\XINT_FracToSci_slash_noN\R\XINT_FracToSci_slash_N #1#2/#3/\W[\R% {% #1\xint_gob_til_zero#1\expandafter\iffalse\xint_gobble_ii0\iftrue #2\if\XINT_isOne{#3}1\else/#3\fi\fi }% -\edef\XINT_tmpa{##1##2/##3[##4]\string e}% - \def\XINT_tmpb{\def\XINT_FracToSci_yesyes}% -\expandafter -\XINT_tmpb\XINT_tmpa\Z/\W[\R]% +\def\XINT_FracToSci_slash_N #1#2/#3[#4]/\W[\R% {% - #1\xint_gob_til_zero#1\expandafter\iffalse\xint_gobble_ii0\iftrue - #2\ifnum #4=\xint_c_\else\xintFracToSciE#4\fi - \if\XINT_isOne{#3}1\else/#3\fi\fi + \ifnum#4=\xint_c_ #1#2\else + \romannumeral0\expandafter\XINT_pfloat_fork\romannumeral0\xintrez{#1#2[#4]}% + \fi + \if\XINT_isOne{#3}1\else\if#10\else/#3\fi\fi }% -\def\xintFracToSciE{e}% \def\xintRawWithZeros {\romannumeral0\xintrawwithzeros }% \def\xintrawwithzeros {% @@ -547,6 +525,8 @@ \ifnum#3<\xint_c_\xint_dothis{\xinttrunc{-#3}{#1[#3]}/#2}\fi \xint_orthat{\xintiie{#1}{#3}/#2}% }% +\def\xintDecToStringREZ{\romannumeral0\xintdectostringrez}% +\def\xintdectostringrez#1{\expandafter\XINT_dectostr\romannumeral0\xintrez{#1}}% \def\xintFloor {\romannumeral0\xintfloor }% \def\xintfloor #1% devrais-je faire \xintREZ? {\expandafter\XINT_ifloor \romannumeral0\xintrawwithzeros {#1}./1[0]}% @@ -2096,11 +2076,20 @@ \xint_gob_til_zero#1\XINT_flcmof_zero0\XINT_flcmof_loop#1% }% \def\XINT_flcmof_zero#1^{ 0/1[0]}% -\mathchardef\XINTdigits 16 -\def\xintDigits #1=% - {\afterassignment \xint_gobble_i \mathchardef\XINTdigits=}% -\def\xinttheDigits {\number\XINTdigits }% -\def\xintSetDigits #1{\mathchardef\XINTdigits=\numexpr#1\relax}% +\mathchardef\XINTdigits 16 +\chardef\XINTguarddigits 0 +\def\xinttheDigits {\number\XINTdigits}% +\def\xinttheGuardDigits{0}% in case used in some of my test files +\def\xintDigits #1={\afterassignment\xintDigits_i\mathchardef\XINT_digits=}% +\def\xintDigits_i#1% +{% + \let\XINTdigits\XINT_digits +}% +\def\xintSetDigits #1% +{% + \mathchardef\XINT_digits=\numexpr#1\relax + \let\XINTdigits=\XINT_digits +}% \def\xintFloat {\romannumeral0\xintfloat }% \def\xintfloat #1{\XINT_float_chkopt #1\xint:}% \def\XINT_float_chkopt #1% @@ -2159,6 +2148,7 @@ \def\XINTFloatiLogTen {\the\numexpr\XINTfloatilogten}% \def\XINTfloatilogten [#1]#2% {\expandafter\XINT_floatilogten\romannumeral0\XINT_infloat[#1]{#2}#1.}% +\def\XINTFloatiLogTendigits{\the\numexpr\XINTfloatilogten[\XINTdigits]}% \def\XINT_floatilogten #1{% \if #10\xint_dothis\XINT_floatilogten_z\fi \if #1!\xint_dothis\XINT_floatilogten_a\fi @@ -2350,8 +2340,12 @@ \expandafter\XINT_infloat_ZZ\the\numexpr#4+\xint_c_i.#3.% }% \def\XINT_infloat_ZZ #1.#2.{ 1#2[#1]}% -\def\xintPFloat {\romannumeral0\xintpfloat }% +\def\xintPFloat {\romannumeral0\xintpfloat }% \def\xintpfloat #1{\XINT_pfloat_chkopt #1\xint:}% +\def\xintPFloat_wopt +{% + \romannumeral0\expandafter\XINT_pfloat\romannumeral0\XINTinfloatS +}% \def\XINT_pfloat_chkopt #1% {% \ifx [#1\expandafter\XINT_pfloat_opt @@ -2360,53 +2354,64 @@ }% \def\XINT_pfloat_noopt #1\xint:% {% - \expandafter\XINT_pfloat_a - \romannumeral0\xintfloat [\XINTdigits]{#1};\XINTdigits.% + \expandafter\XINT_pfloat\romannumeral0\XINTinfloatS[\XINTdigits]{#1}% }% \def\XINT_pfloat_opt [\xint:#1]% {% - \expandafter\XINT_pfloat_opt_a \the\numexpr #1.% + \expandafter\XINT_pfloat\romannumeral0\XINTinfloatS[#1]% }% -\def\XINT_pfloat_opt_a #1.#2% +\def\XINT_pfloat#1]% {% - \expandafter\XINT_pfloat_a\romannumeral0\xintfloat [#1]{#2};#1.% + \expandafter\XINT_pfloat_fork\romannumeral0\xintrez{#1]}% }% -\def\XINT_pfloat_a #1% +\def\XINT_pfloat_fork#1% {% \xint_UDzerominusfork - #1-\XINT_pfloat_zero - 0#1\XINT_pfloat_neg + #1-\XINT_pfloat_zero + 0#1\XINT_pfloat_neg 0-\XINT_pfloat_pos \krof #1% }% -\def\XINT_pfloat_zero #1;#2.{ 0.}% -\def\XINT_pfloat_neg-{\expandafter-\romannumeral0\XINT_pfloat_pos }% -\def\XINT_pfloat_pos #1.#2e#3;#4.% +\def\XINT_pfloat_zero#1]{ 0.0}% +\def\XINT_pfloat_neg-{\expandafter-\romannumeral0\XINT_pfloat_pos}% +\def\XINT_pfloat_pos#1/1[#2]% +{% + \expandafter\XINT_pfloat_a\the\numexpr\xintLength{#1}.% + #2.#1.% +}% +\def\XINT_pfloat_a #1.#2#3.% +{% + \expandafter\XINT_pfloat_b\the\numexpr#1+#2#3-\xint_c_i.% + #2#1.% +}% +\def\XINT_pfloat_b #1.#2% {% - \ifnum #3>\xint_c_v \xint_dothis\XINT_pfloat_no\fi - \ifnum #3<-\xint_c_v \xint_dothis\XINT_pfloat_no\fi - \ifnum #3<\xint_c_ \xint_dothis\XINT_pfloat_N\fi - \ifnum #3>\numexpr #4-\xint_c_i\relax \xint_dothis\XINT_pfloat_Ps\fi - \xint_orthat\XINT_pfloat_P #1{#2}{#3}% + \ifnum #1>\xint_c_v \xint_dothis\XINT_pfloat_sci\fi + \ifnum #1<-\xint_c_iv \xint_dothis\XINT_pfloat_sci\fi + \ifnum #1<\xint_c_ \xint_dothis\XINT_pfloat_N\fi + \if-#2\xint_dothis\XINT_pfloat_P\fi + \xint_orthat\XINT_pfloat_Ps + #1.% }% -\def\XINT_pfloat_no +\def\XINT_pfloat_sci #1.#2.% {% - \expandafter\XINT_pfloat_no_e\expandafter{\xintPFloatE}% + \ifnum#2=\xint_c_i\expandafter\XINT_pfloat_sci_i\expandafter\fi + \expandafter\XINT_pfloat_sci_a\romannumeral`&&@\xintPFloatE #1.% }% -\def\XINT_pfloat_no_e #1#2#3#4{ #2.#3#1#4}% +\def\XINT_pfloat_sci_a #1.#2#3.{ #2.#3#1}% +\edef\XINT_pfloat_sci_i #1#2#3.#4.{#1\space#4.0#3}% \def\xintPFloatE{e}% -\def\XINT_pfloat_N #1#2#3% +\def\XINT_pfloat_N#1.#2.#3.% {% - \csname XINT_pfloat_N_\romannumeral-#3\endcsname #1#2% + \csname XINT_pfloat_N_\romannumeral-#1\endcsname #3% }% \def\XINT_pfloat_N_i { 0.}% \def\XINT_pfloat_N_ii { 0.0}% \def\XINT_pfloat_N_iii{ 0.00}% \def\XINT_pfloat_N_iv { 0.000}% -\def\XINT_pfloat_N_v { 0.0000}% -\def\XINT_pfloat_P #1#2#3% +\def\XINT_pfloat_P #1.#2.#3.% {% - \csname XINT_pfloat_P_\romannumeral#3\endcsname #1#2% + \csname XINT_pfloat_P_\romannumeral#1\endcsname #3% }% \def\XINT_pfloat_P_ #1{ #1.}% \def\XINT_pfloat_P_i #1#2{ #1#2.}% @@ -2414,25 +2419,28 @@ \def\XINT_pfloat_P_iii#1#2#3#4{ #1#2#3#4.}% \def\XINT_pfloat_P_iv #1#2#3#4#5{ #1#2#3#4#5.}% \def\XINT_pfloat_P_v #1#2#3#4#5#6{ #1#2#3#4#5#6.}% -\def\XINT_pfloat_Ps #1#2#3% -{% - \csname XINT_pfloat_Ps\romannumeral#3\endcsname #1#200000;% -}% -\def\XINT_pfloat_Psi #1#2#3;{ #1#2.}% -\def\XINT_pfloat_Psii #1#2#3#4;{ #1#2#3.}% -\def\XINT_pfloat_Psiii#1#2#3#4#5;{ #1#2#3#4.}% -\def\XINT_pfloat_Psiv #1#2#3#4#5#6;{ #1#2#3#4#5.}% -\def\XINT_pfloat_Psv #1#2#3#4#5#6#7;{ #1#2#3#4#5#6.}% -\def\XINTinFloatFracdigits {\romannumeral0\XINTinfloatfracdigits }% -\def\XINTinfloatfracdigits #1% -{% - \expandafter\XINT_infloatfracdg_a\expandafter {\romannumeral0\xinttfrac{#1}}% -}% -\def\XINT_infloatfracdg_a {\XINTinfloat [\XINTdigits]}% -\def\xintFloatAdd {\romannumeral0\xintfloatadd }% -\def\xintfloatadd #1{\XINT_fladd_chkopt \xintfloat #1\xint:}% -\def\XINTinFloatAdd {\romannumeral0\XINTinfloatadd }% -\def\XINTinfloatadd #1{\XINT_fladd_chkopt \XINTinfloatS #1\xint:}% +\def\XINT_pfloat_Ps #1.#2.#3.% +{% + \csname XINT_pfloat_Ps_\romannumeral#1\endcsname #300000.% +}% +\def\XINT_pfloat_Ps_ #1#2.{ #1.0}% +\def\XINT_pfloat_Ps_i #1#2#3.{ #1#2.0}% +\def\XINT_pfloat_Ps_ii #1#2#3#4.{ #1#2#3.0}% +\def\XINT_pfloat_Ps_iii#1#2#3#4#5.{ #1#2#3#4.0}% +\def\XINT_pfloat_Ps_iv #1#2#3#4#5#6.{ #1#2#3#4#5.0}% +\def\XINT_pfloat_Ps_v #1#2#3#4#5#6#7.{ #1#2#3#4#5#6.0}% +\def\XINTinFloatFrac {\romannumeral0\XINTinfloatfrac}% +\def\XINTinfloatfrac #1% +{% + \expandafter\XINT_infloatfrac_a\expandafter {\romannumeral0\xinttfrac{#1}}% +}% +\def\XINT_infloatfrac_a {\XINTinfloat[\XINTdigits]}% +\def\xintFloatAdd {\romannumeral0\xintfloatadd}% +\def\xintfloatadd #1{\XINT_fladd_chkopt \xintfloat #1\xint:}% +\def\XINTinFloatAdd{\romannumeral0\XINTinfloatadd }% +\def\XINTinfloatadd{\XINT_fladd_opt_a\XINTdigits.\XINTinfloatS}% +\def\XINTinFloatAdd_wopt{\romannumeral0\XINTinfloatadd_wopt}% +\def\XINTinfloatadd_wopt[#1]{\expandafter\XINT_fladd_opt_a\the\numexpr#1.\XINTinfloatS}% \def\XINT_fladd_chkopt #1#2% {% \ifx [#2\expandafter\XINT_fladd_opt @@ -2472,10 +2480,12 @@ \ifnum\numexpr #5-#3-#2>\xint_c_\xint_dothis\xint_secondoftwo\fi \xint_orthat\xintAdd {#1[#2]}{#4[#5]}% }% -\def\xintFloatSub {\romannumeral0\xintfloatsub }% -\def\xintfloatsub #1{\XINT_flsub_chkopt \xintfloat #1\xint:}% -\def\XINTinFloatSub {\romannumeral0\XINTinfloatsub }% -\def\XINTinfloatsub #1{\XINT_flsub_chkopt \XINTinfloatS #1\xint:}% +\def\xintFloatSub {\romannumeral0\xintfloatsub}% +\def\xintfloatsub #1{\XINT_flsub_chkopt \xintfloat #1\xint:}% +\def\XINTinFloatSub{\romannumeral0\XINTinfloatsub}% +\def\XINTinfloatsub{\XINT_flsub_opt_a\XINTdigits.\XINTinfloatS}% +\def\XINTinFloatSub_wopt{\romannumeral0\XINTinfloatsub_wopt}% +\def\XINTinfloatsub_wopt[#1]{\expandafter\XINT_flsub_opt_a\the\numexpr#1.\XINTinfloatS}% \def\XINT_flsub_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flsub_opt @@ -2496,10 +2506,12 @@ {% #2[#1]{\expandafter\XINT_FL_add_a\romannumeral0\XINTinfloat[#1]{#3}#1.{\xintOpp{#4}}}% }% -\def\xintFloatMul {\romannumeral0\xintfloatmul }% -\def\xintfloatmul #1{\XINT_flmul_chkopt \xintfloat #1\xint:}% -\def\XINTinFloatMul {\romannumeral0\XINTinfloatmul }% -\def\XINTinfloatmul #1{\XINT_flmul_chkopt \XINTinfloatS #1\xint:}% +\def\xintFloatMul {\romannumeral0\xintfloatmul}% +\def\xintfloatmul #1{\XINT_flmul_chkopt \xintfloat #1\xint:}% +\def\XINTinFloatMul{\romannumeral0\XINTinfloatmul}% +\def\XINTinfloatmul{\XINT_flmul_opt_a\XINTdigits.\XINTinfloatS}% +\def\XINTinFloatMul_wopt{\romannumeral0\XINTinfloatmul_wopt}% +\def\XINTinfloatmul_wopt[#1]{\expandafter\XINT_flmul_opt_a\the\numexpr#1.\XINTinfloatS}% \def\XINT_flmul_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flmul_opt @@ -2525,11 +2537,38 @@ \expandafter\XINT_FL_mul_b\romannumeral0\XINTinfloatS[#3]{#4}#1[#2]% }% \def\XINT_FL_mul_b #1[#2]#3[#4]{\xintiiMul{#3}{#1}/1[#4+#2]}% +\def\xintFloatSqr {\romannumeral0\xintfloatsqr}% +\def\xintfloatsqr #1{\XINT_flsqr_chkopt \xintfloat #1\xint:}% +\def\XINTinFloatSqr{\romannumeral0\XINTinfloatsqr}% +\def\XINTinfloatsqr{\XINT_flsqr_opt_a\XINTdigits.\XINTinfloatS}% +\def\XINT_flsqr_chkopt #1#2% +{% + \ifx [#2\expandafter\XINT_flsqr_opt + \else\expandafter\XINT_flsqr_noopt + \fi #1#2% +}% +\def\XINT_flsqr_noopt #1#2\xint: +{% + #1[\XINTdigits]% + {\expandafter\XINT_FL_sqr_a\romannumeral0\XINTinfloatS[\XINTdigits]{#2}}% +}% +\def\XINT_flsqr_opt #1[\xint:#2]% +{% + \expandafter\XINT_flsqr_opt_a\the\numexpr #2.#1% +}% +\def\XINT_flsqr_opt_a #1.#2#3% +{% + #2[#1]{\expandafter\XINT_FL_sqr_a\romannumeral0\XINTinfloatS[#1]{#3}}% +}% +\def\XINT_FL_sqr_a #1[#2]{\xintiiSqr{#1}/1[#2+#2]}% +\def\XINTinFloatSqr_wopt[#1]#2{\XINTinFloatS[#1]{\expandafter\XINT_FL_sqr_a\romannumeral0\XINTinfloatS[#1]{#2}}}% \def\XINTinFloatInv#1{\XINTinFloatS[\XINTdigits]{\xintInv{#1}}}% -\def\xintFloatDiv {\romannumeral0\xintfloatdiv }% -\def\xintfloatdiv #1{\XINT_fldiv_chkopt \xintfloat #1\xint:}% -\def\XINTinFloatDiv {\romannumeral0\XINTinfloatdiv }% -\def\XINTinfloatdiv #1{\XINT_fldiv_chkopt \XINTinfloatS #1\xint:}% +\def\XINTinFloatInv_wopt[#1]#2{\XINTinFloatS[#1]{\xintInv{#2}}}% +\def\xintFloatDiv {\romannumeral0\xintfloatdiv}% +\def\xintfloatdiv #1{\XINT_fldiv_chkopt \xintfloat #1\xint:}% +\def\XINTinFloatDiv{\romannumeral0\XINTinfloatdiv}% +\def\XINTinfloatdiv{\XINT_fldiv_opt_a\XINTdigits.\XINTinfloatS}% +\def\XINTinFloatDiv_wopt[#1]{\romannumeral0\XINT_fldiv_opt_a#1.\XINTinfloatS}% \def\XINT_fldiv_chkopt #1#2% {% \ifx [#2\expandafter\XINT_fldiv_opt @@ -2555,10 +2594,11 @@ \expandafter\XINT_FL_div_b\romannumeral0\XINTinfloatS[#3]{#4}/#1e#2% }% \def\XINT_FL_div_b #1[#2]{#1e#2}% -\def\xintFloatPow {\romannumeral0\xintfloatpow}% -\def\xintfloatpow #1{\XINT_flpow_chkopt \xintfloat #1\xint:}% -\def\XINTinFloatPow {\romannumeral0\XINTinfloatpow }% -\def\XINTinfloatpow #1{\XINT_flpow_chkopt \XINTinfloatS #1\xint:}% +\def\xintFloatPow {\romannumeral0\xintfloatpow}% +\def\xintfloatpow #1{\XINT_flpow_chkopt \xintfloat #1\xint:}% +\def\XINTinFloatPow{\romannumeral0\XINTinfloatpow }% +\def\XINTinfloatpow{\XINT_flpow_opt_a\XINTdigits.\XINTinfloatS}% +\def\XINTinfloatpow_wopt[#1]{\expandafter\XINT_flpow_opt_a\the\numexpr#1.\XINTinfloatS}% \def\XINT_flpow_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flpow_opt @@ -2710,47 +2750,10 @@ }% \def\XINT_flpow_IIIend #1#2#3% {#3{\if#21\xint_afterfi{\expandafter-\romannumeral`&&@}\fi#1}}% -\def\xintFloatPower {\romannumeral0\xintfloatpower}% -\def\xintfloatpower #1{\XINT_flpower_chkopt \xintfloat #1\xint:}% -\def\XINTinFloatPower {\romannumeral0\XINTinfloatpower }% -\def\XINTinfloatpower #1{\XINT_flpower_chkopt \XINTinfloatS #1\xint:}% -\def\XINTinFloatPowerH {\romannumeral0\XINTinfloatpowerh }% -\def\XINTinfloatpowerh #1#2% -{% - \expandafter\XINT_flpowerh_a\romannumeral0\xintitrunc1{#2};% - \XINTdigits.{#1}{\XINTinfloatS[\XINTdigits]}% -}% -\def\XINT_flpowerh_a #1;% -{% - \if0\xintLDg{#1}\expandafter\XINT_flpowerh_int - \else\expandafter\XINT_flpowerh_b - \fi #1.% -}% -\def\XINT_flpowerh_int #1% -{% - \if0#1\expandafter\XINT_flpower_BisZero - \else\expandafter\XINT_flpowerh_i - \fi #1% -}% -\def\XINT_flpowerh_i #10.{\expandafter\XINT_flpower_checkB_a#1.}% -\def\XINT_flpowerh_b #1.% -{% - \expandafter\XINT_flpowerh_c\romannumeral0\xintdsrr{\xintDouble{#1}}.% -}% -\def\XINT_flpowerh_c #1.% -{% - \ifodd\xintLDg{#1} %<- intentional space - \expandafter\XINT_flpowerh_d\else\expandafter\XINT_flpowerh_e - \fi #1.% -}% -\def\XINT_flpowerh_d #1.\XINTdigits.#2#3% -{% - \XINT_flpower_checkB_a #1.\XINTdigits.{#2}\XINT_flpowerh_finish -}% -\def\XINT_flpowerh_finish #1% - {\XINTinfloatS[\XINTdigits]{\XINTinFloatSqrt[\XINTdigits+\xint_c_iii]{#1}}}% -\def\XINT_flpowerh_e #1.% - {\expandafter\XINT_flpower_checkB_a\romannumeral0\xinthalf{#1}.}% +\def\xintFloatPower {\romannumeral0\xintfloatpower}% +\def\xintfloatpower #1{\XINT_flpower_chkopt \xintfloat #1\xint:}% +\def\XINTinFloatPower{\romannumeral0\XINTinfloatpower }% +\def\XINTinfloatpower{\XINT_flpower_opt_a\XINTdigits.\XINTinfloatS}% \def\XINT_flpower_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flpower_opt @@ -2877,10 +2880,11 @@ \the\numexpr\expandafter\XINT_flpow_truncate \the\numexpr#2+#5\expandafter.\romannumeral0\xintiimul{#3}{#6}.#4.% }% -\def\xintFloatFac {\romannumeral0\xintfloatfac}% -\def\xintfloatfac #1{\XINT_flfac_chkopt \xintfloat #1\xint:}% -\def\XINTinFloatFac {\romannumeral0\XINTinfloatfac }% -\def\XINTinfloatfac #1{\XINT_flfac_chkopt \XINTinfloatS #1\xint:}% +\def\xintFloatFac {\romannumeral0\xintfloatfac}% +\def\xintfloatfac #1{\XINT_flfac_chkopt \xintfloat #1\xint:}% +\def\XINTinFloatFac{\romannumeral0\XINTinfloatfac}% +\def\XINTinfloatfac[#1]{\expandafter\XINT_flfac_opt_a\the\numexpr#1.\XINTinfloatS}% +\def\XINTinFloatFacdigits{\romannumeral0\XINT_flfac_opt_a\XINTdigits.\XINTinfloatS}% \def\XINT_flfac_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flfac_opt @@ -3100,10 +3104,10 @@ {1#2\expandafter!\expandafter-\expandafter1\expandafter [\the\numexpr #4+\xint_c_viii]}% }% -\def\xintFloatPFactorial {\romannumeral0\xintfloatpfactorial}% -\def\xintfloatpfactorial #1{\XINT_flpfac_chkopt \xintfloat #1\xint:}% -\def\XINTinFloatPFactorial {\romannumeral0\XINTinfloatpfactorial }% -\def\XINTinfloatpfactorial #1{\XINT_flpfac_chkopt \XINTinfloat #1\xint:}% +\def\xintFloatPFactorial {\romannumeral0\xintfloatpfactorial}% +\def\xintfloatpfactorial #1{\XINT_flpfac_chkopt \xintfloat #1\xint:}% +\def\XINTinFloatPFactorial{\romannumeral0\XINTinfloatpfactorial }% +\def\XINTinfloatpfactorial{\XINT_flpfac_opt_a\XINTdigits.\XINTinfloatS}% \def\XINT_flpfac_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flpfac_opt @@ -3119,9 +3123,9 @@ }% \def\XINT_flpfac_opt #1[\xint:#2]% {% - \expandafter\XINT_flpfac_opt_b\the\numexpr #2.#1% + \expandafter\XINT_flpfac_opt_a\the\numexpr #2.#1% }% -\def\XINT_flpfac_opt_b #1.#2#3#4% +\def\XINT_flpfac_opt_a #1.#2#3#4% {% \expandafter\XINT_FL_pfac_fork \the\numexpr \xintNum{#3}\expandafter.% @@ -3282,10 +3286,10 @@ \romannumeral0\expandafter\XINT_FL_fac_mul \the\numexpr \xint_c_x^viii+#1!% }% -\def\xintFloatBinomial {\romannumeral0\xintfloatbinomial}% -\def\xintfloatbinomial #1{\XINT_flbinom_chkopt \xintfloat #1\xint:}% -\def\XINTinFloatBinomial {\romannumeral0\XINTinfloatbinomial }% -\def\XINTinfloatbinomial #1{\XINT_flbinom_chkopt \XINTinfloat #1\xint:}% +\def\xintFloatBinomial {\romannumeral0\xintfloatbinomial}% +\def\xintfloatbinomial #1{\XINT_flbinom_chkopt \xintfloat #1\xint:}% +\def\XINTinFloatBinomial{\romannumeral0\XINTinfloatbinomial }% +\def\XINTinfloatbinomial{\XINT_flbinom_opt\XINTinfloatS[\xint:\XINTdigits]}% \def\XINT_flbinom_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flbinom_opt @@ -3345,10 +3349,11 @@ {\XINT_FL_fac_fork_b #2.\xint_c_iv{#4+\xint_c_i}\XINT_FL_fac_out{\XINTinfloat[#4+\xint_c_iii]}}}% }% -\def\xintFloatSqrt {\romannumeral0\xintfloatsqrt }% -\def\xintfloatsqrt #1{\XINT_flsqrt_chkopt \xintfloat #1\xint:}% -\def\XINTinFloatSqrt {\romannumeral0\XINTinfloatsqrt }% -\def\XINTinfloatsqrt #1{\XINT_flsqrt_chkopt \XINTinfloat #1\xint:}% +\def\xintFloatSqrt {\romannumeral0\xintfloatsqrt}% +\def\xintfloatsqrt #1{\XINT_flsqrt_chkopt \xintfloat #1\xint:}% +\def\XINTinFloatSqrt{\romannumeral0\XINTinfloatsqrt}% +\def\XINTinfloatsqrt[#1]{\expandafter\XINT_flsqrt_opt_a\the\numexpr#1.\XINTinfloatS}% +\def\XINTinFloatSqrtdigits{\romannumeral0\XINT_flsqrt_opt_a\XINTdigits.\XINTinfloatS}% \def\XINT_flsqrt_chkopt #1#2% {% \ifx [#2\expandafter\XINT_flsqrt_opt @@ -3504,7 +3509,7 @@ \def\XINT_infloatdivmod #1#2#3{\expanded{{#1}{\XINTinFloat[#3]{#2}}}}% \def\xintifFloatInt {\romannumeral0\xintiffloatint}% \def\xintiffloatint #1{\expandafter\XINT_iffloatint - \romannumeral0\xintrez{\XINTinFloat[\XINTdigits]{#1}}}% + \romannumeral0\xintrez{\XINTinFloatS[\XINTdigits]{#1}}}% \def\XINT_iffloatint #1#2/1[#3]% {% \if 0#1\xint_dothis\xint_stop_atfirstoftwo\fi @@ -3513,12 +3518,23 @@ }% \def\xintFloatIsInt {\romannumeral0\xintfloatisint}% \def\xintfloatisint #1{\expandafter\XINT_iffloatint - \romannumeral0\xintrez{\XINTinFloat[\XINTdigits]{#1}}10}% -\def\XINTinFloatdigits {\XINTinFloat [\XINTdigits]}% -\def\XINTinFloatSdigits {\XINTinFloatS [\XINTdigits]}% -\def\XINTinFloatSqrtdigits {\XINTinFloatSqrt[\XINTdigits]}% -\def\XINTinFloatFacdigits {\XINTinFloatFac [\XINTdigits]}% -\def\XINTFloatiLogTendigits{\XINTFloatiLogTen[\XINTdigits]}% + \romannumeral0\xintrez{\XINTinFloatS[\XINTdigits]{#1}}10}% +\def\xintFloatIntType {\romannumeral`&&@\xintfloatinttype}% +\def\xintfloatinttype #1% +{% + \expandafter\XINT_floatinttype + \romannumeral0\xintrez{\XINTinFloatS[\XINTdigits]{#1}}% +}% +\def\XINT_floatinttype #1#2/1[#3]% +{% + \if 0#1\xint_dothis\xint_c_\fi + \ifnum#3<\xint_c_\xint_dothis\xint_c_mone\fi + \ifnum#3>\xint_c_\xint_dothis\xint_c_\fi + \ifodd\xintLDg{#1#2} \xint_dothis\xint_c_i\fi + \xint_orthat\xint_c_ +}% +\def\XINTinFloatdigits {\XINTinFloat [\XINTdigits]}% +\def\XINTinFloatSdigits{\XINTinFloatS[\XINTdigits]}% \def\XINTinRandomFloatS{\romannumeral0\XINTinrandomfloatS}% \def\XINTinRandomFloatSdigits{\XINTinRandomFloatS[\XINTdigits]}% \def\XINTinrandomfloatS[#1]% @@ -3548,54 +3564,11 @@ \romannumeral`&&@\expandafter\XINT_eightrandomdigits \romannumeral`&&@\XINT_eightrandomdigits[-16]% }% -\def\PoorManLogBaseTen{\romannumeral0\poormanlogbaseten}% -\def\poormanlogbaseten #1% - {\expandafter\PML@logbaseten\romannumeral0\XINTinfloat[9]{#1}}% -\def\PML@logbaseten#1[#2]% -{% - \xintiiadd{\xintDSx{-9}{\the\numexpr#2+8\relax}}{\the\numexpr\PML@#1.}% - [-9]% -}% -\def\PoorManPowerOfTen{\the\numexpr\poormanpoweroften}% -\def\poormanpoweroften #1% - {\expandafter\PML@powoften\romannumeral0\xintraw{#1}}% -\def\PML@powoften#1% -{% - \xint_UDzerominusfork - #1-\PML@powoften@zero - 0#1\PML@powoften@neg - 0-\PML@powoften@pos - \krof #1% -}% -\def\PML@powoften@zero 0{1\relax}%/1[0] -\def\PML@powoften@pos#1[#2]% -{% - \expandafter\PML@powoften@pos@a\romannumeral0\xintround{9}{#1[#2]}.% -}% -\def\PML@powoften@pos@a#1.#2.{\PML@Pa#2.\expandafter[\the\numexpr-8+#1]}% -\def\PML@powoften@neg#1[#2]% -{% - \expandafter\PML@powoften@neg@a\romannumeral0\xintround{9}{#1[#2]}.% -}% -\def\PML@powoften@neg@a#1.#2.% -{\ifnum#2=\xint_c_ \xint_afterfi{1\relax/1[#1]}\else - \expandafter\expandafter\expandafter - \PML@Pa\expandafter\xint_gobble_i\the\numexpr2000000000-#2.% - \expandafter[\the\numexpr-9+#1\expandafter]\fi -}% -\def\PoorManPower#1#2% -{% - \PoorManPowerOfTen{\xintMul{#2}{\PoorManLogBaseTen{#1}}}% -}% -\def\xintLog#1{\xintMul{\PoorManLogBaseTen{#1}}{23025850923[-10]}}% -\def\XINTinFloatLog#1{\XINTinFloatMul{\PoorManLogBaseTen{#1}}{23025850923[-10]}}% -\def\xintExp#1{\PoorManPowerOfTen{\xintMul{#1}{434294481903[-12]}}}% -\def\XINTinFloatExp#1{\PoorManPowerOfTen{\XINTinFloatMul{#1}{434294481903[-12]}}}% \let\XINTinFloatMaxof\XINT_Maxof \let\XINTinFloatMinof\XINT_Minof \let\XINTinFloatSum\XINT_Sum \let\XINTinFloatPrd\XINT_Prd -\XINT_restorecatcodes_endinput% +\XINTrestorecatcodesendinput% \endinput %% %% End of file `xintfrac.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty index 4ecd9df5c00..83821ea8815 100644 --- a/Master/texmf-dist/tex/generic/xint/xintgcd.sty +++ b/Master/texmf-dist/tex/generic/xint/xintgcd.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle 1.4d 2021/03/29 +%% The xint bundle 1.4e 2021/05/05 %% Copyright (C) 2013-2021 by Jean-Francois Burnol %% xintgcd: Euclidean algorithm with xint package %% --------------------------------------------------------------- @@ -77,7 +77,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintgcd}% - [2021/03/29 v1.4d Euclide algorithm with xint package (JFB)]% + [2021/05/05 v1.4e Euclide algorithm with xint package (JFB)]% \def\xintBezout {\romannumeral0\xintbezout }% \def\xintbezout #1% {% @@ -392,7 +392,7 @@ \par \endgroup }% -\XINT_restorecatcodes_endinput% +\XINTrestorecatcodesendinput% \endinput %% %% End of file `xintgcd.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintkernel.sty b/Master/texmf-dist/tex/generic/xint/xintkernel.sty index b94e724b17a..19fcfed741d 100644 --- a/Master/texmf-dist/tex/generic/xint/xintkernel.sty +++ b/Master/texmf-dist/tex/generic/xint/xintkernel.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle 1.4d 2021/03/29 +%% The xint bundle 1.4e 2021/05/05 %% Copyright (C) 2013-2021 by Jean-Francois Burnol %% xintkernel: Paraphernalia for the xint packages %% --------------------------------------------------------------- @@ -59,7 +59,7 @@ \def\PrepareCatcodes {% \endgroup - \def\XINT_restorecatcodes + \def\XINTrestorecatcodes {% takes care of all, to allow more economical code in modules \catcode0=\the\catcode0 % \catcode59=\the\catcode59 % ; xintexpr @@ -73,7 +73,7 @@ \catcode33=\the\catcode33 % ! xintexpr \catcode93=\the\catcode93 % ] -, xintfrac, xintseries, xintcfrac \catcode91=\the\catcode91 % [ -, xintfrac, xintseries, xintcfrac - \catcode36=\the\catcode36 % $ xintgcd only + \catcode36=\the\catcode36 % $ xintgcd only $ \catcode94=\the\catcode94 % ^ \catcode96=\the\catcode96 % ` \catcode47=\the\catcode47 % / @@ -96,11 +96,11 @@ \catcode32=\the\catcode32 % \catcode61=\the\catcode61\relax % = }% - \edef\XINT_restorecatcodes_endinput + \edef\XINTrestorecatcodesendinput {% - \XINT_restorecatcodes\noexpand\endinput % + \XINTrestorecatcodes\noexpand\endinput % }% - \def\XINT_setcatcodes + \def\XINTsetcatcodes {% \catcode61=12 % = \catcode32=10 % space @@ -138,15 +138,17 @@ \catcode0=12 % for \romannumeral`&&@ trick \catcode1=3 % for ultra-safe séparateur &&A }% - \XINT_setcatcodes + \let\XINT_setcatcodes\XINTsetcatcodes + \let\XINT_restorecatcodes\XINTrestorecatcodes + \XINTsetcatcodes }% \PrepareCatcodes \def\XINTsetupcatcodes {% for use by other modules - \edef\XINT_restorecatcodes_endinput + \edef\XINTrestorecatcodesendinput {% - \XINT_restorecatcodes\noexpand\endinput % + \XINTrestorecatcodes\noexpand\endinput % }% - \XINT_setcatcodes + \XINTsetcatcodes }% \ifdefined\ProvidesPackage \let\XINT_providespackage\relax @@ -157,7 +159,7 @@ \fi \XINT_providespackage \ProvidesPackage {xintkernel}% - [2021/03/29 v1.4d Paraphernalia for the xint packages (JFB)]% + [2021/05/05 v1.4e Paraphernalia for the xint packages (JFB)]% \chardef\xint_c_ 0 \chardef\xint_c_i 1 \chardef\xint_c_ii 2 @@ -262,7 +264,7 @@ \long\def\xint_gob_til_xint:#1\xint:{}% \long\def\xint_gob_til_^#1^{}% \def\xint_bracedstopper{\xint:}% -\long\def\xint_gob_til_exclam #1!{}% documenter le catcode de ! ici +\long\def\xint_gob_til_exclam #1!{}% This ! has catcode 12 \long\def\xint_gob_til_sc #1;{}% \long\def\xint_afterfi #1#2\fi {\fi #1}% \long\def\xint_bye #1\xint_bye {}% @@ -622,7 +624,7 @@ }% \begingroup\lccode`$ 32 \catcode`/ 11 % $ \lowercase{\endgroup\XINT_expandableerror$\xint/\let\xint/\xint_undefined}% $ -\XINT_restorecatcodes_endinput% +\XINTrestorecatcodesendinput% \endinput %% %% End of file `xintkernel.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintlog.sty b/Master/texmf-dist/tex/generic/xint/xintlog.sty index 5b4877cd764..e20e40bebcc 100644 --- a/Master/texmf-dist/tex/generic/xint/xintlog.sty +++ b/Master/texmf-dist/tex/generic/xint/xintlog.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle 1.4d 2021/03/29 +%% The xint bundle 1.4e 2021/05/05 %% Copyright (C) 2013-2021 by Jean-Francois Burnol %% xintlog: Logarithms and exponentials for xintexpr %% --------------------------------------------------------------- @@ -40,7 +40,6 @@ \def\z{\endgroup}% \def\empty{}\def\space{ }\newlinechar10 \expandafter\let\expandafter\w\csname ver@xintexpr.sty\endcsname - \expandafter\let\expandafter\x\csname ver@xintlog.sty\endcsname \expandafter \ifx\csname PackageInfo\endcsname\relax \def\y#1#2{\immediate\write-1{Package #1 Info:^^J% @@ -59,169 +58,1681 @@ \else\string\input\space xintexpr.sty \fi rather, aborting}% \aftergroup\endinput - \else - \ifx\x\relax % first loading (initiated from xintexpr.sty) - \else - \ifx\x\empty % LaTeX first loading, \ProvidesPackage not yet seen - \else - \y{xintlog}{Already loaded, aborting}% - \aftergroup\endinput - \fi - \fi \fi \fi \z% -\xintexprSafeCatcodes\catcode`_ 11 +\edef\XINTendxintloginput{\XINTrestorecatcodes\noexpand\endinput}\XINTsetcatcodes% +\ifcsname xintlibver@log\endcsname + \expandafter\xint_firstoftwo +\else + \expandafter\xint_secondoftwo +\fi +{\immediate\write-1{Reloading xintlog library using Digits=\xinttheDigits.}}% +{\expandafter\gdef\csname xintlibver@log\endcsname{2021/05/05 v1.4e}% \XINT_providespackage \ProvidesPackage{xintlog}% -[2021/03/29 v1.4d Logarithms and exponentials for xintexpr (JFB)]% +[2021/05/05 v1.4e Logarithms and exponentials for xintexpr (JFB)]% +}% +\def\xintreloadxintlog{\input xintlog.sty }% +\xintexprSafeCatcodes\catcode`_ 11 +\unless\ifdefined\XINTinFloatPowTen \ifdefined\RequirePackage \RequirePackage{poormanlog}% \else \input poormanlog.tex +\fi\fi +\xintexprRestoreCatcodes\XINTsetcatcodes +\def\PoorManLogBaseTen{\romannumeral0\poormanlogbaseten}% +\def\poormanlogbaseten #1% +{% + \XINTinfloat[\XINTdigits]% + {\romannumeral0\expandafter\PML@logbaseten\romannumeral0\XINTinfloat[9]{#1}}% +}% +\def\PoorManLogBaseTen_raw%#1 +{% + \romannumeral0\expandafter\PML@logbaseten\romannumeral0\XINTinfloat[9]%{#1}% +}% +\def\PML@logbaseten#1[#2]% +{% + \xintiiadd{\xintDSx{-9}{\the\numexpr#2+8\relax}}{\the\numexpr\PML@#1.}[-9]% +}% +\def\PoorManLog#1% +{% + \XINTinFloat[\XINTdigits]{\xintMul{\PoorManLogBaseTen_raw{#1}}{23025850923[-10]}}% +}% +\def\PoorManPowerOfTen{\romannumeral0\poormanpoweroften}% +\def\poormanpoweroften #1% +{% + \expandafter\PML@powoften@out + \the\numexpr\expandafter\PML@powoften\romannumeral0\xintraw{#1}% +}% +\def\PML@powoften@out#1[#2]{\XINTinfloat[\XINTdigits]{#1[#2]}}% +\def\PML@powoften#1% +{% + \xint_UDzerominusfork + #1-\PML@powoften@zero + 0#1\PML@powoften@neg + 0-\PML@powoften@pos + \krof #1% +}% +\def\PML@powoften@zero 0/1[0]{1\relax/1[0]}% +\def\PML@powoften@pos#1[#2]% +{% + \expandafter\PML@powoften@pos@a\romannumeral0\xintround{9}{#1[#2]}.% +}% +\def\PML@powoften@pos@a#1.#2.{\PML@Pa#2.\expandafter[\the\numexpr-8+#1]}% +\def\PML@powoften@neg#1[#2]% +{% + \expandafter\PML@powoften@neg@a\romannumeral0\xintround{9}{#1[#2]}.% +}% +\def\PML@powoften@neg@a#1.#2.% +{% + \ifnum#2=\xint_c_ \xint_afterfi{1\relax/1[#1]}\else + \expandafter\expandafter\expandafter + \PML@Pa\expandafter\xint_gobble_i\the\numexpr2000000000-#2.% + \expandafter[\the\numexpr-9+#1\expandafter]\fi +}% +\def\PoorManExp#1{\PoorManPowerOfTen{\xintMul{#1}{43429448190325182765[-20]}}}% +\def\poormanloghack#1% +{% + \xintMessage{xintexpr}{Warning}% + {\string\poormanloghack\space is a no-op since 1.4e and will be removed at next major release}% +}% +\def\XINTinFloatSciPow{\romannumeral0\XINTinfloatscipow}% +\def\XINTinfloatscipow#1#2% +{% + \expandafter\XINT_scipow_a\romannumeral0\xintrez{#2}\XINT_scipow_int{#1}% +}% +\def\XINT_scipow_a #1% +{% + \xint_gob_til_zero#1\XINT_scipow_Biszero0\XINT_scipow_b#1% +}% +\def\XINT_scipow_Biszero#1]#2#3{ 1[0]}% +\def\XINT_scipow_b #1#2/#3[#4]#5% +{% + \unless\if1\XINT_is_One#3XY\xint_dothis\XINT_scipow_c\fi + \ifnum#4<\xint_c_mone\xint_dothis\XINT_scipow_c\fi + \ifnum#4=\xint_c_mone + \if5\xintLDg{#1#2} % + \xint_afterfi{\xint_dothis\XINT_scipow_halfint}\else + \xint_afterfi{\xint_dothis\XINT_scipow_c}% + \fi + \fi + \xint_orthat#5#1#2/#3[#4]% +}% +\def\XINT_scipow_int #1/1[#2]#3% +{% + \expandafter\XINT_flpower_checkB_a + \romannumeral0\XINT_dsx_addzeros{#2}#1;.\XINTdigits.{#3}{\XINTinfloatS[\XINTdigits]}% +}% +\def\XINT_scipow_halfint#1/1[#2]#3% +{% + \expandafter\XINT_flpower_checkB_a + \romannumeral0\xintdsr{\xintDouble{#1}}.\XINTdigits.{#3}\XINT_flpowerh_finish +}% +\def\XINT_flpowerh_finish #1% + {\XINTinfloatS[\XINTdigits]{\XINTinFloatSqrt[\XINTdigits+\xint_c_iii]{#1}}}% +\def\XINT_tmpa#1.{% +\def\XINT_scipow_c ##1[##2]##3% +{% + \expandafter\XINT_scipow_d\romannumeral0\XINTinfloatS[#1]{##3}\xint:##1[##2]\xint: +}% +}\expandafter\XINT_tmpa\the\numexpr\XINTdigits.% +\def\XINT_scipow_d #1% +{% + \xint_UDzerominusfork + #1-\XINT_scipow_Aiszero + 0#1\XINT_scipow_Aisneg + 0-\XINT_scipow_Aispos + \krof #1% +}% +\def\XINT_scipow_Aiszero #1\xint:#2#3\xint: +{% + \if-#2\xint_dothis + {\XINT_signalcondition{InvalidOperation}{Zero to negative power #2#3}{}{1["7FFF8000]}}\fi + \xint_orthat{ 0[0]}% +}% +\def\XINT_scipow_Aispos #1\xint:#2\xint: +{% + \XINTinfloatpowten{\xintMul{#2}{\XINTinFloatLogTen_xdgout#1}}% +}% +\def\XINT_scipow_Aisneg #1#2\xint:#3\xint: +{% + \XINT_signalcondition{InvalidOperation}{Fractional power of negative argument}{}{0[0]} +}% +\ifnum\XINTdigits<9 + \def\XINTinfloatscipow#1#2% + {% + \expandafter\XINT_scipow_a\romannumeral0\xintraw{#2}\relax{#1}% + }% + \def\XINT_scipow_b #1[#2]#3#4% + {% + \expandafter\XINT_scipow_d\romannumeral0\XINTinfloat[9]{#4}\xint:#1[#2]\xint: + }% + \def\XINT_scipow_Aispos #1\xint:#2\xint: + {% + \poormanpoweroften{\xintMul{#2}{\romannumeral0\expandafter\PML@logbaseten#1}}% + }% + \def\XINT_scipow_Aisneg #1#2\xint:#3\xint: + {% + \ifcase\xintFloatIntType{#3}% + \or\expandafter-\romannumeral0% + \else + \expandafter\XINT_scipow_AnegBfrac + \fi + \poormanpoweroften{\xintMul{#3}{\romannumeral0\expandafter\PML@logbaseten#2}}% + }% +\fi +\def\xintPow{\romannumeral0\xintpow}% +\def\xintpow#1#2% +{% + \expandafter\XINT_scipow_a\romannumeral0\xintrez{#2}\XINT_pow_int{#1}% +}% +\def\XINT_pow_int #1/1[#2]%#3 +{% + \expandafter\XINT_pow_int_a\romannumeral0\XINT_dsx_addzeros{#2}#1;.% +}% +\def\XINT_pow_int_a #1#2.#3% +{% + \ifnum\if-#1\xintLength{#2}\else\xintLength{#1#2}\fi>\xint_c_iv + \expandafter\XINT_pow_tosci + \fi + \expandafter\XINT_pow_int_b\romannumeral0\xintraw{#3}\xint:#1#2\xint: +}% +\def\XINT_pow_int_b#1#2/#3[#4]\xint:#5\xint: +{% + \if0\ifnum\numexpr\xint_c_x^iv/% + (\xintLength{#1#2}\if-#1-\xint_c_i\fi)<\XINT_Abs#5 % + 1\else + \ifnum\numexpr\xint_c_x^iv/\xintLength{#3}<\XINT_Abs#5 % + 1\else + 0\fi\fi + \expandafter\XINT_fpow_fork\else\expandafter\XINT_pow_tosci_i + \fi + #5\Z{#4}{#1#2}{#3}% +}% +\def\XINT_tmpa#1.{% +\def\XINT_pow_tosci##1\xintraw%##2%\xint:##3\xint: +{% + \expandafter\XINT_scipow_d\romannumeral0\XINTinfloatS[#1]% +}% +\def\XINT_pow_tosci_i##1\Z##2##3##4% +{% + \expandafter\XINT_scipow_d\romannumeral0\expandafter\XINT_infloatS_clean + \romannumeral0\XINT_infloat_a#1.{##2}{##3}{##4}\xint:##1\xint: +}% +}\expandafter\XINT_tmpa\the\numexpr\XINTdigits.% +\ifnum\XINTdigits<9 + \def\xintpow#1#2% + {% + \expandafter\XINT_poorpow_a\romannumeral0\xintrez{#2}\relax{#1}% + }% + \def\XINT_poorpow_a #1% + {% + \xint_gob_til_zero#1\XINT_scipow_Biszero0\XINT_poorpow_b#1% + }% + \def\XINT_poorpow_b #1#2/#3[#4]#5% + {% + \unless\if1\XINT_is_One#3XY\xint_dothis\XINT_poorpow_c\fi + \ifnum#4<\xint_c_\xint_dothis\XINT_poorpow_c\fi + \xint_orthat\XINT_pow_int#1#2/#3[#4]% + }% + \def\XINT_poorpow_c #1[#2]#3% + {% + \expandafter\XINT_scipow_d\romannumeral0\XINTinfloat[9]{#3}\xint:#1[#2]\xint: + }% + \def\XINT_pow_tosci#1\xintraw%#2%\xint:#3\xint: + {% + \expandafter\XINT_scipow_d\romannumeral0\XINTinfloat[9]% + }% + \def\XINT_pow_tosci_i#1\Z#2#3#4% + {% + \expandafter\XINT_scipow_d\romannumeral0\expandafter\XINT_infloat_clean + \romannumeral0\XINT_infloat_a9.{#2}{#3}{#4}\xint:#1\xint: + }% \fi -\xintexprRestoreCatcodes\csname XINT_setcatcodes\endcsname +\ifnum\XINTdigits<9 \expandafter\def\csname XINT_expr_func_log10\endcsname#1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one {\romannumeral`&&@\PoorManLogBaseTen#3}}% }% -\expandafter\let\csname XINT_flexpr_func_log10\expandafter\endcsname - \csname XINT_expr_func_log10\endcsname \expandafter\def\csname XINT_expr_func_pow10\endcsname#1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one {\romannumeral`&&@\PoorManPowerOfTen#3}}% }% +\else +\expandafter\def\csname XINT_expr_func_log10\endcsname#1#2#3% +{% + \expandafter #1\expandafter #2\expandafter{% + \romannumeral`&&@\XINT:NEhook:f:one:from:one + {\romannumeral`&&@\XINTinFloatLogTen#3}}% +}% +\expandafter\def\csname XINT_expr_func_pow10\endcsname#1#2#3% +{% + \expandafter #1\expandafter #2\expandafter{% + \romannumeral`&&@\XINT:NEhook:f:one:from:one + {\romannumeral`&&@\XINTinFloatPowTen#3}}% +}% +\fi +\expandafter\let\csname XINT_flexpr_func_log10\expandafter\endcsname + \csname XINT_expr_func_log10\endcsname \expandafter\let\csname XINT_flexpr_func_pow10\expandafter\endcsname \csname XINT_expr_func_pow10\endcsname +\ifnum\XINTdigits<9 \def\XINT_expr_func_log #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one - {\romannumeral`&&@\xintLog#3}}% + {\romannumeral`&&@\PoorManLog#3}}% }% -\def\XINT_flexpr_func_log #1#2#3% +\def\XINT_expr_func_exp #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one - {\romannumeral`&&@\XINTinFloatLog#3}}% + {\romannumeral`&&@\PoorManExp#3}}% }% -\def\XINT_expr_func_exp #1#2#3% +\let\XINT_flexpr_func_log\XINT_expr_func_log +\let\XINT_flexpr_func_exp\XINT_expr_func_exp +\else +\def\XINT_expr_func_log #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one - {\romannumeral`&&@\xintExp#3}}% + {\romannumeral`&&@\XINTinFloatLog#3}}% }% -\def\XINT_flexpr_func_exp #1#2#3% +\def\XINT_expr_func_exp #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one {\romannumeral`&&@\XINTinFloatExp#3}}% }% +\let\XINT_flexpr_func_log\XINT_expr_func_log +\let\XINT_flexpr_func_exp\XINT_expr_func_exp +\fi \def\XINT_expr_func_pow #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:two - {\romannumeral`&&@\PoorManPower#3}}% + {\romannumeral`&&@\xintPow#3}}% +}% +\def\XINT_flexpr_func_pow #1#2#3% +{% + \expandafter #1\expandafter #2\expandafter{% + \romannumeral`&&@\XINT:NEhook:f:one:from:two + {\romannumeral`&&@\XINTinFloatSciPow#3}}% +}% +\ifnum\XINTdigits<9 \expandafter\XINTendxintloginput\fi% +\def\XINT_tmpa{1[0]}% +\expandafter\let\csname XINT_c_1_0\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_2_0\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_3_0\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_4_0\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_5_0\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_6_0\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_1_0_x\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_2_0_x\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_3_0_x\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_4_0_x\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_5_0_x\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_6_0_x\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_1_0_inv\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_2_0_inv\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_3_0_inv\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_4_0_inv\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_5_0_inv\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_6_0_inv\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_1_0_inv_x\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_2_0_inv_x\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_3_0_inv_x\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_4_0_inv_x\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_5_0_inv_x\endcsname\XINT_tmpa +\expandafter\let\csname XINT_c_6_0_inv_x\endcsname\XINT_tmpa +\def\XINT_tmpa#1#2#3#4;% + {\expandafter\edef\csname XINT_c_#1_#2\endcsname{\XINTinFloat[\XINTdigits+5]{#3#4[-79]}}% + \expandafter\edef\csname XINT_c_#1_#2_x\endcsname{\XINTinFloat[\XINTdigits+10]{#3#4[-79]}}% + }% +\XINT_tmpa 1 1 12589254117941672104239541063958006060936174094669310691079230195266476157825020;% +\XINT_tmpa 1 2 15848931924611134852021013733915070132694421338250390683162968123166568636684540;% +\XINT_tmpa 1 3 19952623149688796013524553967395355579862743154053460992299136670049309106980490;% +\XINT_tmpa 1 4 25118864315095801110850320677993273941585181007824754286798884209082432477235613;% +\XINT_tmpa 1 5 31622776601683793319988935444327185337195551393252168268575048527925944386392382;% +\XINT_tmpa 1 6 39810717055349725077025230508775204348767703729738044686528414806022485386945804;% +\XINT_tmpa 1 7 50118723362727228500155418688494576806047198983281926392969745588901125568883069;% +\XINT_tmpa 1 8 63095734448019324943436013662234386467294525718822872452772952883349494329768681;% +\XINT_tmpa 1 9 79432823472428150206591828283638793258896063175548433209232392931695569719148754;% +\XINT_tmpa 2 1 10232929922807541309662751748198778273411640572379813085994255856738296458625172;% +\XINT_tmpa 2 2 10471285480508995334645020315281400790567914715039292120056525299012577641023719;% +\XINT_tmpa 2 3 10715193052376064174083022246945087339158659633422172707894501914136771607653870;% +\XINT_tmpa 2 4 10964781961431850131437136061411270464271158762483023169080841607885740984711300;% +\XINT_tmpa 2 5 11220184543019634355910389464779057367223085073605529624450744481701033026862244;% +\XINT_tmpa 2 6 11481536214968827515462246116628360182562102373996119340874991068894793593040890;% +\XINT_tmpa 2 7 11748975549395295417220677651268442278134317971793124791953875805007912852226246;% +\XINT_tmpa 2 8 12022644346174129058326127151935204486942664354881189151104892745683155052368222;% +\XINT_tmpa 2 9 12302687708123815342415404364750907389955639574572144413097319170011637639124482;% +\XINT_tmpa 3 1 10023052380778996719154048893281105540536684535421606464116348523047431367720401;% +\XINT_tmpa 3 2 10046157902783951424046519858132787392010166060319618489538315083825599423438638;% +\XINT_tmpa 3 3 10069316688518041699296607872661381368099438247964820601930206419324524707606686;% +\XINT_tmpa 3 4 10092528860766844119155277641202580844111492027373621434478800545314309618714957;% +\XINT_tmpa 3 5 10115794542598985244409323144543146957419235215102899054703546688078254946034250;% +\XINT_tmpa 3 6 10139113857366794119988279023017296985954042032867436525450889437280417044987125;% +\XINT_tmpa 3 7 10162486928706956276733661150135543062420167220622552197768982666050994284378619;% +\XINT_tmpa 3 8 10185913880541169240797988673338257820431768224957171297560936579346433061037662;% +\XINT_tmpa 3 9 10209394837076799554149033101487543990018213667630072574873723356334069913329713;% +\XINT_tmpa 4 1 10002302850208247526835942556719413318678216124626534526963475845228205382579041;% +\XINT_tmpa 4 2 10004606230728403216239656646745503559081482371024284871882409614422496765669196;% +\XINT_tmpa 4 3 10006910141682589957025973521996241909035914023642264228577379693841345823180462;% +\XINT_tmpa 4 4 10009214583192958761081718336761022426385537997384755843291864010938378093197023;% +\XINT_tmpa 4 5 10011519555381688769842032367472488618040778885656970999331288116685029387850446;% +\XINT_tmpa 4 6 10013825058370987260768186632475607982636715641432550952229573271596547716373358;% +\XINT_tmpa 4 7 10016131092283089653826887255241073941084503769368844606021481400409002185558343;% +\XINT_tmpa 4 8 10018437657240259517971072914549205297136779497498835020699531587537662833033174;% +\XINT_tmpa 4 9 10020744753364788577622204725249622301332888222801030351604197113557132455165040;% +\XINT_tmpa 5 1 10000230261160268806710649793464495797824846841503180050673957122443571394978721;% +\XINT_tmpa 5 2 10000460527622557806255008596155855743730116854295068547616656160734125748005947;% +\XINT_tmpa 5 3 10000690799386989083565213461287219981856579552059660369243804541364501659468630;% +\XINT_tmpa 5 4 10000921076453684726384543254593368743049141124080210677706489564626675960578367;% +\XINT_tmpa 5 5 10001151358822766825267483384008265483772370538793312970508590203623535763866465;% +\XINT_tmpa 5 6 10001381646494357473579790530833073090516914490540536234536867917078761046656260;% +\XINT_tmpa 5 7 10001611939468578767498557382394677469502542123237272447312733350028467607076918;% +\XINT_tmpa 5 8 10001842237745552806012277366194752842273812293689190856411757410911882303011468;% +\XINT_tmpa 5 9 10002072541325401690920909385549403068574626162727745910217443397959031898734024;% +\XINT_tmpa 6 1 10000023025877439451356029805459000097926504781151663770980171880313737943886754;% +\XINT_tmpa 6 2 10000046051807898005897723104514851394069452605882077809669546315010724085277647;% +\XINT_tmpa 6 3 10000069077791375785706217087438809625967243923218032821061587553353589726808164;% +\XINT_tmpa 6 4 10000092103827872912862930047032391734439796534302560512742030066798473305401477;% +\XINT_tmpa 6 5 10000115129917389509449561379274639104559958866285946533811801963402821672829477;% +\XINT_tmpa 6 6 10000138156059925697548091583969382297005329013199894805417325991907389143667949;% +\XINT_tmpa 6 7 10000161182255481599240782265392507269793911275470978276390154932321984777772469;% +\XINT_tmpa 6 8 10000184208504057336610176132939223090407041937631374389422968832433217547184883;% +\XINT_tmpa 6 9 10000207234805653031739097001771331138303016031686764989867510425362339583809842;% +\def\XINT_tmpa#1#2#3#4;% + {\expandafter\edef\csname XINT_c_#1_#2_inv\endcsname{\XINTinFloat[\XINTdigits+5]{#3#4[-80]}}% + \expandafter\edef\csname XINT_c_#1_#2_inv_x\endcsname{\XINTinFloat[\XINTdigits+10]{#3#4[-80]}}% + }% +\XINT_tmpa 1 1 79432823472428150206591828283638793258896063175548433209232392931695569719148754;% +\XINT_tmpa 1 2 63095734448019324943436013662234386467294525718822872452772952883349494329768681;% +\XINT_tmpa 1 3 50118723362727228500155418688494576806047198983281926392969745588901125568883069;% +\XINT_tmpa 1 4 39810717055349725077025230508775204348767703729738044686528414806022485386945804;% +\XINT_tmpa 1 5 31622776601683793319988935444327185337195551393252168268575048527925944386392382;% +\XINT_tmpa 1 6 25118864315095801110850320677993273941585181007824754286798884209082432477235613;% +\XINT_tmpa 1 7 19952623149688796013524553967395355579862743154053460992299136670049309106980490;% +\XINT_tmpa 1 8 15848931924611134852021013733915070132694421338250390683162968123166568636684540;% +\XINT_tmpa 1 9 12589254117941672104239541063958006060936174094669310691079230195266476157825020;% +\XINT_tmpa 2 1 97723722095581068269707600696156123863427170069897801526639004097175507042084888;% +\XINT_tmpa 2 2 95499258602143594972395937950148401513087269708053320302465127242741421479104601;% +\XINT_tmpa 2 3 93325430079699104353209661168364840720225485199736026149257155811788093771138272;% +\XINT_tmpa 2 4 91201083935590974212095940791872333509323858755696109214760361851771695487999100;% +\XINT_tmpa 2 5 89125093813374552995310868107829696398587478293004836994794349506746891059190135;% +\XINT_tmpa 2 6 87096358995608063751082742520877054774747128501284704090761796673224328569285177;% +\XINT_tmpa 2 7 85113803820237646781712631859248682794521725442067093899553745086385146367436049;% +\XINT_tmpa 2 8 83176377110267100616669140273840405263880767161887438462740286611379995442629360;% +\XINT_tmpa 2 9 81283051616409924654127879773132980187568851100062454636602325121954484722491710;% +\XINT_tmpa 3 1 99770006382255331719442194285376231055211861394573154624878230890945476532432225;% +\XINT_tmpa 3 2 99540541735152696244806147089510943107144177264574823668081299845609359857038344;% +\XINT_tmpa 3 3 99311604842093377157642607688515474663519162181123336122073822476734517364853150;% +\XINT_tmpa 3 4 99083194489276757440828314388392035249938006860819409201135652190410238171119287;% +\XINT_tmpa 3 5 98855309465693884028524792978202683686410726723055209558576898759166522286083202;% +\XINT_tmpa 3 6 98627948563121047157261523093421290951784086730437722805070296627452491731402556;% +\XINT_tmpa 3 7 98401110576113374484101831088824192144756194053451911515003663381199842081528019;% +\XINT_tmpa 3 8 98174794301998439937928161622872240632362817134775142288598128693131032909278350;% +\XINT_tmpa 3 9 97948998540869887269961493687844910565420716785032030061251916654655049965062649;% +\XINT_tmpa 4 1 99976976799815658635141604638981297541396466984477711459083930684685186989697929;% +\XINT_tmpa 4 2 99953958900308784552845777251512089759003230012954649234748668826546533498169555;% +\XINT_tmpa 4 3 99930946300258992168693777702512591351888960684418033717545524043693899420866954;% +\XINT_tmpa 4 4 99907938998446176870082987427724649318531547584410414997787083472394558389284098;% +\XINT_tmpa 4 5 99884936993650514951538205746462968844845952521633937925370747725933629958238429;% +\XINT_tmpa 4 6 99861940284652463550037839584112909891259691850983307437097305856727153967481065;% +\XINT_tmpa 4 7 99838948870232760580354983175435314251655958968480344701699631967048474751069525;% +\XINT_tmpa 4 8 99815962749172424670413384320528274471550942114263604264788586703624513163664479;% +\XINT_tmpa 4 9 99792981920252755096658293766085025870392854106037465990011216356523334125368417;% +\XINT_tmpa 5 1 99997697441416293040019992468837639003787989306240470048763511538639048400765328;% +\XINT_tmpa 5 2 99995394935850346394065999228750187791584034668237852053859761641089829514536011;% +\XINT_tmpa 5 3 99993092483300939297147020491645017932348508508297743745039515152378182676736684;% +\XINT_tmpa 5 4 99990790083766851012380885556584619169980753943113396677545915245611923361705686;% +\XINT_tmpa 5 5 99988487737246860830993605587529673614422529030613405900998412734419982883669223;% +\XINT_tmpa 5 6 99986185443739748072318726405984801565268578044798475766025647187221659622450651;% +\XINT_tmpa 5 7 99983883203244292083796681298546635825139453823571398432959235283529730820181019;% +\XINT_tmpa 5 8 99981581015759272240974143839353881367972777961073357987943600347058023396510672;% +\XINT_tmpa 5 9 99979278881283467947503380727439017235290006415950636109257677645557027950744160;% +\XINT_tmpa 6 1 99999769741755795297487775997495948154386159348543852707438213487494386559762090;% +\XINT_tmpa 6 2 99999539484041779185217876175552674518572114763104546143049036309870762496098218;% +\XINT_tmpa 6 3 99999309226857950442387361668529812394860404492721699528707852590634886516924591;% +\XINT_tmpa 6 4 99999078970204307848196104610199226516866442484686906173860803560254163287393673;% +\XINT_tmpa 6 5 99998848714080850181846788127272455158309917012010320554498356105168896062430977;% +\XINT_tmpa 6 6 99998618458487576222544906332928167145404344730731751204389698696345970645201375;% +\XINT_tmpa 6 7 99998388203424484749498764320339633772810463403640242228131015918494067456365331;% +\XINT_tmpa 6 8 99998157948891574541919478156202215623119146605983303201215215949834619332550929;% +\XINT_tmpa 6 9 99997927694888844379020974874260864289829523807763942234420930258187873904191138;% +\edef\XINT_c_logten + {\XINTinFloat[\XINTdigits+4] + {23025850929940456840179914546843642076011014886287729760333279009675726096773525[-79]}}% +\edef\XINT_c_oneoverlogten + {\XINTinFloat[\XINTdigits+4] + {43429448190325182765112891891660508229439700580366656611445378316586464920887077[-80]}}% +\edef\XINT_c_oneoverlogten_xx + {\XINTinFloat[\XINTdigits+14] + {43429448190325182765112891891660508229439700580366656611445378316586464920887077[-80]}}% +\def\XINTinFloatExp{\romannumeral0\XINTinfloatexp}% +\def\XINT_tmpa#1.{% +\def\XINTinfloatexp##1% +{% + \XINTinfloatpowten + {\xintMul{\XINT_c_oneoverlogten_xx}{\XINTinFloatS[#1]{##1}}}% +}% +}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+14.% +\def\XINTinFloatPowTen{\romannumeral0\XINTinfloatpowten}% +\def\XINT_tmpa#1.{% +\def\XINTinfloatpowten##1% +{% + \expandafter\XINT_powten_fork + \romannumeral0\xintiround{#1}{##1}[-#1]% +}% +}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+4.% +\def\XINT_powten_fork#1% +{% + \xint_UDzerominusfork + #1-\XINT_powten_zero + 0#1\XINT_powten_neg + 0-\XINT_powten_pos + \krof #1% +}% +\def\XINT_powten_zero #1[#2]{ 1[0]}% +\def\XINT_powten_pos#1[#2]% +{% + \expandafter\XINT_powten_pos_a\romannumeral0\xintround{6}{#1[#2]}#1[#2]% +}% +\def\XINT_tmpa #1.#2.{% +\def\XINT_powten_pos_a ##1.##2##3##4##5##6##7##8[##9]% +{% + \expandafter\XINT_infloate + \romannumeral0\XINTinfloat[\XINTdigits]{% + \xintMul{\csname XINT_c_1_##2\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_2_##3\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_3_##4\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_4_##5\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_5_##6\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_6_##7\endcsname}{% + \xintAdd{1[0]}{% + \expandafter\XINT_Exp_series_a_ii + \romannumeral0\XINTinfloat[#2]{% + \xintMul{\XINT_c_logten}% + {\xintAdd{-##1.##2##3##4##5##6##7}{##8[##9]}}% + }% + \xint: + }% + }}}}}}}}}}}}{##1}% +}}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits+5\expandafter.% + \the\numexpr\XINTdigits-1.% +\def\XINT_powten_neg#1[#2]% +{% + \expandafter\XINT_powten_neg_a\romannumeral0\xintround{6}{#1[#2]}#1[#2]% +}% +\def\XINT_tmpa #1.#2.{% +\def\XINT_powten_neg_a -##1.##2##3##4##5##6##7##8[##9]% +{% + \expandafter\XINT_infloate + \romannumeral0\XINTinfloat[\XINTdigits]{% + \xintMul{\csname XINT_c_1_##2_inv\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_2_##3_inv\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_3_##4_inv\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_4_##5_inv\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_5_##6_inv\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_6_##7_inv\endcsname}{% + \xintAdd{1[0]}{% + \expandafter\XINT_Exp_series_a_ii + \romannumeral0\XINTinfloat[#2]{% + \xintMul{\XINT_c_logten}% + {\xintAdd{##1.##2##3##4##5##6##7}{##8[##9]}}% + }% + \xint: + }% + }}}}}}}}}}}}{-##1}% +}}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits+5\expandafter.% + \the\numexpr\XINTdigits-1.% +\def\XINT_tmpa#1.#2.{% +\def\XINT_Exp_series_a_ii##1\xint: +{% + \expandafter\XINT_Exp_series_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_Exp_series_b##1[##2]\xint: +{% + \expandafter\XINT_Exp_series_c_ + \romannumeral0\xintadd{1}{\xintHalf{##10}[##2-1]}\xint: +}% +\def\XINT_Exp_series_c_##1\xint:##2\xint: +{% + \XINTinFloat[#2]{\xintMul{##1}{##2}}% }% -\let\XINT_flexpr_func_pow\XINT_expr_func_pow -\catcode`\* 11 -\def\poormanloghack** +}% +\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-6\expandafter.% + \the\numexpr\XINTdigits-1.% +\ifnum\XINTdigits>15 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_Exp_series_a_ii##1\xint: +{% + \expandafter\XINT_Exp_series_a_iii + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_Exp_series_a_iii##1\xint: +{% + \expandafter\XINT_Exp_series_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_Exp_series_b##1[##2]\xint: +{% + \expandafter\XINT_Exp_series_c_i + \romannumeral0\xintadd{#3}{##1/6[##2]}\xint: +}% +\def\XINT_Exp_series_c_i##1\xint:##2\xint: {% - \def\XINT_tmpa ##1##2##3##4##5##6% + \expandafter\XINT_Exp_series_c_ + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-13\expandafter.% + \the\numexpr\XINTdigits-6.% + {5[-1]}.% + {1[0]}.% +\fi +\ifnum\XINTdigits>21 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_Exp_series_a_iii##1\xint: +{% + \expandafter\XINT_Exp_series_a_iv + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_Exp_series_a_iv##1\xint: +{% + \expandafter\XINT_Exp_series_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_Exp_series_b##1[##2]\xint: +{% + \expandafter\XINT_Exp_series_c_ii + \romannumeral0\xintadd{#3}{##1/24[##2]}\xint: +}% +\def\XINT_Exp_series_c_ii##1\xint:##2\xint: +{% + \expandafter\XINT_Exp_series_c_i + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-19\expandafter.% + \the\numexpr\XINTdigits-13\expandafter.% + \romannumeral0\XINTinfloat[\XINTdigits-13]{1/6[0]}.% + {5[-1]}.% +\fi +\ifnum\XINTdigits>28 +\def\XINT_tmpa #1 #2 #3 #4 #5 #6 #7 % +{% + \def\XINT_tmpb ##1##2##3##4% {% - \def ##3####1% \XINT_expr_op_<op> + \def\XINT_tmpc####1.####2.####3.####4.% {% - \expanded{\unexpanded{##4{####1}}\expandafter}% - \romannumeral`&&@\expandafter##2\romannumeral`&&@\XINT_expr_getnext + \def##2########1\xint: + {% + \expandafter##1% + \romannumeral0\XINTinfloatS[####2]{########1}\xint:########1\xint: + }% + \def##1########1\xint: + {% + \expandafter\XINT_Exp_series_b + \romannumeral0\XINTinfloatS[####1]{########1}\xint:########1\xint: + }% + \def\XINT_Exp_series_b########1[########2]\xint: + {% + \expandafter##3% + \romannumeral0\xintadd{####3}{########1/#5[########2]}\xint: + }% + \def##3########1\xint:########2\xint: + {% + \expandafter##4% + \romannumeral0\xintadd{####4}{\XINTinFloat[####2]{\xintMul{########1}{########2}}}\xint: + }% }% - \def##2####1% \XINT_expr_check-_<op> - {% + }% + \expandafter\XINT_tmpb + \csname XINT_Exp_series_a_\romannumeral\numexpr#1\expandafter\endcsname + \csname XINT_Exp_series_a_\romannumeral\numexpr#1-1\expandafter\endcsname + \csname XINT_Exp_series_c_\romannumeral\numexpr#1-2\expandafter\endcsname + \csname XINT_Exp_series_c_\romannumeral\numexpr#1-3\endcsname + \expandafter\XINT_tmpc + \the\numexpr\XINTdigits-#2\expandafter.% + \the\numexpr\XINTdigits-#3\expandafter.\expanded{% + \XINTinFloat[\XINTdigits-#3]{1/#6[0]}.% + \XINTinFloat[\XINTdigits-#4]{1/#7[0]}.% + }% +}% +\XINT_tmpa 5 26 19 13 120 24 6 %<-- keep space +\ifnum\XINTdigits>35 \XINT_tmpa 6 33 26 19 720 120 24 \fi +\ifnum\XINTdigits>42 \XINT_tmpa 7 40 33 26 5040 720 120 \fi +\ifnum\XINTdigits>48 \XINT_tmpa 8 46 40 33 40320 5040 720 \fi +\ifnum\XINTdigits>55 \XINT_tmpa 9 53 46 40 362880 40320 5040 \fi +\fi +\def\XINT_tmpa#1.{% +\def\XINTinFloatLog{\romannumeral0\XINTinfloatlog}% +\def\XINTinfloatlog +{% + \expandafter\XINT_log_out + \romannumeral0\expandafter\XINT_logten_a + \romannumeral0\XINTinfloat[#1]%{##1} +}% +\def\XINT_log_out ##1\xint:##2\xint: +{% + \XINTinfloat[#1]% + {\xintAdd{\xintMul{\XINT_c_logten}{##1}}{##2}}% +}% +\def\XINTinFloatLogTen{\romannumeral0\XINTinfloatlogten}% +\def\XINTinfloatlogten +{% + \expandafter\XINT_logten_out + \romannumeral0\expandafter\XINT_logten_a + \romannumeral0\XINTinfloat[#1]%{##1} +}% +\def\XINT_logten_out ##1\xint:##2\xint: +{% + \XINTinfloat[#1]% + {\xintAdd{##1}{\xintMul{\XINT_c_oneoverlogten}{##2}}}% +}% +}\expandafter\XINT_tmpa\the\numexpr\XINTdigits.% +\def\XINTinFloatLogTen_xdgout%#1[#2] +{% + \romannumeral0\expandafter\XINT_logten_xdgout\romannumeral0\XINT_logten_a +}% +\def\XINT_logten_xdgout #1\xint:#2\xint: +{% + \xintadd{#1}{\xintMul{\XINT_c_oneoverlogten_xx}{#2}}% +}% +\def\XINT_logten_a#1[#2]% +{% + \expandafter\XINT_logten_b + \romannumeral0\XINTinfloat[9]{#1[#2]}#1[#2]% +}% +\def\XINT_logten_b#1[#2]% +{% + \expandafter\XINT_logten_c + \romannumeral0\xintround{6}% + {\xintiiAdd{\xintDSx{-9}{\the\numexpr#2+8\relax}}% + {\the\numexpr\PML@#1.\relax}% + [-9]}% + \xint: +}% +\def\XINT_logten_c #1#2% +{% + \xint_gob_til_xint:#2\XINT_logten_IV\xint: + \XINT_logten_d #1#2% +}% +\def\XINT_logten_IV\xint:\XINT_logten_d0{\XINT_logten_f_III}% +\def\XINT_logten_d #1.#2\xint: +{% + \ifcase + \ifnum#1=\xint_c_ + \ifnum #2>100000 \xint_c_i\else + \ifnum #2>\xint_c_ \xint_c_ii\else \xint_c_iii\fi\fi + \else + \ifnum#2>\xint_c_ \xint_c_i\else \xint_c_\fi + \fi + \expandafter\XINT_logten_f_Isp + \or\expandafter\XINT_logten_f_I + \or\expandafter\XINT_logten_f_II + \else\expandafter\XINT_logten_f_III + \fi + #1.#2\xint: +}% +\def\XINT_logten_f_I#1% +{% \xint_UDsignfork - ####1{\expandafter##2\romannumeral`&&@##1}% - -{##5####1}% - \krof + #1\XINT_logten_f_I_neg + -\XINT_logten_f_I_pos + \krof #1% +}% +\def\XINT_logten_f_II#1% +{% + \xint_UDsignfork + #1\XINT_logten_f_II_neg + -\XINT_logten_f_II_pos + \krof #1% +}% +\def\XINT_tmpa#1.{% +\def\XINT_logten_f_Isp##1.000000\xint:##2[##3]% +{% + {##1[0]}\xint: + {\expandafter\XINT_LogTen_serI_a_i + \romannumeral0\XINTinfloatS[#1]{\xintAdd{##2[##3-##1]}{-1[0]}}% + \xint: + }\xint: +}% +}\expandafter\XINT_tmpa\the\numexpr\XINTdigits-2.% +\def\XINT_tmpa#1.{% +\def\XINT_logten_f_III##1\xint:##2[##3]% +{% + {0[0]}\xint: + {\expandafter\XINT_LogTen_serIII_a_ii + \romannumeral0\XINTinfloatS[#1]{\xintAdd{##2[##3]}{-1[0]}}% + \xint: + }\xint: +}}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+4.% +\def\XINT_tmpa#1.#2.{% +\def\XINT_logten_f_I_pos##1.##2##3##4##5##6##7\xint:##8[##9]% +{% + {\the\numexpr##1##2##3##4##5##6##7[-6]}\xint: + {\expandafter\XINT_LogTen_serI_a_i + \romannumeral0\XINTinfloat[#2]% + {\xintAdd{-1[0]}% + {\xintMul{\csname XINT_c_1_##2_inv\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_2_##3_inv\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_3_##4_inv\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_4_##5_inv\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_5_##6_inv\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_6_##7_inv\endcsname} + {##8[##9-##1]}% + }}}}}}}}}}% + }% + }\xint: + }\xint: +}% +\def\XINT_logten_f_I_neg##1.##2##3##4##5##6##7\xint:##8[##9]% +{% + {\the\numexpr##1##2##3##4##5##6##7[-6]}\xint: + {\expandafter\XINT_LogTen_serI_a_i + \romannumeral0\XINTinfloat[#2]% + {\xintAdd{-1[0]}% + {\xintMul{\csname XINT_c_1_##2\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_2_##3\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_3_##4\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_4_##5\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_5_##6\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_6_##7\endcsname} + {##8[##9-##1]}% + }}}}}}}}}}% + }% + }\xint: + }\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits+5\expandafter.\the\numexpr\XINTdigits-1.% +\def\XINT_tmpa#1.#2.{% +\def\XINT_logten_f_II_pos0.##1##2##3##4##5##6\xint:##7[##8]% +{% + {\the\numexpr##1##2##3##4##5##6[-6]}\xint: + {\expandafter\XINT_LogTen_serII_a_ii + \romannumeral0\XINTinfloat[#2]% + {\xintAdd{-1[0]}% + {\xintMul{\csname XINT_c_1_##1_inv_x\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_2_##2_inv_x\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_3_##3_inv_x\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_4_##4_inv_x\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_5_##5_inv_x\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_6_##6_inv_x\endcsname} + {##7[##8]}% + }}}}}}}}}}% + }% + }\xint: + }\xint: +}% +\def\XINT_logten_f_II_neg-0.##1##2##3##4##5##6\xint:##7[##8]% +{% + {\the\numexpr-##1##2##3##4##5##6[-6]}\xint: + {\expandafter\XINT_LogTen_serII_a_ii + \romannumeral0\XINTinfloat[#2]% + {\xintAdd{-1[0]}% + {\xintMul{\csname XINT_c_1_##1_x\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_2_##2_x\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_3_##3_x\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_4_##4_x\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_5_##5_x\endcsname}{% + \XINTinFloat[#1]{% + \xintMul{\csname XINT_c_6_##6_x\endcsname} + {##7[##8]}% + }}}}}}}}}}% + }% + }\xint: + }\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits+10\expandafter.\the\numexpr\XINTdigits+4.% +\def\XINT_LogTen_serI_a_i#1\xint:{#1}% +\ifnum\XINTdigits>9 +\def\XINT_tmpa#1.#2.{% +\def\XINT_LogTen_serI_a_i##1\xint: +{% + \expandafter\XINT_LogTen_serI_a_ii + \romannumeral0\XINTinfloatS[#2]{##1}\xint: +}% +\def\XINT_LogTen_serI_a_ii##1\xint: +{% + \expandafter\XINT_LogTen_serI_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serI_c_ + \romannumeral0\xintadd{1}{\xintiiOpp\xintHalf{##10}[##2-1]}\xint: +}% +\def\XINT_LogTen_serI_c_##1\xint:##2\xint: +{% + \XINTinFloat[#2]{\xintMul{##1}{##2}}% +}% +}% +\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-7\expandafter.% + \the\numexpr\XINTdigits-1.% +\fi +\ifnum\XINTdigits>15 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serI_a_ii##1\xint: +{% + \expandafter\XINT_LogTen_serI_a_iii + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_a_iii##1\xint: +{% + \expandafter\XINT_LogTen_serI_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serI_c_i + \romannumeral0\xintadd{#3}{##1/3[##2]}\xint: +}% +\def\XINT_LogTen_serI_c_i##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serI_c_ + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-13\expandafter.% + \the\numexpr\XINTdigits-7.% + {-5[-1]}.% + {1[0]}.% +\fi +\ifnum\XINTdigits>21 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serI_a_iii##1\xint: +{% + \expandafter\XINT_LogTen_serI_a_iv + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_a_iv##1\xint: +{% + \expandafter\XINT_LogTen_serI_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serI_c_ii + \romannumeral0\xintadd{#3}{\xintiiMul{-25}{##1}[##2-2]}\xint: +}% +\def\XINT_LogTen_serI_c_ii##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serI_c_i + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-19\expandafter.% + \the\numexpr\XINTdigits-13\expandafter.% + \romannumeral0\XINTinfloat[\XINTdigits-13]{1/3[0]}.% + {-5[-1]}.% +\fi +\ifnum\XINTdigits>27 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serI_a_iv##1\xint: +{% + \expandafter\XINT_LogTen_serI_a_v + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_a_v##1\xint: +{% + \expandafter\XINT_LogTen_serI_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serI_c_iii + \romannumeral0\xintadd{#3}{\xintDouble{##1}[##2-1]}\xint: +}% +\def\XINT_LogTen_serI_c_iii##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serI_c_ii + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-25\expandafter.% + \the\numexpr\XINTdigits-19\expandafter.\expanded{% + {-25[-2]}.% + \XINTinFloat[\XINTdigits-13]{1/3[0]}.% }% - \def##5####1####2% \XINT_expr_checkp_<op> - {% - \ifnum ####1>\XINT_expr_precedence_** - \expandafter##5% - \romannumeral`&&@\csname XINT_##6_op_####2\expandafter\endcsname - \else - \expandafter ####1\expandafter ####2% - \fi +\fi +\ifnum\XINTdigits>33 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serI_a_v##1\xint: +{% + \expandafter\XINT_LogTen_serI_a_vi + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_a_vi##1\xint: +{% + \expandafter\XINT_LogTen_serI_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serI_c_iv + \romannumeral0\xintadd{#3}{\xintiiOpp##1/6[##2]}\xint: +}% +\def\XINT_LogTen_serI_c_iv##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serI_c_iii + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-31\expandafter.% + \the\numexpr\XINTdigits-25.% + {2[-1]}.% + {-25[-2]}.% +\fi +\ifnum\XINTdigits>39 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serI_a_vi##1\xint: +{% + \expandafter\XINT_LogTen_serI_a_vii + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_a_vii##1\xint: +{% + \expandafter\XINT_LogTen_serI_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serI_c_v + \romannumeral0\xintadd{#3}{##1/7[##2]}\xint: +}% +\def\XINT_LogTen_serI_c_v##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serI_c_iv + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-37\expandafter.% + \the\numexpr\XINTdigits-31\expandafter.% + \romannumeral0\XINTinfloatS[\XINTdigits-31]{-1/6[0]}.% + {2[-1]}.% +\fi +\ifnum\XINTdigits>45 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serI_a_vii##1\xint: +{% + \expandafter\XINT_LogTen_serI_a_viii + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_a_viii##1\xint: +{% + \expandafter\XINT_LogTen_serI_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serI_c_vi + \romannumeral0\xintadd{#3}{\xintiiMul{-125}{##1}[##2-3]}\xint: +}% +\def\XINT_LogTen_serI_c_vi##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serI_c_v + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-43\expandafter.% + \the\numexpr\XINTdigits-37\expandafter.\expanded{% + \XINTinFloat[\XINTdigits-37]{1/7[0]}.% + \XINTinFloat[\XINTdigits-31]{-1/6[0]}.% }% - }% - \expandafter\XINT_tmpa - \csname XINT_expr_op_-ix\expandafter\endcsname - \csname XINT_expr_check-_**\endcsname - \XINT_expr_op_** - \XINT_expr_exec_** - \XINT_expr_checkp_** {expr}% - \expandafter\XINT_tmpa - \csname XINT_flexpr_op_-ix\expandafter\endcsname - \csname XINT_flexpr_check-_**\endcsname - \XINT_flexpr_op_** - \XINT_flexpr_exec_** - \XINT_flexpr_checkp_** {flexpr}% - \def\XINT_expr_exec_** ##1##2##3##4% \XINT_expr_exec_<op> - {% - \expandafter##2\expandafter##3\expandafter{% - \romannumeral`&&@\XINT:NEhook:f:one:from:two - {\romannumeral`&&@\PoorManPower##1##4}}% +\fi +\ifnum\XINTdigits>51 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serI_a_viii##1\xint: +{% + \expandafter\XINT_LogTen_serI_a_ix + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_a_ix##1\xint: +{% + \expandafter\XINT_LogTen_serI_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serI_c_vii + \romannumeral0\xintadd{#3}{##1/9[##2]}\xint: +}% +\def\XINT_LogTen_serI_c_vii##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serI_c_vi + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-49\expandafter.% + \the\numexpr\XINTdigits-43\expandafter.\expanded{% + {-125[-3]}.% + \XINTinFloat[\XINTdigits-37]{1/7[0]}.% }% - \let\XINT_flexpr_exec_**\XINT_expr_exec_** +\fi +\ifnum\XINTdigits>57 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serI_a_ix##1\xint: +{% + \expandafter\XINT_LogTen_serI_a_x + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: }% -\def\poormanloghack^ +\def\XINT_LogTen_serI_a_x##1\xint: {% - \def\XINT_tmpa ##1##2##3##4##5##6% - {% - \def ##3####1% \XINT_expr_op_<op> - {% - \expanded{\unexpanded{##4{####1}}\expandafter}% - \romannumeral`&&@\expandafter##2\romannumeral`&&@\XINT_expr_getnext + \expandafter\XINT_LogTen_serI_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serI_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serI_c_viii + \romannumeral0\xintadd{#3}{\xintiiOpp##1[##2-1]}\xint: +}% +\def\XINT_LogTen_serI_c_viii##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serI_c_vii + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-55\expandafter.% + \the\numexpr\XINTdigits-49\expandafter.% + \romannumeral0\XINTinfloat[\XINTdigits-49]{1/9[0]}.% + {-125[-3]}.% +\fi +\def\XINT_tmpa#1.#2.{% +\def\XINT_LogTen_serII_a_ii##1\xint: +{% + \expandafter\XINT_LogTen_serII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_b#1[#2]\xint: +{% + \expandafter\XINT_LogTen_serII_c_ + \romannumeral0\xintadd{1}{\xintiiOpp\xintHalf{#10}[#2-1]}\xint: +}% +\def\XINT_LogTen_serII_c_##1\xint:##2\xint: +{% + \XINTinFloat[#2]{\xintMul{##1}{##2}}% +}% +}% +\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-2\expandafter.% + \the\numexpr\XINTdigits+4.% +\ifnum\XINTdigits>10 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serII_a_ii##1\xint: +{% + \expandafter\XINT_LogTen_serII_a_iii + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_a_iii##1\xint: +{% + \expandafter\XINT_LogTen_serII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serII_c_i + \romannumeral0\xintadd{#3}{##1/3[##2]}\xint: +}% +\def\XINT_LogTen_serII_c_i##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serII_c_ + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-8\expandafter.% + \the\numexpr\XINTdigits-2.% + {-5[-1]}.% + {1[0]}.% +\fi +\ifnum\XINTdigits>16 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serII_a_iii##1\xint: +{% + \expandafter\XINT_LogTen_serII_a_iv + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_a_iv##1\xint: +{% + \expandafter\XINT_LogTen_serII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serII_c_ii + \romannumeral0\xintadd{#3}{\xintiiMul{-25}{##1}[##2-2]}\xint: +}% +\def\XINT_LogTen_serII_c_ii##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serII_c_i + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-14\expandafter.% + \the\numexpr\XINTdigits-8\expandafter.% + \romannumeral0\XINTinfloat[\XINTdigits-8]{1/3[0]}.% + {-5[-1]}.% +\fi +\ifnum\XINTdigits>22 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serII_a_iv##1\xint: +{% + \expandafter\XINT_LogTen_serII_a_v + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_a_v##1\xint: +{% + \expandafter\XINT_LogTen_serII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serII_c_iii + \romannumeral0\xintadd{#3}{\xintDouble{##1}[##2-1]}\xint: +}% +\def\XINT_LogTen_serII_c_iii##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serII_c_ii + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-20\expandafter.% + \the\numexpr\XINTdigits-14\expandafter.\expanded{% + {-25[-2]}.% + \XINTinFloat[\XINTdigits-8]{1/3[0]}.% }% - \def##2####1% \XINT_expr_check-_<op> - {% - \xint_UDsignfork - ####1{\expandafter##2\romannumeral`&&@##1}% - -{##5####1}% - \krof +\fi +\ifnum\XINTdigits>28 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serII_a_v##1\xint: +{% + \expandafter\XINT_LogTen_serII_a_vi + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_a_vi##1\xint: +{% + \expandafter\XINT_LogTen_serII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serII_c_iv + \romannumeral0\xintadd{#3}{\xintiiOpp##1/6[##2]}\xint: +}% +\def\XINT_LogTen_serII_c_iv##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serII_c_iii + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-26\expandafter.% + \the\numexpr\XINTdigits-20.% + {2[-1]}.% + {-25[-2]}.% +\fi +\ifnum\XINTdigits>34 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serII_a_vi##1\xint: +{% + \expandafter\XINT_LogTen_serII_a_vii + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_a_vii##1\xint: +{% + \expandafter\XINT_LogTen_serII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serII_c_v + \romannumeral0\xintadd{#3}{##1/7[##2]}\xint: +}% +\def\XINT_LogTen_serII_c_v##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serII_c_iv + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-32\expandafter.% + \the\numexpr\XINTdigits-26\expandafter.% + \romannumeral0\XINTinfloatS[\XINTdigits-26]{-1/6[0]}.% + {2[-1]}.% +\fi +\ifnum\XINTdigits>40 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serII_a_vii##1\xint: +{% + \expandafter\XINT_LogTen_serII_a_viii + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_a_viii##1\xint: +{% + \expandafter\XINT_LogTen_serII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serII_c_vi + \romannumeral0\xintadd{#3}{\xintiiMul{-125}{##1}[##2-3]}\xint: +}% +\def\XINT_LogTen_serII_c_vi##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serII_c_v + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-38\expandafter.% + \the\numexpr\XINTdigits-32\expandafter.\expanded{% + \XINTinFloat[\XINTdigits-32]{1/7[0]}.% + \XINTinFloat[\XINTdigits-26]{-1/6[0]}.% }% - \def##5####1####2% \XINT_expr_checkp_<op> - {% - \ifnum ####1>\XINT_expr_precedence_^ - \expandafter##5% - \romannumeral`&&@\csname XINT_##6_op_####2\expandafter\endcsname - \else - \expandafter ####1\expandafter ####2% - \fi +\fi +\ifnum\XINTdigits>46 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serII_a_viii##1\xint: +{% + \expandafter\XINT_LogTen_serII_a_ix + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_a_ix##1\xint: +{% + \expandafter\XINT_LogTen_serII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serII_c_vii + \romannumeral0\xintadd{#3}{##1/9[##2]}\xint: +}% +\def\XINT_LogTen_serII_c_vii##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serII_c_vi + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-44\expandafter.% + \the\numexpr\XINTdigits-38\expandafter.\expanded{% + {-125[-3]}.% + \XINTinFloat[\XINTdigits-32]{1/7[0]}.% }% - }% - \expandafter\XINT_tmpa - \csname XINT_expr_op_-ix\expandafter\endcsname - \csname XINT_expr_check-_^\endcsname - \XINT_expr_op_^ - \XINT_expr_exec_^ - \XINT_expr_checkp_^ {expr}% - \expandafter\XINT_tmpa - \csname XINT_flexpr_op_-ix\expandafter\endcsname - \csname XINT_flexpr_check-_^\endcsname - \XINT_flexpr_op_^ - \XINT_flexpr_exec_^ - \XINT_flexpr_checkp_^ {flexpr}% - \def\XINT_expr_exec_^ ##1##2##3##4% \XINT_expr_exec_<op> - {% - \expandafter##2\expandafter##3\expandafter{% - \romannumeral`&&@\XINT:NEhook:f:one:from:two - {\romannumeral`&&@\PoorManPower##1##4}}% +\fi +\ifnum\XINTdigits>52 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serII_a_ix##1\xint: +{% + \expandafter\XINT_LogTen_serII_a_x + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_a_x##1\xint: +{% + \expandafter\XINT_LogTen_serII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serII_c_viii + \romannumeral0\xintadd{#3}{\xintiiOpp##1[##2-1]}\xint: +}% +\def\XINT_LogTen_serII_c_viii##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serII_c_vii + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-50\expandafter.% + \the\numexpr\XINTdigits-44\expandafter.% + \romannumeral0\XINTinfloat[\XINTdigits-44]{1/9[0]}.% + {-125[-3]}.% +\fi +\ifnum\XINTdigits>58 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serII_a_x##1\xint: +{% + \expandafter\XINT_LogTen_serII_a_xi + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_a_xi##1\xint: +{% + \expandafter\XINT_LogTen_serII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serII_c_ix + \romannumeral0\xintadd{#3}{##1/11[##2]}\xint: +}% +\def\XINT_LogTen_serII_c_ix##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serII_c_viii + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-56\expandafter.% + \the\numexpr\XINTdigits-50\expandafter.\expanded{% + {-1[-1]}.% + \XINTinFloat[\XINTdigits-44]{1/9[0]}.% }% - \let\XINT_flexpr_exec_^\XINT_expr_exec_^ +\fi +\def\XINT_tmpa#1.#2.{% +\def\XINT_LogTen_serIII_a_ii##1\xint: +{% + \expandafter\XINT_LogTen_serIII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: }% -\def\poormanloghack#1{\csname poormanloghack#1\endcsname}% +\def\XINT_LogTen_serIII_b#1[#2]\xint: +{% + \expandafter\XINT_LogTen_serIII_c_ + \romannumeral0\xintadd{1}{\xintiiOpp\xintHalf{#10}[#2-1]}\xint: +}% +\def\XINT_LogTen_serIII_c_##1\xint:##2\xint: +{% + \XINTinFloat[#2]{\xintMul{##1}{##2}}% +}% +}% +\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-1\expandafter.% + \the\numexpr\XINTdigits+4.% +\ifnum\XINTdigits>9 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serIII_a_ii##1\xint: +{% + \expandafter\XINT_LogTen_serIII_a_iii + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_a_iii##1\xint: +{% + \expandafter\XINT_LogTen_serIII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serIII_c_i + \romannumeral0\xintadd{#3}{##1/3[##2]}\xint: +}% +\def\XINT_LogTen_serIII_c_i##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serIII_c_ + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-7\expandafter.% + \the\numexpr\XINTdigits-1.% + {-5[-1]}.% + {1[0]}.% +\fi +\ifnum\XINTdigits>15 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serIII_a_iii##1\xint: +{% + \expandafter\XINT_LogTen_serIII_a_iv + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_a_iv##1\xint: +{% + \expandafter\XINT_LogTen_serIII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serIII_c_ii + \romannumeral0\xintadd{#3}{\xintiiMul{-25}{##1}[##2-2]}\xint: +}% +\def\XINT_LogTen_serIII_c_ii##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serIII_c_i + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-13\expandafter.% + \the\numexpr\XINTdigits-7\expandafter.% + \romannumeral0\XINTinfloat[\XINTdigits-7]{1/3[0]}.% + {-5[-1]}.% +\fi +\ifnum\XINTdigits>21 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serIII_a_iv##1\xint: +{% + \expandafter\XINT_LogTen_serIII_a_v + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_a_v##1\xint: +{% + \expandafter\XINT_LogTen_serIII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serIII_c_iii + \romannumeral0\xintadd{#3}{\xintDouble{##1}[##2-1]}\xint: +}% +\def\XINT_LogTen_serIII_c_iii##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serIII_c_ii + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-19\expandafter.% + \the\numexpr\XINTdigits-13\expandafter.\expanded{% + {-25[-2]}.% + \XINTinFloat[\XINTdigits-7]{1/3[0]}.% + }% +\fi +\ifnum\XINTdigits>27 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serIII_a_v##1\xint: +{% + \expandafter\XINT_LogTen_serIII_a_vi + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_a_vi##1\xint: +{% + \expandafter\XINT_LogTen_serIII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serIII_c_iv + \romannumeral0\xintadd{#3}{\xintiiOpp##1/6[##2]}\xint: +}% +\def\XINT_LogTen_serIII_c_iv##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serIII_c_iii + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-25\expandafter.% + \the\numexpr\XINTdigits-19.% + {2[-1]}.% + {-25[-2]}.% +\fi +\ifnum\XINTdigits>33 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serIII_a_vi##1\xint: +{% + \expandafter\XINT_LogTen_serIII_a_vii + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_a_vii##1\xint: +{% + \expandafter\XINT_LogTen_serIII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serIII_c_v + \romannumeral0\xintadd{#3}{##1/7[##2]}\xint: +}% +\def\XINT_LogTen_serIII_c_v##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serIII_c_iv + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-31\expandafter.% + \the\numexpr\XINTdigits-25\expandafter.% + \romannumeral0\XINTinfloatS[\XINTdigits-25]{-1/6[0]}.% + {2[-1]}.% +\fi +\ifnum\XINTdigits>39 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serIII_a_vii##1\xint: +{% + \expandafter\XINT_LogTen_serIII_a_viii + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_a_viii##1\xint: +{% + \expandafter\XINT_LogTen_serIII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serIII_c_vi + \romannumeral0\xintadd{#3}{\xintiiMul{-125}{##1}[##2-3]}\xint: +}% +\def\XINT_LogTen_serIII_c_vi##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serIII_c_v + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-37\expandafter.% + \the\numexpr\XINTdigits-31\expandafter.\expanded{% + \XINTinFloat[\XINTdigits-31]{1/7[0]}.% + \XINTinFloat[\XINTdigits-25]{-1/6[0]}.% + }% +\fi +\ifnum\XINTdigits>45 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serIII_a_viii##1\xint: +{% + \expandafter\XINT_LogTen_serIII_a_ix + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_a_ix##1\xint: +{% + \expandafter\XINT_LogTen_serIII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serIII_c_vii + \romannumeral0\xintadd{#3}{##1/9[##2]}\xint: +}% +\def\XINT_LogTen_serIII_c_vii##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serIII_c_vi + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-43\expandafter.% + \the\numexpr\XINTdigits-37\expandafter.\expanded{% + {-125[-3]}.% + \XINTinFloat[\XINTdigits-31]{1/7[0]}.% + }% +\fi +\ifnum\XINTdigits>51 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serIII_a_ix##1\xint: +{% + \expandafter\XINT_LogTen_serIII_a_x + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_a_x##1\xint: +{% + \expandafter\XINT_LogTen_serIII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serIII_c_viii + \romannumeral0\xintadd{#3}{\xintiiOpp##1[##2-1]}\xint: +}% +\def\XINT_LogTen_serIII_c_viii##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serIII_c_vii + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-49\expandafter.% + \the\numexpr\XINTdigits-43\expandafter.% + \romannumeral0\XINTinfloat[\XINTdigits-43]{1/9[0]}.% + {-125[-3]}.% +\fi +\ifnum\XINTdigits>57 +\def\XINT_tmpa#1.#2.#3.#4.{% +\def\XINT_LogTen_serIII_a_x##1\xint: +{% + \expandafter\XINT_LogTen_serIII_a_xi + \romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_a_xi##1\xint: +{% + \expandafter\XINT_LogTen_serIII_b + \romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_LogTen_serIII_b##1[##2]\xint: +{% + \expandafter\XINT_LogTen_serIII_c_ix + \romannumeral0\xintadd{#3}{##1/11[##2]}\xint: +}% +\def\XINT_LogTen_serIII_c_ix##1\xint:##2\xint: +{% + \expandafter\XINT_LogTen_serIII_c_viii + \romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{##1}{##2}}}\xint: +}% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits-55\expandafter.% + \the\numexpr\XINTdigits-49\expandafter.\expanded{% + {-1[-1]}.% + \XINTinFloat[\XINTdigits-43]{1/9[0]}.% + }% +\fi +\XINTendxintloginput% \endinput %% %% End of file `xintlog.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xintseries.sty b/Master/texmf-dist/tex/generic/xint/xintseries.sty index 0e5bddb2246..60b32512bf9 100644 --- a/Master/texmf-dist/tex/generic/xint/xintseries.sty +++ b/Master/texmf-dist/tex/generic/xint/xintseries.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle 1.4d 2021/03/29 +%% The xint bundle 1.4e 2021/05/05 %% Copyright (C) 2013-2021 by Jean-Francois Burnol %% xintseries: Expandable partial sums with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintseries}% - [2021/03/29 v1.4d Expandable partial sums with xint package (JFB)]% + [2021/05/05 v1.4e Expandable partial sums with xint package (JFB)]% \def\xintSeries {\romannumeral0\xintseries }% \def\xintseries #1#2% {% @@ -335,7 +335,7 @@ \else \xint_afterfi {\expandafter\XINT_flpowseries_loop_pre\expandafter - {\romannumeral0\XINTinfloatpow [#3]{#5}{#1}}% + {\romannumeral0\XINTinfloatpow_wopt[#3]{#5}{#1}}% {#1}{#5}{#2}{#4}{#3}% }% \fi @@ -345,7 +345,7 @@ \ifnum #4>#2 \else\XINT_flpowseries_dont_i \fi \expandafter\XINT_flpowseries_loop_i\expandafter {\the\numexpr #2+\xint_c_i\expandafter}\expandafter - {\romannumeral0\XINTinfloatmul [#6]{#5{#2}}{#1}}% + {\romannumeral0\XINTinfloatmul_wopt[#6]{#5{#2}}{#1}}% {#1}{#3}{#4}{#5}{#6}% }% \def\XINT_flpowseries_dont_i \fi\expandafter\XINT_flpowseries_loop_i @@ -355,22 +355,22 @@ {% \ifnum #5>#1 \else \XINT_flpowseries_exit_i \fi \expandafter\XINT_flpowseries_loop_ii\expandafter - {\romannumeral0\XINTinfloatmul [#7]{#3}{#4}}% + {\romannumeral0\XINTinfloatmul_wopt[#7]{#3}{#4}}% {#1}{#4}{#2}{#5}{#6}{#7}% }% \def\XINT_flpowseries_loop_ii #1#2#3#4#5#6#7% {% \expandafter\XINT_flpowseries_loop_i\expandafter {\the\numexpr #2+\xint_c_i\expandafter}\expandafter - {\romannumeral0\XINTinfloatadd [#7]{#4}% - {\XINTinfloatmul [#7]{#6{#2}}{#1}}}% + {\romannumeral0\XINTinfloatadd_wopt[#7]{#4}% + {\XINTinfloatmul_wopt[#7]{#6{#2}}{#1}}}% {#1}{#3}{#5}{#6}{#7}% }% \def\XINT_flpowseries_exit_i\fi\expandafter\XINT_flpowseries_loop_ii {\fi \expandafter\XINT_flpowseries_exit_ii }% \def\XINT_flpowseries_exit_ii #1#2#3#4#5#6#7% {% - \xintfloatadd [#7]{#4}{\XINTinfloatmul [#7]{#6{#2}}{#1}}% + \xintfloatadd[#7]{#4}{\XINTinfloatmul_wopt[#7]{#6{#2}}{#1}}% }% \def\xintFloatPowerSeriesX {\romannumeral0\xintfloatpowerseriesx }% \def\xintfloatpowerseriesx #1{\XINT_flpowseriesx_chkopt #1\xint:}% @@ -407,10 +407,10 @@ \def\XINT_flpowseriesx_pre #1#2#3#4#5% {% \expandafter\XINT_flpowseries_loop_pre\expandafter - {\romannumeral0\XINTinfloatpow [#5]{#1}{#2}}% + {\romannumeral0\XINTinfloatpow_wopt[#5]{#1}{#2}}% {#2}{#1}{#3}{#4}{#5}% }% -\XINT_restorecatcodes_endinput% +\XINTrestorecatcodesendinput% \endinput %% %% End of file `xintseries.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xinttools.sty b/Master/texmf-dist/tex/generic/xint/xinttools.sty index e35ba21b9c1..4d92f76819c 100644 --- a/Master/texmf-dist/tex/generic/xint/xinttools.sty +++ b/Master/texmf-dist/tex/generic/xint/xinttools.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle 1.4d 2021/03/29 +%% The xint bundle 1.4e 2021/05/05 %% Copyright (C) 2013-2021 by Jean-Francois Burnol %% xinttools: Expandable and non-expandable utilities %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xinttools}% - [2021/03/29 v1.4d Expandable and non-expandable utilities (JFB)]% + [2021/05/05 v1.4e Expandable and non-expandable utilities (JFB)]% \newtoks\XINT_toks \xint_firstofone{\let\XINT_sptoken= } %<- space here! \def\xintgodef {\global\xintodef }% @@ -1653,7 +1653,7 @@ \let\xintCSVFirstItem\xintFirstItem:f:csv \let\xintCSVLastItem \xintLastItem:f:csv \let\XINT_tmpa\relax \let\XINT_tmpb\relax \let\XINT_tmpc\relax -\XINT_restorecatcodes_endinput% +\XINTrestorecatcodesendinput% \endinput %% %% End of file `xinttools.sty'. diff --git a/Master/texmf-dist/tex/generic/xint/xinttrig.sty b/Master/texmf-dist/tex/generic/xint/xinttrig.sty index 563d14760da..c10106cb894 100644 --- a/Master/texmf-dist/tex/generic/xint/xinttrig.sty +++ b/Master/texmf-dist/tex/generic/xint/xinttrig.sty @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- -%% The xint bundle 1.4d 2021/03/29 +%% The xint bundle 1.4e 2021/05/05 %% Copyright (C) 2013-2021 by Jean-Francois Burnol %% xinttrig: Trigonometry for the xintexpr package %% --------------------------------------------------------------- @@ -61,137 +61,287 @@ \fi \fi \z% -\catcode`_ 11 \XINT_setcatcodes \catcode`? 12 +\edef\XINTtrigendinput{\XINTrestorecatcodes\noexpand\endinput}\XINTsetcatcodes% +\catcode`? 12 \ifcsname xintlibver@trig\endcsname \expandafter\xint_firstoftwo \else \expandafter\xint_secondoftwo \fi {\immediate\write-1{Reloading xinttrig library using Digits=\xinttheDigits.}}% -{\expandafter\gdef\csname xintlibver@trig\endcsname{2021/03/29 v1.4d}% +{\expandafter\gdef\csname xintlibver@trig\endcsname{2021/05/05 v1.4e}% \XINT_providespackage \ProvidesPackage{xinttrig}% -[2021/03/29 v1.4d Trigonometrical functions for xintexpr (JFB)]% +[2021/05/05 v1.4e Trigonometrical functions for xintexpr (JFB)]% }% \xintFor* #1 in {iDTVtuwxyzX}\do{\xintensuredummy{#1}}% -\def\xintreloadxinttrig - {\edef\XINT_restorecatcodes_now{\XINT_restorecatcodes}% - \XINT_setcatcodes\catcode`? 12 - \input xinttrig.sty - \XINT_restorecatcodes_now}% -\xintdeffloatvar twoPi := 0 + - 6.28318530717958647692528676655900576839433879875021164194989;% -\xintdeffloatvar threePiover2 := 0 + - 4.71238898038468985769396507491925432629575409906265873146242;% -\xintdeffloatvar Pi := 0 + - 3.14159265358979323846264338327950288419716939937510582097494;% -\xintdeffloatvar Piover2 := 0 + - 1.57079632679489661923132169163975144209858469968755291048747;% -\xintdeffloatvar oneDegree := 0 + - 0.0174532925199432957692369076848861271344287188854172545609719;% Pi/180 -\xintdeffloatvar oneRadian := 0 + - 57.2957795130823208767981548141051703324054724665643215491602;% 180/Pi -\xintdeffloatvar invfact\xintListWithSep{, invfact}{\xintSeq{2}{44}}% - := \xintfloatexpr [\XINTdigits] % force float rounding after exact evaluations - \xintexpr rseq(1/2; @/i, i=3..44)\relax % no need to hide this inner ; - \relax;% -\xintdeffloatfunc sin_aux(X) := 1 - X(invfact3 - X(invfact5 -\ifnum\XINTdigits>4 - - X(invfact7 -\ifnum\XINTdigits>6 - - X(invfact9 +\def\xintreloadxinttrig{\input xinttrig.sty }% +\xintdefvar @twoPi := + float( +6.2831853071795864769252867665590057683943387987502116419498891846156328125724180 + ,\xinttheDigits+4);% +\xintdefvar @threePiover2 := + float( +4.7123889803846898576939650749192543262957540990626587314624168884617246094293135 + ,\xinttheDigits+4);% +\xintdefvar @Pi := + float( +3.1415926535897932384626433832795028841971693993751058209749445923078164062862090 + ,\xinttheDigits+4);% +\xintdefvar @Piover2 := + float( +1.5707963267948966192313216916397514420985846996875529104874722961539082031431045 + ,\xinttheDigits+4);% +\xintdefvar @oneDegree := + float( +0.017453292519943295769236907684886127134428718885417254560971914401710091146034494 + ,\xinttheDigits+4);% +\xintdefvar @oneRadian := + float( +57.295779513082320876798154814105170332405472466564321549160243861202847148321553 + ,\xinttheDigits+12);% +\catcode`~ 12 +\def\XINT_tmpa#1#2#3.#4.% +{% + \let #1#2% + \def #2##1##2##3##4{##2##3{{~expanded{~unexpanded{#4[#3]}~expandafter}~expanded{##1##4}}}}% +}% +\expandafter\XINT_tmpa + \csname XINT_flexpr_exec_+_\expandafter\endcsname + \csname XINT_flexpr_exec_+\expandafter\endcsname + \the\numexpr\XINTdigits+4.~XINTinFloatAdd_wopt.% +\expandafter\XINT_tmpa + \csname XINT_flexpr_exec_-_\expandafter\endcsname + \csname XINT_flexpr_exec_-\expandafter\endcsname + \the\numexpr\XINTdigits+4.~XINTinFloatSub_wopt.% +\expandafter\XINT_tmpa + \csname XINT_flexpr_exec_*_\expandafter\endcsname + \csname XINT_flexpr_exec_*\expandafter\endcsname + \the\numexpr\XINTdigits+4.~XINTinFloatMul_wopt.% +\expandafter\XINT_tmpa + \csname XINT_flexpr_exec_/_\expandafter\endcsname + \csname XINT_flexpr_exec_/\expandafter\endcsname + \the\numexpr\XINTdigits+4.~XINTinFloatDiv_wopt.% +\def\XINT_tmpa#1#2#3.#4.% +{% + \let #1#2% + \def #2##1##2##3{##1##2{{~expanded{~unexpanded{#4[#3]}~expandafter}##3}}}% +}% +\expandafter\XINT_tmpa + \csname XINT_flexpr_sqrfunc\expandafter\endcsname + \csname XINT_flexpr_func_sqr\expandafter\endcsname + \the\numexpr\XINTdigits+4.~XINTinFloatSqr_wopt.% +\expandafter\XINT_tmpa + \csname XINT_flexpr_sqrtfunc\expandafter\endcsname + \csname XINT_flexpr_func_sqrt\expandafter\endcsname + \the\numexpr\XINTdigits+4.~XINTinFloatSqrt.% +\expandafter\XINT_tmpa + \csname XINT_flexpr_invfunc\expandafter\endcsname + \csname XINT_flexpr_func_inv\expandafter\endcsname + \the\numexpr\XINTdigits+4.~XINTinFloatInv_wopt.% +\catcode`~ 3 \ifnum\XINTdigits>8 - - X(invfact11 -\ifnum\XINTdigits>10 - - X(invfact13 -\ifnum\XINTdigits>13 - - X(invfact15 -\ifnum\XINTdigits>15 - - X(invfact17 -\ifnum\XINTdigits>18 - - X(invfact19 -\ifnum\XINTdigits>21 - - X(invfact21 -\ifnum\XINTdigits>24 - - X(invfact23 -\ifnum\XINTdigits>27 - - X(invfact25 -\ifnum\XINTdigits>30 - - X(invfact27 -\ifnum\XINTdigits>33 - - X(invfact29 -\ifnum\XINTdigits>36 - - X(invfact31 -\ifnum\XINTdigits>39 - - X(invfact33 -\ifnum\XINTdigits>43 - - X(invfact35 -\ifnum\XINTdigits>46 - - X(invfact37 -\ifnum\XINTdigits>49 - - X(invfact39 -\ifnum\XINTdigits>53 - - X(invfact41 -\ifnum\XINTdigits>59 - - X(invfact43 - )\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi));% -\xintdeffloatfunc cos_aux(X) := 1 - X(invfact2 - X(invfact4 -\ifnum\XINTdigits>3 - - X(invfact6 -\ifnum\XINTdigits>5 - - X(invfact8 -\ifnum\XINTdigits>7 - - X(invfact10 -\ifnum\XINTdigits>9 - - X(invfact12 -\ifnum\XINTdigits>12 - - X(invfact14 -\ifnum\XINTdigits>14 - - X(invfact16 -\ifnum\XINTdigits>17 - - X(invfact18 -\ifnum\XINTdigits>20 - - X(invfact20 -\ifnum\XINTdigits>23 - - X(invfact22 -\ifnum\XINTdigits>25 - - X(invfact24 -\ifnum\XINTdigits>28 - - X(invfact26 -\ifnum\XINTdigits>32 - - X(invfact28 -\ifnum\XINTdigits>35 - - X(invfact30 -\ifnum\XINTdigits>38 - - X(invfact32 -\ifnum\XINTdigits>41 - - X(invfact34 -\ifnum\XINTdigits>44 - - X(invfact36 -\ifnum\XINTdigits>48 - - X(invfact38 -\ifnum\XINTdigits>51 - - X(invfact40 -\ifnum\XINTdigits>55 - - X(invfact42 -\ifnum\XINTdigits>58 - - X(invfact44 - )\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi)\fi));% -\expandafter\let\csname XINT_expr_func_sin_aux\expandafter\endcsname - \csname XINT_flexpr_func_sin_aux\endcsname -\expandafter\let\csname XINT_expr_func_cos_aux\expandafter\endcsname - \csname XINT_flexpr_func_cos_aux\endcsname -\xintdeffloatfunc sin_(x) := x * sin_aux(sqr(x));% -\xintdeffloatfunc cos_(x) := cos_aux(sqr(x));% -\def\XINT_mod_ccclx_i #1.% input <k>.<N>. k is a non-negative exponent +\edef\XINT_tmpG % 1/3! + {1\xintReplicate{\XINTdigits+2}{6}7[\the\numexpr-\XINTdigits-4]}% +\edef\XINT_tmpH % 1/5! + {8\xintReplicate{\XINTdigits+1}{3}[\the\numexpr-\XINTdigits-4]}% +\edef\XINT_tmpd % 1/5! + {8\xintReplicate{\XINTdigits+9}{3}[\the\numexpr-\XINTdigits-12]}% +\def\XINT_tmpe#1.#2.#3.#4.#5#6#7% +{% +\def#5##1\xint: +{% + \expandafter#6\romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def#6##1\xint: +{% + \expandafter#7\romannumeral0\xintsub{#4}{\XINTinFloat[#2]{\xintMul{#3}{##1}}}\xint: +}% +\def#7##1\xint:##2\xint: +{% + \xintSub{1/1[0]}{\XINTinFloat[#1]{\xintMul{##1}{##2}}}% +}% +}% +\expandafter\XINT_tmpe + \the\numexpr\XINTdigits+4\expandafter.% + \the\numexpr\XINTdigits+2\expandafter.\expanded{% + \XINT_tmpH.% 1/5! + \XINT_tmpG.% 1/3! + \expandafter}% + \csname XINT_SinAux_series_a_iii\expandafter\endcsname + \csname XINT_SinAux_series_b\expandafter\endcsname + \csname XINT_SinAux_series_c_i\endcsname +\def\XINT_tmpa #1 #2 #3 #4 #5 #6 #7 #8 % +{% + \def\XINT_tmpb ##1##2##3##4##5% + {% + \def\XINT_tmpc####1.####2.####3.####4.####5.% + {% + \def##1########1\xint: + {% + \expandafter##2% + \romannumeral0\XINTinfloatS[####1]{########1}\xint:########1\xint: + }% + \def##2########1\xint: + {% + \expandafter##3% + \romannumeral0\XINTinfloatS[####2]{########1}\xint:########1\xint: + }% + \def##3########1\xint: + {% + \expandafter##4% + \romannumeral0\xintsub{####4}{\XINTinFloat[####2]{\xintMul{####3}{########1}}}\xint: + }% + \def##4########1\xint:########2\xint: + {% + \expandafter##5% + \romannumeral0\xintsub{####5}{\XINTinFloat[####1]{\xintMul{########1}{########2}}}\xint: + }% + }% + }% + \expandafter\XINT_tmpb + \csname XINT_#8Aux_series_a_\romannumeral\numexpr#1-1\expandafter\endcsname + \csname XINT_#8Aux_series_a_\romannumeral\numexpr#1\expandafter\endcsname + \csname XINT_#8Aux_series_b\expandafter\endcsname + \csname XINT_#8Aux_series_c_\romannumeral\numexpr#1-2\expandafter\endcsname + \csname XINT_#8Aux_series_c_\romannumeral\numexpr#1-3\endcsname + \edef\XINT_tmpd + {\XINTinFloat[\XINTdigits-#2+8]{\xintDiv{\XINT_tmpd}{\the\numexpr#5*(#5-1)\relax}}}% + \let\XINT_tmpF\XINT_tmpG + \let\XINT_tmpG\XINT_tmpH + \edef\XINT_tmpH{\XINTinFloat[\XINTdigits-#2]{\XINT_tmpd}}% + \expandafter\XINT_tmpc + \the\numexpr\XINTdigits-#3\expandafter.% + \the\numexpr\XINTdigits-#2\expandafter.\expanded{% + \XINT_tmpH.% + \XINT_tmpG.% + \XINT_tmpF.% + }% +}% +\XINT_tmpa 4 -1 -2 -4 7 5 3 Sin % +\ifnum\XINTdigits>3 \XINT_tmpa 5 1 -1 -2 9 7 5 Sin \fi +\ifnum\XINTdigits>5 \XINT_tmpa 6 3 1 -1 11 9 7 Sin \fi +\ifnum\XINTdigits>8 \XINT_tmpa 7 6 3 1 13 11 9 Sin \fi +\ifnum\XINTdigits>11 \XINT_tmpa 8 9 6 3 15 13 11 Sin \fi +\ifnum\XINTdigits>14 \XINT_tmpa 9 12 9 6 17 15 13 Sin \fi +\ifnum\XINTdigits>16 \XINT_tmpa 10 14 12 9 19 17 15 Sin \fi +\ifnum\XINTdigits>19 \XINT_tmpa 11 17 14 12 21 19 17 Sin \fi +\ifnum\XINTdigits>22 \XINT_tmpa 12 20 17 14 23 21 19 Sin \fi +\ifnum\XINTdigits>25 \XINT_tmpa 13 23 20 17 25 23 21 Sin \fi +\ifnum\XINTdigits>28 \XINT_tmpa 14 26 23 20 27 25 23 Sin \fi +\ifnum\XINTdigits>31 \XINT_tmpa 15 29 26 23 29 27 25 Sin \fi +\ifnum\XINTdigits>34 \XINT_tmpa 16 32 29 26 31 29 27 Sin \fi +\ifnum\XINTdigits>37 \XINT_tmpa 17 35 32 29 33 31 29 Sin \fi +\ifnum\XINTdigits>40 \XINT_tmpa 18 38 35 32 35 33 31 Sin \fi +\ifnum\XINTdigits>44 \XINT_tmpa 19 42 38 35 37 35 33 Sin \fi +\ifnum\XINTdigits>47 \XINT_tmpa 20 45 42 38 39 37 35 Sin \fi +\ifnum\XINTdigits>51 \XINT_tmpa 21 49 45 42 41 39 37 Sin \fi +\ifnum\XINTdigits>55 \XINT_tmpa 22 53 49 45 43 41 39 Sin \fi +\ifnum\XINTdigits>58 \XINT_tmpa 23 56 53 49 45 43 41 Sin \fi +\edef\XINT_tmpd % 1/4! + {41\xintReplicate{\XINTdigits+8}{6}7[\the\numexpr-\XINTdigits-12]}% +\edef\XINT_tmpH % 1/4! + {41\xintReplicate{\XINTdigits}{6}7[\the\numexpr-\XINTdigits-4]}% +\def\XINT_tmpG{5[-1]}% 1/2! +\expandafter\XINT_tmpe + \the\numexpr\XINTdigits+4\expandafter.% + \the\numexpr\XINTdigits+3\expandafter.\expanded{% + \XINT_tmpH.% + \XINT_tmpG.% + \expandafter}% + \csname XINT_CosAux_series_a_iii\expandafter\endcsname + \csname XINT_CosAux_series_b\expandafter\endcsname + \csname XINT_CosAux_series_c_i\endcsname +\XINT_tmpa 4 -2 -3 -4 6 4 2 Cos % +\ifnum\XINTdigits>2 \XINT_tmpa 5 0 -2 -3 8 6 4 Cos \fi +\ifnum\XINTdigits>4 \XINT_tmpa 6 2 0 -2 10 8 6 Cos \fi +\ifnum\XINTdigits>7 \XINT_tmpa 7 5 2 0 12 10 8 Cos \fi +\ifnum\XINTdigits>9 \XINT_tmpa 8 7 5 2 14 12 10 Cos \fi +\ifnum\XINTdigits>12 \XINT_tmpa 9 10 7 5 16 14 12 Cos \fi +\ifnum\XINTdigits>15 \XINT_tmpa 10 13 10 7 18 16 14 Cos \fi +\ifnum\XINTdigits>18 \XINT_tmpa 11 16 13 10 20 18 16 Cos \fi +\ifnum\XINTdigits>20 \XINT_tmpa 12 18 16 13 22 20 18 Cos \fi +\ifnum\XINTdigits>24 \XINT_tmpa 13 22 18 16 24 22 20 Cos \fi +\ifnum\XINTdigits>27 \XINT_tmpa 14 25 22 18 26 24 22 Cos \fi +\ifnum\XINTdigits>30 \XINT_tmpa 15 28 25 22 28 26 24 Cos \fi +\ifnum\XINTdigits>33 \XINT_tmpa 16 31 28 25 30 28 26 Cos \fi +\ifnum\XINTdigits>36 \XINT_tmpa 17 34 31 28 32 30 28 Cos \fi +\ifnum\XINTdigits>39 \XINT_tmpa 18 37 34 31 34 32 30 Cos \fi +\ifnum\XINTdigits>42 \XINT_tmpa 19 40 37 34 36 34 32 Cos \fi +\ifnum\XINTdigits>45 \XINT_tmpa 20 43 40 37 38 36 34 Cos \fi +\ifnum\XINTdigits>49 \XINT_tmpa 21 47 43 40 40 38 36 Cos \fi +\ifnum\XINTdigits>53 \XINT_tmpa 22 51 47 43 42 40 38 Cos \fi +\ifnum\XINTdigits>57 \XINT_tmpa 23 55 51 47 44 42 40 Cos \fi +\ifnum\XINTdigits>60 \XINT_tmpa 24 58 55 51 46 44 42 Cos \fi +\let\XINT_tmpH\xint_undefined\let\XINT_tmpG\xint_undefined\let\XINT_tmpF\xint_undefined +\let\XINT_tmpd\xint_undefined\let\XINT_tmpe\xint_undefined +\def\XINT_SinAux_series#1% +{% + \expandafter\XINT_SinAux_series_a_iii + \romannumeral0\XINTinfloatS[\XINTdigits+4]{#1}\xint: +}% +\def\XINT_CosAux_series#1% +{% + \expandafter\XINT_CosAux_series_a_iii + \romannumeral0\XINTinfloatS[\XINTdigits+4]{#1}\xint: +}% +\fi % end of \XINTdigits>8 +\ifnum\XINTdigits<9 +\def\XINT_SinAux_series#1% +{% + \the\numexpr\expandafter\XINT_SinAux_b\romannumeral0\xintiround9{#1}.[-9]% +}% +\def\XINT_SinAux_b#1.% +{% + ((((((((((((%(\xint_c_x^ix/-210) + -4761905*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -156)*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -110)*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -72)*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -42)*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -20)*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -6)*#1/\xint_c_x^ix+\xint_c_x^ix +}% +\def\XINT_CosAux_series#1% +{% + \the\numexpr\expandafter\XINT_CosAux_b\romannumeral0\xintiround9{#1}.[-9]% +}% +\def\XINT_CosAux_b#1.% +{% + ((((((((((((((%(\xint_c_x^ix/-240) + -4166667*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -182)*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -132)*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -90)*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -56)*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -30)*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -12)*#1/\xint_c_x^ix+\xint_c_x^ix)/% + -2)*#1/\xint_c_x^ix+\xint_c_x^ix +}% +\fi +\def\XINT_flexpr_func_@sin_aux#1#2#3% +{% + \expandafter #1\expandafter #2\expandafter{% + \romannumeral`&&@\XINT:NEhook:f:one:from:one + {\romannumeral`&&@\XINT_SinAux_series#3}}% +}% +\def\XINT_flexpr_func_@cos_aux#1#2#3% +{% + \expandafter #1\expandafter #2\expandafter{% + \romannumeral`&&@\XINT:NEhook:f:one:from:one + {\romannumeral`&&@\XINT_CosAux_series#3}}% +}% +\xintdeffloatfunc @sin_series(x) := x * @sin_aux(sqr(x));% +\xintdeffloatfunc @cos_series(x) := @cos_aux(sqr(x));% +\def\XINT_mod_ccclx_i #1.% {% \expandafter\XINT_mod_ccclx_e\the\numexpr \expandafter\XINT_mod_ccclx_j\the\numexpr1\ifcase#1 \or0\or00\else000\fi.% }% -\def\XINT_mod_ccclx_j 1#1.#2.% #2=N is a non-negative mantissa +\def\XINT_mod_ccclx_j 1#1.#2.% {% (\XINT_mod_ccclx_ja {++}#2#1\XINT_mod_ccclx_jb 0000000\relax -}% 1 2345678 +}% \def\XINT_mod_ccclx_ja #1#2#3#4#5#6#7#8#9% {% #9+#8+#7+#6+#5+#4+#3+#2\xint_firstoftwo{+\XINT_mod_ccclx_ja{+#9+#8+#7}}{#1}% @@ -200,32 +350,36 @@ \def\XINT_mod_ccclx_jc +#1+#2+#3#4\relax{+80*(#3+#2+#1)+#3#2#1.}% \def\XINT_mod_ccclx_e#1.{\expandafter\XINT_mod_ccclx_z\the\numexpr(#1+180)/360-1.#1.}% \def\XINT_mod_ccclx_z#1.#2.{#2-360*#1.}% -\def\XINT_flexpr_func_sind_ #1#2#3% +\def\XINT_flexpr_func_@sind_rr #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one{\romannumeral`&&@\xintSind#3}}% }% -\def\XINT_expr_unlock{\expandafter\xint_firstofone\romannumeral`&&@}% -\def\xintSind#1{\romannumeral`&&@\expandafter\xintsind - \romannumeral0\XINTinfloatS[\XINTdigits]{#1}}% +\def\XINT_tmpa #1.{% +\def\xintSind##1% +{% + \romannumeral`&&@\expandafter\xintsind\romannumeral0\XINTinfloatS[#1]{##1}}% +}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+12.% \def\xintsind #1[#2#3]% {% \xint_UDsignfork #2\XINT_sind -\XINT_sind_int - \krof#2#3.#1..%<< attention extra dot + \krof#2#3.#1..% }% -\def\XINT_sind #1.#2.% NOT TO BE USED WITH VANISHING (OR NEGATIVE) #2. +\def\XINT_tmpa #1.{% +\def\XINT_sind ##1.##2.% {% \expandafter\XINT_sind_a - \romannumeral0\xinttrunc{\XINTdigits}{#2[#1]}% + \romannumeral0\xinttrunc{#1}{##2[##1]}% }% +}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+5.% \def\XINT_sind_a{\expandafter\XINT_sind_i\the\numexpr\XINT_mod_ccclx_i0.}% \def\XINT_sind_int {% \expandafter\XINT_sind_i\the\numexpr\expandafter\XINT_mod_ccclx_i }% -\def\XINT_sind_i #1.% range reduction inside [0, 360[ +\def\XINT_sind_i #1.% {% \ifcase\numexpr#1/90\relax \expandafter\XINT_sind_A @@ -235,83 +389,77 @@ \else\expandafter\XINT_sind_E\the\numexpr-360+% \fi#1.% }% -\def\XINT_sind_A#1{% +\def\XINT_tmpa #1.#2.{% \def\XINT_sind_A##1.##2.% {% - \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}% + \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}% }% -}\expandafter -\XINT_sind_A\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}% -\def\XINT_sind_B#1{\xint_UDsignfork#1\XINT_sind_B_n-\XINT_sind_B_p\krof #1}% -\def\XINT_tmpa#1{% \def\XINT_sind_B_n-##1.##2.% {% - \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}% + \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}% }% \def\XINT_sind_B_p##1.##2.% {% - \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}% + \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}% }% -}\expandafter -\XINT_tmpa\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}% -\def\XINT_sind_C#1{\xint_UDsignfork#1\XINT_sind_C_n-\XINT_sind_C_p\krof #1}% -\def\XINT_tmpa#1{% \def\XINT_sind_C_n-##1.##2.% {% - \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}% + \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}% }% \def\XINT_sind_C_p##1.##2.% {% - \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}% + \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}% }% -}\expandafter -\XINT_tmpa\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}% -\def\XINT_sind_D#1{\xint_UDsignfork#1\XINT_sind_D_n-\XINT_sind_D_p\krof #1}% -\def\XINT_tmpa#1{% \def\XINT_sind_D_n-##1.##2.% {% - \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}% + \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}% }% \def\XINT_sind_D_p##1.##2.% {% - \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}% + \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}% }% -}\expandafter -\XINT_tmpa\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}% -\def\XINT_sind_E#1{% \def\XINT_sind_E-##1.##2.% {% - \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}% + \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}% }% -}\expandafter -\XINT_sind_E\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}% -\def\XINT_flexpr_func_cosd_ #1#2#3% +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits+4\expandafter.% + \romannumeral`&&@\xintbarefloateval @oneDegree\relax.% +\def\XINT_sind_B#1{\xint_UDsignfork#1\XINT_sind_B_n-\XINT_sind_B_p\krof #1}% +\def\XINT_sind_C#1{\xint_UDsignfork#1\XINT_sind_C_n-\XINT_sind_C_p\krof #1}% +\def\XINT_sind_D#1{\xint_UDsignfork#1\XINT_sind_D_n-\XINT_sind_D_p\krof #1}% +\def\XINT_flexpr_func_@cosd_rr #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one{\romannumeral`&&@\xintCosd#3}}% }% -\def\xintCosd#1{\romannumeral`&&@\expandafter\xintcosd - \romannumeral0\XINTinfloatS[\XINTdigits]{#1}}% +\def\XINT_tmpa #1.{% +\def\xintCosd##1% +{% + \romannumeral`&&@\expandafter\xintcosd\romannumeral0\XINTinfloatS[#1]{##1}}% +}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+12.% \def\xintcosd #1[#2#3]% {% \xint_UDsignfork #2\XINT_cosd -\XINT_cosd_int - \krof#2#3.#1..%<< attention extra dot + \krof#2#3.#1..% }% -\def\XINT_cosd #1.#2.% NOT TO BE USED WITH VANISHING (OR NEGATIVE) #2. +\def\XINT_tmpa #1.{% +\def\XINT_cosd ##1.##2.% {% \expandafter\XINT_cosd_a - \romannumeral0\xinttrunc{\XINTdigits}{#2[#1]}% + \romannumeral0\xinttrunc{#1}{##2[##1]}% }% +}\expandafter\XINT_tmpa\the\numexpr\XINTdigits+5.% \def\XINT_cosd_a{\expandafter\XINT_cosd_i\the\numexpr\XINT_mod_ccclx_i0.}% \def\XINT_cosd_int {% @@ -327,259 +475,401 @@ \else\expandafter\XINT_cosd_E\the\numexpr-360+% \fi#1.% }% -\def\XINT_cosd_A#1{% +\def\XINT_tmpa#1.#2.{% \def\XINT_cosd_A##1.##2.% {% - \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}% + \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}% }% -}\expandafter -\XINT_cosd_A\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}% -\def\XINT_cosd_B#1{\xint_UDsignfork#1\XINT_cosd_B_n-\XINT_cosd_B_p\krof #1}% -\def\XINT_tmpa#1{% \def\XINT_cosd_B_n-##1.##2.% {% - \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}% + \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}% }% \def\XINT_cosd_B_p##1.##2.% {% - \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}% + \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}% }% -}\expandafter -\XINT_tmpa\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}% -\def\XINT_cosd_C#1{\xint_UDsignfork#1\XINT_cosd_C_n-\XINT_cosd_C_p\krof #1}% -\def\XINT_tmpa#1{% \def\XINT_cosd_C_n-##1.##2.% {% - \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}% + \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}% }% \def\XINT_cosd_C_p##1.##2.% {% - \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}% + \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}% }% -}\expandafter -\XINT_tmpa\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}% -\def\XINT_cosd_D#1{\xint_UDsignfork#1\XINT_cosd_D_n-\XINT_cosd_D_p\krof #1}% -\def\XINT_tmpa#1{% \def\XINT_cosd_D_n-##1.##2.% {% - \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}% + \xintiiopp\XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}% }% \def\XINT_cosd_D_p##1.##2.% {% - \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_sin_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{##1.##2}#1}}% + \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@sin_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{##1.##2}#2}}% }% -}\expandafter -\XINT_tmpa\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}% -\def\XINT_cosd_E#1{% \def\XINT_cosd_E-##1.##2.% {% - \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_cos_\expandafter - {\romannumeral0\XINTinfloat[\XINTdigits]{\xintMul{\xintSub{##1[0]}{.##2}}#1}}% + \XINT_expr_unlock\expandafter\XINT_flexpr_userfunc_@cos_series\expandafter + {\romannumeral0\XINTinfloat[#1]{\xintMul{\xintSub{##1[0]}{.##2}}#2}}% }% -}\expandafter -\XINT_cosd_E\expandafter{\romannumeral`&&@\xintthebarefloateval oneDegree\relax}% -\xintdeffloatfunc sind(x) := (x)?? - {(x>=-45)? - {sin_(x*oneDegree)} - {-sind_(-x)} +}\expandafter\XINT_tmpa + \the\numexpr\XINTdigits+4\expandafter.% + \romannumeral`&&@\xintbarefloateval @oneDegree\relax.% +\def\XINT_cosd_B#1{\xint_UDsignfork#1\XINT_cosd_B_n-\XINT_cosd_B_p\krof #1}% +\def\XINT_cosd_C#1{\xint_UDsignfork#1\XINT_cosd_C_n-\XINT_cosd_C_p\krof #1}% +\def\XINT_cosd_D#1{\xint_UDsignfork#1\XINT_cosd_D_n-\XINT_cosd_D_p\krof #1}% +\xintdeffloatfunc @sind(x) := (x)?? + {(x>=-\ifnum\XINTdigits>8 45\else60\fi)? + {@sin_series(x*@oneDegree)} + {-@sind_rr(-x)} } - {0} - {(x<=45)? - {sin_(x*oneDegree)} - {sind_(x)} + {0e0} + {(x<=\ifnum\XINTdigits>8 45\else60\fi e0)? + {@sin_series(x*@oneDegree)} + {@sind_rr(x)} } ;% -\xintdeffloatfunc cosd(x) := (x)?? - {(x>=-45)? - {cos_(x*oneDegree)} - {cosd_(-x)} +\xintdeffloatfunc @cosd(x) := (x)?? + {(x>=-\ifnum\XINTdigits>8 45\else60\fi)? + {@cos_series(x*@oneDegree)} + {@cosd_rr(-x)} } - {1} - {(x<=45)? - {cos_(x*oneDegree)} - {cosd_(x)} + {1e0} + {(x<=\ifnum\XINTdigits>8 45\else60\fi e0)? + {@cos_series(x*@oneDegree)} + {@cosd_rr(x)} } ;% -\xintdeffloatfunc sin(x):= (abs(x)<0.79)? - {sin_(x)} +\xintdeffloatfunc @sin(x):= (abs(x)<\ifnum\XINTdigits>8 79e-2\else1e0\fi)? + {@sin_series(x)} {(x)?? - {-sind_(-x*oneRadian)} + {-@sind_rr(-\xintexpr x*@oneRadian\relax)} {0} - {sind_(x*oneRadian)} + {@sind_rr(\xintexpr x*@oneRadian\relax)} } ;% -\xintdeffloatfunc cos(x):= (abs(x)<0.79)? - {cos_(x)} - {cosd_(abs(x*oneRadian))} +\xintdeffloatfunc @cos(x):= (abs(x)<\ifnum\XINTdigits>8 79e-2\else1e0\fi)? + {@cos_series(x)} + {@cosd_rr(abs(\xintexpr x*@oneRadian\relax))} ;% -\xintdeffloatfunc sinc(x):= (abs(x)<0.79) ? - {sin_aux(sqr(x))} - {sind_(abs(x)*oneRadian)/abs(x)} +\xintdeffloatfunc @sinc(x):= (abs(x)<\ifnum\XINTdigits>8 79e-2\else1e0\fi) ? + {@sin_aux(sqr(x))} + {@sind_rr(\xintexpr abs(x)*@oneRadian\relax)/abs(x)} ;% -\xintdeffloatfunc tand(x):= sind(x)/cosd(x);% -\xintdeffloatfunc cotd(x):= cosd(x)/sind(x);% -\xintdeffloatfunc tan(x) := (x)?? - {(x>-0.79)? - {sin(x)/cos(x)} - {-cotd(90+x*oneRadian) +\xintdeffloatfunc @tand(x):= @sind(x)/@cosd(x);% +\xintdeffloatfunc @cotd(x):= @cosd(x)/@sind(x);% +\xintdeffloatfunc @tan(x) := (x)?? + {(x>-\ifnum\XINTdigits>8 79e-2\else1e0\fi)? + {@sin(x)/@cos(x)} + {-@cotd(\xintexpr9e1+x*@oneRadian\relax) } } - {0} - {(x<0.79)? - {sin(x)/cos(x)} - {cotd(90-x*oneRadian)} + {0e0} + {(x<\ifnum\XINTdigits>8 79e-2\else1e0\fi)? + {@sin(x)/@cos(x)} + {@cotd(\xintexpr9e1-x*@oneRadian\relax)} } ;% -\xintdeffloatfunc cot(x) := (abs(x)<0.79)? - {cos(x)/sin(x)} +\xintdeffloatfunc @cot(x) := (abs(x)<\ifnum\XINTdigits>8 79e-2\else1e0\fi)? + {@cos(x)/@sin(x)} {(x)?? - {-tand(90+x*oneRadian)} - {0} - {tand(90-x*oneRadian)} + {-@tand(\xintexpr9e1+x*@oneRadian\relax)} + {0e0} + {@tand(\xintexpr9e1-x*@oneRadian\relax)} };% -\xintdeffloatfunc sec(x) := inv(cos(x));% -\xintdeffloatfunc csc(x) := inv(sin(x));% -\xintdeffloatfunc secd(x):= inv(cosd(x));% -\xintdeffloatfunc cscd(x):= inv(sind(x));% -\xintdeffloatfunc asin_aux(X) := 1 -\ifnum\XINTdigits>3 % actually 4 would achieve 1ulp in place of <0.5ulp - + X(1/6 -\ifnum\XINTdigits>9 - + X(3/40 +\xintdeffloatfunc @sec(x) := inv(@cos(x));% +\xintdeffloatfunc @csc(x) := inv(@sin(x));% +\xintdeffloatfunc @secd(x):= inv(@cosd(x));% +\xintdeffloatfunc @cscd(x):= inv(@sind(x));% +\expandafter\let\csname XINT_expr_func_@sin_aux\expandafter\endcsname + \csname XINT_flexpr_func_@sin_aux\endcsname +\expandafter\let\csname XINT_expr_func_@cos_aux\expandafter\endcsname + \csname XINT_flexpr_func_@cos_aux\endcsname +\ifnum\XINTdigits>16 +\def\XINT_flexpr_func_@asin_II#1#2#3% +{% + \expandafter #1\expandafter #2\expandafter{% + \romannumeral`&&@\XINT:NEhook:f:one:from:one + {\romannumeral`&&@\XINT_Arcsin_II_a#3}}% +}% +\def\XINT_tmpc#1.% +{% +\def\XINT_Arcsin_II_a##1% +{% + \expandafter\XINT_Arcsin_II_c_i\romannumeral0\XINTinfloatS[#1]{##1}% +}% +\def\XINT_Arcsin_II_c_i##1[##2]% +{% + \xintAdd{1/1[0]}{##1/6[##2]}% +}% +}% +\expandafter\XINT_tmpc\the\numexpr\XINTdigits-14.% +\fi +\ifnum\XINTdigits>34 +\def\XINT_tmpc#1.#2.#3.#4.% +{% +\def\XINT_Arcsin_II_a##1% +{% + \expandafter\XINT_Arcsin_II_a_iii\romannumeral0\XINTinfloatS[#1]{##1}\xint: +}% +\def\XINT_Arcsin_II_a_iii##1\xint: +{% + \expandafter\XINT_Arcsin_II_b\romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_Arcsin_II_b##1\xint: +{% + \expandafter\XINT_Arcsin_II_c_i\romannumeral0\xintadd{#4}{\XINTinFloat[#2]{\xintMul{#3}{##1}}}\xint: +}% +\def\XINT_Arcsin_II_c_i##1\xint:##2\xint: +{% + \xintAdd{1/1[0]}{\XINTinFloat[#1]{\xintMul{##1}{##2}}}% +}% +}% +\expandafter\XINT_tmpc + \the\numexpr\XINTdigits-14\expandafter.% + \the\numexpr\XINTdigits-32\expandafter.\expanded{% + \XINTinFloat[\XINTdigits-32]{3/40[0]}.% + \XINTinFloat[\XINTdigits-14]{1/6[0]}.% + }% +\fi +\ifnum\XINTdigits>52 +\def\XINT_tmpc#1.#2.#3.#4.#5.% +{% +\def\XINT_Arcsin_II_a_iii##1\xint: +{% + \expandafter\XINT_Arcsin_II_a_iv\romannumeral0\XINTinfloatS[#1]{##1}\xint:##1\xint: +}% +\def\XINT_Arcsin_II_a_iv##1\xint: +{% + \expandafter\XINT_Arcsin_II_b\romannumeral0\XINTinfloatS[#2]{##1}\xint:##1\xint: +}% +\def\XINT_Arcsin_II_b##1\xint: +{% + \expandafter\XINT_Arcsin_II_c_ii + \romannumeral0\xintadd{#4}{\XINTinfloat[#2]{\xintMul{#3}{##1}}}\xint: +}% +\def\XINT_Arcsin_II_c_ii##1\xint:##2\xint: +{% + \expandafter\XINT_Arcsin_II_c_i + \romannumeral0\xintadd{#5}{\XINTinFloat[#1]{\xintMul{##1}{##2}}}\xint: +}% +}% +\expandafter\XINT_tmpc + \the\numexpr\XINTdigits-32\expandafter.% + \the\numexpr\XINTdigits-50\expandafter.\expanded{% + \XINTinFloat[\XINTdigits-50]{5/112[0]}.% + \XINTinFloat[\XINTdigits-32]{3/40[0]}.% + \XINTinFloat[\XINTdigits-14]{1/6[0]}.% + }% +\fi +\def\XINT_flexpr_func_@asin_I#1#2#3% +{% + \expandafter #1\expandafter #2\expandafter{% + \romannumeral`&&@\XINT:NEhook:f:one:from:one + {\romannumeral`&&@\XINT_Arcsin_I#3}}% +}% +\def\XINT_Arcsin_I#1{\the\numexpr\expandafter\XINT_Arcsin_Ia\romannumeral0\xintiround9{#1}.}% +\def\XINT_Arcsin_Ia#1.% +{% + (\expandafter\XINT_Arcsin_Ib\the\numexpr#1*#1/\xint_c_x^ix.)*% + #1/\xint_c_x^ix[-9]% +}% +\def\XINT_Arcsin_Ib#1.% +{%(((((((((((((((( + % 3481/3660)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + % 3249/3422)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + % 3025/3192)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + % 2809/2970)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + % 2601/2756)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + % 2401/2550)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + % 2209/2352)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + % 2025/2162)*#1/\xint_c_x^ix+\xint_c_x^ix)*% +((((((((((((((((((((((((((((((((((((((((((% + %(\xint_c_x^ix*1849/1980)*% + 933838384*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 1681/1806)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 1521/1640)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 1369/1482)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 1225/1332)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 1089/1190)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 961/1056)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 841/930)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 729/812)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 625/702)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 529/600)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 441/506)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 361/420)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 289/342)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 225/272)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 169/210)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 121/156)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 81/110)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 49/72)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 25/42)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 9/20)*#1/\xint_c_x^ix+\xint_c_x^ix)*% + 1/6)*#1/\xint_c_x^ix+\xint_c_x^ix +}% \ifnum\XINTdigits>16 - + X(5/112 -\ifnum\XINTdigits>25 - + X(35/1152 -\ifnum\XINTdigits>35 - + X(63/2816 -\ifnum\XINTdigits>46 - + X(231/13312 - )\fi)\fi)\fi)\fi)\fi)\fi;% -\xintdeffloatfunc asin_o(D, T) := T + D*asin_aux(sqr(D));% -\xintdeffloatfunc asin_n(V, T, t, u) :=% V is square of T - asin_o (\xintexpr t*cos_aux(V) - u*T*sin_aux(V)\relax, T);% -\xintdeffloatfunc asin_m(T, t, u) := asin_n(sqr(T), T, t, u);% -\xintdeffloatfunc asin_l(t, u) := asin_m(t*asin_aux(sqr(t)), t, u);% -\xintdeffloatfunc asin_a(t, u) := (t<u)? - {asin_l(t, u)} - {Piover2 - asin_l(u, t)} + \xintdeffloatfunc @asin_o(D, T) := T + D*@asin_II(sqr(D));% + \xintdeffloatfunc @asin_n(V, T, t, u) :=% + @asin_o(\xintexpr t*@cos_aux(V) - u*T*@sin_aux(V)\relax, T);% +\else + \xintdeffloatfunc @asin_n(V, T, t, u) :=% + \xintexpr t*@cos_aux(V) - u*T*@sin_aux(V)\relax + T;% +\fi +\xintdeffloatfunc @asin_m(T, t, u) := @asin_n(sqr(T), T, t, u);% +\xintdeffloatfunc @asin_l(t, u) := @asin_m(@asin_I(t), t, u);% +\xintdeffloatfunc @asin_a(t, u) := (t<u)? + {@asin_l(t, u)} + {@Piover2 - @asin_l(u, t)} ;% -\xintdeffloatfunc asind_a(t, u):= (t<u)? - {asin_l(t, u) * oneRadian} - {90 - asin_l(u, t) * oneRadian} +\xintdeffloatfunc @asind_a(t, u):= (t<u)? + {@asin_l(t, u) * @oneRadian} + {9e1 - @asin_l(u, t) * @oneRadian} ;% -\xintdeffloatfunc asin(t) := (t)?? - {-asin_a(-t, sqrt_(1-sqr(t)))} - {0} - {asin_a(t, sqrt_(1-sqr(t)))} +\xintdeffloatfunc @asin(t) := (t)?? + {-@asin_a(-t, sqrt(1e0-sqr(t)))} + {0e0} + {@asin_a(t, sqrt(1e0-sqr(t)))} ;% -\xintdeffloatfunc asind(t) := (t)?? - {-asind_a(-t, sqrt_(1-sqr(t)))} - {0} - {asind_a(t, sqrt_(1-sqr(t)))} +\xintdeffloatfunc @asind(t) := (t)?? + {-@asind_a(-t, sqrt(1e0-sqr(t)))} + {0e0} + {@asind_a(t, sqrt(1e0-sqr(t)))} ;% -\xintdeffloatfunc acos(t) := Piover2 - asin(t);% -\xintdeffloatfunc acosd(t):= 90 - asind(t);% -\xintdeffloatfunc atan_b(t, w, z):= 0.5 * (w< 0)? - {Pi - asin_a(2z * t, -w*z)} - {asin_a(2z * t, w*z)} +\xintdeffloatfunc @acos(t) := @Piover2 - @asin(t);% +\xintdeffloatfunc @acosd(t):= 9e1 - @asind(t);% +\xintdeffloatfunc @atan_b(t, w, z):= 5e-1 * (w< 0)? + {@Pi - @asin_a(2e0*z * t, -w*z)} + {@asin_a(2e0*z * t, w*z)} ;% -\xintdeffloatfunc atan_a(t, T) := atan_b(t, 1-T, inv(1+T));% -\xintdeffloatfunc atan(t):= (t)?? - {-atan_a(-t, sqr(t))} +\xintdeffloatfunc @atan_a(t, T) := @atan_b(t, 1e0-T, inv(1e0+T));% +\xintdeffloatfunc @atan(t):= (t)?? + {-@atan_a(-t, sqr(t))} {0} - {atan_a(t, sqr(t))} + {@atan_a(t, sqr(t))} ;% -\xintdeffloatfunc atand_b(t, w, z) := 0.5 * (w< 0)? - {180 - asind_a(2z * t, -w*z)} - {asind_a(2z * t, w*z)} +\xintdeffloatfunc @atand_b(t, w, z) := 5e-1 * (w< 0)? + {18e1 - @asind_a(2e0*z * t, -w*z)} + {@asind_a(2e0*z * t, w*z)} ;% -\xintdeffloatfunc atand_a(t, T) := atand_b(t, 1-T, inv(1+T));% -\xintdeffloatfunc atand(t) := (t)?? - {-atand_a(-t, sqr(t))} +\xintdeffloatfunc @atand_a(t, T) := @atand_b(t, 1e0-T, inv(1e0+T));% +\xintdeffloatfunc @atand(t) := (t)?? + {-@atand_a(-t, sqr(t))} {0} - {atand_a(t, sqr(t))} + {@atand_a(t, sqr(t))} ;% -\xintdeffloatfunc Arg(x, y):= (y>x)? +\xintdeffloatfunc @Arg(x, y):= (y>x)? {(y>-x)? - {Piover2 - atan(x/y)} + {@Piover2 - @atan(x/y)} {(y<0)? - {-Pi + atan(y/x)} - {Pi + atan(y/x)} + {-@Pi + @atan(y/x)} + {@Pi + @atan(y/x)} } } {(y>-x)? - {atan(y/x)} - {-Piover2 + atan(x/-y)} + {@atan(y/x)} + {-@Piover2 + @atan(x/-y)} } ;% -\xintdeffloatfunc atan2(y,x) := Arg(x, y);% -\xintdeffloatfunc Argd(x, y):= (y>x)? +\xintdeffloatfunc @atan2(y,x) := @Arg(x, y);% +\xintdeffloatfunc @Argd(x, y):= (y>x)? {(y>-x)? - {90 - atand(x/y)} + {9e1 - @atand(x/y)} {(y<0)? - {-180 + atand(y/x)} - {180 + atand(y/x)} + {-18e1 + @atand(y/x)} + {18e1 + @atand(y/x)} } } {(y>-x)? - {atand(y/x)} - {-90 + atand(x/-y)} + {@atand(y/x)} + {-9e1 + @atand(x/-y)} } ;% -\xintdeffloatfunc atan2d(y,x) := Argd(x, y);% -\xintdeffloatfunc pArg(x, y):= (y>x)? +\xintdeffloatfunc @atan2d(y,x) := @Argd(x, y);% +\xintdeffloatfunc @pArg(x, y):= (y>x)? {(y>-x)? - {Piover2 - atan(x/y)} - {Pi + atan(y/x)} + {@Piover2 - @atan(x/y)} + {@Pi + @atan(y/x)} } {(y>-x)? {(y<0)? - {twoPi + atan(y/x)} - {atan(y/x)} + {@twoPi + @atan(y/x)} + {@atan(y/x)} } - {threePiover2 + atan(x/-y)} + {@threePiover2 + @atan(x/-y)} } ;% -\xintdeffloatfunc pArgd(x, y):=(y>x)? +\xintdeffloatfunc @pArgd(x, y):=(y>x)? {(y>-x)? - {90 - atan(x/y)*oneRadian} - {180 + atan(y/x)*oneRadian} + {9e1 - @atan(x/y)*@oneRadian} + {18e1 + @atan(y/x)*@oneRadian} } {(y>-x)? - {(y<0)? - {360 + atan(y/x)*oneRadian} - {atan(y/x)*oneRadian} + {(y<0e0)? + {36e1 + @atan(y/x)*@oneRadian} + {@atan(y/x)*@oneRadian} } - {270 + atan(x/-y)*oneRadian} + {27e1 + @atan(x/-y)*@oneRadian} } ;% -\expandafter\let\csname XINT_flexpr_func_tg\expandafter\endcsname - \csname XINT_flexpr_func_tan\endcsname -\expandafter\let\csname XINT_flexpr_func_cotg\expandafter\endcsname - \csname XINT_flexpr_func_cot\endcsname +\expandafter\let + \csname XINT_flexpr_exec_+\expandafter\endcsname + \csname XINT_flexpr_exec_+_\endcsname +\expandafter\let + \csname XINT_flexpr_exec_-\expandafter\endcsname + \csname XINT_flexpr_exec_-_\endcsname +\expandafter\let + \csname XINT_flexpr_exec_*\expandafter\endcsname + \csname XINT_flexpr_exec_*_\endcsname +\expandafter\let + \csname XINT_flexpr_exec_/\expandafter\endcsname + \csname XINT_flexpr_exec_/_\endcsname +\expandafter\let + \csname XINT_flexpr_func_sqr\expandafter\endcsname + \csname XINT_flexpr_sqrfunc\endcsname +\expandafter\let + \csname XINT_flexpr_func_sqrt\expandafter\endcsname + \csname XINT_flexpr_sqrtfunc\endcsname +\expandafter\let + \csname XINT_flexpr_func_inv\expandafter\endcsname + \csname XINT_flexpr_invfunc\endcsname \xintFor #1 in {sin, cos, tan, sec, csc, cot, asin, acos, atan}\do {% - \xintdeffunc #1(x) := \xintfloatexpr #1(sfloat(x))\relax;% - \xintdeffunc #1d(x):= \xintfloatexpr #1d(sfloat(x))\relax;% + \xintdeffloatfunc #1(x) := float_(@#1(x));% + \xintdeffloatfunc #1d(x) := float_(@#1d(x));% + \xintdeffunc #1(x) := float_(\xintfloatexpr @#1(sfloat(x))\relax);% + \xintdeffunc #1d(x):= float_(\xintfloatexpr @#1d(sfloat(x))\relax);% }% \xintFor #1 in {Arg, pArg, atan2}\do {% - \xintdeffunc #1(x, y) := \xintfloatexpr #1(sfloat(x), sfloat(y))\relax;% - \xintdeffunc #1d(x, y):= \xintfloatexpr #1d(sfloat(x), sfloat(y))\relax;% + \xintdeffloatfunc #1(x, y) := float_(@#1(x, y));% + \xintdeffloatfunc #1d(x, y) := float_(@#1d(x, y));% + \xintdeffunc #1(x, y) := float_(\xintfloatexpr @#1(sfloat(x), sfloat(y))\relax);% + \xintdeffunc #1d(x, y):= float_(\xintfloatexpr @#1d(sfloat(x), sfloat(y))\relax);% }% -\xintdeffunc tg(x) := \xintfloatexpr tg(sfloat(x))\relax;% -\xintdeffunc cotg(x):= \xintfloatexpr cotg(sfloat(x))\relax;% -\xintdeffunc sinc(x):= \xintfloatexpr sinc(sfloat(x))\relax;% +\xintdeffloatfunc sinc(x):= float_(@sinc(x));% +\xintdeffunc sinc(x):= float_(\xintfloatexpr @sinc(sfloat(x))\relax);% +\expandafter\let\csname XINT_flexpr_func_tg\expandafter\endcsname + \csname XINT_flexpr_func_tan\endcsname +\expandafter\let\csname XINT_flexpr_func_cotg\expandafter\endcsname + \csname XINT_flexpr_func_cot\endcsname +\xintdeffloatvar twoPi := @twoPi;% +\xintdeffloatvar threePiover2 := @threePiover2;% +\xintdeffloatvar Pi := @Pi;% +\xintdeffloatvar Piover2 := @Piover2;% +\xintdeffloatvar oneDegree := @oneDegree;% +\xintdeffloatvar oneRadian := @oneRadian;% +\xintunassignvar{@twoPi}\xintunassignvar{@threePiover2}% +\xintunassignvar{@Pi}\xintunassignvar{@Piover2}% +\xintunassignvar{@oneRadian}\xintunassignvar{@oneDegree}% \xintFor* #1 in {iDTVtuwxyzX}\do{\xintrestorevariable{#1}}% +\XINTtrigendinput% \endinput %% %% End of file `xinttrig.sty'. |