Current File : //usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex |
% Copyright 2019 by Mark Wibrow
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.
% This file defines the mathematical functions and operators.
%
% Version 1.4142135 11/8/2008
\pgfmathdeclarefunction{greater}{2}{%
\begingroup%
\ifdim#1pt>#2pt\relax%
\def\pgfmathresult{1}%
\else%
\def\pgfmathresult{0}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\let\pgfmathgreaterthan=\pgfmathgreater
\pgfmathdeclarefunction{less}{2}{%
\begingroup%
\ifdim#1pt<#2pt\relax%
\def\pgfmathresult{1}%
\else%
\def\pgfmathresult{0}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\let\pgfmathlessthan=\pgfmathless
\pgfmathdeclarefunction{equal}{2}{%
\begingroup%
\ifdim#1pt=#2pt\relax%
\def\pgfmathresult{1}%
\else%
\def\pgfmathresult{0}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
\let\pgfmathequalto=\pgfmathequal
% approxequalto function from Christian Feuersaenger.
%
\newif\ifpgfmathcomparison
\pgfmathdeclarefunction{approxequalto}{2}{%
\begingroup%
\pgfmath@x=#1pt\relax%
\pgfmath@y=#2pt\relax%
\advance\pgfmath@x by-\pgfmath@y%
\ifdim\pgfmath@x<0pt\relax%
\multiply\pgfmath@x by-1\relax%
\fi
\ifdim\pgfmath@x<0.0001pt\relax%
\def\pgfmathresult{1.0}%
\global\pgfmathcomparisontrue%
\else%
\def\pgfmathresult{0.0}%
\global\pgfmathcomparisonfalse%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
% ifthenelse function.
%
\pgfmathdeclarefunction{ifthenelse}{3}{%
\begingroup%
\ifdim#1pt=0.0pt\relax%
\expandafter\def\expandafter\pgfmathresult\expandafter{#3}%
\else%
\expandafter\def\expandafter\pgfmathresult\expandafter{#2}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
% notequal function.
%
\pgfmathdeclarefunction{notequal}{2}{%
\begingroup%
\ifdim#1pt=#2pt\relax%
\def\pgfmathresult{0}%
\else%
\def\pgfmathresult{1}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
% notless function.
%
\pgfmathdeclarefunction{notless}{2}{%
\begingroup%
\ifdim#1pt<#2pt\relax%
\def\pgfmathresult{0}%
\else%
\def\pgfmathresult{1}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
% notgreater function.
%
\pgfmathdeclarefunction{notgreater}{2}{%
\begingroup%
\ifdim#1pt>#2pt\relax%
\def\pgfmathresult{0}%
\else%
\def\pgfmathresult{1}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
% and function.
%
\pgfmathdeclarefunction{and}{2}{%
\begingroup%
\def\pgfmathresult{1}%
\ifdim#1pt=0pt\relax%
\def\pgfmathresult{0}%
\else%
\ifdim#2pt=0pt\relax%
\def\pgfmathresult{0}%
\fi%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
% or function.
%
\pgfmathdeclarefunction{or}{2}{%
\begingroup%
\def\pgfmathresult{0}%
\ifdim#1pt=0pt\relax%
\ifdim#2pt=0pt\relax%
\else%
\def\pgfmathresult{1}%
\fi%
\else%
\def\pgfmathresult{1}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
% not function.
%
\pgfmathdeclarefunction{not}{1}{%
\begingroup%
\ifdim#1pt=0pt\relax%
\def\pgfmathresult{1}%
\else%
\def\pgfmathresult{0}%
\fi%
\pgfmath@smuggleone\pgfmathresult%
\endgroup%
}
% true function.
%
\pgfmathdeclarefunction{true}{0}{\def\pgfmathresult{1}}
% false function.
%
\pgfmathdeclarefunction{false}{0}{\def\pgfmathresult{0}}