% 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}}