summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-10-29 00:31:31 +0000
committerKarl Berry <karl@freefriends.org>2010-10-29 00:31:31 +0000
commit6bc1f5497cfb2f56d65c80a4c36ea3bad6dc046c (patch)
treef7751da75030fb1e06653eeb44e579fcee09c65f /Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs
parented0c7c756e441b2d2ba3633da233fc24361ac0d3 (diff)
pgf 2.10 (28oct10)
git-svn-id: svn://tug.org/texlive/trunk@20236 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs')
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/basics.pdfbin0 -> 24674 bytes
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/basics.tex125
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/fir.pdfbin0 -> 17022 bytes
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/fir.tex61
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/interconnection.pdfbin0 -> 20615 bytes
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/interconnection.tex25
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/macros.sty46
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowarrows.code.tex31
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowblocks.code.tex469
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowdiagram.code.tex60
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowoperators.code.tex259
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/placement.pdfbin0 -> 11255 bytes
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/placement.tex28
-rw-r--r--Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/signalflowdiagram.sty138
14 files changed, 1242 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/basics.pdf b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/basics.pdf
new file mode 100644
index 00000000000..7e2a07930b2
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/basics.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/basics.tex b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/basics.tex
new file mode 100644
index 00000000000..f194c9eaf56
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/basics.tex
@@ -0,0 +1,125 @@
+% Some basic examples for signal flow diagrams.
+%
+% Author: Dr. Karlheinz Ochs, Ruhr-University of Bochum, Germany
+% Version: 0.1
+% Date: 2007/01/05
+\documentclass{article}
+\usepackage{signalflowdiagram}
+
+\begin{document}
+
+%
+% Basic definitions of the symbols used in a signal flow diagram
+%
+
+% - input terminal
+\begin{signalflow}{Input terminal}
+ \node[input] (in) {$x(t)$};
+ \node[coordinate] (c) [right from=in] {};
+ % signal path
+ \path[r>] (in) -- (c);
+\end{signalflow}
+
+% - output terminal
+\begin{signalflow}{Output terminal}
+ \node[output] (out) {$y(t)$};
+ \node[coordinate] (c) [left from=out] {};
+ % signal path
+ \path[r>] (c) -- (out);
+\end{signalflow}
+
+% - branching node
+\begin{signalflow}{Branching node}
+ \node[input] (in) {$x(t)$};
+ \node[node] (nd) [right from=in] {};
+ \node[output] (out1) [above right from=nd] {$x(t)$};
+ \node[output] (out2) [below right from=nd] {$x(t)$};
+ % signal paths
+ \path[r>] (in) -- (nd);
+ \path[r>] (nd) |- (out1);
+ \path[r>] (nd) |- (out2);
+\end{signalflow}
+
+% - multiplier
+\begin{signalflow}{Multiplier}
+ \node[input] (in) {$x(t)$};
+ \node[multiplier] (mul) [right from=in] {\nodepart{above}{$\alpha$}};
+ \node[output] (out) [right from=mul] {$\alpha x(t)$};
+ % signal paths
+ \path[r>] (in) -- (mul);
+ \path[r>] (mul) -- (out);
+\end{signalflow}
+
+% - adder
+\begin{signalflow}{Adder}
+ \node[adder] (add) {};
+ \node[input] (in1) [above left from=add] {$x_1(t)$};
+ \node[input] (in2) [below left from=add] {$x_2(t)$};
+ \node[output] (out) [right from=add] {$x_1(t)+x_2(t)$};
+ % signal paths
+ \path[r>] (in1) -| (add);
+ \path[r>] (in2) -| (add);
+ \path[r>] (add) -- (out);
+\end{signalflow}
+
+% - modulator
+\begin{signalflow}{Modulator}
+ \node[modulator] (mul) {};
+ \node[input] (in1) [above left from=mul] {$x_1(t)$};
+ \node[input] (in2) [below left from=mul] {$x_2(t)$};
+ \node[output] (out) [right from=mul] {$x_1(t)x_2(t)$};
+ % signal paths
+ \path[r>] (in1) -| (mul);
+ \path[r>] (in2) -| (mul);
+ \path[r>] (mul) -- (out);
+\end{signalflow}
+
+% - delay element
+\begin{signalflow}{Delay element}
+ \node[input] (in) {$x(t)$};
+ \node[delay] (del) [right from=in] {$T$};
+ \node[output] (out) [right from=del] {$x(t-T)$};
+ % signal paths
+ \path[r>] (in) -- (del);
+ \path[r>] (del) -- (out);
+\end{signalflow}
+
+% - filter
+\begin{signalflow}{Filter}
+ \node[input] (in) {$x(t)$};
+ \node[filter] (fil) [right from=in] {$q(t)$};
+ \node[output] (out) [right from=fil] {$x(t)\ast q(t)$};
+ % signal paths
+ \path[r>] (in) -- (fil);
+ \path[r>] (fil) -- (out);
+\end{signalflow}
+
+% - building block
+\begin{signalflow}{Building block of a minimum shift keying modulator}
+ \node[input] (in) {$x(t)$};
+ \node[block] (msk) [right from=in] {Minimum shift keying modulator};
+ \node[output](out) [right from=msk] {$z(t)$};
+ % signal paths
+ \path[r>] (in) -- (msk);
+ \path[r>] (msk) -- (out);
+\end{signalflow}
+
+% - MSK symbol encoder
+\begin{signalflow}{Minimum shift keying symbol encoder}
+ \node[input] (in) {$x(t)$};
+ \node[modulator] (mod) [right from=in] {};
+ \node[multiplier] (mul) [below from=mod] {$\mathrm{j}$};
+ \node[delay] (del) [right from=mod] {$T$};
+ \node[node] (nd) [right from=del] {};
+ \node[output] (out) [right from=nd] {$y(t)$};
+ % signal paths
+ \path[c>] (in) -- (mod);
+ \path[c>] (mod) -- (del);
+ \path[c>] (del) -- (nd);
+ \path[c>] (nd) |- (mul);
+ \path[c>] (mul) -- (mod);
+ \path[c>] (nd) -- (out);
+\end{signalflow}
+
+
+\end{document}
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/fir.pdf b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/fir.pdf
new file mode 100644
index 00000000000..f9719f7e450
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/fir.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/fir.tex b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/fir.tex
new file mode 100644
index 00000000000..4a8af171c61
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/fir.tex
@@ -0,0 +1,61 @@
+% Example for an interconnection of signal flow diagrams.
+%
+% Author: Dr. Karlheinz Ochs, Ruhr-University of Bochum, Germany
+% Version: 0.1
+% Date: 2007/01/05
+\documentclass{article}
+\usepackage{signalflowdiagram}
+
+\begin{document}
+
+% An FIR filter
+\begin{signalflow}[node distance=9mm]{Finite impulse response filter of order $n$}%
+ % building blocks
+ \tikzgrid{
+ \node[input] (in) {$x(t)$} &
+ \node[node] (n0) {} &
+ \node[delay] (d1) {$T$} &
+ \node[node] (n1) {} &
+ \node[delay] (d2) {$T$} &
+ \node[node] (n2) {} &
+ \node[coordinate] (c1) {} &
+ \node[coordinate] (c3) {} &
+ \node[delay] (dn) {$T$} &
+ \\ &
+ \node[multiplier] (m0) {$\alpha_0$} & &
+ \node[multiplier] (m1) {$\alpha_1$} & &
+ \node[multiplier] (m2) {$\alpha_2$} & & & &
+ \node[multiplier] (mn) {$\alpha_n$}
+ \\ & & &
+ \node[adder] (a1) {} & &
+ \node[adder] (a2) {} &
+ \node[coordinate] (c2) {} &
+ \node[coordinate] (c4) {} & &
+ \node[adder] (an) {} &
+ \node[output] (out) {$y(t)$}
+ }
+ % signal paths
+ \path[r>] (in) -- (n0);
+ \path[r>] (n0) -- (d1);
+ \path[r>] (d1) -- (n1);
+ \path[r>] (n1) -- (d2);
+ \path[r>] (d2) -- (n2);
+ \path[r>] (n2) -- (c1); % continuation
+ \path[r.] (c1) -- (c3); % continuation
+ \path[r>] (c3) -- (dn); % continuation
+ \path[r>] (n0) -- (m0);
+ \path[r>] (n1) -- (m1);
+ \path[r>] (n2) -- (m2);
+ \path[r>] (dn) -| (mn);
+ \path[r>] (m0) |- (a1);
+ \path[r>] (m1) -- (a1);
+ \path[r>] (m2) -- (a2);
+ \path[r>] (mn) -- (an);
+ \path[r>] (a1) -- (a2);
+ \path[r>] (a2) -- (c2); % continuation
+ \path[r.] (c2) -- (c4); % continuation
+ \path[r>] (c4) -- (an); % continuation
+ \path[r>] (an) -- (out);
+\end{signalflow}
+
+\end{document}
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/interconnection.pdf b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/interconnection.pdf
new file mode 100644
index 00000000000..1092c9ba2d6
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/interconnection.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/interconnection.tex b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/interconnection.tex
new file mode 100644
index 00000000000..1bc3072d70d
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/interconnection.tex
@@ -0,0 +1,25 @@
+% Example for an interconnection of signal flow diagrams.
+%
+% Author: Dr. Karlheinz Ochs, Ruhr-University of Bochum, Germany
+% Version: 0.1
+% Date: 2007/01/05
+\documentclass{article}
+\usepackage{signalflowdiagram}
+\usepackage{macros}
+
+\begin{document}
+
+% interconnection of an MSK symbol encoder with a pulse shaper
+\begin{signalflow}{Minimum shift keying modulator}%
+ \node[input] (in) {$x(t)$};
+ \mskCoder {mC} {right from=in} {};
+ \pulseShaper {pS} {right from=mC-out} {};
+ \node[output] (out) [right from=pS-out] {$z(t)$};
+ % signal paths
+ \path[c>] (in) -- (mC-in);
+ \path[c>] (mC-out) -- (pS-in);
+ \path[c>] (pS-out) -- (out);
+ \textaboveof{mC-out}{$y(t)$}
+\end{signalflow}
+
+\end{document}
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/macros.sty b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/macros.sty
new file mode 100644
index 00000000000..024b248cc76
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/macros.sty
@@ -0,0 +1,46 @@
+% Some macros for signal flow diagrams.
+%
+% Author: Dr. Karlheinz Ochs, Ruhr-University of Bochum, Germany
+% Version: 0.1
+% Date: 2007/01/05
+
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{tikz}
+\RequirePackage{signalflowdiagram}
+\ProvidesPackage{macros}
+ [2007/01/05 v0.1 Some user-defined macros for signal flow diagrams]
+
+%
+% Creates the signal flow diagram of a minimum shift keying coder.
+%
+% #1 = global label
+% #2 = parameter for placement
+\newcommand{\mskCoder}[3]{%
+ % building blocks
+ \node[modulator] (#1-in) [#2] {};
+ \node[multiplier] (mul) [below from=#1-in] {$\mathrm{j}$};
+ \node[delay] (del) [right from=#1-in] {$T$};
+ \node[node] (#1-out) [right from=del] {};
+ % signal paths
+ \path[c>] (#1-in) -- (del);
+ \path[c>] (del) -- (#1-out);
+ \path[c>] (#1-out) |- (mul);
+ \path[c>] (mul) -- (#1-in);
+}%
+
+
+% Creates the signal flow diagram of a pulse shaper.
+%
+% #1 = global label
+% #2 = parameter for placement
+\newcommand{\pulseShaper}[4]{%
+ % building blocks
+ \node[modulator] (#1-in) [#2] {};
+ \node[coordinate] (pam)
+ [above from = #1-in,
+ label=above:$\sum\limits_{\nu=-\infty}^{\infty} \delta(t-t_\nu)$] {};
+ \node[filter] (#1-out) [right from = #1-in] {$q(t)$};
+ % signal paths
+ \path[r>] (pam) -- (#1-in);
+ \path[c>] (#1-in) -- (#1-out);
+}%
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowarrows.code.tex b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowarrows.code.tex
new file mode 100644
index 00000000000..da8a6ea3848
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowarrows.code.tex
@@ -0,0 +1,31 @@
+% pgf/tikz library
+% for signal flow diagrams
+%
+% Author: Dr. Karlheinz Ochs, Ruhr-University of Bochum, Germany
+% Version: 0.1
+% Date: 2007/01/05
+
+
+% Styles for real and complex signal tips.
+\newcommand{\pgfarrowsextend}[1]{%
+ \pgfsetcolor{\pathdrawcolor}%
+ \@tempdima=#1\pgflinewidth%
+ \pgfarrowsleftextend{-2\@tempdima}
+ \pgfarrowsrightextend{2\@tempdima}
+}
+\newcommand{\pgfarrowsarrowtip}[1]{%
+ \pgfsetcolor{\pathdrawcolor}%
+ \@tempdima=#1\pgflinewidth%
+ \pgfpathmoveto{\pgfpoint{2\@tempdima}{0pt}}
+ \pgfpathlineto{\pgfpoint{-\@tempdima}{\@tempdima}}
+ \pgfpathlineto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{-\@tempdima}{-\@tempdima}}
+ \pgfusepathqfill
+}
+\pgfarrowsdeclare{real tip}{real tip}{\pgfarrowsextend{3}}{\pgfarrowsarrowtip{3}}
+\pgfarrowsdeclarereversed{real tip reversed}{real tip reversed}{real tip}{real tip}
+\pgfarrowsdeclare{complex tip}{complex tip}{\pgfarrowsextend{1}}{\pgfarrowsarrowtip{1}}
+\pgfarrowsdeclarereversed{complex tip reversed}{complex tip reversed}{complex tip}{complex tip}
+
+
+\endinput
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowblocks.code.tex b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowblocks.code.tex
new file mode 100644
index 00000000000..0a7410cc443
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowblocks.code.tex
@@ -0,0 +1,469 @@
+% pgf/tikz library
+% for signal flow diagrams
+%
+% Author: Dr. Karlheinz Ochs, Ruhr-University of Bochum, Germany
+% Version: 0.1
+% Date: 2007/01/05
+
+% Known bugs: - Anchors of source shape are not precisely positioned.
+% - Anchor border of source shape is a rectangle.
+% - The bounding box of standard text label is ignored.
+
+
+%
+% Styles for nodes, terminals, and operators.
+%
+% - building blocks
+\tikzstyle{block color}%
+ = [draw=\blockdrawcolor,
+ fill=\blockfillcolor]
+\tikzstyle{block style}%
+ = [block color,
+ line width=\blocklinewidth,
+ text centered]
+\tikzstyle{block}%
+ = [rectangle,
+ block style,
+ minimum width=\blockwidth,
+ minimum height=\blockheight,
+ text width=\blocktextwidth]
+\tikzstyle{filter}%
+ = [rectangle,
+ block style,
+ minimum width=\filterwidth,
+ minimum height=\filterheight,
+ text width=\filtertextwidth]
+\tikzstyle{source}%
+ = [source shape,
+ operator style]
+\tikzstyle{serial parallel converter}%
+ = [serial parallel converter shape,
+ block style,
+ minimum width=10mm,
+ minimum height=20mm,
+ inner sep=2mm]
+\tikzstyle{parallel serial converter}%
+ = [parallel serial converter shape,
+ block style,
+ minimum width=10mm,
+ minimum height=20mm,
+ inner sep=2mm]
+\tikzstyle{symbol mapper}%
+ = [symbol mapper shape,
+ block style,
+ text centered,
+ minimum size=20mm,
+ text width=18mm]
+\tikzstyle{inverse symbol mapper}%
+ = [inverse symbol mapper shape,
+ block style,
+ text centered,
+ minimum size=20mm,
+ text width=18mm]
+
+
+%
+% Shape of a source.
+%
+\newbox\pgfnodeparttextbox
+\pgfdeclareshape{source shape}
+{
+ \savedanchor\westpoint{
+ \pgf@x=\wd\pgfnodeparttextbox%
+ \advance\pgf@x by\pgfshapeouterxsep%
+ \pgf@y=.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by-.5\dp\pgfnodeparttextbox%
+ }
+ \saveddimen\radius{
+ \setlength\pgf@x{\pgfshapeminwidth}
+ }
+ \anchor{west}{\westpoint}
+ \anchor{north west}{
+ \pgf@process{\westpoint}
+ \advance\pgf@y by\radius
+ }
+ \anchor{north}{%
+ \pgf@process{\westpoint}
+ \pgf@xa=\radius\advance\pgf@x by+0.5\pgf@xa
+ \pgf@ya=\radius\advance\pgf@y by+0.866025\pgf@ya
+ }
+ \anchor{north east}{%
+ \pgf@process{\westpoint}
+ \pgf@xa=\radius\advance\pgf@x by+0.866025\pgf@xa
+ \pgf@ya=\radius\advance\pgf@y by+0.5\pgf@ya
+ }
+ \anchor{east}{
+ \pgf@process{\westpoint}
+ \advance\pgf@x by\radius
+ \advance\pgf@x by0.5\pgflinewidth
+ }
+ \anchor{south east}{%
+ \pgf@process{\westpoint}
+ \pgf@xa=\radius\advance\pgf@x by+0.866025\pgf@xa
+ \pgf@ya=\radius\advance\pgf@y by-0.5\pgf@ya
+ }
+ \anchor{south}{%
+ \pgf@process{\westpoint}
+ \pgf@xa=\radius\advance\pgf@x by+0.5\pgf@xa
+ \pgf@ya=\radius\advance\pgf@y by-0.866025\pgf@ya
+ }
+ \anchor{south west}{
+ \pgf@process{\westpoint}
+ \advance\pgf@y by-\radius
+ }
+ \anchor{center}{
+ \pgf@process{\westpoint}
+ \pgf@xa=\radius\advance\pgf@x by+0.5\pgf@xa
+ }
+ % node part
+ \nodeparts{text}
+ \anchor{text}{
+ \pgf@process{\westpoint}
+ \pgf@xa=\radius
+ \advance\pgf@y by-.5\ht\pgfnodeparttextbox%
+ \advance\pgf@x by-\wd\pgfnodeparttextbox%
+ \advance\pgf@x by-0.5mm
+ }
+ \anchorborder{%
+ \pgf@xb=\pgf@x% xb/yb is target
+ \pgf@yb=\pgf@y%
+ % southwest
+ \westpoint\advance\pgf@y by-\radius
+ \pgf@xa=\pgf@x% xa/ya is se
+ \pgf@ya=\pgf@y%
+ % northeast
+ \westpoint\advance\pgf@x by\radius\advance\pgf@y by\radius%
+ \advance\pgf@x by-\pgf@xa%
+ \advance\pgf@y by-\pgf@ya%
+ \pgf@xc=.5\pgf@x% x/y is half width/height
+ \pgf@yc=.5\pgf@y%
+ \advance\pgf@xa by\pgf@xc% xa/ya becomes center
+ \advance\pgf@ya by\pgf@yc%
+ \edef\pgf@marshal{%
+ \noexpand\pgfpointborderrectangle
+ {\noexpand\pgfpoint{\the\pgf@xb}{\the\pgf@yb}}
+ {\noexpand\pgfpoint{\the\pgf@xc}{\the\pgf@yc}}%
+ }%
+ \pgf@process{\pgf@marshal}%
+ \advance\pgf@x by\pgf@xa%
+ \advance\pgf@y by\pgf@ya%
+ }
+ % Background path
+ \backgroundpath{
+ {\pgftransformreset{\pgfnodeparttextbox}}
+ \westpoint \pgf@xa=\pgf@x \pgf@ya=\pgf@y
+ \advance\pgf@y by\radius
+ \pgfmoveto{\pgfpoint{\pgf@x}{\pgf@y}}
+ \pgfpatharc{90}{-90}{\radius}
+ \pgfclosepath
+ }
+}
+
+
+%
+% Shape of a serial to parallel converter.
+%
+\newbox\pgfnodepartSbox
+\newbox\pgfnodepartPbox
+\pgfdeclareshape{serial parallel converter shape}
+{
+ % inherit from rectangle
+ \inheritsavedanchors[from=rectangle]
+ \inheritanchor[from=rectangle]{center}
+ \inheritanchor[from=rectangle]{north}
+ \inheritanchor[from=rectangle]{north east}
+ \inheritanchor[from=rectangle]{east}
+ \inheritanchor[from=rectangle]{south east}
+ \inheritanchor[from=rectangle]{south}
+ \inheritanchor[from=rectangle]{south west}
+ \inheritanchor[from=rectangle]{west}
+ \inheritanchor[from=rectangle]{north west}
+ \inheritanchorborder[from=rectangle]
+ \inheritanchorborder[from=rectangle]
+ \inheritbackgroundpath[from=rectangle]
+ % terminal anchors
+ \anchor{in}{%
+ \northeast
+ \pgf@ya=0.5\pgf@y
+ \southwest
+ \pgf@y=0.5\pgf@y
+ \advance\pgf@y by+\pgf@ya%
+ }
+ \anchor{out1}{
+ \southwest
+ \pgf@ya=0.9\pgf@y
+ \northeast
+ \pgf@y=0.1\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ }
+ \anchor{out2}{
+ \southwest
+ \pgf@ya=0.7\pgf@y
+ \northeast
+ \pgf@y=0.3\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ }
+ \anchor{outl}{
+ \southwest
+ \pgf@ya=0.1\pgf@y
+ \northeast
+ \pgf@y=0.9\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ }
+ \anchor{dots}{
+ \southwest
+ \pgf@ya=0.4\pgf@y
+ \northeast
+ \pgf@y=0.6\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ \setlength{\pgf@xa}{\xspace}
+ \advance\pgf@x by.5\pgf@xa%
+ }
+ % node parts
+ \nodeparts{S,P}
+ \anchor{S}{
+ \southwest
+ \pgf@xa=\pgf@x
+ \northeast
+ \pgf@x=\pgf@xa
+ \advance\pgf@y by-\ht\pgfnodepartSbox%
+ \advance\pgf@y by-.5\dp\pgfnodepartSbox%
+ \advance\pgf@x by+\pgfshapeinnerxsep%
+ \advance\pgf@y by-\pgfshapeinnerysep%
+ }
+ \anchor{P}{
+ \northeast
+ \pgf@xa=\pgf@x
+ \southwest
+ \pgf@x=\pgf@xa
+ \advance\pgf@x by-\wd\pgfnodepartPbox%
+ \advance\pgf@x by-\pgfshapeinnerxsep%
+ \advance\pgf@y by+\pgfshapeinnerysep%
+ }
+ % diagonal line S/P
+ \foregroundpath{%
+ \pgfpathmoveto{\pgfpointadd{\southwest}{\pgfpoint{\pgfshapeouterxsep}{\pgfshapeouterysep}}}
+ \pgfpathlineto{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfshapeouterxsep}{\pgfshapeouterysep}}}}
+ }
+}
+
+%
+% Shape of a parallel to serial converter.
+%
+\newbox\pgfnodepartSbox
+\newbox\pgfnodepartPbox
+\pgfdeclareshape{parallel serial converter shape}
+{
+ % inherit from rectangle
+ \inheritsavedanchors[from=rectangle]
+ \inheritanchor[from=rectangle]{center}
+ \inheritanchor[from=rectangle]{north}
+ \inheritanchor[from=rectangle]{north east}
+ \inheritanchor[from=rectangle]{east}
+ \inheritanchor[from=rectangle]{south east}
+ \inheritanchor[from=rectangle]{south}
+ \inheritanchor[from=rectangle]{south west}
+ \inheritanchor[from=rectangle]{west}
+ \inheritanchor[from=rectangle]{north west}
+ \inheritanchorborder[from=rectangle]
+ \inheritanchorborder[from=rectangle]
+ \inheritbackgroundpath[from=rectangle]
+ % terminal anchors
+ \anchor{out}{%
+ \southwest
+ \pgf@ya=0.5\pgf@y
+ \northeast
+ \pgf@y=0.5\pgf@y
+ \advance\pgf@y by+\pgf@ya%
+ }
+ \anchor{in1}{
+ \northeast
+ \pgf@ya=0.1\pgf@y
+ \southwest
+ \pgf@y=0.9\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ }
+ \anchor{in2}{
+ \northeast
+ \pgf@ya=0.3\pgf@y
+ \southwest
+ \pgf@y=0.7\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ }
+ \anchor{inl}{
+ \northeast
+ \pgf@ya=0.9\pgf@y
+ \southwest
+ \pgf@y=0.1\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ }
+ \anchor{dots}{
+ \northeast
+ \pgf@ya=0.6\pgf@y
+ \southwest
+ \pgf@y=0.4\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ \setlength{\pgf@xa}{\xspace}
+ \advance\pgf@x by-.5\pgf@xa%
+ }
+ % node parts
+ \nodeparts{P,S}
+ \anchor{P}{
+ \southwest
+ \pgf@xa=\pgf@x
+ \northeast
+ \pgf@x=\pgf@xa
+ \advance\pgf@y by-\ht\pgfnodepartPbox%
+ \advance\pgf@y by-.5\dp\pgfnodepartPbox%
+ \advance\pgf@x by+\pgfshapeinnerxsep%
+ \advance\pgf@y by-\pgfshapeinnerysep%
+ }
+ \anchor{S}{
+ \northeast
+ \pgf@xa=\pgf@x
+ \southwest
+ \pgf@x=\pgf@xa
+ \advance\pgf@x by-\wd\pgfnodepartSbox%
+ \advance\pgf@x by-\pgfshapeinnerxsep%
+ \advance\pgf@y by+\pgfshapeinnerysep%
+ }
+ % diagonal line S/P
+ \foregroundpath{%
+ \pgfpathmoveto{\pgfpointadd{\southwest}{\pgfpoint{\pgfshapeouterxsep}{\pgfshapeouterysep}}}
+ \pgfpathlineto{\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfshapeouterxsep}{\pgfshapeouterysep}}}}
+ }
+}
+
+
+%
+% Shape of a symbol mapper.
+%
+\pgfdeclareshape{symbol mapper shape}
+{
+ % rectangle anchors
+ \inheritsavedanchors[from=rectangle]
+ \inheritanchor[from=rectangle]{center}
+ \inheritanchor[from=rectangle]{north}
+ \inheritanchor[from=rectangle]{north east}
+ \inheritanchor[from=rectangle]{east}
+ \inheritanchor[from=rectangle]{south east}
+ \inheritanchor[from=rectangle]{south}
+ \inheritanchor[from=rectangle]{south west}
+ \inheritanchor[from=rectangle]{west}
+ \inheritanchor[from=rectangle]{north west}
+ \inheritanchorborder[from=rectangle]
+ % terminal anchors
+ \anchor{out}{%
+ \southwest
+ \pgf@ya=0.5\pgf@y
+ \northeast
+ \pgf@y=0.5\pgf@y
+ \advance\pgf@y by+\pgf@ya%
+ }
+ \anchor{in1}{
+ \northeast
+ \pgf@ya=0.1\pgf@y
+ \southwest
+ \pgf@y=0.9\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ }
+ \anchor{in2}{
+ \northeast
+ \pgf@ya=0.3\pgf@y
+ \southwest
+ \pgf@y=0.7\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ }
+ \anchor{dots}{
+ \northeast
+ \pgf@ya=0.6\pgf@y
+ \southwest
+ \pgf@y=0.4\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ \setlength{\pgf@xa}{\xspace}
+ \advance\pgf@x by-.5\pgf@xa%
+ }
+ \anchor{inl}{
+ \northeast
+ \pgf@ya=0.9\pgf@y
+ \southwest
+ \pgf@y=0.1\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ }
+ % rectangle shaped frame
+ \backgroundpath{
+ \pgfpathrectanglecorners
+ {\pgfpointadd{\southwest}{\pgfpoint{\pgfshapeouterxsep}{\pgfshapeouterysep}}}
+ {\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfshapeouterxsep}{\pgfshapeouterysep}}}}
+ }
+
+ \inheritbackgroundpath[from=rectangle]
+}
+
+
+%
+% Shape of an inverse symbol mapper.
+%
+\pgfdeclareshape{inverse symbol mapper shape}
+{
+ % rectangle anchors
+ \inheritsavedanchors[from=rectangle]
+ \inheritanchor[from=rectangle]{center}
+ \inheritanchor[from=rectangle]{north}
+ \inheritanchor[from=rectangle]{north east}
+ \inheritanchor[from=rectangle]{east}
+ \inheritanchor[from=rectangle]{south east}
+ \inheritanchor[from=rectangle]{south}
+ \inheritanchor[from=rectangle]{south west}
+ \inheritanchor[from=rectangle]{west}
+ \inheritanchor[from=rectangle]{north west}
+ \inheritanchorborder[from=rectangle]
+ % terminal anchors
+ \anchor{in}{%
+ \northeast
+ \pgf@ya=0.5\pgf@y
+ \southwest
+ \pgf@y=0.5\pgf@y
+ \advance\pgf@y by+\pgf@ya%
+ }
+ \anchor{out1}{
+ \southwest
+ \pgf@ya=0.9\pgf@y
+ \northeast
+ \pgf@y=0.1\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ }
+ \anchor{out2}{
+ \southwest
+ \pgf@ya=0.7\pgf@y
+ \northeast
+ \pgf@y=0.3\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ }
+ \anchor{outl}{
+ \southwest
+ \pgf@ya=0.1\pgf@y
+ \northeast
+ \pgf@y=0.9\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ }
+ \anchor{dots}{
+ \southwest
+ \pgf@ya=0.4\pgf@y
+ \northeast
+ \pgf@y=0.6\pgf@y
+ \advance\pgf@y by\pgf@ya%
+ \setlength{\pgf@xa}{\xspace}
+ \advance\pgf@x by.5\pgf@xa%
+ }
+ % rectangle shaped frame
+ \backgroundpath{
+ \pgfpathrectanglecorners
+ {\pgfpointadd{\southwest}{\pgfpoint{\pgfshapeouterxsep}{\pgfshapeouterysep}}}
+ {\pgfpointadd{\northeast}{\pgfpointscale{-1}{\pgfpoint{\pgfshapeouterxsep}{\pgfshapeouterysep}}}}
+ }
+
+ \inheritbackgroundpath[from=rectangle]
+}
+
+\endinput
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowdiagram.code.tex b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowdiagram.code.tex
new file mode 100644
index 00000000000..37e3608ac8d
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowdiagram.code.tex
@@ -0,0 +1,60 @@
+% pgf/tikz library
+% for signal flow diagrams
+%
+% Author: Dr. Karlheinz Ochs, Ruhr-University of Bochum, Germany
+% Version: 0.1
+% Date: 2007/01/05
+
+%
+% Extended general shape options, cf. tikz.code.tex
+%
+% #1 = source node
+% Remark: The node distance is used
+% for the distance between the borders of two nodes
+\tikzoption{below from}{\tikz@from{#1}{1}{-90}{south}{north}}%
+\tikzoption{right from}{\tikz@from{#1}{1}{0}{east}{west}}%
+\tikzoption{above from}{\tikz@from{#1}{1}{90}{north}{south}}%
+\tikzoption{left from}{\tikz@from{#1}{1}{180}{west}{east}}%
+\tikzoption{below left from}{\tikz@from{#1}{1.414214}{-135}{south west}{north east}}%
+\tikzoption{below right from}{\tikz@from{#1}{1.414214}{-45}{south east}{north west}}%
+\tikzoption{above right from}{\tikz@from{#1}{1.414214}{45}{north east}{south west}}%
+\tikzoption{above left from}{\tikz@from{#1}{1.414214}{135}{north west}{south east}}%
+\def\tikz@from#1#2#3#4#5{%
+ \def\tikz@anchor{#5}%
+ \let\tikz@do@auto@anchor=\relax%
+ \tikz@addtransform{\pgftransformshift{\pgfpointscale{#2}{\pgfpointpolar{#3}{\tikz@node@distance}}}}%
+ \def\tikz@node@at{\pgfpointanchor{#1}{#4}}}
+
+
+%
+% Styles for real and complex signal paths.
+%
+\tikzstyle{dotted path}
+ = [loosely dotted,
+ shorten >= 2mm,
+ shorten <= 2mm]
+\tikzstyle{r}
+ = [line width=\pathlinewidth,
+ >= real tip,
+ draw]
+\tikzstyle{r>}
+ = [r,->]
+\tikzstyle{<r}
+ = [r,<-]
+\tikzstyle{r.}
+ = [r,dotted path]
+\tikzstyle{c}
+ = [line width=\pathlinewidth,
+ double=\pathfillcolor,
+ double distance=\pathlinewidth,
+ >= complex tip,
+ draw,shorten <=-\pathlineextend]
+\tikzstyle{c>}
+ = [c,->]
+\tikzstyle{<c}
+ = [c,<-]
+\tikzstyle{c.}
+ = [c,dotted path]
+
+
+\endinput
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowoperators.code.tex b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowoperators.code.tex
new file mode 100644
index 00000000000..f94f0a8f8a7
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/pgflibrarytikzsignalflowoperators.code.tex
@@ -0,0 +1,259 @@
+% pgf/tikz library
+% for signal flow diagrams
+%
+% Author: Dr. Karlheinz Ochs, Ruhr-University of Bochum, Germany
+% Version: 0.1
+% Date: 2007/01/05
+
+
+%
+% Styles for nodes, terminals, and operators.
+%
+% - nodes and terminals
+\tikzstyle{node style}%
+ = [draw=\pathdrawcolor,
+ fill=\pathdrawcolor,
+ minimum size=\nodesize]
+\tikzstyle{terminal style}%
+ = [draw=\pathdrawcolor,
+ fill=\pathfillcolor,
+ line width=\pathlinewidth,
+ minimum size=\terminalsize]
+\tikzstyle{node}%
+ = [node shape,
+ node style]
+\tikzstyle{input}%
+ = [input terminal shape,
+ terminal style]
+\tikzstyle{output}%
+ = [output terminal shape,
+ terminal style]
+% - operators
+\tikzstyle{operator color}%
+ = [draw=\operatordrawcolor,
+ fill=\operatorfillcolor]
+\tikzstyle{operator style}%
+ = [operator color,
+ line width=\operatorlinewidth,
+ minimum size=\operatorsize]
+\tikzstyle{multiplier}%
+ = [multiplier shape,
+ operator style]
+\tikzstyle{modulator}%
+ = [modulator shape,
+ operator style]
+\tikzstyle{adder}%
+ = [adder shape,
+ operator style]
+\tikzstyle{delay}%
+ = [rectangle,
+ operator style,
+ minimum size=\delaysize]
+
+
+%
+% Circular shapes of operator symbols.
+%
+% #1 = additional inner symbol
+\newcommand{\circularshape}[1]{%
+ \savedanchor\centerpoint{\pgfpointorigin}
+ % radius is half of maximum of \pgfshapeminwidth and \pgfshapeminheight
+ \saveddimen\radius{%
+ \setlength{\pgf@xa}{\pgfshapeminwidth}
+ \setlength{\pgf@ya}{\pgfshapeminheight}
+ \ifdim\pgf@xa>\pgf@ya
+ \pgf@x=.5\pgf@xa
+ \else
+ \pgf@x=.5\pgf@ya
+ \fi
+ }
+ \inheritanchor[from=circle]{center}
+ \inheritanchorborder[from=circle]
+ \inheritanchor[from=circle]{north}
+ \inheritanchor[from=circle]{north east}
+ \inheritanchor[from=circle]{east}
+ \inheritanchor[from=circle]{south east}
+ \inheritanchor[from=circle]{south}
+ \inheritanchor[from=circle]{south west}
+ \inheritanchor[from=circle]{west}
+ \inheritanchor[from=circle]{north west}
+ \inheritanchor[from=circle]{mid}
+ \inheritanchor[from=circle]{mid west}
+ \inheritanchor[from=circle]{mid east}
+ \inheritanchor[from=circle]{base}
+ \inheritanchor[from=circle]{base west}
+ \inheritanchor[from=circle]{base east}
+ % circular shaped frame
+ \inheritbackgroundpath[from=circle]
+ % additional inner symbol
+ \foregroundpath{
+ \centerpoint%
+ \pgf@xc=\pgf@x%
+ \pgf@yc=\pgf@y%
+ \@tempdima=\radius%
+ #1
+ }
+ % no text
+ \nodeparts{}
+}
+
+
+%
+% Anchors for default text box, see below.
+%
+\newcommand{\stdaboveanchor}{%
+ \anchor{text}{%
+ \centerpoint
+ \advance\pgf@x by-0.5\wd\pgfnodeparttextbox%
+ \advance\pgf@y by\radius
+ \advance\pgf@y by+0.5mm
+ }
+}
+\newcommand{\stdrightanchor}{%
+ \anchor{text}{%
+ \centerpoint
+ \advance\pgf@x by\radius
+ \advance\pgf@x by+0.5mm
+ \advance\pgf@y by-0.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by+0.5\dp\pgfnodeparttextbox%
+ }
+}
+\newcommand{\stdbelowanchor}{%
+ \anchor{text}{%
+ \centerpoint
+ \advance\pgf@x by-0.5\wd\pgfnodeparttextbox%
+ \advance\pgf@y by-\ht\pgfnodeparttextbox%
+ \advance\pgf@y by-\radius
+ \advance\pgf@y by-0.5mm
+ }
+}
+\newcommand{\stdleftanchor}{%
+ \anchor{text}{%
+ \centerpoint
+ \advance\pgf@x by-\radius
+ \advance\pgf@x by-\wd\pgfnodeparttextbox%
+ \advance\pgf@x by-0.5mm
+ \advance\pgf@y by-0.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by+0.5\dp\pgfnodeparttextbox%
+ }
+}
+
+
+%
+% Circular shapes of operator symbols with default text box.
+%
+% #1 = place of the default text box
+\newbox\pgfnodepartabovebox
+\newbox\pgfnodepartrightbox
+\newbox\pgfnodepartbelowbox
+\newbox\pgfnodepartleftbox
+\newcommand{\labelledcircularshape}[1]{%
+ % node parts
+ \nodeparts{text,above,right,below,left}
+ % anchors
+ \savedanchor\centerpoint{\pgfpointorigin}
+ % radius is half of maximum of \pgfshapeminwidth and \pgfshapeminheight
+ \saveddimen\radius{%
+ \setlength{\pgf@xa}{\pgfshapeminwidth}
+ \setlength{\pgf@ya}{\pgfshapeminheight}
+ \ifdim\pgf@xa>\pgf@ya
+ \pgf@x=.5\pgf@xa
+ \else
+ \pgf@x=.5\pgf@ya
+ \fi
+ }
+ \inheritanchor[from=circle]{center}
+ \inheritanchorborder[from=circle]
+ \inheritanchor[from=circle]{north}
+ \inheritanchor[from=circle]{north east}
+ \inheritanchor[from=circle]{east}
+ \inheritanchor[from=circle]{south east}
+ \inheritanchor[from=circle]{south}
+ \inheritanchor[from=circle]{south west}
+ \inheritanchor[from=circle]{west}
+ \inheritanchor[from=circle]{north west}
+ \inheritanchor[from=circle]{mid}
+ \inheritanchor[from=circle]{mid west}
+ \inheritanchor[from=circle]{mid east}
+ \inheritanchor[from=circle]{base}
+ \inheritanchor[from=circle]{base west}
+ \inheritanchor[from=circle]{base east}
+ #1
+ \anchor{above}{%
+ \centerpoint
+ \advance\pgf@x by-0.5\wd\pgfnodepartabovebox%
+ \advance\pgf@y by\radius
+ \advance\pgf@y by+0.5mm
+ }
+ \anchor{right}{%
+ \centerpoint
+ \advance\pgf@x by\radius
+ \advance\pgf@x by+0.5mm
+ \advance\pgf@y by-0.5\ht\pgfnodepartrightbox%
+ \advance\pgf@y by+0.5\dp\pgfnodeparttextbox%
+ }
+ \anchor{below}{%
+ \centerpoint
+ \advance\pgf@x by-0.5\wd\pgfnodepartbelowbox%
+ \advance\pgf@y by-\ht\pgfnodepartbelowbox%
+ \advance\pgf@y by-\radius
+ \advance\pgf@y by-0.5mm
+ }
+ \anchor{left}{%
+ \centerpoint
+ \advance\pgf@x by-\radius
+ \advance\pgf@x by-\wd\pgfnodepartleftbox%
+ \advance\pgf@x by-0.5mm
+ \advance\pgf@y by-0.5\ht\pgfnodepartleftbox%
+ \advance\pgf@y by+0.5\dp\pgfnodeparttextbox%
+ }
+ % circular shaped frame
+ \inheritbackgroundpath[from=circle]
+}
+
+
+%
+% Shape of a node.
+%
+\pgfdeclareshape{node shape}{\labelledcircularshape{\stdaboveanchor}}%
+
+%
+% Shape of an input terminal.
+%
+\pgfdeclareshape{input terminal shape}{\labelledcircularshape{\stdleftanchor}}%
+%
+% Shape of an output terminal.
+%
+\pgfdeclareshape{output terminal shape}{\labelledcircularshape{\stdrightanchor}}%
+%
+% Shape of a multiplier.
+%
+\pgfdeclareshape{multiplier shape}{\labelledcircularshape{\stdleftanchor}}%
+%
+% Shape of a modulator.
+%
+\pgfdeclareshape{modulator shape}{\circularshape{%
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{-0.707107\@tempdima}{-0.707107\@tempdima}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{0.707107\@tempdima}{0.707107\@tempdima}}}
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{0.707107\@tempdima}{-0.707107\@tempdima}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{-0.707107\@tempdima}{0.707107\@tempdima}}}
+}}%
+%
+% Shape of an adder.
+%
+\pgfdeclareshape{adder shape}{\circularshape{%
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{-0.5\@tempdima}{0\@tempdima}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{0.5\@tempdima}{0\@tempdima}}}
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{0\@tempdima}{-0.5\@tempdima}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@xc}{\pgf@yc}}
+ {\pgfpoint{0\@tempdima}{0.5\@tempdima}}}
+}}%
+
+\endinput
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/placement.pdf b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/placement.pdf
new file mode 100644
index 00000000000..c06b5d79f08
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/placement.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/placement.tex b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/placement.tex
new file mode 100644
index 00000000000..ec65a53b7d0
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/placement.tex
@@ -0,0 +1,28 @@
+% Placement example of from command,
+% which is an extension of the of command,
+% cf. tikz.code.tex of Till Tantau.
+%
+% Author: Dr. Karlheinz Ochs, Ruhr-University of Bochum, Germany
+% Version: 0.1
+% Date: 2007/01/05
+\documentclass{article}
+\usepackage{signalflowdiagram}
+\usepackage{macros}
+
+\begin{document}
+
+%
+% Basic placement example using my "from" command.
+%
+\begin{signalflow}{Placement example}
+ \node[block] (bc) {center};
+ \node[block] (bl) [left from=bc] {left};
+ \node[block] (br) [right from=bc] {right};
+ \node[block] (ba) [above from=bc] {above};
+ \node[block] (bb) [below from=bc] {below};
+ \node[block] (bal) [above left from=bc] {above\\left};
+ \node[block] (bbl) [below left from=bc] {below\\left};
+ \node[block] (bal) [above right from=bc] {above\\right};
+ \node[block] (bbl) [below right from=bc] {below\\right};
+\end{signalflow}
+\end{document}
diff --git a/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/signalflowdiagram.sty b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/signalflowdiagram.sty
new file mode 100644
index 00000000000..c258eb7a9d9
--- /dev/null
+++ b/Master/texmf-dist/source/latex/pgf/incoming/KarlheinzOchs/signalflowdiagram.sty
@@ -0,0 +1,138 @@
+% A simple library for signal flow diagrams
+% based on the pgf/tikz package of Till Tantau
+%
+% Author: Dr. Karlheinz Ochs, Ruhr-University of Bochum, Germany
+% Version: 0.1
+% Date: 2007/01/05
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{tikz}
+\ProvidesPackage{signalflowdiagram}
+ [2006/12/30 v0.1 Signal flow diagrams]
+
+%
+% Libraries for signal flow diagrams.
+%
+\usetikzlibrary{signalflowdiagram,signalflowarrows,signalflowoperators,signalflowblocks}
+
+
+%
+% Colors
+%
+\newcommand{\pathdrawcolor}{\blockdrawcolor} % draw color of signal paths
+\newcommand{\pathfillcolor}{\blockfillcolor} % fill color of signal paths
+\newcommand{\operatordrawcolor}{\blockdrawcolor} % draw color of operators
+\newcommand{\operatorfillcolor}{\blockfillcolor} % fill color of operators
+\newcommand{\blockdrawcolor}{black} % draw color of blocks
+\newcommand{\blockfillcolor}{white} % fill color of blocks
+
+%
+% line widths of
+%
+\newcommand{\diagramlinewidth}{0.5mm} % signal flow diagram frames
+\newcommand{\pathlinewidth}{0.3mm} % signal paths
+\newcommand{\operatorlinewidth}{0.3mm} % operator frames
+\newcommand{\blocklinewidth}{0.5mm} % building block styles
+
+%
+% line widths, sizes, etc.
+%
+\newcommand{\nodesize}{1.5mm} % size of nodes
+\newcommand{\terminalsize}{\nodesize} % size of terminals
+\newcommand{\operatorsize}{3mm} % size of circular shaped operator symbols
+\newcommand{\delaysize}{6mm} % minimum size of delay elements
+\newcommand{\blockwidth}{24mm} % minimum width of blocks
+\newcommand{\blockheight}{12mm} % minimum height of blocks
+\newcommand{\blocktextwidth}{22mm} % minimum text width of blocks
+\newcommand{\filterwidth}{12mm} % minimum width of filters
+\newcommand{\filterheight}{8mm} % minimum height of filters
+\newcommand{\filtertextwidth}{6mm} % minimum text width of filters
+
+%
+% misc.
+%
+\newcommand{\pathlineextend}{0.025mm} % shortens the end of the signal paths
+\newcommand{\vbullets}[1]{% vertical bullets
+\node[rectangle,anchor=center,at=(#1),text width=2ex]{%
+$\bullet$\\[-1ex] $\bullet$\\[-1ex] $\bullet$}
+}%
+
+
+%
+% Signal flow diagram.
+%
+% #1 = optional parameter(s)
+% #2 = title text
+\tikzstyle{signal flow diagram} =
+ [rectangle,
+ sharp corners,
+ line width=\diagramlinewidth,
+ draw=black,
+ inner sep=3mm]
+\newenvironment{signalflow}[2][]{%
+\begin{center}
+ \begin{tikzpicture}
+ \node[% title
+ signal flow diagram,
+ fill=blue!90!black,
+ text=white] (title) {#2};% title text
+ \node at (title.south west) [%
+ signal flow diagram,
+ fill=blue!20!white,
+ anchor=north west,
+ yshift=\pgflinewidth]
+ \bgroup
+ \begin{minipage}{0.9\textwidth}
+ \centering
+ \begin{tikzpicture}[%
+ node distance=8mm,
+ pin distance=8mm,
+ label distance=-0.5mm,
+ inner sep=1mm,
+ anchor=center,
+ text centered,
+ #1]% optional parameter(s)
+}{%
+ \end{tikzpicture}
+ \end{minipage}
+ \egroup;
+ \end{tikzpicture}
+\end{center}
+}%
+
+
+%
+% Positioning of node text.
+%
+% #1 = node label
+% #2 = label text
+\newcommand{\textaboveof}[2]{\pgftext[bottom,at=\pgfpointanchor{#1}{north},y=+1mm]{#2}}%
+\newcommand{\textrightof}[2]{\pgftext[left, at=\pgfpointanchor{#1}{east}, x=+1mm]{#2}}%
+\newcommand{\textbelowof}[2]{\pgftext[top ,at=\pgfpointanchor{#1}{south},y=-1mm]{#2}}%
+\newcommand{\textleftof} [2]{\pgftext[right, at=\pgfpointanchor{#1}{west}, x=-1mm]{#2}}%
+
+\makeatletter
+\newcounter{r}
+\newcommand{\tikzgrid}{%
+ \pgfsetxvec{\pgfpoint{\tikz@node@distance}{0mm}}%
+ \pgfsetyvec{\pgfpoint{0mm}{\tikz@node@distance}}%
+ \tikz@matrix%
+}
+\newcommand{\tikz@matrix}[1]{\tikz@@matrix#1@}%
+\def\tikz@@matrix#1@{\do@rows#1\\@\\}%
+\def\do@rows#1\\{%
+ \ifx#1@%
+ \else%
+ \setcounter{r}{0}%
+ \do@columns#1&@&%
+ \pgftransformshift{\pgfpointxy{-\ther}{-1}}%
+ \expandafter\do@rows%
+ \fi}%
+\def\do@columns#1&{%
+ \if#1@%
+ \else%
+ \stepcounter{r}%
+ \pgftransformshift{\pgfpointxy{1}{0}}%
+ #1;%
+ \expandafter\do@columns%
+ \fi}%
+\makeatother