diff options
author | Karl Berry <karl@freefriends.org> | 2019-09-11 21:20:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-09-11 21:20:23 +0000 |
commit | a4638c5ac366e7d8e329f5276543492ee5c22f41 (patch) | |
tree | 389c084a88deb4ee8c094654268ac45d331d680e /Master/texmf-dist/tex/generic/xint | |
parent | ae7f7ce522ff387f85698d8f28692b008de1e520 (diff) |
xint (11sep19)
git-svn-id: svn://tug.org/texlive/trunk@52081 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xint.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintbinhex.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintcfrac.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintcore.sty | 21 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintexpr.sty | 134 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintfrac.sty | 56 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintgcd.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintkernel.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintlog.sty | 74 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintseries.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xinttools.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xinttrig.sty | 6 |
12 files changed, 209 insertions, 110 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xint.sty b/Master/texmf-dist/tex/generic/xint/xint.sty index 4137ad675a7..33a477c63d2 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.3e 2019/04/05 +%% The xint bundle 1.3f 2019/09/10 %% Copyright (C) 2013-2019 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}% - [2019/04/05 1.3e Expandable operations on big integers (JFB)]% + [2019/09/10 v1.3f 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}% diff --git a/Master/texmf-dist/tex/generic/xint/xintbinhex.sty b/Master/texmf-dist/tex/generic/xint/xintbinhex.sty index 07e52be6dfc..43044815376 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.3e 2019/04/05 +%% The xint bundle 1.3f 2019/09/10 %% Copyright (C) 2013-2019 by Jean-Francois Burnol %% xintbinhex: Expandable binary and hexadecimal conversions %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintbinhex}% - [2019/04/05 1.3e Expandable binary and hexadecimal conversions (JFB)]% + [2019/09/10 v1.3f 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 diff --git a/Master/texmf-dist/tex/generic/xint/xintcfrac.sty b/Master/texmf-dist/tex/generic/xint/xintcfrac.sty index c62037bbc24..e8c7fb8512c 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.3e 2019/04/05 +%% The xint bundle 1.3f 2019/09/10 %% Copyright (C) 2013-2019 by Jean-Francois Burnol %% xintcfrac: Expandable continued fractions with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintcfrac}% - [2019/04/05 1.3e Expandable continued fractions with xint package (JFB)]% + [2019/09/10 v1.3f Expandable continued fractions with xint package (JFB)]% \def\xintCFrac {\romannumeral0\xintcfrac }% \def\xintcfrac #1% {% diff --git a/Master/texmf-dist/tex/generic/xint/xintcore.sty b/Master/texmf-dist/tex/generic/xint/xintcore.sty index b0f8ff5d0f2..23755a7cf1d 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.3e 2019/04/05 +%% The xint bundle 1.3f 2019/09/10 %% Copyright (C) 2013-2019 by Jean-Francois Burnol %% xintcore: Expandable arithmetic on big integers %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintcore}% - [2019/04/05 1.3e Expandable arithmetic on big integers (JFB)]% + [2019/09/10 v1.3f Expandable arithmetic on big integers (JFB)]% \csname XINT_Clamped_istrapped\endcsname \csname XINT_ConversionSyntax_istrapped\endcsname \csname XINT_DivisionByZero_istrapped\endcsname @@ -559,11 +559,6 @@ {% \expandafter\XINT_add_nfork\expandafter#1\romannumeral`&&@#3\xint:#2\xint: }% -\def\XINT_iadd #1#2\xint:#3% -{% - \expandafter\XINT_add_nfork\expandafter - #1\romannumeral0\xintnum{#3}\xint:#2\xint: -}% \def\XINT_add_fork #1#2\xint:#3\xint:{\XINT_add_nfork #1#3\xint:#2\xint:}% \def\XINT_add_nfork #1#2% {% @@ -712,10 +707,6 @@ {% \expandafter\XINT_cmp_nfork\expandafter #1\romannumeral`&&@#3\xint:#2\xint: }% -\def\XINT_icmp #1#2\xint:#3% -{% - \expandafter\XINT_cmp_nfork\expandafter #1\romannumeral0\xintnum{#3}\xint:#2\xint: -}% \def\XINT_cmp_nfork #1#2% {% \xint_UDzerofork @@ -815,11 +806,6 @@ \expandafter\XINT_sub_nfork\expandafter #1\romannumeral`&&@#3\xint:#2\xint: }% -\def\XINT_isub #1#2\xint:#3% -{% - \expandafter\XINT_sub_nfork\expandafter - #1\romannumeral0\xintnum{#3}\xint:#2\xint: -}% \def\XINT_sub_nfork #1#2% {% \xint_UDzerofork @@ -1779,9 +1765,6 @@ {\expandafter\xint_stop_atsecondoftwo\romannumeral0\xintiidivision }% \def\xintiiDivRound {\romannumeral0\xintiidivround }% \def\xintiidivround #1{\expandafter\XINT_iidivround\romannumeral`&&@#1\xint:}% -\def\XINT_idivround #1#2\xint:#3% - {\expandafter\XINT_iidivround_a\expandafter #1% - \romannumeral0\xintnum{#3}\xint:#2\xint:}% \def\XINT_iidivround #1#2\xint:#3% {\expandafter\XINT_iidivround_a\expandafter #1\romannumeral`&&@#3\xint:#2\xint:}% \def\XINT_iidivround_a #1#2% #1 de A, #2 de B. diff --git a/Master/texmf-dist/tex/generic/xint/xintexpr.sty b/Master/texmf-dist/tex/generic/xint/xintexpr.sty index 8ed1191fb8a..382a121466a 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.3e 2019/04/05 +%% The xint bundle 1.3f 2019/09/10 %% Copyright (C) 2013-2019 by Jean-Francois Burnol %% xintexpr: Expandable expression parser %% --------------------------------------------------------------- @@ -81,9 +81,16 @@ \XINTsetupcatcodes% \XINT_providespackage \ProvidesPackage{xintexpr}% - [2019/04/05 1.3e Expandable expression parser (JFB)]% + [2019/09/10 v1.3f Expandable expression parser (JFB)]% \catcode`! 11 \let\XINT_Cmp \xintiiCmp +\def\xintDigits {\futurelet\XINT_token\xintDigitss}% +\def\xintDigitss #1={\afterassignment\xintDigitsss\mathchardef\XINTdigits=}% +\def\xintDigitsss#1{\ifx*\XINT_token\expandafter\xintreloadxinttrig\fi}% +\let\xintfracSetDigits\xintSetDigits +\def\xintSetDigits#1#{\if\relax\detokenize{#1}\relax + \else\afterassignment\xintreloadxinttrig\fi + \xintfracSetDigits}% \def\xintexpr {\romannumeral0\xintexpro }% \def\xintiexpr {\romannumeral0\xintiexpro }% \def\xintfloatexpr {\romannumeral0\xintfloatexpro }% @@ -97,16 +104,16 @@ }% \def\XINT_iexpr_noopt {% - \expandafter\XINT_iexpr_preprint\expandafter 0% + \expandafter\XINT_iexpr_round\expandafter 0% \romannumeral0\xintbareeval }% \def\XINT_iexpr_withopt [#1]% {% - \expandafter\XINT_iexpr_preprint\expandafter + \expandafter\XINT_iexpr_round\expandafter {\the\numexpr \xint_zapspaces #1 \xint_gobble_i\expandafter}% \romannumeral0\xintbareeval }% -\def\XINT_iexpr_preprint #1#2% +\def\XINT_iexpr_round #1#2% {% \expandafter\XINT_expr_wrap \csname .=\xintRound::csv {#1}{\XINT_expr_unlock #2}\endcsname @@ -118,27 +125,40 @@ }% \def\XINT_flexpr_noopt {% - \expandafter\XINT_flexpr_preprint\expandafter\xinttheDigits - \romannumeral0\xintbarefloateval + \expandafter\XINT_flexpr_noopt_a\romannumeral0\xintbarefloateval +}% +\def\XINT_flexpr_noopt_a #1% +{% + \expandafter\XINT_flexpr_wrap + \csname .;\xinttheDigits.=\XINT_expr_unlock #1\endcsname }% \def\XINT_flexpr_withopt [#1]% {% - \expandafter\XINT_flexpr_preprint\expandafter - {\the\numexpr\xint_zapspaces #1 \xint_gobble_i\expandafter}% + \expandafter\XINT_flexpr_withopt_a + \the\numexpr\xint_zapspaces #1 \xint_gobble_i\expandafter.% \romannumeral0\xintbarefloateval }% -\def\XINT_flexpr_preprint #1#2% +\def\XINT_flexpr_withopt_a #1.#2% {% \expandafter\XINT_flexpr_wrap \csname .;#1.=\XINTinFloat::csv {#1}{\XINT_expr_unlock #2}\endcsname }% +\def\XINT:NE_flexpr_withopt_a #1.#2% +{% + \expandafter\XINT_flexpr_wrap + \csname .;#1.=\XINT:NE:one{\XINTinFloat::csv{#1}}{\XINT_expr_unlock #2}\endcsname +}% \def\XINT_expr_wrap {!\XINT_expr_usethe\XINT_protectii\XINT_expr_print}% \def\XINT_iiexpr_wrap {!\XINT_expr_usethe\XINT_protectii\XINT_iiexpr_print}% \def\XINT_flexpr_wrap {!\XINT_expr_usethe\XINT_protectii\XINT_flexpr_print}% \def\XINT_protectii #1{\noexpand\XINT_protectii\noexpand #1\noexpand }% \protected\def\XINT_expr_usethe\XINT_protectii {\xintError:missing_xintthe!}% \def\XINT_expr_print #1{\xintSPRaw::csv {\XINT_expr_unlock #1}}% -\def\XINT_iiexpr_print #1{\xintCSV::csv {\XINT_expr_unlock #1}}% +\def\XINT:NE_expr_print#1{\expandafter + \xintSPRaw::csv\expandafter{\romannumeral`&&@\XINT_expr_unlock #1}}% +\def\XINT_iiexpr_print #1{\xintCSV::csv {\XINT_expr_unlock #1}}% +\def\XINT:NE_iiexpr_print #1{\expandafter + \xintCSV::csv\expandafter{\romannumeral`&&@\XINT_expr_unlock #1}}% \def\XINT_flexpr_print #1% {% \expandafter\xintPFloat::csv @@ -165,6 +185,10 @@ {\romannumeral`&&@\expandafter\xint_gobble_iii\romannumeral`&&@\xintfloatexpr#1\relax}% \def\xintiieval #1% {\romannumeral`&&@\expandafter\XINT_iiexpr_print\romannumeral0\xintbareiieval#1\relax}% +\def\XINT:NE:eval #1{\xintexpr #1\relax}% +\def\XINT:NE:ieval #1{\xintiexpr #1\relax}% +\def\XINT:NE:floateval#1{\xintfloatexpr #1\relax}% +\def\XINT:NE:iieval #1{\xintiiexpr #1\relax}% \def\xintthe #1{\romannumeral`&&@\expandafter\xint_gobble_iii\romannumeral`&&@#1}% \def\xintbareeval {\expandafter\XINT_expr_until_end_a\romannumeral`&&@\XINT_expr_getnext }% @@ -181,7 +205,9 @@ \XINT_boolexpr_done\expandafter\xint_gobble_iv\romannumeral0\xintexpro }% \def\XINT_boolexpr_done {!\XINT_expr_usethe\XINT_protectii\XINT_boolexpr_print}% -\def\XINT_boolexpr_print #1{\xintIsTrue::csv {\XINT_expr_unlock #1}}% +\def\XINT_boolexpr_print #1{\xintIsTrue::csv {\XINT_expr_unlock #1}}% +\def\XINT:NE_boolexpr_print #1{\expandafter + \xintIsTrue::csv\expandafter{\romannumeral`&&@\XINT_expr_unlock #1}}% \def\xinttheboolexpr {% \romannumeral`&&@\expandafter\expandafter\expandafter @@ -2993,7 +3019,7 @@ \def\XINT_expr_defuserefunc_none #1#2#3% {% \expandafter\XINT_expr_defuserefunc_none_a - \csname XINT_#3_userefunc_#2\endcsname + \csname XINT_#3_userefunc_#2\endcsname #1% }% \def\XINT_expr_defuserefunc_none_a #1#2% {% @@ -3196,13 +3222,13 @@ {% \XINT:NE:two_fork_dd#1#3{#5}{\detokenize{#5}}{#1#2}{#3#4}% }% -\def\XINT:NE:one#1#2{\expandafter\XINT:NE:one_a\romannumeral`&&@#2!#1}% +\def\XINT:NE:one#1#2{\expandafter\XINT:NE:one_a\romannumeral`&&@#2!{#1}}% \def\XINT:NE:one_a#1#2!#3% {% \if ###1\xint_dothis {\detokenize{#3}}\fi \if ~#1\xint_dothis {\detokenize{#3}}\fi \if $#1\xint_dothis {~xintApply::csv{\detokenize{#3}}}\fi %$ - \xint_orthat #3{#1#2}% + \xint_orthat {#3}{#1#2}% }% \def\XINT:NE:userfunc #1#2#3% {~xintExpandArgs{XINT_#1_userfunc_#2}{\xintCSVtoListNonStripped{#3}}}% @@ -3381,7 +3407,6 @@ \let\xintiiifSgn: \xintiiifSgnNE: \let\xintSeqNumeric::csv \xintSeq::csv \let\xintiiSeqNumeric::csv \xintiiSeq::csv - \let\XINTinFloatSeqNumeric::csv \XINTinFloatSeq::csv \let\xintSeqBNumeric::csv \xintSeqB::csv \let\xintiiSeqBNumeric::csv \xintiiSeqB::csv \let\XINTinFloatSeqBNumeric::csv\XINTinFloatSeqB::csv @@ -3389,8 +3414,6 @@ {\XINT:NE:two_\xintSeqNumeric::csv{$noexpand$xintSeq::csv}}% \def\xintiiSeq::csv {\XINT:NE:two_\xintiiSeqNumeric::csv{$noexpand$xintiiSeq::csv}}% - \def\XINTinFloatSeq::csv - {\XINT:NE:two_\XINTinFloatSeqNumeric::csv{$noexpand$XINTinFloatSeq::csv}}% \def\xintSeqB::csv {\XINT:NE:two_\xintSeqBNumeric::csv{$noexpand$xintSeqB:f:csv}}% \def\xintiiSeqB::csv @@ -3402,73 +3425,60 @@ \def\XINTinRandomFloatSixteen{~XINTinRandomFloatSixteen }% \def\xintiiRandRange{~xintiiRandRange }% \def\xintiiRandRangeAtoB{~xintiiRandRangeAtoB }% + \let\xinteval\XINT:NE:eval + \let\xintieval\XINT:NE:ieval + \let\xintiieval\XINT:NE:iieval + \let\xintfloateval\XINT:NE:floateval }% \def\XINT_expr_redefineprints {% - \def\XINT_flexpr_noopt - {% - \expandafter - \XINT_flexpr_preprint\expandafter-\romannumeral0\xintbarefloateval - }% - \def\XINT_flexpr_preprint ##1##2% - {% - \expandafter\XINT_flexpr_wrap - \csname .;##1.=\XINT_expr_unlock##2\endcsname - }% - \def\XINT_expr_unlock_sp ##1.;##2##3.=##4!% - {% - \if -##2\expandafter\xint_firstoftwo\else\expandafter\xint_secondoftwo\fi - \XINTdigits{{##2##3}}{##4}% - }% - \def\XINT_expr_print ##1{\expandafter - \xintSPRaw::csv\expandafter{\romannumeral`&&@\XINT_expr_unlock ##1}}% - \def\XINT_iiexpr_print ##1{\expandafter - \xintCSV::csv\expandafter{\romannumeral`&&@\XINT_expr_unlock ##1}}% - \def\XINT_boolexpr_print ##1{\expandafter - \xintIsTrue::csv\expandafter{\romannumeral`&&@\XINT_expr_unlock ##1}}% + \let\XINT_flexpr_withopt_a\XINT:NE_flexpr_withopt_a + \let\XINT_expr_print \XINT:NE_expr_print + \let\XINT_iiexpr_print \XINT:NE_iiexpr_print + \let\XINT_boolexpr_print \XINT:NE_boolexpr_print \def\xintCSV::csv {~xintCSV::csv }% \def\xintSPRaw::csv {~xintSPRaw::csv }% \def\xintPFloat::csv {~xintPFloat::csv }% \def\xintIsTrue::csv {~xintIsTrue::csv }% \def\xintRound::csv {~xintRound::csv }% }% -\def\xintNewExpr {\XINT_NewExpr\XINT_expr_redefineprints\xint_firstofone +\def\xintNewExpr {\XINT_NewExpr\xint_firstofone \xinttheexpr\XINT_newexpr_clean}% -\def\xintNewFloatExpr{\XINT_NewExpr\XINT_expr_redefineprints\xint_firstofone +\def\xintNewFloatExpr{\XINT_NewExpr\xint_firstofone \xintthefloatexpr\XINT_newexpr_clean}% -\def\xintNewIExpr {\XINT_NewExpr\XINT_expr_redefineprints\xint_firstofone +\def\xintNewIExpr {\XINT_NewExpr\xint_firstofone \xinttheiexpr\XINT_newexpr_clean}% -\def\xintNewIIExpr {\XINT_NewExpr\XINT_expr_redefineprints\xint_firstofone +\def\xintNewIIExpr {\XINT_NewExpr\xint_firstofone \xinttheiiexpr\XINT_newexpr_clean}% -\def\xintNewBoolExpr {\XINT_NewExpr\XINT_expr_redefineprints\xint_firstofone +\def\xintNewBoolExpr {\XINT_NewExpr\xint_firstofone \xinttheboolexpr\XINT_newexpr_clean}% \def\XINT_newexpr_clean #1>{\noexpand\romannumeral`&&@}% \def\XINT_NewFunc - {\XINT_NewExpr\XINT_expr_redefineprints\xint_gobble_i\xintthebareeval\XINT_newfunc_clean}% + {\XINT_NewExpr\xint_gobble_i\xintthebareeval\XINT_newfunc_clean}% \def\XINT_NewFloatFunc - {\XINT_NewExpr\XINT_expr_redefineprints\xint_gobble_i\xintthebarefloateval\XINT_newfunc_clean}% + {\XINT_NewExpr\xint_gobble_i\xintthebarefloateval\XINT_newfunc_clean}% \def\XINT_NewIIFunc - {\XINT_NewExpr\XINT_expr_redefineprints\xint_gobble_i\xintthebareiieval\XINT_newfunc_clean}% + {\XINT_NewExpr\xint_gobble_i\xintthebareiieval\XINT_newfunc_clean}% \def\XINT_newfunc_clean #1>{}% -\def\XINT_NewExpr #1#2#3#4#5#6[#7]% +\def\XINT_NewExpr #1#2#3#4#5[#6]% {% \begingroup - \ifcase #7\relax - \toks0 {\endgroup\XINT_global\def#5}% - \or \toks0 {\endgroup\XINT_global\def#5##1}% - \or \toks0 {\endgroup\XINT_global\def#5##1##2}% - \or \toks0 {\endgroup\XINT_global\def#5##1##2##3}% - \or \toks0 {\endgroup\XINT_global\def#5##1##2##3##4}% - \or \toks0 {\endgroup\XINT_global\def#5##1##2##3##4##5}% - \or \toks0 {\endgroup\XINT_global\def#5##1##2##3##4##5##6}% - \or \toks0 {\endgroup\XINT_global\def#5##1##2##3##4##5##6##7}% - \or \toks0 {\endgroup\XINT_global\def#5##1##2##3##4##5##6##7##8}% - \or \toks0 {\endgroup\XINT_global\def#5##1##2##3##4##5##6##7##8##9}% + \ifcase #6\relax + \toks0 {\endgroup\XINT_global\def#4}% + \or \toks0 {\endgroup\XINT_global\def#4##1}% + \or \toks0 {\endgroup\XINT_global\def#4##1##2}% + \or \toks0 {\endgroup\XINT_global\def#4##1##2##3}% + \or \toks0 {\endgroup\XINT_global\def#4##1##2##3##4}% + \or \toks0 {\endgroup\XINT_global\def#4##1##2##3##4##5}% + \or \toks0 {\endgroup\XINT_global\def#4##1##2##3##4##5##6}% + \or \toks0 {\endgroup\XINT_global\def#4##1##2##3##4##5##6##7}% + \or \toks0 {\endgroup\XINT_global\def#4##1##2##3##4##5##6##7##8}% + \or \toks0 {\endgroup\XINT_global\def#4##1##2##3##4##5##6##7##8##9}% \fi - #2\xintexprSafeCatcodes + #1\xintexprSafeCatcodes \XINT_expr_redefinemacros - #1% - \XINT_NewExpr_a #2#3#4#5% + \XINT_expr_redefineprints + \XINT_NewExpr_a #1#2#3#4% }% \catcode`~ 13 \catcode`@ 14 \catcode`\% 6 \catcode`# 12 \catcode`$ 11 @ $ \def\XINT_NewExpr_a %1%2%3%4%5@ diff --git a/Master/texmf-dist/tex/generic/xint/xintfrac.sty b/Master/texmf-dist/tex/generic/xint/xintfrac.sty index 11d4185c722..a9371efa96a 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.3e 2019/04/05 +%% The xint bundle 1.3f 2019/09/10 %% Copyright (C) 2013-2019 by Jean-Francois Burnol %% xintfrac: Expandable operations on fractions %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintfrac}% - [2019/04/05 1.3e Expandable operations on fractions (JFB)]% + [2019/09/10 v1.3f Expandable operations on fractions (JFB)]% \def\XINT_cntSgnFork #1% {% \ifcase #1\expandafter\xint_secondofthree @@ -1261,10 +1261,6 @@ {% #2\romannumeral\XINT_rep#1\endcsname0.\romannumeral\XINT_rep#3\endcsname0% }% -\mathchardef\XINTdigits 16 -\def\xintDigits #1#2% - {\afterassignment \xint_gobble_i \mathchardef\XINTdigits=}% -\def\xinttheDigits {\number\XINTdigits }% \def\xintAdd {\romannumeral0\xintadd }% \def\xintadd #1{\expandafter\XINT_fadd\romannumeral0\xintraw {#1}}% \def\XINT_fadd #1{\xint_gob_til_zero #1\XINT_fadd_Azero 0\XINT_fadd_a #1}% @@ -1882,6 +1878,11 @@ \def\XINT_inv_b #1.#2{ #2[#1]}% \def\xintSgn {\romannumeral0\xintsgn }% \def\xintsgn #1{\expandafter\XINT_sgn\romannumeral0\xintraw {#1}\xint:}% +\mathchardef\XINTdigits 16 +\def\xintDigits #1=% + {\afterassignment \xint_gobble_i \mathchardef\XINTdigits=}% +\def\xinttheDigits {\number\XINTdigits }% +\def\xintSetDigits #1{\mathchardef\XINTdigits=\numexpr#1\relax}% \def\xintFloat {\romannumeral0\xintfloat }% \def\xintfloat #1{\XINT_float_chkopt #1\xint:}% \def\XINT_float_chkopt #1% @@ -3319,6 +3320,49 @@ \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]}}}% \XINT_restorecatcodes_endinput% \endinput %% diff --git a/Master/texmf-dist/tex/generic/xint/xintgcd.sty b/Master/texmf-dist/tex/generic/xint/xintgcd.sty index ecd3d3f8532..473e4520af2 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.3e 2019/04/05 +%% The xint bundle 1.3f 2019/09/10 %% Copyright (C) 2013-2019 by Jean-Francois Burnol %% xintgcd: Euclidean algorithm with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintgcd}% - [2019/04/05 1.3e Euclide algorithm with xint package (JFB)]% + [2019/09/10 v1.3f Euclide algorithm with xint package (JFB)]% \def\xintGCD {\romannumeral0\xintgcd }% \def\xintgcd #1#2{\xintiigcd {\xintNum{#1}}{\xintNum{#2}}}% \def\xintiiGCD {\romannumeral0\xintiigcd }% diff --git a/Master/texmf-dist/tex/generic/xint/xintkernel.sty b/Master/texmf-dist/tex/generic/xint/xintkernel.sty index 2b03201a5f5..3fdf7040f4e 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.3e 2019/04/05 +%% The xint bundle 1.3f 2019/09/10 %% Copyright (C) 2013-2019 by Jean-Francois Burnol %% xintkernel: Paraphernalia for the xint packages %% --------------------------------------------------------------- @@ -156,7 +156,7 @@ \fi \XINT_providespackage \ProvidesPackage {xintkernel}% - [2019/04/05 1.3e Paraphernalia for the xint packages (JFB)]% + [2019/09/10 v1.3f Paraphernalia for the xint packages (JFB)]% \chardef\xint_c_ 0 \chardef\xint_c_i 1 \chardef\xint_c_ii 2 diff --git a/Master/texmf-dist/tex/generic/xint/xintlog.sty b/Master/texmf-dist/tex/generic/xint/xintlog.sty index 0ba983d2530..b93e1c2bb05 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.3e 2019/04/05 +%% The xint bundle 1.3f 2019/09/10 %% Copyright (C) 2013-2019 by Jean-Francois Burnol %% xintlog: Logarithms and exponentials for xintexpr %% --------------------------------------------------------------- @@ -74,17 +74,27 @@ \xintexprSafeCatcodes\catcode`_ 11 \XINT_providespackage \ProvidesPackage{xintlog}% -[2019/04/05 1.3e Logarithms and exponentials for xintexpr (JFB)]% +[2019/09/10 v1.3f Logarithms and exponentials for xintexpr (JFB)]% \ifdefined\RequirePackage \RequirePackage{poormanlog}% \else \input poormanlog.tex \fi \xintexprRestoreCatcodes\csname XINT_setcatcodes\endcsname\catcode`\! 11 -\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]}}}% +\expandafter\def\csname XINT_expr_func_log10\endcsname#1#2#3% +{% + \expandafter #1\expandafter #2\csname.=% + \XINT:NEhook:one\PoorManLogBaseTen{\XINT_expr_unlock #3}\endcsname +}% +\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\csname.=% + \XINT:NEhook:one\PoorManPowerOfTen{\XINT_expr_unlock #3}\endcsname +}% +\expandafter\let\csname XINT_flexpr_func_pow10\expandafter\endcsname + \csname XINT_expr_func_pow10\endcsname \def\XINT_expr_func_log #1#2#3% {% \expandafter #1\expandafter #2\csname.=% @@ -113,6 +123,58 @@ \endcsname }% \let\XINT_flexpr_func_pow\XINT_expr_func_pow +\catcode`\* 11 +\def\poormanloghack**{% +\def\XINT_expr_op_** ##1% +{% + \expandafter \XINT_expr_until_**_a + \expandafter ##1\romannumeral`&&@\expandafter\XINT_expr_getnext +}% +\def\XINT_expr_until_**_a ##1{% +\def\XINT_expr_until_**_a ####1####2% +{% + \xint_UDsignfork + ####2{\expandafter \XINT_expr_until_**_a \expandafter ##1% + \romannumeral`&&@##1}% + -{\XINT_expr_until_**_b ####1####2}% + \krof +}}\expandafter\XINT_expr_until_**_a\csname XINT_expr_op_-ix\endcsname +\def\XINT_expr_until_**_b ##1##2##3##4% +{% + \ifnum ##2>\XINT_expr_precedence_** + \xint_afterfi + {\expandafter \XINT_expr_until_**_a \expandafter ##1% + \romannumeral`&&@\csname XINT_expr_op_##3\endcsname{##4}}% + \else + \xint_afterfi + {\expandafter ##2\expandafter ##3% + \csname .=\XINT:NEhook:two + \PoorManPower{\XINT_expr_unlock ##1}{\XINT_expr_unlock ##4}\endcsname + }% + \fi +}% +\let\XINT_flexpr_op_** \XINT_expr_op_** +\let\XINT_flexpr_until_**_a\XINT_expr_until_**_a +\let\XINT_flexpr_until_**_b\XINT_expr_until_**_b +}% +\def\poormanloghack^{% +\def\XINT_expr_until_^_b ##1##2##3##4% +{% + \ifnum ##2>\XINT_expr_precedence_^ + \xint_afterfi + {\expandafter \XINT_expr_until_^_a \expandafter ##1% + \romannumeral`&&@\csname XINT_expr_op_##3\endcsname {##4}}% + \else + \xint_afterfi + {\expandafter ##2\expandafter ##3% + \csname .=\XINT:NEhook:two + \PoorManPower{\XINT_expr_unlock ##1}{\XINT_expr_unlock ##4}\endcsname + }% + \fi +}% +\let\XINT_flexpr_until_^_b\XINT_expr_until_^_b +}% +\def\poormanloghack#1{\csname poormanloghack#1\endcsname}% \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 38ea5b473c4..f7f708c86db 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.3e 2019/04/05 +%% The xint bundle 1.3f 2019/09/10 %% Copyright (C) 2013-2019 by Jean-Francois Burnol %% xintseries: Expandable partial sums with xint package %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xintseries}% - [2019/04/05 1.3e Expandable partial sums with xint package (JFB)]% + [2019/09/10 v1.3f Expandable partial sums with xint package (JFB)]% \def\xintSeries {\romannumeral0\xintseries }% \def\xintseries #1#2% {% diff --git a/Master/texmf-dist/tex/generic/xint/xinttools.sty b/Master/texmf-dist/tex/generic/xint/xinttools.sty index c38614a2a1e..a06a4db27d0 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.3e 2019/04/05 +%% The xint bundle 1.3f 2019/09/10 %% Copyright (C) 2013-2019 by Jean-Francois Burnol %% xinttools: Expandable and non-expandable utilities %% --------------------------------------------------------------- @@ -70,7 +70,7 @@ \XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage \ProvidesPackage{xinttools}% - [2019/04/05 1.3e Expandable and non-expandable utilities (JFB)]% + [2019/09/10 v1.3f Expandable and non-expandable utilities (JFB)]% \newtoks\XINT_toks \xint_firstofone{\let\XINT_sptoken= } %<- space here! \def\xintgodef {\global\xintodef }% diff --git a/Master/texmf-dist/tex/generic/xint/xinttrig.sty b/Master/texmf-dist/tex/generic/xint/xinttrig.sty index b2e41c7b21f..c25ebaeb452 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.3e 2019/04/05 +%% The xint bundle 1.3f 2019/09/10 %% Copyright (C) 2013-2019 by Jean-Francois Burnol %% xinttrig: Trigonometry for the xintexpr package %% --------------------------------------------------------------- @@ -68,10 +68,10 @@ \expandafter\xint_secondoftwo \fi {\immediate\write-1{Reloading xinttrig library using Digits=\xinttheDigits.}}% -{\expandafter\gdef\csname xintlibver@trig\endcsname{2019/04/05 1.3e}% +{\expandafter\gdef\csname xintlibver@trig\endcsname{2019/09/10 v1.3f}% \XINT_providespackage \ProvidesPackage{xinttrig}% -[2019/04/05 1.3e Trigonometrical functions for xintexpr (JFB)]% +[2019/09/10 v1.3f Trigonometrical functions for xintexpr (JFB)]% }% \xintFor* #1 in {iDTVtuwxyzX}\do{\xintensuredummy{#1}}% \def\xintreloadxinttrig |