summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-05-05 19:43:26 +0000
committerKarl Berry <karl@freefriends.org>2021-05-05 19:43:26 +0000
commit5a1103024f621793e1581f1b92622a79b2f2571c (patch)
tree73fd76c959f2e4deb2d3302e45e1cf128f7cd262 /Master/texmf-dist/tex
parent9a5889e58edc1fefd23ea27d4db6a872c7d84959 (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.sty6
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintbinhex.sty6
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcfrac.sty6
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintcore.sty6
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintexpr.sty105
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintfrac.sty407
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintgcd.sty6
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintkernel.sty28
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintlog.sty1717
-rw-r--r--Master/texmf-dist/tex/generic/xint/xintseries.sty20
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttools.sty6
-rw-r--r--Master/texmf-dist/tex/generic/xint/xinttrig.sty946
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'.