cuquantum.custatevec.apply_generalized_permutation_matrix

cuquantum.custatevec.apply_generalized_permutation_matrix(intptr_t handle, intptr_t sv, int sv_data_type, uint32_t n_index_bits, permutation, intptr_t diagonals, int diagonals_data_type, int32_t adjoint, targets, uint32_t n_targets, controls, control_bit_values, uint32_t n_controls, intptr_t extra_workspace, size_t extra_workspace_size_in_bytes)[source]

应用广义置换矩阵。

参数
  • handle (intptr_t) – cuStateVec 库的句柄。

  • sv (intptr_t) – 状态向量。

  • sv_data_type (int) – 状态向量的数据类型。

  • n_index_bits (uint32_t) – 状态向量的索引位数。

  • permutation (object) –

    指向置换表的主机或设备指针。它可以是

    • 一个 int 作为数组的指针地址,或者

    • 一个 custatevecIndex_t 的 Python 序列。

  • diagonals (intptr_t) – 指向对角线元素的主机或设备指针。

  • diagonals_data_type (int) – 对角线的数据类型。

  • adjoint (int32_t) – 应用广义置换矩阵的伴随矩阵。

  • targets (object) –

    指向目标位的主机数组的指针。它可以是

    • 一个 int 作为数组的指针地址,或者

    • 一个 int32_t 的 Python 序列。

  • n_targets (uint32_t) – 目标位的数量。

  • controls (object) –

    指向控制位的主机数组的指针。它可以是

    • 一个 int 作为数组的指针地址,或者

    • 一个 int32_t 的 Python 序列。

  • control_bit_values (object) –

    指向控制位值的主机数组的指针。它可以是

    • 一个 int 作为数组的指针地址,或者

    • 一个 int32_t 的 Python 序列。

  • n_controls (uint32_t) – 控制位的数量。

  • extra_workspace (intptr_t) – 额外的工作区。

  • extra_workspace_size_in_bytes (size_t) – 额外的工作区大小。