diff options
author | Norbert Preining <norbert@preining.info> | 2023-01-16 03:03:27 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-01-16 03:03:27 +0000 |
commit | 6f9e1680085e7bb4d258f6f8116369d122e196e1 (patch) | |
tree | 9ac0ecb239240d1d672b188f29c1479de215074b /graphics/pgf/base/tex/tikzlibrarymath.code.tex | |
parent | b8345f39630408bb198e7636381ce4240154ca9b (diff) |
CTAN sync 202301160303
Diffstat (limited to 'graphics/pgf/base/tex/tikzlibrarymath.code.tex')
-rw-r--r-- | graphics/pgf/base/tex/tikzlibrarymath.code.tex | 732 |
1 files changed, 0 insertions, 732 deletions
diff --git a/graphics/pgf/base/tex/tikzlibrarymath.code.tex b/graphics/pgf/base/tex/tikzlibrarymath.code.tex deleted file mode 100644 index 4683c71cd3..0000000000 --- a/graphics/pgf/base/tex/tikzlibrarymath.code.tex +++ /dev/null @@ -1,732 +0,0 @@ -% 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. - -\usetikzlibrary{fpu} - -\edef\tikz@math@at@catcode{\the\catcode`\@}% -\catcode`\@=11 - -\def\tikz@math@gobblespaces#1{\pgfutil@ifnextchar x{#1}{#1}}% - -\def\tikz@math@meaning@macro{macro}% -\def\tikz@math@meaning@dimen{dimen}% -\def\tikz@math@meaning@count{count}% -\def\tikz@math@meaning@null{null}% - -\def\tikz@math@getmeaning#1{\expandafter\tikz@math@@getmeaning\meaning#1\tikz@math@getmeaning@stop}% - -\def\tikz@math@@getmeaning#1#2#3#4#5\tikz@math@getmeaning@stop{% - \if#1u% undefined - \let\tikz@math@meaning=\tikz@math@meaning@macro% - \else% - \if#1m% - \let\tikz@math@meaning=\tikz@math@meaning@macro% - \else% - \if#2d% - \let\tikz@math@meaning=\tikz@math@meaning@dimen% - \else% - \if#2c% - \let\tikz@math@meaning=\tikz@math@meaning@count% - \else% - \if#3k% A skip. Treat like a dimen. - \let\tikz@math@meaning=\tikz@math@meaning@dimen% - \else% - \let\tikz@math@meaning=\tikz@math@meaning@null% - \fi% - \fi% - \fi% - \fi% - \fi% -}% - -\def\tikz@math@firstoftwo#1#2{#1}% -\def\tikz@math@secondoftwo#1#2{#2}% - - -\def\tikz@math@getvarstring#1{% - \begingroup% - \escapechar=-1\relax% - \expandafter\tikz@math@@getvarstring\string#1\tikz@math}% - -\def\tikz@math@@getvarstring#1\tikz@math#2{% - \endgroup% - \def#2{#1}% -}% - -\long\def\tikz@math@collecttosemicolon@other#1#2;{% - \def\tikz@math@collected{#2}#1}% -\def\tikz@math@semicolon@other{;}% - -{\catcode`\;=13 -\long\gdef\tikz@math@collecttosemicolon@active#1#2;{% - \def\tikz@math@collected{#2}#1}% -\gdef\tikz@math@semicolon@active{;}% -}% - - -\def\tikz@math@setvartype#1#2{% - \expandafter\let\csname tikz@math@var@vartype@\string#1\endcsname=#2% -}% - - -\def\tikz@math@getvartype#1#2{% - \def\tikz@math@marshal{\let#1=}% - \expandafter\tikz@math@marshal\csname - tikz@math@var@vartype@\string#2\endcsname% -}% - - - -\def\tikz@math@ifvarcoordinate#1{% - \expandafter\ifx\csname - tikz@math@var@vartype@\string#1\endcsname\tikz@math@keyword@coordinate% - \let\tikz@math@next=\tikz@math@firstoftwo% - \else% - \let\tikz@math@next=\tikz@math@secondoftwo% - \fi% - \tikz@math@next% -}% - -\def\tikz@math@ifvarinteger#1{% - \expandafter\ifx\csname - tikz@math@var@vartype@\string#1\endcsname\tikz@math@keyword@integer% - \let\tikz@math@next=\tikz@math@firstoftwo% - \else% - \let\tikz@math@next=\tikz@math@secondoftwo% - \fi% - \tikz@math@next% -}% - - -\def\tikz@math@setvarindexed#1{% - \expandafter\let\csname - tikz@math@var@subtype@\string#1\endcsname=\tikz@math@subtype@indexed% -}% - -\def\tikz@math@clearvarindexed#1{% - \expandafter\let\csname tikz@math@var@subtype@\string#1\endcsname=\relax% -}% - -\def\tikz@math@ifvarindexed#1{% - \expandafter\ifx\csname tikz@math@var@subtype@\string#1\endcsname\relax% - \let\tikz@math@next=\tikz@math@secondoftwo% - \else% - \let\tikz@math@next=\tikz@math@firstoftwo% - \fi% - \tikz@math@next% -}% - -\def\tikz@math@stop{@}% - -\let\tikz@math@parse@hook@before=\pgfutil@empty -\let\tikz@math@parse@hook@after=\pgfutil@empty - -\def\tikz@math{% - \ifnum\catcode`\;=13\relax% - \let\tikz@math@semicolon=\tikz@math@semicolon@active% - \let\tikz@math@collecttosemicolon=\tikz@math@collecttosemicolon@active% - \else% - \let\tikz@math@semicolon=\tikz@math@semicolon@other% - \let\tikz@math@collecttosemicolon=\tikz@math@collecttosemicolon@other% - \fi% - \tikz@math@parse@hook@before% - \tikz@@math}% - - - - -\long\def\tikz@@math#1{% - \def\tikz@math@marshal{\tikz@math@parse#1}% - \expandafter\expandafter\expandafter\tikz@math@marshal\expandafter\tikz@math@stop\tikz@math@semicolon}% - -\def\tikz@math@parse{\pgfutil@ifnextchar\bgroup\tikz@math@@parse@bgroup\tikz@math@@parse@nobgroup}% - - -\def\tikz@math@@parse@bgroup{% - \tikz@math@collecttosemicolon{% - % MW: Don't know how reliable this test is. - \ifx\pgf@selectfontorig\tikz@math@undefined% - \begingroup\tikz@math@collected\endgroup% - \else% - \begingroup\csname nullfont\endcsname\tikz@math@collected\endgroup% - \fi\tikz@math@parse}}% - - - -\def\tikz@math@@parse@nobgroup{\tikz@math@collecttosemicolon{\tikz@math@@parse@@nobgroup}}% - -\def\tikz@math@@parse@@nobgroup{% - \let\tikz@math@tmp=\tikz@math@collected% - \ifx\tikz@math@tmp\tikz@math@stop% - \def\tikz@math@next{\expandafter\tikz@math@parse@finish\tikz@math@semicolon}% - \else% - \def\tikz@math@next{\expandafter\expandafter\expandafter\tikz@math@parse@keyword@check\expandafter\tikz@math@tmp\tikz@math@semicolon}% - \fi% - \tikz@math@next% -}% - -\def\tikz@math@parse@finish{% - \tikz@math@collecttosemicolon{\tikz@math@parse@hook@after}% -}% - - - -\newif\iftikz@math@let -\def\tikz@math@parse@keyword@check#1{% - \tikz@math@letfalse% - \tikz@math@getmeaning{#1}% - \ifx\tikz@math@meaning\tikz@math@meaning@null% - \let\tikz@math@next=\tikz@math@parse@keyword% - \else% - \let\tikz@math@next=\tikz@math@parse@nokeyword% - \fi% - \tikz@math@next#1}% - - -\def\tikz@math@parse@keyword{% - \let\tikz@math@parsed@keyword=\pgfutil@empty% - \futurelet\tikz@math@parse@token\tikz@math@@parse@keyword}% - -\def\tikz@math@@parse@keyword{% - \ifx\tikz@math@parse@token\pgfutil@sptoken% - \let\tikz@math@next=\tikz@math@@@parse@keyword% - \else% - \ifx\tikz@math@parse@token(% - \let\tikz@math@next=\tikz@math@@@parse@keyword% - \else% - \ifx\tikz@math@parse@token\bgroup% - \let\tikz@math@next=\tikz@math@@@parse@keyword% - \else% - \let\tikz@math@next=\tikz@math@@@@parse@keyword% - \fi% - \fi% - \fi% - \tikz@math@next}% - -\def\tikz@math@error#1{\pgfutil@packageerror{tikz}{tikz math library: #1}{}}% - -\def\tikz@math@@@parse@keyword{% - \expandafter\ifx\csname tikz@math@process@keyword@\tikz@math@parsed@keyword\endcsname\relax% - \expandafter\ifx\csname pgfmath\tikz@math@parsed@keyword\endcsname\relax% - \tikz@math@error{Unknown function or keyword '\tikz@math@parsed@keyword'}% - \else% - \def\tikz@math@next{\tikz@math@collecttosemicolon{\tikz@math@function@noassign}}% - \fi% - \else% - \expandafter\def\expandafter\tikz@math@next\expandafter{\csname tikz@math@process@keyword@\tikz@math@parsed@keyword\endcsname}% - \fi% - \tikz@math@next}% - -\def\tikz@math@@@@parse@keyword#1{% - \edef\tikz@math@parsed@keyword{\tikz@math@parsed@keyword#1}% - \futurelet\tikz@math@parse@token\tikz@math@@parse@keyword% -}% - -\def\tikz@math@function@noassign{% - \pgfmathparse{\tikz@math@parsed@keyword\tikz@math@collected}% - \tikz@math@parse% -}% - - - - -\def\tikz@math@process@keyword@count{\tikz@math@collecttosemicolon{\tikz@math@process@keyword@@count}}% -\def\tikz@math@process@keyword@@count{% -\def\tikz@math@assign@register{\csname newcount\endcsname}% -\expandafter\tikz@math@gobblespaces\expandafter\tikz@math@process@registers\tikz@math@collected,@,}% - -\def\tikz@math@process@keyword@length{\tikz@math@collecttosemicolon{\tikz@math@process@keyword@@length}}% -\def\tikz@math@process@keyword@@length{% -\def\tikz@math@assign@register{\csname newdimen\endcsname}% -\show\tikz@math@collected -\expandafter\tikz@math@gobblespaces\expandafter\tikz@math@process@registers\tikz@math@collected,@,}% - - -\def\tikz@math@process@registers#1#2,{% - \def\tikz@math@var{#1}% - \ifx\tikz@math@var\tikz@math@stop% - \let\tikz@math@next=\tikz@math@parse% - \else% - \tikz@math@assign@register#1\relax% - \let\tikz@math@next=\tikz@math@process@registers% - \fi% - \tikz@math@gobblespaces\tikz@math@next% -}% - - -\def\tikz@math@process@keyword@if#1then{% - \def\tikz@math@if@condition{#1}% - \tikz@math@gobblespaces\tikz@math@parse@if@iftrue% -}% -\def\tikz@math@parse@if@iftrue#1{% - \def\tikz@math@if@trueaction{#1}% - \pgfutil@ifnextchar e{\tikz@math@parse@else}{\tikz@math@if@doif}}% - -\def\tikz@math@parse@else else{\tikz@math@gobblespaces\tikz@math@if@doifelse}% - -\def\tikz@math@if@doif{\tikz@math@collecttosemicolon{\tikz@math@if@@doif}}% - -\def\tikz@math@if@@doif{% - \pgfmathparse{\tikz@math@if@condition}% - \ifpgfmathfloatparseactive% - \pgfmathfloattofixed{\pgfmathresult}% - \fi% - \ifdim\pgfmathresult pt=0pt\relax% - \else% - \expandafter\tikz@math\expandafter{\tikz@math@if@trueaction}% - \fi% - \tikz@math@parse% -}% -\def\tikz@math@if@doifelse{\tikz@math@collecttosemicolon{\tikz@math@if@@doifelse}}% -\def\tikz@math@if@@doifelse{% - \pgfmathparse{\tikz@math@if@condition}% - \ifpgfmathfloatparseactive% - \pgfmathfloattofixed{\pgfmathresult}% - \fi% - \let\tikz@math@if@falseaction=\tikz@math@collected% - \ifdim\pgfmathresult pt=0pt\relax% - \expandafter\tikz@math\expandafter{\tikz@math@if@falseaction}% - \else% - \expandafter\tikz@math\expandafter{\tikz@math@if@trueaction}% - \fi% - \tikz@math@parse% -}% -\def\tikz@math@process@keyword@let{% - \tikz@math@lettrue% - \tikz@math@gobblespaces\tikz@math@parse@nokeyword% -}% - - -\def\tikz@math@parse@nokeyword#1{% - \def\tikz@math@var{#1}% - \tikz@math@getvarstring{#1}\tikz@math@varstring% - \let\tikz@math@vartype=\pgfutil@empty% - \ifx\tikz@math@var\tikz@math@stop% - \let\tikz@math@next=\tikz@math@parse@finish% - \else% - \ifx\tikz@math@semicolon\tikz@math@var% - \let\tikz@math@next=\tikz@math@parse% - \else% - \let\tikz@math@next=\tikz@math@parse@index@check% - \fi% - \fi% - \tikz@math@next}% - -\def\tikz@math@parse@index@check{% - \pgfutil@ifnextchar={\tikz@math@parse@noindex}{\tikz@math@parse@index}}% - -\def\tikz@math@parse@noindex{% - \expandafter\tikz@math@clearvarindexed\tikz@math@var% - \let\tikz@math@current@index=\pgfutil@empty% - \tikz@math@parse@afterindex% -}% - -\def\tikz@math@parse@index#1{% - \def\tikz@math@tmp{#1}% - \expandafter\tikz@math@setvarindexed\tikz@math@var% {} - \edef\tikz@math@current@index{#1}% - \tikz@math@parse@afterindex% -}% -\def\tikz@math@parse@afterindex#1={\tikz@math@gobblespaces\tikz@math@parse@assignment}% - -\def\tikz@math@parse@assignment{\tikz@math@collecttosemicolon{\tikz@math@parse@@assignment}}% -\def\tikz@math@parse@@assignment{% - \expandafter\expandafter\expandafter\tikz@math@doassignment\expandafter\expandafter\expandafter% - {\expandafter\tikz@math@var\expandafter}\expandafter{\tikz@math@collected}% - \tikz@math@parse% -}% - -\def\tikz@math@dollar@char{$}% -\def\tikz@math@dollar@char{$}% For annoying syntax highlighters - -\def\tikz@math@doassignment#1#2{% - \tikz@math@ifvarcoordinate{#1}{% - \def\tikz@math@var{#1}% Unfortunately, we must do this again. - \tikz@math@getvarstring{#1}\tikz@math@varstring% And this - \expandafter\pgfutil@in@\tikz@math@dollar@char{#2}% - \edef\tikz@math@expression{#2}% - \ifpgfutil@in@% - \expandafter\tikz@scan@one@point\expandafter\tikz@math@assign@coordinate\tikz@math@expression% - \else% - \expandafter\ifx\csname tikz@library@calc@loaded\endcsname\relax% - \expandafter\tikz@scan@one@point\expandafter\tikz@math@assign@coordinate\tikz@math@expression% - \else% - \expandafter\tikz@scan@one@point\expandafter\tikz@math@assign@coordinate\expandafter% - (\expandafter$\tikz@math@expression$)% - \fi% - \fi% - }{% - \iftikz@math@let% Not really a let - \ifx\tikz@math@current@index\pgfutil@empty% - \edef#1{#2}% - \else% - \edef\tikz@math@tmp{#2}% - \expandafter\expandafter\expandafter\tikz@math@assign@index\expandafter\expandafter\expandafter% - {\expandafter\tikz@math@varstring\expandafter}\expandafter{\tikz@math@tmp}% - \fi% - \tikz@math@letfalse% - \else% - \ifx\tikz@math@current@index\pgfutil@empty% - \tikz@math@getmeaning{#1}% - \ifx\tikz@math@meaning\tikz@math@meaning@dimen% - \pgfmathsetlength{#1}{#2}% - \let\tikz@math@last@assigned@value=\pgfmathresult% - \else% - \ifx\tikz@math@meaning\tikz@math@meaning@count% - \pgfmathsetcount{#1}{#2}% - \let\tikz@math@last@assigned@value=\pgfmathresult% - \else% - \tikz@math@ifvarinteger{#1}{\pgfmathparse{int(#2)}}{\pgfmathparse{#2}}% - \let\tikz@math@last@assigned@value=\pgfmathresult% - \let#1=\pgfmathresult% - \fi% - \fi% - \else% - \tikz@math@ifvarinteger{#1}{\pgfmathparse{int(#2)}}{\pgfmathparse{#2}}% - \expandafter\tikz@math@assign@index\expandafter{\tikz@math@varstring}\pgfmathresult% - \let\tikz@math@last@assigned@value=\pgfmathresult% - \fi% - \fi% - }% -}% - - - -\def\tikz@math@assign@index#1#2{% - \expandafter\def\csname#1\endcsname##1{\csname - tikz@math@var@indexed@#1@##1\endcsname}% - \expandafter\edef\csname - tikz@math@var@indexed@#1@\tikz@math@current@index\endcsname{#2}\relax% -}% - - - -\def\tikz@math@assign@coordinate#1{% - \pgf@process{#1}% - \ifx\tikz@math@current@index\pgfutil@empty% - \expandafter\edef\csname\tikz@math@varstring\endcsname{\the\pgf@x,\the\pgf@y}% - \expandafter\edef\csname\tikz@math@varstring x\endcsname{\the\pgf@x}% - \expandafter\edef\csname\tikz@math@varstring y\endcsname{\the\pgf@y}% - \else% - \expandafter\tikz@math@assign@index\expandafter{\tikz@math@varstring}{\the\pgf@x,\the\pgf@y}% - \expandafter\tikz@math@assign@index\expandafter{\tikz@math@varstring x}{\the\pgf@x}% - \expandafter\tikz@math@assign@index\expandafter{\tikz@math@varstring y}{\the\pgf@y}% - \fi% -}% - - - -\def\tikz@math@keyword@coordinate{coordinate}% -\def\tikz@math@process@keyword@coordinate{% - \let\tikz@math@vartype=\tikz@math@keyword@coordinate% - \tikz@math@gobblespaces\tikz@math@process@vartypes% -}% - -\def\tikz@math@keyword@integer{integer}% -\def\tikz@math@process@keyword@integer{% - \let\tikz@math@vartype=\tikz@math@keyword@integer% - \tikz@math@gobblespaces\tikz@math@process@vartypes% -}% -\def\tikz@math@process@keyword@int{% - \tikz@math@process@keyword@integer% -}% - -\def\tikz@math@keyword@real{real}% -\def\tikz@math@process@keyword@real{% - \let\tikz@math@vartype=\tikz@math@keyword@real% - \tikz@math@gobblespaces\tikz@math@process@vartypes% -}% - -\def\tikz@math@process@keyword@point{\tikz@math@process@keyword@coordinate}% - - -\def\tikz@math@process@vartypes{\tikz@math@collecttosemicolon{\tikz@math@process@@vartypes}}% - -\def\tikz@math@process@@vartypes{% - \expandafter\tikz@math@@process@vartypes\tikz@math@collected,@,\tikz@math% -}% - -\def\tikz@math@@process@vartypes#1#2,{% - \def\tikz@math@var{#1}% - \tikz@math@getvarstring{#1}\tikz@math@varstring% - \ifx\tikz@math@var\tikz@math@stop% - \let\tikz@math@next=\tikz@math@@@process@vartypes% - \else% - \expandafter\tikz@math@setvartype\tikz@math@var\tikz@math@vartype% - \def\tikz@math@next{\tikz@math@gobblespaces\tikz@math@@process@vartypes}% - \fi% - \tikz@math@next% -}% - -\def\tikz@math@process@keyword@print{\tikz@math@collecttosemicolon{\tikz@math@process@keyword@@print}}% -\def\tikz@math@process@keyword@@print{% - \begingroup\tikz@math@collected\endgroup\tikz@math@parse% -}% - -\def\tikz@math@@@process@vartypes#1\tikz@math{% - \tikz@math@parse% -}% - -\newcount\tikz@math@for@depth - -\def\tikz@math@for@namedef#1{\expandafter\def\csname tikz@math@for@def@#1@\the\tikz@math@for@depth\endcsname}% -\def\tikz@math@for@nameedef#1{\expandafter\edef\csname tikz@math@for@def@#1@\the\tikz@math@for@depth\endcsname}% -\def\tikz@math@for@namelet#1{\expandafter\let\csname tikz@math@for@def@#1@\the\tikz@math@for@depth\endcsname}% - -\def\tikz@math@for@namegetvalue#1#2{% - \def\tikz@math@marshal{\let#2=}% - \expandafter\tikz@math@marshal\csname tikz@math@for@def@#1@\the\tikz@math@for@depth\endcsname}% - -\def\tikz@math@process@keyword@for{% - \tikz@math@for% -}% - -\def\tikz@math@for@external{% - \ifnum\catcode`\;=13\relax% - \let\tikz@math@semicolon=\tikz@math@semicolon@active% - \let\tikz@math@collecttosemicolon=\tikz@math@collecttosemicolon@active% - \else% - \let\tikz@math@semicolon=\tikz@math@semicolon@other% - \let\tikz@math@collecttosemicolon=\tikz@math@collecttosemicolon@other% - \fi - \advance\tikz@math@for@depth by1\relax% - \tikz@math@for@namedef{execute}{\tikz@math@for@external@execute}% - \tikz@math@for@namedef{finished}{\relax}% - \tikz@math@gobblespaces\tikz@math@for@parsevar}% - -\def\tikz@math@for@external@execute#1{#1}% - -\def\tikz@math@for{% - \advance\tikz@math@for@depth by1\relax% - \tikz@math@for@namedef{execute}{\tikz@math}% - \tikz@math@for@namedef{finished}{\tikz@math@parse}% - \tikz@math@gobblespaces\tikz@math@for@parsevar}% - - -\def\tikz@math@for@parsevar#1{% - \tikz@math@for@namedef{var}{#1}% - \tikz@math@for@parsein}% - -\def\tikz@math@getindex#1{% - \tikz@math@@getindex#1\tikz@math@getindex\tikz@math@@getindex% -}% - -\def\tikz@math@@getindex#1#2\tikz@math@@getindex{#1}% - -\def\tikz@math@for@parsein#1in{% - \def\tikz@math@tmp{#1}% - \ifx\tikz@math@tmp\pgfutil@empty% - \tikz@math@for@namedef{index}{}% - \else% - \tikz@math@for@nameedef{index}{\tikz@math@getindex{#1}}% - \fi% - \tikz@math@gobblespaces\tikz@math@for@parselist% -}% - - -\long\def\tikz@math@for@parselist#1{% - \edef\tikz@math@for@list{#1}% - \tikz@math@gobblespaces{% - \tikz@math@collecttosemicolon{\tikz@math@for@parseaction}}}% - -\def\tikz@math@for@parseaction{% - \tikz@math@for@namedef{prevvalue}{}% - \tikz@math@for@namedef{prevprevvalue}{}% - \tikz@math@for@namelet{action}=\tikz@math@collected% - \expandafter\tikz@math@for@scan\tikz@math@for@list,\tikz@math,\tikz@@math% -}% - -\def\tikz@math@token{\tikz@math}% - - -\def\tikz@math@for@scan#1,{% - \def\tikz@math@for@value{#1}% - \ifx\tikz@math@for@value\tikz@math@token% - \let\tikz@math@next=\tikz@math@for@scan@end% - \else% - \ifx\tikz@math@for@value\pgfutil@empty% - \let\tikz@math@next=\tikz@math@for@scan@end% - \else% - \pgfutil@in@{...}{#1}% - \ifpgfutil@in@% - \let\tikz@math@next=\tikz@math@for@scan@dots% - \else% - \tikz@math@for@namegetvalue{var}{\tikz@math@var}% - \tikz@math@for@namegetvalue{index}{\tikz@math@current@index}% - \tikz@math@for@namegetvalue{action}{\tikz@math@action}% - \expandafter\tikz@math@getvarstring\expandafter{\tikz@math@var}\tikz@math@varstring% - \expandafter\tikz@math@doassignment\expandafter{\tikz@math@var}{#1}% - \tikz@math@for@namelet{value}=\tikz@math@last@assigned@value% - \tikz@math@for@namegetvalue{execute}{\tikz@math@execute}% - \expandafter\tikz@math@execute\expandafter{\tikz@math@action}% - \tikz@math@for@namegetvalue{prevvalue}{\tikz@math@prevvalue}% - \tikz@math@for@namelet{prevprevvalue}=\tikz@math@prevvalue% - \tikz@math@for@namegetvalue{value}{\tikz@math@value}% - \tikz@math@for@namelet{prevvalue}=\tikz@math@value% - \let\tikz@math@next=\tikz@math@for@scan% - \fi% - \fi% - \fi% - \tikz@math@next% -}% - -\newdimen\tikz@math@dimen - -\def\tikz@math@for@scan@dots#1,{% - \pgfmathparse{#1}\let\tikz@math@value=\pgfmathresult% - \tikz@math@for@nameedef{endvalue}{\tikz@math@value}% - \tikz@math@for@namegetvalue{prevvalue}{\tikz@math@prevvalue}% - \tikz@math@for@namegetvalue{prevprevvalue}{\tikz@math@prevprevvalue}% - \tikz@math@dimen=\tikz@math@prevvalue pt\relax% - \ifx\tikz@math@prevprevvalue\pgfutil@empty% - \ifdim\tikz@math@prevvalue pt<\tikz@math@value pt\relax%% - \def\tikz@math@step{1pt}% - \else% - \def\tikz@math@step{-1pt}% - \fi% - \else% - \tikz@math@dimen=\tikz@math@prevvalue pt\relax% - \advance\tikz@math@dimen by-\tikz@math@prevprevvalue pt\relax% - \edef\tikz@math@step{\the\tikz@math@dimen}% - \fi% - \ifdim\tikz@math@step<0pt\relax% - \tikz@math@for@namedef{comparitor}{<}% - \else% - \tikz@math@for@namedef{comparitor}{>}% - \fi% - \tikz@math@for@nameedef{step}{\tikz@math@step}% - \tikz@math@for@doloop% -}% - -\def\tikz@math@for@doloop{% - \tikz@math@for@namegetvalue{prevvalue}{\tikz@math@prevvalue}% - \tikz@math@for@namegetvalue{step}{\tikz@math@step}% - \tikz@math@for@namegetvalue{comparitor}{\tikz@math@comparitor}% - \tikz@math@for@namegetvalue{endvalue}{\tikz@math@endvalue}% - \tikz@math@dimen=\tikz@math@prevvalue pt\relax% - \advance\tikz@math@dimen by\tikz@math@step\relax% - \ifdim\tikz@math@dimen\tikz@math@comparitor\tikz@math@endvalue pt\relax% - \let\tikz@math@next=\tikz@math@for@endloop% - \else% - \tikz@math@for@nameedef{value}{\pgfmath@tonumber{\tikz@math@dimen}}% - \tikz@math@for@namegetvalue{var}{\tikz@math@var}% - \expandafter\tikz@math@getvarstring\expandafter{\tikz@math@var}\tikz@math@varstring% - \tikz@math@for@namegetvalue{index}{\tikz@math@current@index}% - \tikz@math@for@namegetvalue{action}{\tikz@math@action}% - \tikz@math@for@namegetvalue{value}{\tikz@math@value}% - \expandafter\expandafter\expandafter\tikz@math@doassignment\expandafter\expandafter\expandafter% - {\expandafter\tikz@math@var\expandafter}\expandafter{\tikz@math@value}% - \tikz@math@for@namegetvalue{execute}{\tikz@math@execute}% - \expandafter\tikz@math@execute\expandafter{\tikz@math@action}% - \tikz@math@for@namegetvalue{prevvalue}{\tikz@math@prevvalue}% - \tikz@math@for@namelet{prevprevvalue}=\tikz@math@prevvalue% - \tikz@math@for@namegetvalue{value}{\tikz@math@value}% - \tikz@math@for@namelet{prevvalue}=\tikz@math@value% - \let\tikz@math@next=\tikz@math@for@doloop% - \fi% - \tikz@math@next% -}% - -\def\tikz@math@for@endloop{% -\tikz@math@for@scan}% - - - - -\def\tikz@math@for@scan@end#1\tikz@@math{% -\tikz@math@for@namegetvalue{finished}{\tikz@math@next}% -\advance\tikz@math@for@depth by-1\relax% -\tikz@math@next}% - - - - - -\def\tikz@math@process@keyword@return{% - \tikz@math@collecttosemicolon{\pgfmathparse{\tikz@math@collected}\tikz@math@parse}}% - -\def\tikz@math@process@keyword@function{\tikz@math@collecttosemicolon{\tikz@math@process@keyword@@function}}% -\def\tikz@math@process@keyword@@function{% - \let\tikz@math@function@name=\pgfutil@empty% - \let\tikz@math@function@arguments=\pgfutil@empty% - \let\tikz@math@function@body=\pgfutil@empty% - \expandafter\expandafter\expandafter\tikz@math@@declarefunction\expandafter\tikz@math@collected\tikz@math@semicolon% -}% - -\def\tikz@math@@declarefunction{% - \pgfutil@ifnextchar\bgroup\tikz@math@@@collectbody\tikz@math@@@declarefunction}% - - -\def\tikz@math@@@declarefunction#1{% - \if#1(%) - \let\tikz@math@next=\tikz@math@@@collectarguments% - \else% - \expandafter\def\expandafter\tikz@math@function@name\expandafter{\tikz@math@function@name#1}% - \let\tikz@math@next=\tikz@math@@declarefunction% - \fi% - \tikz@math@next% -}% -\def\tikz@math@@@collectarguments#1){% - \def\tikz@math@function@arguments{#1}% - \tikz@math@@declarefunction% -}% - -\newtoks\tikz@math@toks -\tikz@math@toks={#}% -\edef\tikz@math@char@hash{\the\tikz@math@toks}% -\tikz@math@toks={}% - -\def\tikz@math@@@collectbody{\tikz@math@collecttosemicolon{\tikz@math@@@@collectbody}}% - -\def\tikz@math@@@@collectbody{% - \tikz@math@toks={}% - \c@pgf@counta=0\relax% - \ifx\tikz@math@function@arguments\pgfutil@empty% - \else% - \expandafter\tikz@math@createargumentlist\tikz@math@function@arguments,,% - \expandafter\tikz@math@addto@toks\expandafter{\tikz@math@collected}% - \fi% - \edef\tikz@math@local@temp{% - \noexpand\pgfmathdeclarefunction{\tikz@math@function@name}{\the\c@pgf@counta}% - {\noexpand\def\noexpand\return{0}\noexpand\tikz@math{\the\tikz@math@toks}}% - }% - \tikz@math@local@temp - \tikz@math@parse% -}% - -\def\tikz@math@addto@toks#1{% - \expandafter\tikz@math@toks\expandafter{\the\tikz@math@toks#1}}% - -\def\tikz@math@createargumentlist{% - \pgfutil@ifnextchar - x\tikz@math@@createargumentlist\tikz@math@@createargumentlist}% - -\def\tikz@math@comma{,}% -\def\tikz@math@@createargumentlist#1,{% - \def\tikz@math@tmp{#1}% - \ifx\tikz@math@tmp\pgfutil@empty% - \let\tikz@math@next=\relax% - \else% - \advance\c@pgf@counta by1\relax% - \tikz@math@addto@toks{#1=}% - \expandafter\expandafter\expandafter\tikz@math@addto@toks\expandafter\expandafter\expandafter% - {\expandafter\tikz@math@char@hash\the\c@pgf@counta;}% - \let\tikz@math@next=\tikz@math@createargumentlist% - \fi% - \tikz@math@next% -}% - - - -\let\tikzmath=\tikz@math -\tikzset{evaluate/.code={\tikz@math{#1}}}% -\let\tikzmathfor=\tikz@math@for@external - - -\catcode`\@=\tikz@math@at@catcode\relax |