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/xintlog.sty | |
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/xintlog.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xintlog.sty | 74 |
1 files changed, 68 insertions, 6 deletions
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'. |