%%
%% 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_<op>
  {%
    \expanded{\unexpanded{##4{####1}}\expandafter}%
    \romannumeral`&&@\expandafter##2\romannumeral`&&@\XINT_expr_getnext
  }%
  \def##2####1% \XINT_expr_check-_<op>
  {%
    \xint_UDsignfork
      ####1{\expandafter##2\romannumeral`&&@##1}%
        -{##5####1}%
    \krof
  }%
  \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
  }%
 }%
 \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}}%
  }%
  \let\XINT_flexpr_exec_**\XINT_expr_exec_**
}%
\def\poormanloghack^
{%
 \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
  }%
  \def##2####1% \XINT_expr_check-_<op>
  {%
    \xint_UDsignfork
      ####1{\expandafter##2\romannumeral`&&@##1}%
        -{##5####1}%
    \krof
  }%
  \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
  }%
 }%
 \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}}%
  }%
  \let\XINT_flexpr_exec_^\XINT_expr_exec_^
}%
\def\poormanloghack#1{\csname poormanloghack#1\endcsname}%
\endinput
%%
%% End of file `xintlog.sty'.
