qiskit-documentation/docs/api/qiskit/0.25/qiskit.aqua.circuits.Weight...

211 lines
13 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: WeightedSumOperator
description: API reference for qiskit.aqua.circuits.WeightedSumOperator
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit.aqua.circuits.WeightedSumOperator
---
# qiskit.aqua.circuits.WeightedSumOperator
<Class id="qiskit.aqua.circuits.WeightedSumOperator" isDedicatedPage={true} github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/aqua/circuits/weighted_sum_operator.py" signature="WeightedSumOperator(num_state_qubits, weights, i_state=None, i_sum=None)" modifiers="class">
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**](qiskit.aqua.AquaError "qiskit.aqua.AquaError") invalid input
### \_\_init\_\_
<Function id="qiskit.aqua.circuits.WeightedSumOperator.__init__" signature="__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**](qiskit.aqua.AquaError "qiskit.aqua.AquaError") invalid input
</Function>
## Methods
| | |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------- |
| [`__init__`](#qiskit.aqua.circuits.WeightedSumOperator.__init__ "qiskit.aqua.circuits.WeightedSumOperator.__init__")(num\_state\_qubits, weights\[, …]) | Computes the weighted sum controlled by state qubits |
| [`build`](#qiskit.aqua.circuits.WeightedSumOperator.build "qiskit.aqua.circuits.WeightedSumOperator.build")(qc, q\[, q\_ancillas, params]) | Adds corresponding sub-circuit to given circuit |
| [`build_controlled`](#qiskit.aqua.circuits.WeightedSumOperator.build_controlled "qiskit.aqua.circuits.WeightedSumOperator.build_controlled")(qc, q, q\_control\[, …]) | Adds corresponding controlled sub-circuit to given circuit |
| [`build_controlled_inverse`](#qiskit.aqua.circuits.WeightedSumOperator.build_controlled_inverse "qiskit.aqua.circuits.WeightedSumOperator.build_controlled_inverse")(qc, q, q\_control\[, …]) | Adds controlled inverse of corresponding sub-circuit to given circuit |
| [`build_controlled_inverse_power`](#qiskit.aqua.circuits.WeightedSumOperator.build_controlled_inverse_power "qiskit.aqua.circuits.WeightedSumOperator.build_controlled_inverse_power")(qc, q, …\[, …]) | Adds controlled, inverse, power of corresponding circuit. |
| [`build_controlled_power`](#qiskit.aqua.circuits.WeightedSumOperator.build_controlled_power "qiskit.aqua.circuits.WeightedSumOperator.build_controlled_power")(qc, q, q\_control, power) | Adds controlled power of corresponding circuit. |
| [`build_inverse`](#qiskit.aqua.circuits.WeightedSumOperator.build_inverse "qiskit.aqua.circuits.WeightedSumOperator.build_inverse")(qc, q\[, q\_ancillas]) | Adds inverse of corresponding sub-circuit to given circuit |
| [`build_inverse_power`](#qiskit.aqua.circuits.WeightedSumOperator.build_inverse_power "qiskit.aqua.circuits.WeightedSumOperator.build_inverse_power")(qc, q, power\[, q\_ancillas]) | Adds inverse power of corresponding circuit. |
| [`build_power`](#qiskit.aqua.circuits.WeightedSumOperator.build_power "qiskit.aqua.circuits.WeightedSumOperator.build_power")(qc, q, power\[, q\_ancillas]) | Adds power of corresponding circuit. |
| [`get_num_qubits`](#qiskit.aqua.circuits.WeightedSumOperator.get_num_qubits "qiskit.aqua.circuits.WeightedSumOperator.get_num_qubits")() | returns number of qubits |
| [`get_num_qubits_controlled`](#qiskit.aqua.circuits.WeightedSumOperator.get_num_qubits_controlled "qiskit.aqua.circuits.WeightedSumOperator.get_num_qubits_controlled")() | returns number of qubits controlled |
| [`get_required_sum_qubits`](#qiskit.aqua.circuits.WeightedSumOperator.get_required_sum_qubits "qiskit.aqua.circuits.WeightedSumOperator.get_required_sum_qubits")(weights) | get required sum qubits |
| [`required_ancillas`](#qiskit.aqua.circuits.WeightedSumOperator.required_ancillas "qiskit.aqua.circuits.WeightedSumOperator.required_ancillas")() | required ancillas |
| [`required_ancillas_controlled`](#qiskit.aqua.circuits.WeightedSumOperator.required_ancillas_controlled "qiskit.aqua.circuits.WeightedSumOperator.required_ancillas_controlled")() | returns required ancillas controlled |
## Attributes
| | |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| [`num_carry_qubits`](#qiskit.aqua.circuits.WeightedSumOperator.num_carry_qubits "qiskit.aqua.circuits.WeightedSumOperator.num_carry_qubits") | returns num carry qubits |
| [`num_state_qubits`](#qiskit.aqua.circuits.WeightedSumOperator.num_state_qubits "qiskit.aqua.circuits.WeightedSumOperator.num_state_qubits") | returns num state qubits |
| [`num_sum_qubits`](#qiskit.aqua.circuits.WeightedSumOperator.num_sum_qubits "qiskit.aqua.circuits.WeightedSumOperator.num_sum_qubits") | returns num sum qubits |
| [`num_target_qubits`](#qiskit.aqua.circuits.WeightedSumOperator.num_target_qubits "qiskit.aqua.circuits.WeightedSumOperator.num_target_qubits") | Returns the number of target qubits |
| [`weights`](#qiskit.aqua.circuits.WeightedSumOperator.weights "qiskit.aqua.circuits.WeightedSumOperator.weights") | returns weights |
### build
<Function id="qiskit.aqua.circuits.WeightedSumOperator.build" signature="build(qc, q, q_ancillas=None, params=None)">
Adds corresponding sub-circuit to given circuit
**Parameters**
* **qc** ([*QuantumCircuit*](qiskit.circuit.QuantumCircuit "qiskit.circuit.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
</Function>
### build\_controlled
<Function id="qiskit.aqua.circuits.WeightedSumOperator.build_controlled" signature="build_controlled(qc, q, q_control, q_ancillas=None, use_basis_gates=True)">
Adds corresponding controlled sub-circuit to given circuit
**Parameters**
* **qc** ([*QuantumCircuit*](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")) quantum circuit
* **q** (*list*) list of qubits (has to be same length as self.\_num\_qubits)
* **q\_control** ([*Qubit*](qiskit.circuit.Qubit "qiskit.circuit.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
</Function>
### build\_controlled\_inverse
<Function id="qiskit.aqua.circuits.WeightedSumOperator.build_controlled_inverse" signature="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*](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")) quantum circuit
* **q** (*list*) list of qubits (has to be same length as self.\_num\_qubits)
* **q\_control** ([*Qubit*](qiskit.circuit.Qubit "qiskit.circuit.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
</Function>
### build\_controlled\_inverse\_power
<Function id="qiskit.aqua.circuits.WeightedSumOperator.build_controlled_inverse_power" signature="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
</Function>
### build\_controlled\_power
<Function id="qiskit.aqua.circuits.WeightedSumOperator.build_controlled_power" signature="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
</Function>
### build\_inverse
<Function id="qiskit.aqua.circuits.WeightedSumOperator.build_inverse" signature="build_inverse(qc, q, q_ancillas=None)">
Adds inverse of corresponding sub-circuit to given circuit
**Parameters**
* **qc** ([*QuantumCircuit*](qiskit.circuit.QuantumCircuit "qiskit.circuit.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)
</Function>
### build\_inverse\_power
<Function id="qiskit.aqua.circuits.WeightedSumOperator.build_inverse_power" signature="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
</Function>
### build\_power
<Function id="qiskit.aqua.circuits.WeightedSumOperator.build_power" signature="build_power(qc, q, power, q_ancillas=None)">
Adds power of corresponding circuit. May be overridden if a more efficient implementation is possible
</Function>
### get\_num\_qubits
<Function id="qiskit.aqua.circuits.WeightedSumOperator.get_num_qubits" signature="get_num_qubits()">
returns number of qubits
</Function>
### get\_num\_qubits\_controlled
<Function id="qiskit.aqua.circuits.WeightedSumOperator.get_num_qubits_controlled" signature="get_num_qubits_controlled()">
returns number of qubits controlled
</Function>
### get\_required\_sum\_qubits
<Function id="qiskit.aqua.circuits.WeightedSumOperator.get_required_sum_qubits" signature="get_required_sum_qubits(weights)" modifiers="static">
get required sum qubits
</Function>
### num\_carry\_qubits
<Attribute id="qiskit.aqua.circuits.WeightedSumOperator.num_carry_qubits">
returns num carry qubits
</Attribute>
### num\_state\_qubits
<Attribute id="qiskit.aqua.circuits.WeightedSumOperator.num_state_qubits">
returns num state qubits
</Attribute>
### num\_sum\_qubits
<Attribute id="qiskit.aqua.circuits.WeightedSumOperator.num_sum_qubits">
returns num sum qubits
</Attribute>
### num\_target\_qubits
<Attribute id="qiskit.aqua.circuits.WeightedSumOperator.num_target_qubits">
Returns the number of target qubits
</Attribute>
### required\_ancillas
<Function id="qiskit.aqua.circuits.WeightedSumOperator.required_ancillas" signature="required_ancillas()">
required ancillas
</Function>
### required\_ancillas\_controlled
<Function id="qiskit.aqua.circuits.WeightedSumOperator.required_ancillas_controlled" signature="required_ancillas_controlled()">
returns required ancillas controlled
</Function>
### weights
<Attribute id="qiskit.aqua.circuits.WeightedSumOperator.weights">
returns weights
</Attribute>
</Class>