%% %% This is file `xintlog.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% xint.dtx (with options: `xintlog') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from xintlog.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file xint.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% --------------------------------------------------------------- %% The xint bundle 1.4b 2020/02/25 %% Copyright (C) 2013-2020 by Jean-Francois Burnol %% xintlog: Logarithms and exponentials for xintexpr %% --------------------------------------------------------------- \begingroup\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ \catcode35=6 % # \catcode44=12 % , \catcode45=12 % - \catcode46=12 % . \catcode58=12 % : \catcode94=7 % ^ \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% \space\space\space\space#2.}}% \else \def\y#1#2{\PackageInfo{#1}{#2}}% \fi \expandafter \ifx\csname numexpr\endcsname\relax \y{xintlog}{\numexpr not available, aborting input}% \aftergroup\endinput \else \ifx\w\relax % xintexpr.sty not yet loaded. \y{xintlog}% {Loading should be via \ifx\x\empty\string\usepackage{xintexpr.sty} \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 \XINT_providespackage \ProvidesPackage{xintlog}% [2020/02/25 v1.4b Logarithms and exponentials for xintexpr (JFB)]% \ifdefined\RequirePackage \RequirePackage{poormanlog}% \else \input poormanlog.tex \fi \xintexprRestoreCatcodes\csname XINT_setcatcodes\endcsname\catcode`\! 11 \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}}% }% \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\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one {\romannumeral`&&@\xintLog#3}}% }% \def\XINT_flexpr_func_log #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one {\romannumeral`&&@\XINTinFloatLog#3}}% }% \def\XINT_expr_func_exp #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one {\romannumeral`&&@\xintExp#3}}% }% \def\XINT_flexpr_func_exp #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:one {\romannumeral`&&@\XINTinFloatExp#3}}% }% \def\XINT_expr_func_pow #1#2#3% {% \expandafter #1\expandafter #2\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:two {\romannumeral`&&@\PoorManPower#3}}% }% \let\XINT_flexpr_func_pow\XINT_expr_func_pow \catcode`\* 11 \def\poormanloghack** {% \def\XINT_tmpa ##1##2##3##4##5##6% {% \def ##3####1% \XINT_expr_op_ {% \expanded{\unexpanded{##4{####1}}\expandafter}% \romannumeral`&&@\expandafter##2\romannumeral`&&@\XINT_expr_getnext }% \def##2####1% \XINT_expr_check-_ {% \xint_UDsignfork ####1{\expandafter##2\romannumeral`&&@##1}% -{##5####1}% \krof }% \def##5####1####2% \XINT_expr_checkp_ {% \ifnum ####1>\XINT_expr_precedence_** \expandafter##5% \romannumeral`&&@\csname XINT_##6_op_####2\expandafter\endcsname \else \expandafter ####1\expandafter ####2% \fi }% }% \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_ {% \expandafter##2\expandafter##3\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:two {\romannumeral`&&@\PoorManPower##1##4}}% }% \let\XINT_flexpr_exec_**\XINT_expr_exec_** }% \def\poormanloghack^ {% \def\XINT_tmpa ##1##2##3##4##5##6% {% \def ##3####1% \XINT_expr_op_ {% \expanded{\unexpanded{##4{####1}}\expandafter}% \romannumeral`&&@\expandafter##2\romannumeral`&&@\XINT_expr_getnext }% \def##2####1% \XINT_expr_check-_ {% \xint_UDsignfork ####1{\expandafter##2\romannumeral`&&@##1}% -{##5####1}% \krof }% \def##5####1####2% \XINT_expr_checkp_ {% \ifnum ####1>\XINT_expr_precedence_^ \expandafter##5% \romannumeral`&&@\csname XINT_##6_op_####2\expandafter\endcsname \else \expandafter ####1\expandafter ####2% \fi }% }% \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_ {% \expandafter##2\expandafter##3\expandafter{% \romannumeral`&&@\XINT:NEhook:f:one:from:two {\romannumeral`&&@\PoorManPower##1##4}}% }% \let\XINT_flexpr_exec_^\XINT_expr_exec_^ }% \def\poormanloghack#1{\csname poormanloghack#1\endcsname}% \endinput %% %% End of file `xintlog.sty'.