LogNormalDistribution
class LogNormalDistribution(num_target_qubits, mu=0, sigma=1, low=0, high=1)
The Univariate Log-Normal Distribution.
Log-normal distribution, truncated to lower and upper bound and discretized on a grid defined by the number of qubits.
Parameters
- num_target_qubits (
int
) – Number of qubits it acts on, has a minimum value of 1. - mu (
float
) – Expected value of considered normal distribution - sigma (
float
) – Standard deviation of considered normal distribution - low (
float
) – Lower bound, i.e., the value corresponding to |0…0> (assuming an equidistant grid) - high (
float
) – Upper bound, i.e., the value corresponding to |1…1> (assuming an equidistant grid)
Attributes
high
returns high
low
returns low
num_target_qubits
Returns the number of target qubits
num_values
returns number of values
probabilities
returns probabilities
values
returns values
Methods
build
LogNormalDistribution.build(qc, q, q_ancillas=None, params=None)
build_controlled
LogNormalDistribution.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
LogNormalDistribution.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
LogNormalDistribution.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
LogNormalDistribution.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
LogNormalDistribution.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
LogNormalDistribution.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
LogNormalDistribution.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
LogNormalDistribution.get_num_qubits()
returns number of qubits
get_num_qubits_controlled
LogNormalDistribution.get_num_qubits_controlled()
returns number of qubits controlled
pdf_to_probabilities
static LogNormalDistribution.pdf_to_probabilities(pdf, low, high, num_values)
Takes a probability density function (pdf), and returns a truncated and discretized array of probabilities corresponding to it
Parameters
- pdf (function) – probability density function
- low (float) – lower bound of equidistant grid
- high (float) – upper bound of equidistant grid
- num_values (int) – number of grid points
Returns
array of probabilities
Return type
list
required_ancillas
LogNormalDistribution.required_ancillas()
returns required ancillas
required_ancillas_controlled
LogNormalDistribution.required_ancillas_controlled()
returns required ancillas controlled