cuquantum.cutensornet.state_finalize_mps

cuquantum.cutensornet.state_finalize_mps(intptr_t handle, intptr_t tensor_network_state, int boundary_condition, extents_out, strides_out)[源代码]

对具有给定形状的最终张量网络状态施加用户定义的 MPS(矩阵乘积态)分解。

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

  • tensor_network_state (intptr_t) – 张量网络状态。

  • boundary_condition (BoundaryCondition) – 目标 MPS 表示的边界条件。

  • extents_out (object) –

    大小为 nStateModes 的数组,指定定义目标 MPS 表示的所有张量的最大范围。extents_out[i] 预计与模式顺序一致(第 (i-1) 个和第 i 个 MPS 张量之间的共享模式,第 i 个 MPS 张量的状态模式,第 i 个和第 (i+1) 个 MPS 张量之间的共享模式)。对于开放边界条件,第一个张量的模式减少为(状态模式,与第二个站点的共享模式),而最后一个张量的模式变为(与倒数第二个站点的共享模式,状态模式)。它可以是

    • 一个 int,作为指向嵌套序列的指针地址,或

    • 一个 int 序列的 Python 序列,每个都是指向有效的 ‘int64_t’ 序列的指针地址,或

    • 一个 int64_t 的嵌套 Python 序列。

  • strides_out (object) –

    大小为 nStateModes 的数组,指定定义目标 MPS 表示的所有张量的步幅。与 extents_out 类似,strides_out 也应与每个 MPS 张量的模式顺序一致。如果为 NULL,则将假定默认的广义列优先步幅。它可以是

    • 一个 int,作为指向嵌套序列的指针地址,或

    • 一个 int 序列的 Python 序列,每个都是指向有效的 ‘int64_t’ 序列的指针地址,或

    • 一个 int64_t 的嵌套 Python 序列。