summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex')
-rw-r--r--Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex1086
1 files changed, 543 insertions, 543 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex b/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex
index 2dbf154d8be..b6ac16c8bf3 100644
--- a/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex
+++ b/Master/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex
@@ -14,7 +14,7 @@
% add function.
%
\pgfmathdeclarefunction{add}{2}{%
- \begingroup%
+ \begingroup%
\pgfmath@x=#1pt\relax%
\pgfmath@y=#2pt\relax%
\advance\pgfmath@x by\pgfmath@y%
@@ -26,7 +26,7 @@
% subtract function.
%
\pgfmathdeclarefunction{subtract}{2}{%
- \begingroup%
+ \begingroup%
\pgfmath@x=#1pt\relax%
\pgfmath@y=#2pt\relax%
\advance\pgfmath@x by-\pgfmath@y%
@@ -37,11 +37,11 @@
% neg function.
%
\pgfmathdeclarefunction{neg}{1}{%
- \begingroup%
- \pgfmath@x=-#1pt\relax%
- \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
+ \begingroup%
+ \pgfmath@x=-#1pt\relax%
+ \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
}
% change the precedence for neg.
% Otherwise, unary minus and exponentiation won't have the correct precedence
@@ -64,206 +64,206 @@
\newif\ifpgfmath@divide@period
\pgfmathdeclarefunction{divide}{2}{%
- \begingroup%
- \pgfmath@x=#1pt\relax%
- \pgfmath@y=#2pt\relax%
- \let\pgfmath@sign=\pgfmath@empty%
- \ifdim0pt=\pgfmath@y%
- \pgfmath@error{You've asked me to divide `#1' by `#2', %
- but I cannot divide any number by `#2'}%
- \fi%
- \afterassignment\pgfmath@xa%
- \c@pgfmath@counta\the\pgfmath@y\relax%
- \ifdim0pt=\pgfmath@xa%
- \divide\pgfmath@x by\c@pgfmath@counta%
- \else%
- \ifdim0pt>\pgfmath@x%
- \def\pgfmath@sign{-}%
- \pgfmath@x=-\pgfmath@x%
- \fi%
- \ifdim0pt>\pgfmath@y%
- \expandafter\def\expandafter\pgfmath@sign\expandafter{\pgfmath@sign-}%
- \pgfmath@y=-\pgfmath@y%
- \fi%
- \ifdim1pt>\pgfmath@y%
- \pgfmathreciprocal@{\pgfmath@tonumber{\pgfmath@y}}%
- \pgfmath@x=\pgfmath@sign\pgfmathresult\pgfmath@x%
- \else%
- \def\pgfmathresult{0}%
- \pgfmath@divide@periodtrue%
- \c@pgfmath@counta=0\relax%
- \pgfmathdivide@@%
- \pgfmath@x=\pgfmath@sign\pgfmathresult pt\relax%
- \fi%
- \fi%
- \pgfmath@returnone\pgfmath@x%
- \endgroup%
+ \begingroup%
+ \pgfmath@x=#1pt\relax%
+ \pgfmath@y=#2pt\relax%
+ \let\pgfmath@sign=\pgfmath@empty%
+ \ifdim0pt=\pgfmath@y%
+ \pgfmath@error{You've asked me to divide `#1' by `#2', %
+ but I cannot divide any number by `#2'}%
+ \fi%
+ \afterassignment\pgfmath@xa%
+ \c@pgfmath@counta\the\pgfmath@y\relax%
+ \ifdim0pt=\pgfmath@xa%
+ \divide\pgfmath@x by\c@pgfmath@counta%
+ \else%
+ \ifdim0pt>\pgfmath@x%
+ \def\pgfmath@sign{-}%
+ \pgfmath@x=-\pgfmath@x%
+ \fi%
+ \ifdim0pt>\pgfmath@y%
+ \expandafter\def\expandafter\pgfmath@sign\expandafter{\pgfmath@sign-}%
+ \pgfmath@y=-\pgfmath@y%
+ \fi%
+ \ifdim1pt>\pgfmath@y%
+ \pgfmathreciprocal@{\pgfmath@tonumber{\pgfmath@y}}%
+ \pgfmath@x=\pgfmath@sign\pgfmathresult\pgfmath@x%
+ \else%
+ \def\pgfmathresult{0}%
+ \pgfmath@divide@periodtrue%
+ \c@pgfmath@counta=0\relax%
+ \pgfmathdivide@@%
+ \pgfmath@x=\pgfmath@sign\pgfmathresult pt\relax%
+ \fi%
+ \fi%
+ \pgfmath@returnone\pgfmath@x%
+ \endgroup%
}
\def\pgfmath@small@number{0.00002}
\def\pgfmathdivide@@{%
- \let\pgfmath@next=\relax%
- \ifdim\pgfmath@small@number pt<\pgfmath@x%
- \ifdim\pgfmath@small@number pt<\pgfmath@y%
- \ifdim\pgfmath@y>\pgfmath@x%
- \ifpgfmath@divide@period%
- \expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult.}%
- \pgfmath@divide@periodfalse%
- \fi%
- \pgfmathdivide@dimenbyten\pgfmath@y%
- \ifdim\pgfmath@y>\pgfmath@x%
- \expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult0}%
- \fi%
- \else%
- \c@pgfmath@counta=\pgfmath@x%
- \c@pgfmath@countb=\pgfmath@y%
- \divide\c@pgfmath@counta by\c@pgfmath@countb%
- \pgfmath@ya=\c@pgfmath@counta\pgfmath@y%
- \advance\pgfmath@x by-\pgfmath@ya%
- \def\pgfmath@next{%
- \toks0=\expandafter{\pgfmathresult}%
- \edef\pgfmathresult{\the\toks0 \the\c@pgfmath@counta}%
- }%
- \ifpgfmath@divide@period
- \else
- % we are behind the period. It may happen that the
- % result is more than one digit - in that case,
- % introduce special handling:
- \ifnum\c@pgfmath@counta>9 %
- \expandafter\pgfmathdivide@advance@last@digit\pgfmathresult CCCCC\@@
- \advance\c@pgfmath@counta by-10 %
- \ifnum\c@pgfmath@counta=0
- \let\pgfmath@next=\relax
- \fi
- \fi
- \fi
- \pgfmath@next
- \fi%
- \let\pgfmath@next=\pgfmathdivide@@%
- \fi%
- \fi%
- \pgfmath@next%
+ \let\pgfmath@next=\relax%
+ \ifdim\pgfmath@small@number pt<\pgfmath@x%
+ \ifdim\pgfmath@small@number pt<\pgfmath@y%
+ \ifdim\pgfmath@y>\pgfmath@x%
+ \ifpgfmath@divide@period%
+ \expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult.}%
+ \pgfmath@divide@periodfalse%
+ \fi%
+ \pgfmathdivide@dimenbyten\pgfmath@y%
+ \ifdim\pgfmath@y>\pgfmath@x%
+ \expandafter\def\expandafter\pgfmathresult\expandafter{\pgfmathresult0}%
+ \fi%
+ \else%
+ \c@pgfmath@counta=\pgfmath@x%
+ \c@pgfmath@countb=\pgfmath@y%
+ \divide\c@pgfmath@counta by\c@pgfmath@countb%
+ \pgfmath@ya=\c@pgfmath@counta\pgfmath@y%
+ \advance\pgfmath@x by-\pgfmath@ya%
+ \def\pgfmath@next{%
+ \toks0=\expandafter{\pgfmathresult}%
+ \edef\pgfmathresult{\the\toks0 \the\c@pgfmath@counta}%
+ }%
+ \ifpgfmath@divide@period
+ \else
+ % we are behind the period. It may happen that the
+ % result is more than one digit - in that case,
+ % introduce special handling:
+ \ifnum\c@pgfmath@counta>9 %
+ \expandafter\pgfmathdivide@advance@last@digit\pgfmathresult CCCCC\@@
+ \advance\c@pgfmath@counta by-10 %
+ \ifnum\c@pgfmath@counta=0
+ \let\pgfmath@next=\relax
+ \fi
+ \fi
+ \fi
+ \pgfmath@next
+ \fi%
+ \let\pgfmath@next=\pgfmathdivide@@%
+ \fi%
+ \fi%
+ \pgfmath@next%
}
% advances the last digit found in the number. Any missing digits are
% supposed to be filled with 'C'.
\def\pgfmathdivide@advance@last@digit#1.#2#3#4#5#6#7\@@{%
- \pgfmath@ya=\pgfmathresult pt %
- \if#2C%
- \pgfmath@xa=1pt %
- \else
- \if#3C%
- \pgfmath@xa=0.1pt %
- \else
- \if#4C%
- \pgfmath@xa=0.01pt %
- \else
- \if#5C%
- \pgfmath@xa=0.001pt %
- \else
- \if#6C%
- \pgfmath@xa=0.0001pt %
- \else
- \pgfmath@xa=0.00001pt %
- \fi
- \fi
- \fi
- \fi
- \fi
- \advance\pgfmath@ya by\pgfmath@xa
- \edef\pgfmathresult{\pgfmath@tonumber@notrailingzero\pgfmath@ya}%
+ \pgfmath@ya=\pgfmathresult pt %
+ \if#2C%
+ \pgfmath@xa=1pt %
+ \else
+ \if#3C%
+ \pgfmath@xa=0.1pt %
+ \else
+ \if#4C%
+ \pgfmath@xa=0.01pt %
+ \else
+ \if#5C%
+ \pgfmath@xa=0.001pt %
+ \else
+ \if#6C%
+ \pgfmath@xa=0.0001pt %
+ \else
+ \pgfmath@xa=0.00001pt %
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \advance\pgfmath@ya by\pgfmath@xa
+ \edef\pgfmathresult{\pgfmath@tonumber@notrailingzero\pgfmath@ya}%
}%
{
\catcode`\p=12
\catcode`\t=12
\gdef\Pgf@geT@NO@TRAILING@ZERO#1.#2pt{%
- #1.%
- \ifnum#2=0 \else #2\fi
+ #1.%
+ \ifnum#2=0 \else #2\fi
}
}
\def\pgfmath@tonumber@notrailingzero#1{\expandafter\Pgf@geT@NO@TRAILING@ZERO\the#1}
\def\pgfmathdivide@dimenbyten#1{%
- \edef\pgfmath@temp{\pgfmath@tonumber{#1}}%
- \expandafter\pgfmathdivide@@dimenbyten\pgfmath@temp\@@#1\@@}
+ \edef\pgfmath@temp{\pgfmath@tonumber{#1}}%
+ \expandafter\pgfmathdivide@@dimenbyten\pgfmath@temp\@@#1\@@}
\def\pgfmathdivide@@dimenbyten#1.#2\@@#3\@@{%
- \pgfmath@tempcnta=#1\relax%
- \divide\pgfmath@tempcnta by10\relax%
- \pgfmath@tempcntb=\pgfmath@tempcnta%
- \multiply\pgfmath@tempcnta by-10\relax%
- \advance\pgfmath@tempcnta by#1\relax%
- #3=\the\pgfmath@tempcntb.\the\pgfmath@tempcnta#2pt\relax%
+ \pgfmath@tempcnta=#1\relax%
+ \divide\pgfmath@tempcnta by10\relax%
+ \pgfmath@tempcntb=\pgfmath@tempcnta%
+ \multiply\pgfmath@tempcnta by-10\relax%
+ \advance\pgfmath@tempcnta by#1\relax%
+ #3=\the\pgfmath@tempcntb.\the\pgfmath@tempcnta#2pt\relax%
}
% reciprocal function.
%
\pgfmathdeclarefunction{reciprocal}{1}{%
- \begingroup%
- \expandafter\pgfmath@x#1pt\relax%
- \ifdim\pgfmath@x=0pt\relax%
- \pgfmath@error{You asked me to calculate `1/#1', but I cannot divide any number by zero}{}%
- \fi%
- \edef\pgfmath@reciprocaltemp{\pgfmath@tonumber{\pgfmath@x}}%
- \expandafter\pgfmathreciprocal@@\pgfmath@reciprocaltemp0000000\pgfmath@}
+ \begingroup%
+ \expandafter\pgfmath@x#1pt\relax%
+ \ifdim\pgfmath@x=0pt\relax%
+ \pgfmath@error{You asked me to calculate `1/#1', but I cannot divide any number by zero}{}%
+ \fi%
+ \edef\pgfmath@reciprocaltemp{\pgfmath@tonumber{\pgfmath@x}}%
+ \expandafter\pgfmathreciprocal@@\pgfmath@reciprocaltemp0000000\pgfmath@}
\def\pgfmathreciprocal@@#1.#2#3#4#5#6#7\pgfmath@{%
- \c@pgfmath@counta#2#3#4#5#6\relax%
- % If the number is an integer, use TeX arithmetic.
- \ifnum\c@pgfmath@counta=0\relax%
- \pgfmath@x1pt\relax%
- \divide\pgfmath@x#1\relax%
- \else%
- \ifnum#1>100\relax%
- \c@pgfmath@counta#1#2#3#4\relax%
- \c@pgfmath@countb1000000000\relax%
- \divide\c@pgfmath@countb\c@pgfmath@counta%
- \c@pgfmath@counta\c@pgfmath@countb%
- \divide\c@pgfmath@counta10000\relax%
- \pgfmath@x\c@pgfmath@counta pt\relax%
- \multiply\c@pgfmath@counta-10000\relax%
- \advance\c@pgfmath@countb\c@pgfmath@counta%
- \pgfmath@y\c@pgfmath@countb pt\relax%
- \divide\pgfmath@y1000000\relax%
- \advance\pgfmath@x\pgfmath@y%
- \else%
- \c@pgfmath@counta#1#2#3#4#5#6\relax%
- \c@pgfmath@countb1000000000\relax%
- \divide\c@pgfmath@countb\c@pgfmath@counta%
- \c@pgfmath@counta\c@pgfmath@countb%
- \divide\c@pgfmath@counta10000\relax%
- \pgfmath@x\c@pgfmath@counta pt\relax%
- \multiply\c@pgfmath@counta-10000\relax%
- \advance\c@pgfmath@countb\c@pgfmath@counta%
- \pgfmath@y\c@pgfmath@countb pt\relax%
- \pgfmath@y.1\pgfmath@y% Yes! This way is more accurate. Go figure...
- \pgfmath@y.1\pgfmath@y%
- \pgfmath@y.1\pgfmath@y%
- \pgfmath@y.1\pgfmath@y%
- \advance\pgfmath@x\pgfmath@y%
- \fi%
- \fi%
- \pgfmath@returnone\pgfmath@x%
- \endgroup%
+ \c@pgfmath@counta#2#3#4#5#6\relax%
+ % If the number is an integer, use TeX arithmatic.
+ \ifnum\c@pgfmath@counta=0\relax%
+ \pgfmath@x1pt\relax%
+ \divide\pgfmath@x#1\relax%
+ \else%
+ \ifnum#1>100\relax%
+ \c@pgfmath@counta#1#2#3#4\relax%
+ \c@pgfmath@countb1000000000\relax%
+ \divide\c@pgfmath@countb\c@pgfmath@counta%
+ \c@pgfmath@counta\c@pgfmath@countb%
+ \divide\c@pgfmath@counta10000\relax%
+ \pgfmath@x\c@pgfmath@counta pt\relax%
+ \multiply\c@pgfmath@counta-10000\relax%
+ \advance\c@pgfmath@countb\c@pgfmath@counta%
+ \pgfmath@y\c@pgfmath@countb pt\relax%
+ \divide\pgfmath@y1000000\relax%
+ \advance\pgfmath@x\pgfmath@y%
+ \else%
+ \c@pgfmath@counta#1#2#3#4#5#6\relax%
+ \c@pgfmath@countb1000000000\relax%
+ \divide\c@pgfmath@countb\c@pgfmath@counta%
+ \c@pgfmath@counta\c@pgfmath@countb%
+ \divide\c@pgfmath@counta10000\relax%
+ \pgfmath@x\c@pgfmath@counta pt\relax%
+ \multiply\c@pgfmath@counta-10000\relax%
+ \advance\c@pgfmath@countb\c@pgfmath@counta%
+ \pgfmath@y\c@pgfmath@countb pt\relax%
+ \pgfmath@y.1\pgfmath@y% Yes! This way is more accurate. Go figure...
+ \pgfmath@y.1\pgfmath@y%
+ \pgfmath@y.1\pgfmath@y%
+ \pgfmath@y.1\pgfmath@y%
+ \advance\pgfmath@x\pgfmath@y%
+ \fi%
+ \fi%
+ \pgfmath@returnone\pgfmath@x%
+ \endgroup%
}
% div function.
%
\pgfmathdeclarefunction{div}{2}{%
- \begingroup%
- \pgfmathdivide@{#1}{#2}%
- \ifdim\pgfmathresult pt<0pt\relax%
- \pgfmathceil@{\pgfmathresult}%
- \else%
- \pgfmathfloor@{\pgfmathresult}%
- \fi%
- \afterassignment\pgfmath@gobbletilpgfmath@%
- \c@pgfmath@counta=\pgfmathresult\relax\pgfmath@%
- \edef\pgfmathresult{\the\c@pgfmath@counta}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
+ \begingroup%
+ \pgfmathdivide@{#1}{#2}%
+ \ifdim\pgfmathresult pt<0pt\relax%
+ \pgfmathceil@{\pgfmathresult}%
+ \else%
+ \pgfmathfloor@{\pgfmathresult}%
+ \fi%
+ \afterassignment\pgfmath@gobbletilpgfmath@%
+ \c@pgfmath@counta=\pgfmathresult\relax\pgfmath@%
+ \edef\pgfmathresult{\the\c@pgfmath@counta}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
}
% mod function.
@@ -285,27 +285,27 @@
% Mod function (never negative).
%
\pgfmathdeclarefunction{Mod}{2}{%
- \begingroup%
- \pgfmathmod@{#1}{#2}%
- \pgfmath@x=\pgfmathresult pt\relax%
- \ifdim\pgfmath@x<0pt\relax%
- \advance\pgfmath@x by#2pt\relax%
- \fi%
- \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
+ \begingroup%
+ \pgfmathmod@{#1}{#2}%
+ \pgfmath@x=\pgfmathresult pt\relax%
+ \ifdim\pgfmath@x<0pt\relax%
+ \advance\pgfmath@x by#2pt\relax%
+ \fi%
+ \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
}
% abs function.
%
\pgfmathdeclarefunction{abs}{1}{%
- \begingroup%
- \expandafter\pgfmath@x#1pt\relax%
- \ifdim\pgfmath@x<0pt\relax%
- \pgfmath@x-\pgfmath@x%
- \fi%
- \pgfmath@returnone\pgfmath@x%
- \endgroup%
+ \begingroup%
+ \expandafter\pgfmath@x#1pt\relax%
+ \ifdim\pgfmath@x<0pt\relax%
+ \pgfmath@x-\pgfmath@x%
+ \fi%
+ \pgfmath@returnone\pgfmath@x%
+ \endgroup%
}
% sign(x)
@@ -334,189 +334,189 @@
% uses coefficients contributed by Alain Matthes.
%
\pgfmathdeclarefunction{ln}{1}{%
- \begingroup%
- \expandafter\pgfmath@x#1pt\relax%
- \ifdim\pgfmath@x>0pt\else%
- \pgfmath@error{I cannot calculate the logarithm of `#1'}{}%
- \fi%
- \c@pgfmath@counta=0\relax%
- \ifdim\pgfmath@x>2pt\relax%
- \ifdim\pgfmath@x<128pt\relax%
- \ifdim\pgfmath@x<8pt\relax%
- \ifdim\pgfmath@x<4pt\relax%
- \divide\pgfmath@x by2\relax%
- \c@pgfmath@counta=1\relax%
- \else%
- \divide\pgfmath@x by4\relax%
- \c@pgfmath@counta=2\relax%
- \fi%
- \else%
- \ifdim\pgfmath@x<32pt\relax%
- \ifdim\pgfmath@x<16pt\relax%
- \divide\pgfmath@x by8\relax%
- \c@pgfmath@counta=3\relax%
- \else%
- \divide\pgfmath@x by16\relax%
- \c@pgfmath@counta=4\relax%
- \fi%
- \else%
- \ifdim\pgfmath@x<64pt\relax%
- \divide\pgfmath@x by32\relax%
- \c@pgfmath@counta=5\relax%
- \else%
- \divide\pgfmath@x by64\relax%
- \c@pgfmath@counta=6\relax%
- \fi%
- \fi%
- \fi%
- \else%
- \ifdim\pgfmath@x<2048pt\relax%
- \ifdim\pgfmath@x<512pt\relax%
- \ifdim\pgfmath@x<256pt\relax%
- \divide\pgfmath@x by128\relax%
- \c@pgfmath@counta=7\relax%
- \else%
- \divide\pgfmath@x by256\relax%
- \c@pgfmath@counta=8\relax%
- \fi%
- \else%
- \ifdim\pgfmath@x<1024pt\relax%
- \divide\pgfmath@x by512\relax%
- \c@pgfmath@counta=9\relax%
- \else%
- \divide\pgfmath@x by1024\relax%
- \c@pgfmath@counta=10\relax%
- \fi%
- \fi%
- \else%
- \ifdim\pgfmath@x<8192pt\relax%
- \ifdim\pgfmath@x<4096pt\relax%
- \divide\pgfmath@x by2048\relax%
- \c@pgfmath@counta=11\relax%
- \else%
- \divide\pgfmath@x by4096\relax%
- \c@pgfmath@counta =12\relax%
- \fi%
- \else%
- \divide\pgfmath@x by8192\relax%
- \c@pgfmath@counta=13\relax%
- \fi%
- \fi%
- \fi%
- \else%
- \ifdim\pgfmath@x<1pt\relax%
- \ifdim\pgfmath@x>0.0078125pt\relax% 2^-7
- \ifdim\pgfmath@x>0.125pt\relax% 2^-3
- \ifdim\pgfmath@x>0.5pt\relax% 2^-1
- \multiply\pgfmath@x by2\relax%
- \c@pgfmath@counta=-1\relax%
- \else%
- \multiply\pgfmath@x by4\relax%
- \c@pgfmath@counta=-2\relax%
- \fi%
- \else%
- \ifdim\pgfmath@x>0.03125pt\relax% 2^-5
- \ifdim\pgfmath@x>0.0625pt\relax%
- \multiply\pgfmath@x by8\relax%
- \c@pgfmath@counta=-3\relax%
- \else%
- \multiply\pgfmath@x by16\relax%
- \c@pgfmath@counta=-4\relax%
- \fi%
- \else%
- \ifdim\pgfmath@x>0.015625pt\relax% 2^-6
- \multiply\pgfmath@x by32\relax%
- \c@pgfmath@counta=-5\relax%
- \else%
- \multiply\pgfmath@x by64\relax%
- \c@pgfmath@counta=-6\relax%
- \fi%
- \fi%
- \fi%
- \else%
- \ifdim\pgfmath@x>0.000244140625pt\relax% 2^-11
- \ifdim\pgfmath@x>0.001953125pt\relax% 2^-9
- \ifdim\pgfmath@x>0.00390625pt\relax% 2^-8
- \multiply\pgfmath@x by128\relax%
- \c@pgfmath@counta=-7\relax%
- \else%
- \multiply\pgfmath@x by256\relax%
- \c@pgfmath@counta=-8\relax%
- \fi%
- \else%
- \ifdim\pgfmath@x>0.0009765625pt\relax% 2^-10
- \multiply\pgfmath@x by512\relax%
- \c@pgfmath@counta=-9\relax%
- \else%
- \multiply\pgfmath@x by1024\relax%
- \c@pgfmath@counta=-10\relax%
- \fi%
- \fi%
- \else%
- \ifdim\pgfmath@x>0.0001220703125pt\relax% 2^13
- \ifdim\pgfmath@x>0.0002441406256pt\relax% 2^12
- \multiply\pgfmath@x by2048\relax%
- \c@pgfmath@counta=-11\relax%
- \else%
- \multiply\pgfmath@x by4096\relax%
- \c@pgfmath@counta=-12\relax%
- \fi%
- \else%
- \multiply\pgfmath@x by8192\relax%
- \c@pgfmath@counta=-13\relax%
- \fi%
- \fi%
- \fi%
- \fi%
- \fi%
- %
- % Use A+(B+(C+(D+(E+F*x)*x)*x)*x)*x
- %
- % where:
- % A = -2.787927935
- % B = 5.047861502
- % C = -3.489886985
- % D = 1.589480044
- % E = -.4025153233
- % F = 0.04300521312
- %
- \edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@x}}%
- \pgfmath@x=0.04300521312\pgfmath@x%
- \advance\pgfmath@x by-.4025153233pt\relax%
- \pgfmath@x=\pgfmath@temp\pgfmath@x%
- \advance\pgfmath@x by1.589480044pt\relax%
- \pgfmath@x=\pgfmath@temp\pgfmath@x%
- \advance\pgfmath@x by-3.489886985pt\relax%
- \pgfmath@x=\pgfmath@temp\pgfmath@x%
- \advance\pgfmath@x by5.047861502pt\relax%
- \pgfmath@x=\pgfmath@temp\pgfmath@x%
- \advance\pgfmath@x by-2.787927935pt\relax%
- \advance\pgfmath@x by\c@pgfmath@counta pt\relax%
- \pgfmath@x=0.6931471806\pgfmath@x%
- \pgfmath@returnone\pgfmath@x%
- \endgroup%
+ \begingroup%
+ \expandafter\pgfmath@x#1pt\relax%
+ \ifdim\pgfmath@x>0pt\else%
+ \pgfmath@error{I cannot calculate the logarithm of `#1'}{}%
+ \fi%
+ \c@pgfmath@counta=0\relax%
+ \ifdim\pgfmath@x>2pt\relax%
+ \ifdim\pgfmath@x<128pt\relax%
+ \ifdim\pgfmath@x<8pt\relax%
+ \ifdim\pgfmath@x<4pt\relax%
+ \divide\pgfmath@x by2\relax%
+ \c@pgfmath@counta=1\relax%
+ \else%
+ \divide\pgfmath@x by4\relax%
+ \c@pgfmath@counta=2\relax%
+ \fi%
+ \else%
+ \ifdim\pgfmath@x<32pt\relax%
+ \ifdim\pgfmath@x<16pt\relax%
+ \divide\pgfmath@x by8\relax%
+ \c@pgfmath@counta=3\relax%
+ \else%
+ \divide\pgfmath@x by16\relax%
+ \c@pgfmath@counta=4\relax%
+ \fi%
+ \else%
+ \ifdim\pgfmath@x<64pt\relax%
+ \divide\pgfmath@x by32\relax%
+ \c@pgfmath@counta=5\relax%
+ \else%
+ \divide\pgfmath@x by64\relax%
+ \c@pgfmath@counta=6\relax%
+ \fi%
+ \fi%
+ \fi%
+ \else%
+ \ifdim\pgfmath@x<2048pt\relax%
+ \ifdim\pgfmath@x<512pt\relax%
+ \ifdim\pgfmath@x<256pt\relax%
+ \divide\pgfmath@x by128\relax%
+ \c@pgfmath@counta=7\relax%
+ \else%
+ \divide\pgfmath@x by256\relax%
+ \c@pgfmath@counta=8\relax%
+ \fi%
+ \else%
+ \ifdim\pgfmath@x<1024pt\relax%
+ \divide\pgfmath@x by512\relax%
+ \c@pgfmath@counta=9\relax%
+ \else%
+ \divide\pgfmath@x by1024\relax%
+ \c@pgfmath@counta=10\relax%
+ \fi%
+ \fi%
+ \else%
+ \ifdim\pgfmath@x<8192pt\relax%
+ \ifdim\pgfmath@x<4096pt\relax%
+ \divide\pgfmath@x by2048\relax%
+ \c@pgfmath@counta=11\relax%
+ \else%
+ \divide\pgfmath@x by4096\relax%
+ \c@pgfmath@counta =12\relax%
+ \fi%
+ \else%
+ \divide\pgfmath@x by8192\relax%
+ \c@pgfmath@counta=13\relax%
+ \fi%
+ \fi%
+ \fi%
+ \else%
+ \ifdim\pgfmath@x<1pt\relax%
+ \ifdim\pgfmath@x>0.0078125pt\relax% 2^-7
+ \ifdim\pgfmath@x>0.125pt\relax% 2^-3
+ \ifdim\pgfmath@x>0.5pt\relax% 2^-1
+ \multiply\pgfmath@x by2\relax%
+ \c@pgfmath@counta=-1\relax%
+ \else%
+ \multiply\pgfmath@x by4\relax%
+ \c@pgfmath@counta=-2\relax%
+ \fi%
+ \else%
+ \ifdim\pgfmath@x>0.03125pt\relax% 2^-5
+ \ifdim\pgfmath@x>0.0625pt\relax%
+ \multiply\pgfmath@x by8\relax%
+ \c@pgfmath@counta=-3\relax%
+ \else%
+ \multiply\pgfmath@x by16\relax%
+ \c@pgfmath@counta=-4\relax%
+ \fi%
+ \else%
+ \ifdim\pgfmath@x>0.015625pt\relax% 2^-6
+ \multiply\pgfmath@x by32\relax%
+ \c@pgfmath@counta=-5\relax%
+ \else%
+ \multiply\pgfmath@x by64\relax%
+ \c@pgfmath@counta=-6\relax%
+ \fi%
+ \fi%
+ \fi%
+ \else%
+ \ifdim\pgfmath@x>0.000244140625pt\relax% 2^-11
+ \ifdim\pgfmath@x>0.001953125pt\relax% 2^-9
+ \ifdim\pgfmath@x>0.00390625pt\relax% 2^-8
+ \multiply\pgfmath@x by128\relax%
+ \c@pgfmath@counta=-7\relax%
+ \else%
+ \multiply\pgfmath@x by256\relax%
+ \c@pgfmath@counta=-8\relax%
+ \fi%
+ \else%
+ \ifdim\pgfmath@x>0.0009765625pt\relax% 2^-10
+ \multiply\pgfmath@x by512\relax%
+ \c@pgfmath@counta=-9\relax%
+ \else%
+ \multiply\pgfmath@x by1024\relax%
+ \c@pgfmath@counta=-10\relax%
+ \fi%
+ \fi%
+ \else%
+ \ifdim\pgfmath@x>0.0001220703125pt\relax% 2^13
+ \ifdim\pgfmath@x>0.0002441406256pt\relax% 2^12
+ \multiply\pgfmath@x by2048\relax%
+ \c@pgfmath@counta=-11\relax%
+ \else%
+ \multiply\pgfmath@x by4096\relax%
+ \c@pgfmath@counta=-12\relax%
+ \fi%
+ \else%
+ \multiply\pgfmath@x by8192\relax%
+ \c@pgfmath@counta=-13\relax%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ %
+ % Use A+(B+(C+(D+(E+F*x)*x)*x)*x)*x
+ %
+ % where:
+ % A = -2.787927935
+ % B = 5.047861502
+ % C = -3.489886985
+ % D = 1.589480044
+ % E = -.4025153233
+ % F = 0.04300521312
+ %
+ \edef\pgfmath@temp{\pgfmath@tonumber{\pgfmath@x}}%
+ \pgfmath@x=0.04300521312\pgfmath@x%
+ \advance\pgfmath@x by-.4025153233pt\relax%
+ \pgfmath@x=\pgfmath@temp\pgfmath@x%
+ \advance\pgfmath@x by1.589480044pt\relax%
+ \pgfmath@x=\pgfmath@temp\pgfmath@x%
+ \advance\pgfmath@x by-3.489886985pt\relax%
+ \pgfmath@x=\pgfmath@temp\pgfmath@x%
+ \advance\pgfmath@x by5.047861502pt\relax%
+ \pgfmath@x=\pgfmath@temp\pgfmath@x%
+ \advance\pgfmath@x by-2.787927935pt\relax%
+ \advance\pgfmath@x by\c@pgfmath@counta pt\relax%
+ \pgfmath@x=0.6931471806\pgfmath@x%
+ \pgfmath@returnone\pgfmath@x%
+ \endgroup%
}
% log2 function.
%
\pgfmathdeclarefunction{log2}{1}{%
- \begingroup%
- \pgfmathln@{#1}%
- \pgfmath@x=\pgfmathresult pt\relax%
- \pgfmath@x=1.442695041\pgfmath@x% 1/ln(2).
- \pgfmath@returnone\pgfmath@x%
- \endgroup%
+ \begingroup%
+ \pgfmathln@{#1}%
+ \pgfmath@x=\pgfmathresult pt\relax%
+ \pgfmath@x=1.442695041\pgfmath@x% 1/ln(2).
+ \pgfmath@returnone\pgfmath@x%
+ \endgroup%
}
% log10 function
%
-\pgfmathdeclarefunction{log10}{1}{%
- \begingroup%
- \pgfmathln@{#1}%
- \pgfmath@x=\pgfmathresult pt\relax%
- \pgfmath@x=0.43429441\pgfmath@x% 1/ln(10).
- \pgfmath@returnone\pgfmath@x%
- \endgroup%
+\pgfmathdeclarefunction{log10}{1}{%
+ \begingroup%
+ \pgfmathln@{#1}%
+ \pgfmath@x=\pgfmathresult pt\relax%
+ \pgfmath@x=0.43429441\pgfmath@x% 1/ln(10).
+ \pgfmath@returnone\pgfmath@x%
+ \endgroup%
}
% This is needed since \pgfmathlog2 and \pgfmathlog10 are not legal macro names
@@ -527,7 +527,7 @@
% exp function.
%
-\pgfmathdeclarefunction{exp}{1}{%
+\pgfmathdeclarefunction{exp}{1}{%
\begingroup
\pgfmath@xc=#1pt\relax
\pgfmath@yc=#1pt\relax
@@ -559,186 +559,186 @@
% sqrt function.
%
-\pgfmathdeclarefunction{sqrt}{1}{%
- \begingroup%
- \expandafter\pgfmath@x#1pt\relax%
- \ifdim\pgfmath@x<0pt\relax%
- \pgfmath@error{I cannot calculate the square-root of the negative number `#1'}{}%
- \else%
- \ifdim\pgfmath@x<10pt\relax%
- \def\pgfmath@zeros{0}%
- \def\pgfmath@targetiterations{1}%
- \else%
- \ifdim\pgfmath@x<100pt\relax%
- \def\pgfmath@zeros{}%
- \def\pgfmath@targetiterations{1}%
- \else%
- \ifdim\pgfmath@x<1000pt\relax%
- \def\pgfmath@zeros{0}%
- \def\pgfmath@targetiterations{2}%
- \else%
- \ifdim\pgfmath@x<10000pt\relax%
- \def\pgfmath@zeros{}%
- \def\pgfmath@targetiterations{2}%
- \else%
- \def\pgfmath@zeros{0}%
- \def\pgfmath@targetiterations{3}%
- \fi\fi\fi\fi\fi%
- \edef\pgfmath@temp{\pgfmath@zeros\pgfmath@tonumber{\pgfmath@x}}%
- \expandafter\pgfmath@sqrt@\pgfmath@temp\pgfmath@%
+\pgfmathdeclarefunction{sqrt}{1}{%
+ \begingroup%
+ \expandafter\pgfmath@x#1pt\relax%
+ \ifdim\pgfmath@x<0pt\relax%
+ \pgfmath@error{I cannot calculate the square-root of the negative number `#1'}{}%
+ \else%
+ \ifdim\pgfmath@x<10pt\relax%
+ \def\pgfmath@zeros{0}%
+ \def\pgfmath@targetiterations{1}%
+ \else%
+ \ifdim\pgfmath@x<100pt\relax%
+ \def\pgfmath@zeros{}%
+ \def\pgfmath@targetiterations{1}%
+ \else%
+ \ifdim\pgfmath@x<1000pt\relax%
+ \def\pgfmath@zeros{0}%
+ \def\pgfmath@targetiterations{2}%
+ \else%
+ \ifdim\pgfmath@x<10000pt\relax%
+ \def\pgfmath@zeros{}%
+ \def\pgfmath@targetiterations{2}%
+ \else%
+ \def\pgfmath@zeros{0}%
+ \def\pgfmath@targetiterations{3}%
+ \fi\fi\fi\fi\fi%
+ \edef\pgfmath@temp{\pgfmath@zeros\pgfmath@tonumber{\pgfmath@x}}%
+ \expandafter\pgfmath@sqrt@\pgfmath@temp\pgfmath@%
}
\def\pgfmath@sqrt@#1.#2\pgfmath@{\pgfmath@@sqrt@#1#2\pgfmath@empty\pgfmath@empty\pgfmath@}
\def\pgfmath@@sqrt@#1#2{%
- \c@pgfmath@countb=#1#2\relax%
- \ifnum\c@pgfmath@countb>35\relax%
- \ifnum\c@pgfmath@countb>63\relax%
- \ifnum\c@pgfmath@countb>80\relax%
- \c@pgfmath@counta=9\relax%
- \else%
- \c@pgfmath@counta=8\relax%
- \fi%
- \else%
- \ifnum\c@pgfmath@countb>48\relax%
- \c@pgfmath@counta=7\relax%
- \else%
- \c@pgfmath@counta=6\relax%
- \fi%
- \fi%
- \else%
- \ifnum\c@pgfmath@countb>15\relax%
- \ifnum\c@pgfmath@countb>24\relax%
- \c@pgfmath@counta5\relax%
- \else%
- \c@pgfmath@counta=4\relax%
- \fi%
- \else%
- \ifnum\c@pgfmath@countb>3\relax%
- \ifnum\c@pgfmath@countb>8\relax%
- \c@pgfmath@counta=3\relax%
- \else%
- \c@pgfmath@counta=2\relax%
- \fi%
- \else%
- \ifnum\c@pgfmath@countb>0\relax%
- \c@pgfmath@counta=1\relax%
- \else%
- \c@pgfmath@counta=0\relax%
- \fi%
- \fi%
- \fi%
- \fi%
- \edef\pgfmath@root{\the\c@pgfmath@counta}%
- \edef\pgfmath@rootspecial{\the\c@pgfmath@counta}%
- \multiply\c@pgfmath@counta by-\c@pgfmath@counta\relax%
- \advance\c@pgfmath@counta by#1#2\relax%
- \edef\pgfmath@remainder{\the\c@pgfmath@counta}%
- \pgfmath@@@sqrt@%
+ \c@pgfmath@countb=#1#2\relax%
+ \ifnum\c@pgfmath@countb>35\relax%
+ \ifnum\c@pgfmath@countb>63\relax%
+ \ifnum\c@pgfmath@countb>80\relax%
+ \c@pgfmath@counta=9\relax%
+ \else%
+ \c@pgfmath@counta=8\relax%
+ \fi%
+ \else%
+ \ifnum\c@pgfmath@countb>48\relax%
+ \c@pgfmath@counta=7\relax%
+ \else%
+ \c@pgfmath@counta=6\relax%
+ \fi%
+ \fi%
+ \else%
+ \ifnum\c@pgfmath@countb>15\relax%
+ \ifnum\c@pgfmath@countb>24\relax%
+ \c@pgfmath@counta5\relax%
+ \else%
+ \c@pgfmath@counta=4\relax%
+ \fi%
+ \else%
+ \ifnum\c@pgfmath@countb>3\relax%
+ \ifnum\c@pgfmath@countb>8\relax%
+ \c@pgfmath@counta=3\relax%
+ \else%
+ \c@pgfmath@counta=2\relax%
+ \fi%
+ \else%
+ \ifnum\c@pgfmath@countb>0\relax%
+ \c@pgfmath@counta=1\relax%
+ \else%
+ \c@pgfmath@counta=0\relax%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \edef\pgfmath@root{\the\c@pgfmath@counta}%
+ \edef\pgfmath@rootspecial{\the\c@pgfmath@counta}%
+ \multiply\c@pgfmath@counta by-\c@pgfmath@counta\relax%
+ \advance\c@pgfmath@counta by#1#2\relax%
+ \edef\pgfmath@remainder{\the\c@pgfmath@counta}%
+ \pgfmath@@@sqrt@%
}
\def\pgfmath@@@sqrt@#1#2{%
- \ifx\pgfmath@empty#1%
- \edef\pgfmath@remainder{\pgfmath@remainder00}%
- \def\pgfmath@tokens{\pgfmath@empty\pgfmath@empty}%
- \else%
- \ifx\pgfmath@empty#2%
- \edef\pgfmath@remainder{\pgfmath@remainder#10}%
- \def\pgfmath@tokens{\pgfmath@empty\pgfmath@empty}%
- \else%
- \edef\pgfmath@remainder{\pgfmath@remainder#1#2}%
- \def\pgfmath@tokens{}%
- \fi\fi%
- \c@pgfmath@counta=\pgfmath@rootspecial\relax%
- \multiply\c@pgfmath@counta by20\relax%
- \c@pgfmath@countb=\c@pgfmath@counta%
- \multiply\c@pgfmath@countb by6\relax%
- \advance\c@pgfmath@countb by36\relax%
- \c@pgfmath@countc=\c@pgfmath@counta%
- \multiply\c@pgfmath@countc by2\relax%
- \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
- \advance\c@pgfmath@countb by-\c@pgfmath@countc%
- \advance\c@pgfmath@countb by-20\relax%
- \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
- \advance\c@pgfmath@countb by-\c@pgfmath@countc%
- \advance\c@pgfmath@countb by-12\relax%
- \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
- \advance\c@pgfmath@countb by-\c@pgfmath@counta%
- \advance\c@pgfmath@countb by-3\relax%
- \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
- \def\pgfmath@digit{0}%
- \else%
- \def\pgfmath@digit{1}%
- \fi%
- \else%
- \advance\c@pgfmath@countb by\c@pgfmath@counta%
- \advance\c@pgfmath@countb by5\relax%
- \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
- \def\pgfmath@digit{2}%
- \else%
- \def\pgfmath@digit{3}%
- \fi%
- \fi%
- \else%
- \advance\c@pgfmath@countb by\c@pgfmath@counta%
- \advance\c@pgfmath@countb by9\relax%
- \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
- \def\pgfmath@digit{4}%
- \else%
- \def\pgfmath@digit{5}%
- \fi%
- \fi%
- \else%
- \advance\c@pgfmath@countb by\c@pgfmath@countc%
- \advance\c@pgfmath@countb by28\relax%
- \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
- \advance\c@pgfmath@countb by-\c@pgfmath@counta%
- \advance\c@pgfmath@countb by-15\relax%
- \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
- \def\pgfmath@digit{6}%
- \else%
- \def\pgfmath@digit{7}%
- \fi%
- \else%
- \advance\c@pgfmath@countb by\c@pgfmath@counta%
- \advance\c@pgfmath@countb by17\relax%
- \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
- \def\pgfmath@digit{8}%
- \else%
- \def\pgfmath@digit{9}%
- \fi%
- \fi%
- \fi%
- \edef\pgfmath@rootspecial{\pgfmath@rootspecial\pgfmath@digit}%
- \advance\c@pgfmath@counta by\pgfmath@digit\relax%
- \multiply\c@pgfmath@counta by-\pgfmath@digit\relax%
- \advance\c@pgfmath@counta by\pgfmath@remainder\relax%
- \edef\pgfmath@remainder{\the\c@pgfmath@counta}%
- \c@pgfmath@counta=\pgfmath@targetiterations\relax%
- \advance\c@pgfmath@counta by-1\relax%
- \edef\pgfmath@targetiterations{\the\c@pgfmath@counta}%
- \ifnum\c@pgfmath@counta=0\relax%
- \edef\pgfmath@root{\pgfmath@root.\pgfmath@digit}%
- \else%
- \edef\pgfmath@root{\pgfmath@root\pgfmath@digit}%
- \fi%
- \ifnum\c@pgfmath@counta=-4\relax% -n+1 digits of precision.
- \let\pgfmath@next\pgfmath@sqrt@end%
- \else%
- \let\pgfmath@next\pgfmath@@@sqrt@%
- \fi%
- \expandafter\pgfmath@next\pgfmath@tokens%
+ \ifx\pgfmath@empty#1%
+ \edef\pgfmath@remainder{\pgfmath@remainder00}%
+ \def\pgfmath@tokens{\pgfmath@empty\pgfmath@empty}%
+ \else%
+ \ifx\pgfmath@empty#2%
+ \edef\pgfmath@remainder{\pgfmath@remainder#10}%
+ \def\pgfmath@tokens{\pgfmath@empty\pgfmath@empty}%
+ \else%
+ \edef\pgfmath@remainder{\pgfmath@remainder#1#2}%
+ \def\pgfmath@tokens{}%
+ \fi\fi%
+ \c@pgfmath@counta=\pgfmath@rootspecial\relax%
+ \multiply\c@pgfmath@counta by20\relax%
+ \c@pgfmath@countb=\c@pgfmath@counta%
+ \multiply\c@pgfmath@countb by6\relax%
+ \advance\c@pgfmath@countb by36\relax%
+ \c@pgfmath@countc=\c@pgfmath@counta%
+ \multiply\c@pgfmath@countc by2\relax%
+ \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
+ \advance\c@pgfmath@countb by-\c@pgfmath@countc%
+ \advance\c@pgfmath@countb by-20\relax%
+ \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
+ \advance\c@pgfmath@countb by-\c@pgfmath@countc%
+ \advance\c@pgfmath@countb by-12\relax%
+ \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
+ \advance\c@pgfmath@countb by-\c@pgfmath@counta%
+ \advance\c@pgfmath@countb by-3\relax%
+ \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
+ \def\pgfmath@digit{0}%
+ \else%
+ \def\pgfmath@digit{1}%
+ \fi%
+ \else%
+ \advance\c@pgfmath@countb by\c@pgfmath@counta%
+ \advance\c@pgfmath@countb by5\relax%
+ \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
+ \def\pgfmath@digit{2}%
+ \else%
+ \def\pgfmath@digit{3}%
+ \fi%
+ \fi%
+ \else%
+ \advance\c@pgfmath@countb by\c@pgfmath@counta%
+ \advance\c@pgfmath@countb by9\relax%
+ \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
+ \def\pgfmath@digit{4}%
+ \else%
+ \def\pgfmath@digit{5}%
+ \fi%
+ \fi%
+ \else%
+ \advance\c@pgfmath@countb by\c@pgfmath@countc%
+ \advance\c@pgfmath@countb by28\relax%
+ \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
+ \advance\c@pgfmath@countb by-\c@pgfmath@counta%
+ \advance\c@pgfmath@countb by-15\relax%
+ \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
+ \def\pgfmath@digit{6}%
+ \else%
+ \def\pgfmath@digit{7}%
+ \fi%
+ \else%
+ \advance\c@pgfmath@countb by\c@pgfmath@counta%
+ \advance\c@pgfmath@countb by17\relax%
+ \ifnum\c@pgfmath@countb>\pgfmath@remainder\relax%
+ \def\pgfmath@digit{8}%
+ \else%
+ \def\pgfmath@digit{9}%
+ \fi%
+ \fi%
+ \fi%
+ \edef\pgfmath@rootspecial{\pgfmath@rootspecial\pgfmath@digit}%
+ \advance\c@pgfmath@counta by\pgfmath@digit\relax%
+ \multiply\c@pgfmath@counta by-\pgfmath@digit\relax%
+ \advance\c@pgfmath@counta by\pgfmath@remainder\relax%
+ \edef\pgfmath@remainder{\the\c@pgfmath@counta}%
+ \c@pgfmath@counta=\pgfmath@targetiterations\relax%
+ \advance\c@pgfmath@counta by-1\relax%
+ \edef\pgfmath@targetiterations{\the\c@pgfmath@counta}%
+ \ifnum\c@pgfmath@counta=0\relax%
+ \edef\pgfmath@root{\pgfmath@root.\pgfmath@digit}%
+ \else%
+ \edef\pgfmath@root{\pgfmath@root\pgfmath@digit}%
+ \fi%
+ \ifnum\c@pgfmath@counta=-4\relax% -n+1 digits of precision.
+ \let\pgfmath@next\pgfmath@sqrt@end%
+ \else%
+ \let\pgfmath@next\pgfmath@@@sqrt@%
+ \fi%
+ \expandafter\pgfmath@next\pgfmath@tokens%
}
\def\pgfmath@sqrt@end#1\pgfmath@{%
- \edef\pgfmathresult{\pgfmath@root}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup}
+ \edef\pgfmathresult{\pgfmath@root}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup}
% \pgfmathpow
%
% Calculates #1 ^ #2
%
-\pgfmathdeclarefunction{pow}{2}{%
+\pgfmathdeclarefunction{pow}{2}{%
\begingroup%
\pgfmath@xa=#1pt%
\pgfmath@xb=#2pt%
@@ -775,27 +775,27 @@
\pgfmathexp@{\pgfmath@tonumber{\pgfmath@x}}%
\pgfmath@x=\pgfmathresult pt\relax%
\fi%
- \fi
+ \fi
\pgfmath@returnone\pgf@x%
\endgroup%
}
% factorial function.
%
-\pgfmathdeclarefunction{factorial}{1}{%
- \begingroup%
- \afterassignment\pgfmath@gobbletilpgfmath@%
- \c@pgfmath@counta=#1\relax\pgfmath@%
- \pgfmath@x=1pt\relax%
- \pgfmathloop%
- \ifnum\c@pgfmath@counta<2\relax%
- \else%
- \multiply\pgfmath@x by\c@pgfmath@counta%
- \advance\c@pgfmath@counta by-1\relax%
- \repeatpgfmathloop%
- \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
- \pgfmath@smuggleone\pgfmathresult%
- \endgroup%
+\pgfmathdeclarefunction{factorial}{1}{%
+ \begingroup%
+ \afterassignment\pgfmath@gobbletilpgfmath@%
+ \c@pgfmath@counta=#1\relax\pgfmath@%
+ \pgfmath@x=1pt\relax%
+ \pgfmathloop%
+ \ifnum\c@pgfmath@counta<2\relax%
+ \else%
+ \multiply\pgfmath@x by\c@pgfmath@counta%
+ \advance\c@pgfmath@counta by-1\relax%
+ \repeatpgfmathloop%
+ \edef\pgfmathresult{\pgfmath@tonumber{\pgfmath@x}}%
+ \pgfmath@smuggleone\pgfmathresult%
+ \endgroup%
}
% Local Variables: