struct Complex
Complex number for quantum amplitudes.
Source: lib.joule:41
struct ComplexComplex number for quantum amplitudes.
Source: lib.joule:41
fn new(re: f64, im: f64) -> SelfSource: lib.joule:47
fn zero() -> SelfSource: lib.joule:51
fn one() -> SelfSource: lib.joule:55
fn i() -> SelfSource: lib.joule:59
fn norm_sqr(&self) -> f64Source: lib.joule:63
fn norm(&self) -> f64Source: lib.joule:67
fn conj(&self) -> ComplexSource: lib.joule:71
struct StatevectorQuantum statevector representation. For n qubits, contains 2^n complex amplitudes.
Source: lib.joule:83
fn new(num_qubits: usize) -> SelfSource: lib.joule:91
fn probability(&self, index: usize) -> f64Get probability of measuring a basis state.
Source: lib.joule:102
fn probabilities(&self) -> Vec<f64>Get all probabilities.
Source: lib.joule:107
fn is_normalized(&self, tolerance: f64) -> boolCheck if normalized.
Source: lib.joule:112
trait QuantumGateTrait for quantum gates.
Source: lib.joule:123
fn num_qubits(&self) -> usize;Source: lib.joule:124
fn name(&self) -> String;Source: lib.joule:125
struct PauliX;Source: lib.joule:129
struct PauliY;Source: lib.joule:130
struct PauliZ;Source: lib.joule:131
struct Hadamard;Source: lib.joule:132
struct SGate;Source: lib.joule:133
struct TGate;Source: lib.joule:134
struct RXSource: lib.joule:135
struct RYSource: lib.joule:136
struct RZSource: lib.joule:137
struct U3Source: lib.joule:138
struct CNOT;Source: lib.joule:141
struct CZ;Source: lib.joule:142
struct SWAP;Source: lib.joule:143
struct CPhaseSource: lib.joule:144
struct Toffoli;Source: lib.joule:147
struct Fredkin;Source: lib.joule:148
fn x() -> PauliXSource: lib.joule:151
fn y() -> PauliYSource: lib.joule:152
fn z() -> PauliZSource: lib.joule:153
fn h() -> HadamardSource: lib.joule:154
fn s() -> SGateSource: lib.joule:155
fn t() -> TGateSource: lib.joule:156
fn rx(theta: f64) -> RXSource: lib.joule:157
fn ry(theta: f64) -> RYSource: lib.joule:158
fn rz(theta: f64) -> RZSource: lib.joule:159
fn u3(theta: f64, phi: f64, lambda: f64) -> U3Source: lib.joule:160
fn cx() -> CNOTSource: lib.joule:161
fn cz() -> CZSource: lib.joule:162
fn swap() -> SWAPSource: lib.joule:163
fn cp(theta: f64) -> CPhaseSource: lib.joule:164
fn ccx() -> ToffoliSource: lib.joule:165
fn cswap() -> FredkinSource: lib.joule:166
enum OperationOperation in a quantum circuit.
Source: lib.joule:173
struct QuantumCircuitQuantum circuit with fluent builder API.
Source: lib.joule:181
fn new(num_qubits: usize, num_clbits: usize) -> SelfCreate a new quantum circuit.
Source: lib.joule:189
fn h(&mut self, qubit: usize) -> &mut SelfSource: lib.joule:198
fn x(&mut self, qubit: usize) -> &mut SelfSource: lib.joule:203
fn y(&mut self, qubit: usize) -> &mut SelfSource: lib.joule:208
fn z(&mut self, qubit: usize) -> &mut SelfSource: lib.joule:213
fn rx(&mut self, theta: f64, qubit: usize) -> &mut SelfSource: lib.joule:218
fn ry(&mut self, theta: f64, qubit: usize) -> &mut SelfSource: lib.joule:223
fn rz(&mut self, theta: f64, qubit: usize) -> &mut SelfSource: lib.joule:228
fn cx(&mut self, control: usize, target: usize) -> &mut SelfSource: lib.joule:234
fn cz(&mut self, q1: usize, q2: usize) -> &mut SelfSource: lib.joule:239
fn swap(&mut self, q1: usize, q2: usize) -> &mut SelfSource: lib.joule:244
fn ccx(&mut self, c1: usize, c2: usize, target: usize) -> &mut SelfSource: lib.joule:250
fn measure(&mut self, qubit: usize, clbit: usize) -> &mut SelfSource: lib.joule:256
fn measure_all(&mut self) -> &mut SelfSource: lib.joule:261
fn depth(&self) -> usizeGet circuit depth.
Source: lib.joule:269
fn gate_count(&self) -> usizeCount total gates.
Source: lib.joule:275
enum SimulatorBackendSimulator backend selection.
Source: lib.joule:287
struct SimulationResultSimulation result.
Source: lib.joule:297
fn probability(&self, bitstring: String) -> f64Get probability of a measurement outcome.
Source: lib.joule:305
struct SimulatorQuantum circuit simulator.
Source: lib.joule:312
fn new(backend: SimulatorBackend) -> SelfSource: lib.joule:317
fn run(&self, circuit: &QuantumCircuit, shots: usize) -> SimulationResultSource: lib.joule:323
fn statevector(&self, circuit: &QuantumCircuit) -> StatevectorSource: lib.joule:334
struct GroverGrover's search algorithm.
Source: lib.joule:344
fn new(num_qubits: usize, marked_items: Vec<usize>) -> SelfSource: lib.joule:350
fn optimal_iterations(&self) -> usizeOptimal number of Grover iterations.
Source: lib.joule:355
fn circuit(&self, iterations: usize) -> QuantumCircuitBuild the Grover circuit.
Source: lib.joule:363
fn run(&self, iterations: Option<usize>, shots: usize) -> SimulationResultSource: lib.joule:369
struct VQEVariational Quantum Eigensolver (VQE).
Source: lib.joule:377
fn new(num_qubits: usize, depth: usize) -> SelfSource: lib.joule:384
fn num_parameters(&self) -> usizeSource: lib.joule:393
fn set_parameters(&mut self, params: Vec<f64>)Source: lib.joule:397
fn ansatz(&self) -> QuantumCircuitBuild the variational ansatz circuit.
Source: lib.joule:402
struct QAOAQuantum Approximate Optimization Algorithm (QAOA).
Source: lib.joule:408
fn maxcut(num_qubits: usize, edges: Vec<(usize, usize, f64)>, p: usize) -> SelfCreate QAOA for MaxCut problem.
Source: lib.joule:416
fn num_parameters(&self) -> usizeSource: lib.joule:420
fn circuit(&self, gamma: &[f64], beta: &[f64]) -> QuantumCircuitBuild the QAOA circuit.
Source: lib.joule:425
fn expected_cut(&self, gamma: &[f64], beta: &[f64], shots: usize) -> f64Source: lib.joule:431
struct QFTQuantum Fourier Transform.
Source: lib.joule:437
fn new(num_qubits: usize) -> SelfSource: lib.joule:443
fn inverse(num_qubits: usize) -> SelfSource: lib.joule:447
fn circuit(&self) -> QuantumCircuitSource: lib.joule:451