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