14             public std::iterator<std::forward_iterator_tag, WireId*>
    20                     return typeid(*this) == 
typeid(oth) && 
equal(oth);
    56                     inner(oth.inner->
clone()) {}
    59                     inner = oth.inner->
clone();
    75                     return inner == oth.inner || (*inner) == (*oth.inner);
   114             return circuitId == oth.circuitId;
   122         size_t id()
 const { 
return circuitId; }
   164         virtual void toDot(std::basic_ostream<char>& out, 
int indent=0) = 0;
   173         void alter(
bool uprec = 
true);
   213         static size_t nextCircuitId;
 size_t id() const
Definition: circuitTree.h:122
 
sign_t sign(int level=2)
Definition: circuitTree.cpp:20
 
virtual InnerIoIter * clone() const
Definition: circuitTree.h:26
 
virtual IoIter out_end() const =0
 
Definition: circuitTree.h:41
 
bool equals(CircuitTree *oth)
Definition: circuitTree.cpp:32
 
IoIter operator++(int)
Definition: circuitTree.h:67
 
virtual bool innerEqual(CircuitTree *othTree)=0
 
Definition: circuitTree.h:42
 
bool operator==(const IoIter &oth) const
Definition: circuitTree.h:74
 
sign_t sig
Definition: circuitTree.h:204
 
virtual WireId * nth_input(size_t circId) const =0
Get the nth input. 
 
void alter(bool uprec=true)
Definition: circuitTree.cpp:92
 
virtual void unplug()
Unplug the circuit from its ancestor. 
Definition: circuitTree.cpp:38
 
Definition: circuitTree.h:13
 
memo_ts_t timestamp
Definition: circuitTree.h:203
 
IoIter()
Definition: circuitTree.h:51
 
virtual sign_t innerSignature() const =0
 
bool operator==(const CircuitTree &oth) const
Definition: circuitTree.h:113
 
virtual void toDot(std::basic_ostream< char > &out, int indent=0)=0
 
bool operator!=(const IoIter &oth) const
Definition: circuitTree.h:78
 
Definition: circuitTree.h:45
 
virtual IoIter out_begin() const =0
 
virtual WireId * operator*()
Definition: circuitTree.h:25
 
virtual bool equal(const InnerIoIter &) const
Definition: circuitTree.h:34
 
CircuitGroup * ancestor()
Definition: circuitTree.h:119
 
std::ostream & indent(std::ostream &stream, int indent)
Definition: dotPrint.cpp:21
 
virtual CircType circType() const =0
 
virtual size_t inputCount() const =0
Get the number of inputs. 
 
void unplug_common()
Common steps for every overridden implementation of unplug 
Definition: circuitTree.cpp:85
 
MemoSign(memo_ts_t t, sign_t sig)
Definition: circuitTree.h:202
 
virtual void operator++()
Definition: circuitTree.h:18
 
Definition: circuitGroup.h:47
 
WireId * operator*() const
Definition: circuitTree.h:72
 
IoIter(InnerIoIter *ptr)
Definition: circuitTree.h:52
 
IoIter io_begin() const
Definition: circuitTree.h:137
 
virtual size_t outputCount() const =0
Get the number of outputs. 
 
virtual sign_t computeSignature(int level)
Definition: circuitTree.cpp:46
 
virtual ~InnerIoIter()
Definition: circuitTree.h:17
 
virtual IoIter inp_begin() const =0
 
IoIter io_end() const
Definition: circuitTree.h:140
 
virtual ~CircuitTree()
Definition: circuitTree.cpp:17
 
memo_ts_t lastAlterationTime
Definition: circuitTree.h:199
 
memo_ts_t curHistoryTime
Current history "timestamp" for this circuit, used for memoization. 
Definition: circuitTree.h:197
 
virtual WireId * nth_output(size_t circId) const =0
Get the nth input. 
 
IoIter & operator++()
Definition: circuitTree.h:63
 
IoIter inp_end() const
Definition: circuitTree.h:128
 
CircuitGroup * ancestor_
Definition: circuitTree.h:210
 
bool operator!=(InnerIoIter &oth)
Definition: circuitTree.h:22
 
size_t memo_ts_t
Definition: circuitTree.h:194
 
IoIter & operator=(const IoIter &oth)
Definition: circuitTree.h:57
 
Definition: circuitTree.h:49
 
IoIter(const IoIter &oth)
Definition: circuitTree.h:55
 
CircuitTree()
Definition: circuitTree.cpp:10
 
Definition: circuitTree.h:43
 
std::vector< MemoSign > memoSig
Definition: circuitTree.h:207
 
Definition: circuitTree.h:44
 
Definition: circuitTree.h:10
 
~IoIter()
Definition: circuitTree.h:53
 
Definition: circuitTree.h:201
 
uint64_t sign_t
Type of a circuit signature. 
Definition: isomatch.h:26
 
bool operator==(InnerIoIter &oth)
Definition: circuitTree.h:19
 
CircType
Definition: circuitTree.h:40