mindquantum.core.gates.BasicGate#
- class mindquantum.core.gates.BasicGate(name, n_qubits, obj_qubits=None, ctrl_qubits=None)#
BasicGate是所有门的基类。
- 参数:
name (str) - 此门的名称。
n_qubits (int) - 这个门有多少个量子比特。
obj_qubits (int, list[int]) - 具体门作用在哪个量子比特上。
ctrl_qubits (int, list[int]) - 指定控制量子比特。默认值:
None。
- property acted#
检查此门是否已经作用在量子比特上。
- define_projectq_gate()#
定义对应的 projectq 中的量子门。
- abstract get_cpp_obj()#
获取底层c++对象。
- hermitian()#
返回该量子门的厄米共轭形式。
- matrix(*args)#
门的矩阵。
- no_grad()#
设置该量子门在梯度计算相关算法中不计算梯度。
- on(obj_qubits, ctrl_qubits=None)#
定义门作用于哪个量子比特和控制量子比特。
备注
在此框架中,首先指定门作用的量子比特,即使对于控制门,例如CNOT,第二个参数是控制量子比特。
- 参数:
obj_qubits (int, list[int]) - 指定门作用在哪个量子比特上。
ctrl_qubits (int, list[int]) - 指定控制量子比特。默认值:
None。
- 返回:
返回一个新的门。
- property parameterized#
检查此门是否为参数化门。
- requires_grad()#
设置该量子门在梯度计算相关算法中要计算梯度。在默认情况下,参数化量子门在构造时就是需要计算梯度。