Lifted shape function to class scope
This commit is contained in:
@@ -17,12 +17,6 @@ class QiboCircuitToEinsum:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, circuit, dtype="complex128"):
|
def __init__(self, circuit, dtype="complex128"):
|
||||||
def op_shape_from_qubits(nqubits):
|
|
||||||
"""This function is to modify the shape of the tensor to the required format by cuQuantum
|
|
||||||
(qubit_states,) * input_output * qubits_involved
|
|
||||||
"""
|
|
||||||
return (2, 2) * nqubits
|
|
||||||
|
|
||||||
self.backend = cp
|
self.backend = cp
|
||||||
self.dtype = getattr(self.backend, dtype)
|
self.dtype = getattr(self.backend, dtype)
|
||||||
|
|
||||||
@@ -35,7 +29,7 @@ class QiboCircuitToEinsum:
|
|||||||
|
|
||||||
# self.gate_tensors is to extract into a list the gate matrix together with the qubit id that it is acting on
|
# self.gate_tensors is to extract into a list the gate matrix together with the qubit id that it is acting on
|
||||||
# https://github.com/NVIDIA/cuQuantum/blob/6b6339358f859ea930907b79854b90b2db71ab92/python/cuquantum/cutensornet/_internal/circuit_parser_utils_cirq.py#L32
|
# https://github.com/NVIDIA/cuQuantum/blob/6b6339358f859ea930907b79854b90b2db71ab92/python/cuquantum/cutensornet/_internal/circuit_parser_utils_cirq.py#L32
|
||||||
required_shape = op_shape_from_qubits(len(gate_qubits))
|
required_shape = self.op_shape_from_qubits(len(gate_qubits))
|
||||||
self.gate_tensors.append(
|
self.gate_tensors.append(
|
||||||
(
|
(
|
||||||
cp.asarray(gate.matrix).reshape(required_shape),
|
cp.asarray(gate.matrix).reshape(required_shape),
|
||||||
@@ -108,3 +102,9 @@ class QiboCircuitToEinsum:
|
|||||||
next_frontier += 1
|
next_frontier += 1
|
||||||
mode_labels.append(output_mode_labels + input_mode_labels)
|
mode_labels.append(output_mode_labels + input_mode_labels)
|
||||||
return mode_labels, operands
|
return mode_labels, operands
|
||||||
|
|
||||||
|
def op_shape_from_qubits(self, nqubits):
|
||||||
|
"""This function is to modify the shape of the tensor to the required format by cuQuantum
|
||||||
|
(qubit_states,) * input_output * qubits_involved
|
||||||
|
"""
|
||||||
|
return (2, 2) * nqubits
|
||||||
|
|||||||
Reference in New Issue
Block a user