You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
179 lines
3.8 KiB
179 lines
3.8 KiB
% Copyright 2007 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}}
|
|
|