summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/yquant/tex/yquant-prepare.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/contrib/yquant/tex/yquant-prepare.tex')
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquant-prepare.tex37
1 files changed, 27 insertions, 10 deletions
diff --git a/graphics/pgf/contrib/yquant/tex/yquant-prepare.tex b/graphics/pgf/contrib/yquant/tex/yquant-prepare.tex
index bbd826a8c8..e58905e902 100644
--- a/graphics/pgf/contrib/yquant/tex/yquant-prepare.tex
+++ b/graphics/pgf/contrib/yquant/tex/yquant-prepare.tex
@@ -933,7 +933,22 @@
\let\yquant@register@multi@contiguous=\yquant@prepare@finalize@ctrl@multi@contiguous%
\ifyquant@circuit@operator@hasControls%
\ifyquant@config@operator@multi@warn%
- \def\yquant@prepare@finalize@ctrl@multi@contiguous@warn{0}%
+ \ifx\yquant@register@multi@splitparts\yquant@register@multi@splitparts@sepall%
+ % In the multi as single case, we assume it can be implicitly understood that we always have a maximal multi gate. Only if there are two, we are in trouble.
+ \ifdefined\yquant@prepare@finalize@ctrl@multi@contiguous@warn%
+ \ifnum\yquant@prepare@finalize@ctrl@multi@contiguous@warn=1 %
+ \PackageWarning{yquant.sty}{Ambiguous operation: multiple multi-register operations in combination with controls make it impossible to visually determine on which registers the gates act on.}%
+ \yquant@config@operator@multi@warnfalse%
+ \def\yquant@prepare@finalize@ctrl@multi@contiguous@warn{2}%
+ \else%
+ \def\yquant@prepare@finalize@ctrl@multi@contiguous@warn{1}%
+ \fi%
+ \else%
+ \def\yquant@prepare@finalize@ctrl@multi@contiguous@warn{1}%
+ \fi%
+ \else%
+ \def\yquant@prepare@finalize@ctrl@multi@contiguous@warn{0}%
+ \fi%
\else%
\def\yquant@prepare@finalize@ctrl@multi@contiguous@warn{2}%
\fi%
@@ -947,15 +962,17 @@
}
\protected\def\yquant@prepare@finalize@ctrl@multi@contiguous#1#2#3{%
- \ifnum\yquant@prepare@finalize@ctrl@multi@contiguous@warn=1 %
- \PackageWarning{yquant.sty}{Ambiguous operation: multiple discontiguous multi-register operations in combination with controls make it hard to visually determine on which registers the gates act on.}%
- % switch the warning off for this group (which is a single operation)
- \yquant@config@operator@multi@warnfalse%
- \def\yquant@prepare@finalize@ctrl@multi@contiguous@warn{2}%
- \else%
- \numdef\yquant@prepare@finalize@ctrl@multi@contiguous@warn{%
- \yquant@prepare@finalize@ctrl@multi@contiguous@warn+1%
- }%
+ \unless\ifx\yquant@register@multi@splitparts\yquant@register@multi@splitparts@sepall%
+ \ifnum\yquant@prepare@finalize@ctrl@multi@contiguous@warn=1 %
+ \PackageWarning{yquant.sty}{Ambiguous operation: multiple discontiguous multi-register operations in combination with controls make it hard to visually determine on which registers the gates act on.}%
+ % switch the warning off for this group (which is a single operation)
+ \yquant@config@operator@multi@warnfalse%
+ \def\yquant@prepare@finalize@ctrl@multi@contiguous@warn{2}%
+ \else%
+ \numdef\yquant@prepare@finalize@ctrl@multi@contiguous@warn{%
+ \yquant@prepare@finalize@ctrl@multi@contiguous@warn+1%
+ }%
+ \fi%
\fi%
{% save \body
\yquant@for \yquant@i := #1 to #2 {{% let inner loop mess up with macros