Example #1
0
 public void Compute()
 {
     foreach (var stage in stages)
     {
         _register = stage.Compute(_register);
     }
 }
Example #2
0
        public MainWindow()
        {
            InitializeComponent();

            var alpha = 0.8;
            var beta  = 0.6;

            var q1 = new Qubit(0.8, 0.6);
            var q2 = new Qubit(0.1, 0.9);
            var q3 = new Qubit(0.5, 0.5);

            var qubits = new[] { q1, q2, q3 };

            var qr = new QuantumRegister(qubits);


            var circuit = new QuantumCircuit(qr);

            circuit.AddStage(Gate.Hadamard, 1);
            circuit.AddStage(Gate.CNot, 1, 2);
            circuit.AddStage(Gate.Hadamard, 0);
            circuit.AddStage(Gate.CNot, 0, 1);
            circuit.AddStage(Gate.PhaseShift, 2);
            circuit.AddStage(Gate.Hadamard, 2);
            circuit.Compute();
            var resultState  = circuit.Measure();
            var resultState1 = circuit.Measure();
            var resultState2 = circuit.Measure();
            var resultState3 = circuit.Measure();
        }
Example #3
0
 public QuantumCircuit(QuantumRegister register)
 {
     stages    = new List <IStage>();
     _register = register;
 }