multi_device_swap_index_bits#

cuquantum.bindings.custatevec.multi_device_swap_index_bits(
handles,
uint32_t n_handles,
sub_svs,
int sv_data_type,
uint32_t n_global_index_bits,
uint32_t n_local_index_bits,
swapped_bits,
uint32_t n_swapped_bits,
mask_bit_string,
mask_ordering,
uint32_t mask_len,
int device_network_type,
)[source]#

Swap index bits and reorder statevector elements on multiple devices.

Parameters:
  • handles

    A host array of the library handles. It can be

    • an int as the pointer address to the array

    • a Python sequence of int, each of which is a valid library handle

  • n_handles (uint32_t) – The number of handles.

  • sub_svs

    A host array of the sub-statevector pointers. It can be

    • an int as the pointer address to the array

    • a Python sequence of int, each of which is a valid sub-statevector pointer (on device)

  • sv_data_type (cuquantum.cudaDataType) – The data type of the statevectors.

  • n_global_index_bits (uint32_t) – The number of the global index bits.

  • n_local_index_bits (uint32_t) – The number of the local index bits.

  • swapped_bits

    A host array of pairs of swapped index bits. It can be

    • an int as the pointer address to the nested sequence

    • a nested Python sequence of swapped index bits

  • n_swapped_bits (uint32_t) – The number of pairs of swapped index bits.

  • mask_bit_string

    A host array for specifying mask values. It can be

    • an int as the pointer address to the array

    • a Python sequence of mask values

  • mask_ordering

    A host array of mask ordering. It can be

    • an int as the pointer address to the array

    • a Python sequence of index bit ordering

  • mask_len (uint32_t) – The length of mask_ordering.

  • device_network_type (DeviceNetworkType) – The device network topology.