Measure.cpp 1.27 KB
Newer Older
1
2
3
4
5
6
7
8
/*******************************************************************************
 * Copyright (c) 2017 UT-Battelle, LLC.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Eclipse Distribution License v1.0 which accompanies this
 * distribution. The Eclipse Public License is available at
 * http://www.eclipse.org/legal/epl-v10.html and the Eclipse Distribution License
 * is available at https://eclipse.org/org/documents/edl-v10.php
9
10
 *
 * Contributors:
11
12
 *   Alexander J. McCaskey - initial API and implementation
 *******************************************************************************/
13
14
15
16
17
#include "Measure.hpp"

namespace xacc {
namespace quantum {

18
19
20
Measure::Measure(std::vector<int> qbit) :
		GateInstruction("Measure", qbit, std::vector<InstructionParameter> {
				InstructionParameter(0) }) {
21
22
}

23
Measure::Measure(int qbit, int classicalIdx) :
24
25
26
		GateInstruction("Measure", std::vector<int> { qbit },
				std::vector<InstructionParameter> { InstructionParameter(
						classicalIdx) }) {
27
28
}

29
30
const std::string Measure::toString(const std::string& bufferVarName) {
	return gateName + " " + bufferVarName + std::to_string(bits()[0]);
31
32
}

33
RegisterGateInstruction<Measure> MEASURETEMP("Measure");
34
35
36
37

}
}