atlas_q.quantum_hybrid_system#
QUANTUM-CLASSICAL HYBRID SYSTEM Complete implementation combining all breakthroughs
Features: - Compressed quantum state representations (O(1) to O(n) memory) - Tensor network support (MPS for moderate entanglement) - O(√r) period-finding algorithms - Hybrid quantum-classical approach - Handles small, medium, and large periods efficiently
Author: Your name Date: 2025 License: MIT
- class atlas_q.quantum_hybrid_system.CompressedQuantumState(num_qubits)[source]#
Bases:
ABCBase class for memory-efficient quantum state representations
Methods
get_amplitude(basis_state)Get amplitude for a specific basis state
get_probability(basis_state)Get measurement probability for a basis state
measure([num_shots])Simulate measurement of the quantum state
- class atlas_q.quantum_hybrid_system.PeriodicState(num_qubits, offset=0, period=1)[source]#
Bases:
CompressedQuantumStateO(1) memory representation of periodic quantum states Perfect for Shor’s algorithm and period-finding
Represents: |ψ⟩ = 1/√k Σ |offset + j*period⟩
NEW: Analytic QFT sampling for exact/cheap QFT-step emulation
Methods
get_amplitude(basis_state)Constant time amplitude lookup
get_probability(basis_state)Get measurement probability for a basis state
measure([num_shots, use_qft])Simulate measurement of the quantum state
Memory usage in bytes (constant!)
qft_amplitude(fourier_state)Analytic QFT amplitude computation
sample_qft_measurement([num_shots])Sample from QFT of periodic state analytically
- qft_amplitude(fourier_state)[source]#
Analytic QFT amplitude computation
For a periodic state |ψ⟩ = 1/√k Σⱼ |offset + j*r⟩, QFT gives peaks at multiples of N/r where N = 2^n
This makes QFT-step emulation exact and O(1)!
- sample_qft_measurement(num_shots=1)[source]#
Sample from QFT of periodic state analytically
This is EXACT and much faster than computing full QFT! Returns measurements that would result from measuring after QFT.
- class atlas_q.quantum_hybrid_system.ProductState(num_qubits)[source]#
Bases:
CompressedQuantumStateO(n) memory representation for separable (non-entangled) states
Represents: |ψ⟩ = |ψ₀⟩ ⊗ |ψ₁⟩ ⊗ … ⊗ |ψₙ₋₁⟩
Methods
apply_hadamard(qubit)Apply Hadamard gate in O(1) time
apply_x(qubit)Apply X (NOT) gate in O(1) time
get_amplitude(basis_state)O(n) amplitude calculation
get_probability(basis_state)Get measurement probability for a basis state
measure([num_shots])Simulate measurement of the quantum state
Memory usage in bytes
- class atlas_q.quantum_hybrid_system.MatrixProductState(num_qubits, bond_dim=8)[source]#
Bases:
CompressedQuantumStateTensor network representation for moderate entanglement Memory: O(n × χ²) where χ is bond dimension
Can simulate 50-100 qubits with controlled entanglement!
NEW: MPS canonicalization and sweep sampling for accurate measurements
Methods
Bring MPS into left-canonical form using QR decomposition
Bring MPS into right-canonical form using QR decomposition
get_amplitude(basis_state)Contract MPS to get amplitude - O(n × χ²)
get_probability(basis_state)Get measurement probability for a basis state
measure([num_shots])Simulate measurement with accurate MPS sampling
Memory usage in bytes
sweep_sample([num_shots])Accurate MPS sampling using conditional probabilities sweep
- canonicalize_left_to_right()[source]#
Bring MPS into left-canonical form using QR decomposition
Each tensor satisfies: Σₛ Aˢ†Aˢ = I (left-orthogonal) This enables efficient sampling and norm computation!
- canonicalize_right_to_left()[source]#
Bring MPS into right-canonical form using QR decomposition
Each tensor satisfies: Σₛ AˢAˢ† = I (right-orthogonal)
- sweep_sample(num_shots=1)[source]#
Accurate MPS sampling using conditional probabilities sweep
This is the CORRECT way to sample from MPS! Complexity: O(num_shots × n × χ²)
- class atlas_q.quantum_hybrid_system.PeriodResult(period, method, time_seconds, attempts=1)[source]#
Bases:
objectResult from period finding
- class atlas_q.quantum_hybrid_system.PeriodFinder[source]#
Bases:
objectCollection of O(√r) period-finding algorithms
Methods
baby_step_giant_step(a, N[, m])Baby-step giant-step algorithm Complexity: O(√r) time and space
collision_detection(a, N[, num_samples])Birthday paradox collision detection Complexity: O(√r) expected
parallel_candidate_search(a, N[, max_candidates])Generate smart candidates and check them In real implementation, this would be GPU-parallelized
pollards_rho(a, N[, max_iter])Floyd's cycle detection algorithm Complexity: O(√r) average case
smart_factorization(a, N)Check if period has small factors Complexity: O(k) where k is number of candidates
- static smart_factorization(a, N)[source]#
Check if period has small factors Complexity: O(k) where k is number of candidates
- static pollards_rho(a, N, max_iter=100000)[source]#
Floyd’s cycle detection algorithm Complexity: O(√r) average case
Uses tortoise and hare to detect cycles in sequence: 1, a mod N, a² mod N, a³ mod N, …
- static collision_detection(a, N, num_samples=None)[source]#
Birthday paradox collision detection Complexity: O(√r) expected
Sample random points, find collision f(x₁) = f(x₂) Then period divides |x₁ - x₂|
- class atlas_q.quantum_hybrid_system.QuantumClassicalHybrid(verbose=True, use_gpu=True)[source]#
Bases:
objectMain system combining: - Compressed quantum state representations - Classical O(√r) period-finding algorithms - Hybrid approach for optimal performance - Quantum circuit emulation (tensor contractions) - GPU acceleration support (optional)
Methods
create_circuit(num_qubits)Create a new quantum circuit
create_mps_state(num_qubits[, bond_dim])Create a tensor network (MPS) quantum state
create_periodic_state(num_qubits, period)Create a compressed periodic quantum state
create_product_state(num_qubits)Create a compressed product (separable) quantum state
execute_circuit(circuit[, backend])Execute a quantum circuit using tensor contractions
factor_number(N[, max_attempts])Factor N using period-finding (Shor's algorithm approach)
find_period(a, N[, method])Find period of a^x mod N
find_period_gpu(a, N)GPU-accelerated period finding Falls back to CPU if GPU unavailable
- find_period(a, N, method='auto')[source]#
Find period of a^x mod N
- Args:
a: Base N: Modulus method: “auto” (tries all), or specific method name
- Returns:
PeriodResult with period, method used, and timing
- factor_number(N, max_attempts=20)[source]#
Factor N using period-finding (Shor’s algorithm approach)
- Returns:
Tuple of (factor1, factor2) if successful, None otherwise
- class atlas_q.quantum_hybrid_system.QuantumCircuit(num_qubits)[source]#
Bases:
objectQuantum circuit with tensor network contraction Supports limited depth circuits efficiently
Methods
add_gate(gate_name, qubit[, params])Add a gate to the circuit
cnot(control, target)Add CNOT gate
cz(control, target)Add CZ gate
depth()Calculate circuit depth
execute_on_product_state([initial_state])Execute circuit on a product state Only works if circuit maintains separability
Count gates by type
get_gate_matrix(gate_name[, params])Get the matrix representation of a gate
h(qubit)Add Hadamard gate
rx(qubit, theta)Add rotation around X axis
ry(qubit, theta)Add rotation around Y axis
rz(qubit, theta)Add rotation around Z axis
x(qubit)Add X (NOT) gate
y(qubit)Add Y gate
z(qubit)Add Z gate
- class atlas_q.quantum_hybrid_system.GPUAccelerator[source]#
Bases:
objectGPU acceleration for period-finding and tensor operations
Note: Requires CuPy for actual GPU execution (pip install cupy-cuda12x) This provides the interface and CPU fallback
NEW: GPU modular exponentiation for massive O(√r) speedup
Methods
accelerated_mps_contraction(mps, basis_state)GPU-accelerated MPS tensor contraction
batched_period_check(a, N, candidates)GPU-accelerated batched period checking Uses custom CUDA kernel for maximum performance
gpu_modular_exponentiation(a, exponents, N)GPU-accelerated batch modular exponentiation Computes a^r mod N for many r values in parallel
parallel_period_check(a, N, candidates)Check multiple period candidates in parallel on GPU Falls back to CPU if GPU unavailable or problem is small
to_cpu(array)Move array to CPU
to_gpu(array)Move array to GPU
- gpu_modular_exponentiation(a, exponents, N)[source]#
GPU-accelerated batch modular exponentiation Computes a^r mod N for many r values in parallel
This is MUCH faster than sequential pow() calls!
NEW: Uses Triton kernel (3-17× speedup!) if available, falls back to CuPy
- batched_period_check(a, N, candidates)[source]#
GPU-accelerated batched period checking Uses custom CUDA kernel for maximum performance
- atlas_q.quantum_hybrid_system.demo_compressed_states()[source]#
Demonstrate compressed state representations
- atlas_q.quantum_hybrid_system.demo_factorization()[source]#
Demonstrate factorization using hybrid system
- atlas_q.quantum_hybrid_system.demo_quantum_circuits()[source]#
Demonstrate quantum circuit emulation
- atlas_q.quantum_hybrid_system.run_comprehensive_demo()[source]#
Run complete demonstration of all features
Overview#
The quantum_hybrid_system module implements compressed quantum state representations and period-finding algorithms for Shor’s factorization algorithm. Key features include:
Memory-efficient quantum state representations (O(1) to O(n) memory)
Analytic QFT for periodic states
Hybrid classical-quantum period-finding
Fast modular exponentiation on GPU
Tensor network support for moderate entanglement
This module enables factorization of large numbers by leveraging the structure of periodic quantum states without requiring exponential memory.
Classes#
Base class for memory-efficient quantum state representations |
|
O(1) memory representation of periodic quantum states Perfect for Shor's algorithm and period-finding |
|
O(n) memory representation for separable (non-entangled) states |
|
Tensor network representation for moderate entanglement Memory: O(n × χ²) where χ is bond dimension |
|
Result from period finding |
|
Collection of O(√r) period-finding algorithms |
|
Main system combining: - Compressed quantum state representations - Classical O(√r) period-finding algorithms - Hybrid approach for optimal performance - Quantum circuit emulation (tensor contractions) - GPU acceleration support (optional) |
|
Quantum circuit with tensor network contraction Supports limited depth circuits efficiently |
|
GPU acceleration for period-finding and tensor operations |
Quantum State Representations#
CompressedQuantumState#
- class atlas_q.quantum_hybrid_system.CompressedQuantumState(num_qubits)[source]#
Bases:
ABCBase class for memory-efficient quantum state representations
Methods
get_amplitude(basis_state)Get amplitude for a specific basis state
get_probability(basis_state)Get measurement probability for a basis state
measure([num_shots])Simulate measurement of the quantum state
Abstract base class for memory-efficient quantum state representations. Provides interface for:
Amplitude queries for specific basis states
Probability computations
Measurement sampling (with automatic MPS fallback for large systems)
PeriodicState#
- class atlas_q.quantum_hybrid_system.PeriodicState(num_qubits, offset=0, period=1)[source]#
Bases:
CompressedQuantumStateO(1) memory representation of periodic quantum states Perfect for Shor’s algorithm and period-finding
Represents: |ψ⟩ = 1/√k Σ |offset + j*period⟩
NEW: Analytic QFT sampling for exact/cheap QFT-step emulation
Methods
get_amplitude(basis_state)Constant time amplitude lookup
get_probability(basis_state)Get measurement probability for a basis state
measure([num_shots, use_qft])Simulate measurement of the quantum state
Memory usage in bytes (constant!)
qft_amplitude(fourier_state)Analytic QFT amplitude computation
sample_qft_measurement([num_shots])Sample from QFT of periodic state analytically
O(1) memory representation of periodic quantum states. Perfect for Shor’s algorithm.
Represents states of the form:
\[|\psi\rangle = \frac{1}{\sqrt{k}} \sum_{j=0}^{k-1} |\text{offset} + j \cdot \text{period}\rangle\]Features analytic QFT sampling for exact period extraction without explicit QFT computation.
- qft_amplitude(fourier_state)[source]#
Analytic QFT amplitude computation
For a periodic state |ψ⟩ = 1/√k Σⱼ |offset + j*r⟩, QFT gives peaks at multiples of N/r where N = 2^n
This makes QFT-step emulation exact and O(1)!
- sample_qft_measurement(num_shots=1)[source]#
Sample from QFT of periodic state analytically
This is EXACT and much faster than computing full QFT! Returns measurements that would result from measuring after QFT.
ProductState#
- class atlas_q.quantum_hybrid_system.ProductState(num_qubits)[source]#
Bases:
CompressedQuantumStateO(n) memory representation for separable (non-entangled) states
Represents: |ψ⟩ = |ψ₀⟩ ⊗ |ψ₁⟩ ⊗ … ⊗ |ψₙ₋₁⟩
Methods
apply_hadamard(qubit)Apply Hadamard gate in O(1) time
apply_x(qubit)Apply X (NOT) gate in O(1) time
get_amplitude(basis_state)O(n) amplitude calculation
get_probability(basis_state)Get measurement probability for a basis state
measure([num_shots])Simulate measurement of the quantum state
Memory usage in bytes
O(n) memory representation for product (unentangled) states:
\[|\psi\rangle = |\psi_1\rangle \otimes |\psi_2\rangle \otimes \cdots \otimes |\psi_n\rangle\]Efficient for states with no entanglement.
MatrixProductState#
- class atlas_q.quantum_hybrid_system.MatrixProductState(num_qubits, bond_dim=8)[source]#
Bases:
CompressedQuantumStateTensor network representation for moderate entanglement Memory: O(n × χ²) where χ is bond dimension
Can simulate 50-100 qubits with controlled entanglement!
NEW: MPS canonicalization and sweep sampling for accurate measurements
Methods
Bring MPS into left-canonical form using QR decomposition
Bring MPS into right-canonical form using QR decomposition
get_amplitude(basis_state)Contract MPS to get amplitude - O(n × χ²)
get_probability(basis_state)Get measurement probability for a basis state
measure([num_shots])Simulate measurement with accurate MPS sampling
Memory usage in bytes
sweep_sample([num_shots])Accurate MPS sampling using conditional probabilities sweep
O(n·χ²) memory representation for moderately entangled states using tensor networks. Provides:
Sweep-based sampling
Canonical form transformations
SVD-based compression
- canonicalize_left_to_right()[source]#
Bring MPS into left-canonical form using QR decomposition
Each tensor satisfies: Σₛ Aˢ†Aˢ = I (left-orthogonal) This enables efficient sampling and norm computation!
- canonicalize_right_to_left()[source]#
Bring MPS into right-canonical form using QR decomposition
Each tensor satisfies: Σₛ AˢAˢ† = I (right-orthogonal)
- sweep_sample(num_shots=1)[source]#
Accurate MPS sampling using conditional probabilities sweep
This is the CORRECT way to sample from MPS! Complexity: O(num_shots × n × χ²)
Period-Finding#
PeriodResult#
PeriodFinder#
- class atlas_q.quantum_hybrid_system.PeriodFinder[source]#
Bases:
objectCollection of O(√r) period-finding algorithms
Methods
baby_step_giant_step(a, N[, m])Baby-step giant-step algorithm Complexity: O(√r) time and space
collision_detection(a, N[, num_samples])Birthday paradox collision detection Complexity: O(√r) expected
parallel_candidate_search(a, N[, max_candidates])Generate smart candidates and check them In real implementation, this would be GPU-parallelized
pollards_rho(a, N[, max_iter])Floyd's cycle detection algorithm Complexity: O(√r) average case
smart_factorization(a, N)Check if period has small factors Complexity: O(k) where k is number of candidates
Core period-finding algorithm using O(√r) complexity hybrid approach:
Classical preprocessing for small periods
Quantum period detection for medium periods
Continued fractions for period extraction
- static smart_factorization(a, N)[source]#
Check if period has small factors Complexity: O(k) where k is number of candidates
- static pollards_rho(a, N, max_iter=100000)[source]#
Floyd’s cycle detection algorithm Complexity: O(√r) average case
Uses tortoise and hare to detect cycles in sequence: 1, a mod N, a² mod N, a³ mod N, …
- static collision_detection(a, N, num_samples=None)[source]#
Birthday paradox collision detection Complexity: O(√r) expected
Sample random points, find collision f(x₁) = f(x₂) Then period divides |x₁ - x₂|
QuantumClassicalHybrid#
- class atlas_q.quantum_hybrid_system.QuantumClassicalHybrid(verbose=True, use_gpu=True)[source]#
Bases:
objectMain system combining: - Compressed quantum state representations - Classical O(√r) period-finding algorithms - Hybrid approach for optimal performance - Quantum circuit emulation (tensor contractions) - GPU acceleration support (optional)
Methods
create_circuit(num_qubits)Create a new quantum circuit
create_mps_state(num_qubits[, bond_dim])Create a tensor network (MPS) quantum state
create_periodic_state(num_qubits, period)Create a compressed periodic quantum state
create_product_state(num_qubits)Create a compressed product (separable) quantum state
execute_circuit(circuit[, backend])Execute a quantum circuit using tensor contractions
factor_number(N[, max_attempts])Factor N using period-finding (Shor's algorithm approach)
find_period(a, N[, method])Find period of a^x mod N
find_period_gpu(a, N)GPU-accelerated period finding Falls back to CPU if GPU unavailable
Complete factorization system combining:
Period-finding via quantum simulation
Classical GCD for factor extraction
Trial division for small factors
Automatic fallback strategies
Primary interface for factoring integers.
- find_period(a, N, method='auto')[source]#
Find period of a^x mod N
- Args:
a: Base N: Modulus method: “auto” (tries all), or specific method name
- Returns:
PeriodResult with period, method used, and timing
- factor_number(N, max_attempts=20)[source]#
Factor N using period-finding (Shor’s algorithm approach)
- Returns:
Tuple of (factor1, factor2) if successful, None otherwise
Supporting Classes#
QuantumCircuit#
- class atlas_q.quantum_hybrid_system.QuantumCircuit(num_qubits)[source]#
Bases:
objectQuantum circuit with tensor network contraction Supports limited depth circuits efficiently
Methods
add_gate(gate_name, qubit[, params])Add a gate to the circuit
cnot(control, target)Add CNOT gate
cz(control, target)Add CZ gate
depth()Calculate circuit depth
execute_on_product_state([initial_state])Execute circuit on a product state Only works if circuit maintains separability
Count gates by type
get_gate_matrix(gate_name[, params])Get the matrix representation of a gate
h(qubit)Add Hadamard gate
rx(qubit, theta)Add rotation around X axis
ry(qubit, theta)Add rotation around Y axis
rz(qubit, theta)Add rotation around Z axis
x(qubit)Add X (NOT) gate
y(qubit)Add Y gate
z(qubit)Add Z gate
Quantum circuit builder for period-finding circuits. Supports:
Gate application (H, CNOT, phase gates)
Modular exponentiation circuits
QFT implementation
GPUAccelerator#
- class atlas_q.quantum_hybrid_system.GPUAccelerator[source]#
Bases:
objectGPU acceleration for period-finding and tensor operations
Note: Requires CuPy for actual GPU execution (pip install cupy-cuda12x) This provides the interface and CPU fallback
NEW: GPU modular exponentiation for massive O(√r) speedup
Methods
accelerated_mps_contraction(mps, basis_state)GPU-accelerated MPS tensor contraction
batched_period_check(a, N, candidates)GPU-accelerated batched period checking Uses custom CUDA kernel for maximum performance
gpu_modular_exponentiation(a, exponents, N)GPU-accelerated batch modular exponentiation Computes a^r mod N for many r values in parallel
parallel_period_check(a, N, candidates)Check multiple period candidates in parallel on GPU Falls back to CPU if GPU unavailable or problem is small
to_cpu(array)Move array to CPU
to_gpu(array)Move array to GPU
GPU-accelerated modular exponentiation and tensor operations. Provides 100-1000× speedup over CPU for period-finding.
- gpu_modular_exponentiation(a, exponents, N)[source]#
GPU-accelerated batch modular exponentiation Computes a^r mod N for many r values in parallel
This is MUCH faster than sequential pow() calls!
NEW: Uses Triton kernel (3-17× speedup!) if available, falls back to CuPy
- batched_period_check(a, N, candidates)[source]#
GPU-accelerated batched period checking Uses custom CUDA kernel for maximum performance
Examples#
Basic factorization:
from atlas_q import get_quantum_sim
# Get factorization system
QCH, _, _, _ = get_quantum_sim()
# Factor a number
sim = QCH()
factors = sim.factor_number(221)
print(f"221 = {factors[0]} × {factors[1]}") # Output: 221 = 13 × 17
Using PeriodicState:
from atlas_q.quantum_hybrid_system import PeriodicState
# Create periodic state with period=7, offset=3, in 20-qubit space
state = PeriodicState(
num_qubits=20,
period=7,
offset=3
)
# Query amplitude (O(1) operation, no memory usage)
amp = state.get_amplitude(10) # |10⟩
prob = state.get_probability(10)
print(f"Amplitude: {amp}")
print(f"Probability: {prob}")
# Sample measurements (uses analytic QFT)
samples = state.measure(num_shots=1000)
print(f"Sample: {samples[0]} (binary: {bin(samples[0])})")
Direct period-finding:
from atlas_q.quantum_hybrid_system import PeriodFinder
finder = PeriodFinder()
# Find period of a^x mod N
result = finder.find_period(a=7, N=15, num_qubits=8)
if result.success:
print(f"Period: {result.period}")
print(f"Confidence: {result.confidence:.2%}")
print(f"Time: {result.time_sec:.3f}s")
Using MPS for entangled states:
from atlas_q.quantum_hybrid_system import MatrixProductState
import numpy as np
# Create MPS with bond dimension 16
mps = MatrixProductState(num_qubits=30, bond_dim=16)
# Apply gates to create entanglement
# (This is a simplified example; in practice use AdaptiveMPS)
# Sample from the state
samples = mps.measure(num_shots=100)
print(f"Sampled states: {samples[:10]}")
GPU-accelerated modular exponentiation:
from atlas_q.quantum_hybrid_system import GPUAccelerator
gpu = GPUAccelerator()
# Compute a^x mod N on GPU
a, N = 7, 221
x_values = list(range(100))
results = gpu.batch_modular_exp(a, x_values, N)
print(f"7^50 mod 221 = {results[50]}")
Advanced: Custom factorization with parameters:
from atlas_q import get_quantum_sim
QCH, _, _, _ = get_quantum_sim()
sim = QCH()
# Factor with custom parameters
N = 10403 # Product of two primes
# Attempt factorization
try:
factors = sim.factor_number(N)
if factors:
p, q = factors
print(f"{N} = {p} × {q}")
assert p * q == N
except ValueError as e:
print(f"Factorization failed: {e}")
Performance Characteristics#
Memory Usage#
PeriodicState: O(1) - constant memory regardless of qubit count
ProductState: O(n) - linear in qubit count
MatrixProductState: O(n·χ²) - depends on bond dimension χ
Computational Complexity#
Period-finding: O(√r) average case with quantum acceleration
Classical preprocessing: O(log N) for trial division
Modular exponentiation: O(log N) per operation
GPU acceleration: 100-1000× speedup over CPU
Applications#
Shor’s Algorithm#
The primary application is Shor’s factorization algorithm:
Choose random a < N
Find period r of f(x) = a^x mod N using QuantumClassicalHybrid
If r is even and a^(r/2) ≠ -1 mod N, factors are gcd(a^(r/2) ± 1, N)
Repeat if unsuccessful
Period-Finding in Cryptography#
Beyond factorization, period-finding has applications in:
Discrete logarithm problem
Order-finding in groups
Hidden subgroup problem
Best Practices#
Parameter Selection
register_size: Use 2n+1 bits for n-bit numbers (ensures sufficient precision)
chi_max: 32-64 sufficient for period-finding up to 10-12 qubits
samples: 1000-10000 for reliable period detection
Optimization
Use GPU for circuits with > 15 qubits
Enable statistics tracking to monitor entanglement
Batch multiple period-finding runs for different bases
Cache QFT circuit if running multiple times
Troubleshooting
Wrong period detected: Increase register_size or samples
Memory errors: Reduce chi_max or circuit size
Slow performance: Enable GPU, use Triton kernels
Use Cases#
Educational
Teaching Shor’s algorithm concepts
Demonstrating quantum speedup
Period-finding problem examples
Research
Benchmarking quantum simulators
Studying entanglement in hybrid algorithms
Developing improved factorization methods
Not Suitable For
Actual cryptographic attacks (classical algorithms faster for practical key sizes)
Production cryptography (use battle-tested libraries)
See Also#
atlas_q.adaptive_mps - Tensor network simulations for entangled states
atlas_q.grover - Grover’s search algorithm implementation
atlas_q.vqe_qaoa - Other quantum algorithms
Beginner’s Tutorial - Tutorial including period-finding examples
Algorithms - Algorithm details
References#
Shor, “Algorithms for quantum computation: Discrete logarithms and factoring,” FOCS 1994 (1994).
Nielsen & I. L. Chuang, Quantum Computation and Quantum Information, Cambridge University Press (2010).
Mosca, “The quantum order finding algorithm,” arXiv:quant-ph/0110167 (2001).