cuquantum.cutensornet.state_apply_controlled_tensor_operator¶
- cuquantum.cutensornet.state_apply_controlled_tensor_operator(intptr_t handle, intptr_t tensor_network_state, int32_t num_control_modes, state_control_modes, state_control_values, int32_t num_target_modes, state_target_modes, intptr_t tensor_data, tensor_mode_strides, int32_t immutable, int32_t adjoint, int32_t unitary) int64_t [source]¶
将受控张量算符应用于张量网络状态。
- 参数
handle (intptr_t) – cuTensorNet 库句柄。
tensor_network_state (intptr_t) – 张量网络状态。
num_control_modes (int32_t) – 张量算符使用的控制状态模式的数量。
state_control_modes (object) –
张量算符使用的控制状态模式。它可以是
一个指向数组的指针地址的
int
,或者一个
int32_t
的 Python 序列。
state_control_values (object) –
控制状态模式的控制值。控制值是 qudit 基分量的顺序整数 ID,它激活目标张量算符的操作。如果为 NULL,则所有控制值都假定设置为最大 ID(最后一个 qudit 基分量),对于量子比特,这将为 1。它可以是
一个指向数组的指针地址的
int
,或者一个
int64_t
的 Python 序列。
num_target_modes (int32_t) – 由张量算符作用的目标状态模式的数量。
state_target_modes (object) –
由张量算符作用的目标状态模式。它可以是
一个指向数组的指针地址的
int
,或者一个
int32_t
的 Python 序列。
tensor_data (intptr_t) – 受控张量算符的目标张量的元素(必须与状态张量的元素具有相同的数据类型)。
tensor_mode_strides (object) –
张量算符数据布局的步幅(请注意,张量算符的模式数量是其作用的目标状态模式数量的两倍)。传递 NULL 将假定默认的广义列优先存储布局。它可以是
一个指向数组的指针地址的
int
,或者一个
int64_t
的 Python 序列。
immutable (int32_t) – 张量算符数据在张量网络状态的生命周期内是否可能更改。任何数据更改都必须通过调用
cutensornetStateUpdateTensorOperator
来注册。adjoint (int32_t) – 张量算符是否作为伴随算符应用(ket 和 bra 模式反转,所有张量元素进行复共轭)。
unitary (int32_t) – 受控张量算符相对于其模式的第一部分和第二部分是否是酉算符。
- 返回
唯一的整数 ID(用于稍后识别张量算符)。
- 返回类型
int64_t