cuquantum.cutensornet.gate_split

cuquantum.cutensornet.gate_split(intptr_t handle, intptr_t tensor_a, intptr_t raw_data_a, intptr_t tensor_b, intptr_t raw_data_b, intptr_t tensor_g, intptr_t raw_data_g, intptr_t tensor_u, intptr_t u, intptr_t s, intptr_t tensor_v, intptr_t v, int algo, intptr_t svd_config, int compute_type, intptr_t svd_info, intptr_t workspace, intptr_t stream)[source]

Perform gate split operation.

Parameters
  • handle (intptr_t) – The library handle.

  • tensor_a (intptr_t) – The tensor descriptor for the input A.

  • raw_data_a (intptr_t) – The pointer address (as Python int) to the input tensor A (on device).

  • tensor_b (intptr_t) – The tensor descriptor for the input B.

  • raw_data_b (intptr_t) – The pointer address (as Python int) to the input tensor B (on device).

  • tensor_g (intptr_t) – The tensor descriptor for the input G (the gate).

  • raw_data_g (intptr_t) – The pointer address (as Python int) to the gate tensor G (on device).

  • tensor_u (intptr_t) – The tensor descriptor for the output U.

  • u (intptr_t) – The pointer address (as Python int) to the output tensor U (on device).

  • s (intptr_t) – The pointer address (as Python int) to the output array S (on device).

  • tensor_v (intptr_t) – The tensor descriptor for the output V.

  • v (intptr_t) – The pointer address (as Python int) to the output tensor V (on device).

  • algo (cuquantum.cutensornet.GateSplitAlgo) – The gate splitting algorithm.

  • svd_config (intptr_t) – The tensor SVD config handle.

  • compute_type (cuquantum.ComputeType) – The compute type of the computation.

  • svd_info (intptr_t) – The tensor SVD info handle.

  • workspace (intptr_t) – The workspace descriptor.

  • stream (intptr_t) – The CUDA stream handle (cudaStream_t as Python int).

Note

After this function call, the output tensor descriptors tensor_u and tensor_v may have their shapes and strides changed. See the documentation for further information.