WeightedSumOperator

class WeightedSumOperator(num_state_qubits, weights, i_state=None, i_sum=None)[source]

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

Attributes

WeightedSumOperator.num_carry_qubits

returns num carry qubits

WeightedSumOperator.num_state_qubits

returns num state qubits

WeightedSumOperator.num_sum_qubits

returns num sum qubits

WeightedSumOperator.num_target_qubits

Returns the number of target qubits

WeightedSumOperator.weights

returns weights

Methods

WeightedSumOperator.build(qc, q[, …])

Adds corresponding sub-circuit to given circuit

WeightedSumOperator.build_controlled(qc, q, …)

Adds corresponding controlled sub-circuit to given circuit

WeightedSumOperator.build_controlled_inverse(qc, …)

Adds controlled inverse of corresponding sub-circuit to given circuit

WeightedSumOperator.build_controlled_inverse_power(qc, …)

Adds controlled, inverse, power of corresponding circuit.

WeightedSumOperator.build_controlled_power(qc, …)

Adds controlled power of corresponding circuit.

WeightedSumOperator.build_inverse(qc, q[, …])

Adds inverse of corresponding sub-circuit to given circuit

WeightedSumOperator.build_inverse_power(qc, …)

Adds inverse power of corresponding circuit.

WeightedSumOperator.build_power(qc, q, power)

Adds power of corresponding circuit.

WeightedSumOperator.get_num_qubits()

returns number of qubits

WeightedSumOperator.get_num_qubits_controlled()

returns number of qubits controlled

WeightedSumOperator.get_required_sum_qubits(weights)

get required sum qubits

WeightedSumOperator.required_ancillas()

required ancillas

WeightedSumOperator.required_ancillas_controlled()

returns required ancillas controlled