Add wiring
This commit is contained in:
parent
20c13c1cdf
commit
a74dfd5f5f
20 changed files with 553 additions and 14 deletions
|
@ -11,9 +11,20 @@ public:
|
|||
CLASSICAL
|
||||
};
|
||||
|
||||
AbstractQuantumWire(QuantumCircuitElement* input, QuantumCircuitElement* output);
|
||||
|
||||
virtual ~AbstractQuantumWire() = default;
|
||||
|
||||
virtual WireType getWireType() const = 0;
|
||||
|
||||
bool isFullyConnected() const override
|
||||
{
|
||||
return mInput && mOutput;
|
||||
}
|
||||
|
||||
protected:
|
||||
QuantumCircuitElement* mInput{ nullptr };
|
||||
QuantumCircuitElement* mOutput{ nullptr };
|
||||
};
|
||||
|
||||
class QuantumWire : public AbstractQuantumWire
|
||||
|
@ -26,9 +37,6 @@ public:
|
|||
|
||||
Type getType() const override;
|
||||
WireType getWireType() const override;
|
||||
private:
|
||||
QuantumCircuitElement* mInput{ nullptr };
|
||||
QuantumCircuitElement* mOutput{ nullptr };
|
||||
};
|
||||
using QuantumWirePtr = std::unique_ptr<QuantumWire>;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue