Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

WeightedSumOperator

class WeightedSumOperator(num_state_qubits, weights, i_state=None, i_sum=None)

GitHub

Bases: qiskit.aqua.utils.circuit_factory.CircuitFactory

Adds q^T * w to separate register for non-negative integer weights w.

Computes the weighted sum controlled by state qubits

Parameters

  • num_state_qubits (int) – number of state qubits
  • weights (Union(list, numpy.ndarray)) – weights per state qubits
  • i_state (Optional(Union(list, numpy.ndarray))) – indices of state qubits, set to range(num_state_qubits) if None
  • i_sum (Optional(int)) – indices of target qubits (that represent the resulting sum), set to range(num_state_qubits, num_state_qubits + req_num_sum_qubits) if None

Raises

AquaError – invalid input


Methods

build

WeightedSumOperator.build(qc, q, q_ancillas=None, params=None)

Adds corresponding sub-circuit to given circuit

Parameters

  • qc (QuantumCircuit) – quantum circuit
  • q (list) – list of qubits (has to be same length as self._num_qubits)
  • q_ancillas (list) – list of ancilla qubits (or None if none needed)
  • params (list) – parameters for circuit

build_controlled

WeightedSumOperator.build_controlled(qc, q, q_control, q_ancillas=None, use_basis_gates=True)

Adds corresponding controlled sub-circuit to given circuit

Parameters

  • qc (QuantumCircuit) – quantum circuit
  • q (list) – list of qubits (has to be same length as self._num_qubits)
  • q_control (Qubit) – control qubit
  • q_ancillas (list) – list of ancilla qubits (or None if none needed)
  • use_basis_gates (bool) – use basis gates for expansion of controlled circuit

build_controlled_inverse

WeightedSumOperator.build_controlled_inverse(qc, q, q_control, q_ancillas=None, use_basis_gates=True)

Adds controlled inverse of corresponding sub-circuit to given circuit

Parameters

  • qc (QuantumCircuit) – quantum circuit
  • q (list) – list of qubits (has to be same length as self._num_qubits)
  • q_control (Qubit) – control qubit
  • q_ancillas (list) – list of ancilla qubits (or None if none needed)
  • use_basis_gates (bool) – use basis gates for expansion of controlled circuit

build_controlled_inverse_power

WeightedSumOperator.build_controlled_inverse_power(qc, q, q_control, power, q_ancillas=None, use_basis_gates=True)

Adds controlled, inverse, power of corresponding circuit. May be overridden if a more efficient implementation is possible

build_controlled_power

WeightedSumOperator.build_controlled_power(qc, q, q_control, power, q_ancillas=None, use_basis_gates=True)

Adds controlled power of corresponding circuit. May be overridden if a more efficient implementation is possible

build_inverse

WeightedSumOperator.build_inverse(qc, q, q_ancillas=None)

Adds inverse of corresponding sub-circuit to given circuit

Parameters

  • qc (QuantumCircuit) – quantum circuit
  • q (list) – list of qubits (has to be same length as self._num_qubits)
  • q_ancillas (list) – list of ancilla qubits (or None if none needed)

build_inverse_power

WeightedSumOperator.build_inverse_power(qc, q, power, q_ancillas=None)

Adds inverse power of corresponding circuit. May be overridden if a more efficient implementation is possible

build_power

WeightedSumOperator.build_power(qc, q, power, q_ancillas=None)

Adds power of corresponding circuit. May be overridden if a more efficient implementation is possible

get_num_qubits

WeightedSumOperator.get_num_qubits()

returns number of qubits

get_num_qubits_controlled

WeightedSumOperator.get_num_qubits_controlled()

returns number of qubits controlled

get_required_sum_qubits

static WeightedSumOperator.get_required_sum_qubits(weights)

get required sum qubits

required_ancillas

WeightedSumOperator.required_ancillas()

required ancillas

required_ancillas_controlled

WeightedSumOperator.required_ancillas_controlled()

returns required ancillas controlled


Attributes

num_carry_qubits

returns num carry qubits

num_state_qubits

returns num state qubits

num_sum_qubits

returns num sum qubits

num_target_qubits

Returns the number of target qubits

weights

returns weights

Was this page helpful?
Report a bug or request content on GitHub.