More on signatures
This commit is contained in:
parent
740a2ab6a3
commit
f141526b66
1 changed files with 21 additions and 0 deletions
|
@ -350,6 +350,27 @@ The ``IO adjacency'' term is an additional term in the signatures of order
|
||||||
above $0$, indicating what input and output pins of the circuit group
|
above $0$, indicating what input and output pins of the circuit group
|
||||||
containing the current gate are adjacent to it.
|
containing the current gate are adjacent to it.
|
||||||
|
|
||||||
|
\paragraph{Efficiency.} Every circuit memoizes all it can concerning its
|
||||||
|
signature: the inner signature, the IO adjacency, the signatures of order $n$
|
||||||
|
already computed, etc.
|
||||||
|
|
||||||
|
This memoization, alongside with the exclusive use of elementary operations,
|
||||||
|
makes the computation of a signature very fast. The computation is linear in
|
||||||
|
the number of gates in a circuit, times the order computed; the computation is
|
||||||
|
lazy.
|
||||||
|
|
||||||
|
To keep those memoized values up to date whenever the structure of the circuit
|
||||||
|
is changed (since this is meant to be integrated in a programming language, fl,
|
||||||
|
meaning the structure of the circuit will possibly be created, checked for
|
||||||
|
signature, altered, then checked again), each circuit keeps track of a
|
||||||
|
``timestamp'' of last modification, which is incremented whenever the circuit
|
||||||
|
or its children are modified. A memoized data is always stored alongside with a
|
||||||
|
timestamp of computation, which invalidates a previous result when needed.
|
||||||
|
|
||||||
|
One possible path of investigation for future work, if the computation turns
|
||||||
|
out to be still too slow in real-world cases --- which looks unlikely ---,
|
||||||
|
would be to try to multithread this computation.
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\section{Group equality}
|
\section{Group equality}
|
||||||
\todo{}
|
\todo{}
|
||||||
|
|
Loading…
Reference in a new issue