paddle_quantum.gate.multi_qubit_gate
多量子比特门的类的功能实现。
- class CNOT(qubits_idx='cycle', num_qubits=None, depth=1)
基类:
paddle_quantum.gate.base.Gate
CNOT 门。
对于两量子比特的量子电路,当
qubits_idx
为[0, 1]
时,其矩阵形式为:- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- class CX(qubits_idx='cycle', num_qubits=None, depth=1)
基类:
paddle_quantum.gate.base.Gate
同 CNOT。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- class CY(qubits_idx='cycle', num_qubits=None, depth=1)
基类:
paddle_quantum.gate.base.Gate
受控 Y 门。
对于两量子比特的量子电路,当
qubits_idx
为[0, 1]
时,其矩阵形式为:- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- class CZ(qubits_idx='cycle', num_qubits=None, depth=1)
基类:
paddle_quantum.gate.base.Gate
受控 Z 门。
对于两量子比特的量子电路,当
qubits_idx
为[0, 1]
时,其矩阵形式为:- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- class SWAP(qubits_idx='cycle', num_qubits=None, depth=1)
基类:
paddle_quantum.gate.base.Gate
SWAP 门。
其矩阵形式为:
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- class CP(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
基类:
paddle_quantum.gate.base.ParamGate
受控 P 门。
对于两量子比特的量子电路,当
qubits_idx
为[0, 1]
时,其矩阵形式为:- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- 抛出:
ValueError –
param
须为paddle.Tensor
或float
。
- class CRX(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
基类:
paddle_quantum.gate.base.ParamGate
关于 x 轴的受控单量子比特旋转门。
对于两量子比特的量子电路,当
qubits_idx
为[0, 1]
时,其矩阵形式为:- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- 抛出:
ValueError –
param
须为paddle.Tensor
或float
。
- class CRY(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
基类:
paddle_quantum.gate.base.ParamGate
关于 y 轴的受控单量子比特旋转门。
对于两量子比特的量子电路,当
qubits_idx
为[0, 1]
时,其矩阵形式为:- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- 抛出:
ValueError –
param
须为paddle.Tensor
或float
。
- class CRZ(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
基类:
paddle_quantum.gate.base.ParamGate
关于 z 轴的受控单量子比特旋转门。
对于两量子比特的量子电路,当
qubits_idx
为[0, 1]
时,其矩阵形式为:- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- 抛出:
ValueError –
param
须为paddle.Tensor
或float
。
- class CU(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
基类:
paddle_quantum.gate.base.ParamGate
受控单量子比特旋转门。
对于两量子比特的量子电路,当
qubits_idx
为[0, 1]
时,其矩阵形式为:- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- 抛出:
ValueError –
param
须为paddle.Tensor
或float
。
- class RXX(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
基类:
paddle_quantum.gate.base.ParamGate
RXX 门。
其矩阵形式为:
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- 抛出:
ValueError –
param
须为paddle.Tensor
或float
。
- class RYY(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
基类:
paddle_quantum.gate.base.ParamGate
RYY 门。
其矩阵形式为:
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- 抛出:
ValueError –
param
须为paddle.Tensor
或float
。
- class RZZ(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
基类:
paddle_quantum.gate.base.ParamGate
RZZ 门。
其矩阵形式为:
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- 抛出:
ValueError –
param
须为paddle.Tensor
或float
。
- class MS(qubits_idx='cycle', num_qubits=None, depth=1)
基类:
paddle_quantum.gate.base.Gate
用于离子阱设备的 Mølmer-Sørensen (MS) 门。
其矩阵形式为:
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- class CSWAP(qubits_idx='cycle', num_qubits=None, depth=1)
基类:
paddle_quantum.gate.base.Gate
CSWAP (Fredkin) 门。
其矩阵形式为:
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- class Toffoli(qubits_idx='cycle', num_qubits=None, depth=1)
基类:
paddle_quantum.gate.base.Gate
Toffoli 门。
其矩阵形式为:
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- class UniversalTwoQubits(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
基类:
paddle_quantum.gate.base.ParamGate
两量子比特通用门,该通用门需要 15 个参数。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- 抛出:
ValueError –
param
须为paddle.Tensor
或float
。
- class UniversalThreeQubits(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
基类:
paddle_quantum.gate.base.ParamGate
三量子比特通用门,该通用门需要 81 个参数。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- 抛出:
ValueError –
param
须为paddle.Tensor
或float
。