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.

qiskit.aqua.circuits.WeightedSumOperator

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

GitHub

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

__init__

__init__(num_state_qubits, weights, i_state=None, i_sum=None)

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

__init__(num_state_qubits, weights[, …])Computes the weighted sum controlled by state qubits
build(qc, q[, q_ancillas, params])Adds corresponding sub-circuit to given circuit
build_controlled(qc, q, q_control[, …])Adds corresponding controlled sub-circuit to given circuit
build_controlled_inverse(qc, q, q_control[, …])Adds controlled inverse of corresponding sub-circuit to given circuit
build_controlled_inverse_power(qc, q, …[, …])Adds controlled, inverse, power of corresponding circuit.
build_controlled_power(qc, q, q_control, power)Adds controlled power of corresponding circuit.
build_inverse(qc, q[, q_ancillas])Adds inverse of corresponding sub-circuit to given circuit
build_inverse_power(qc, q, power[, q_ancillas])Adds inverse power of corresponding circuit.
build_power(qc, q, power[, q_ancillas])Adds power of corresponding circuit.
get_num_qubits()returns number of qubits
get_num_qubits_controlled()returns number of qubits controlled
get_required_sum_qubits(weights)get required sum qubits
required_ancillas()required ancillas
required_ancillas_controlled()returns required ancillas controlled

Attributes

num_carry_qubitsreturns num carry qubits
num_state_qubitsreturns num state qubits
num_sum_qubitsreturns num sum qubits
num_target_qubitsReturns the number of target qubits
weightsreturns weights

build

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

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

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

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

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

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

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

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

get_num_qubits()

returns number of qubits

get_num_qubits_controlled

get_num_qubits_controlled()

returns number of qubits controlled

get_required_sum_qubits

static get_required_sum_qubits(weights)

get required sum qubits

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

required_ancillas

required_ancillas()

required ancillas

required_ancillas_controlled

required_ancillas_controlled()

returns required ancillas controlled

weights

returns weights

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