Q# Quantum SDK
A hybrid quantum-classical SDK that uses quantum algorithms (QPE, Grover's, QFT) for solar time computations. Q# operations run via the Azure Quantum simulator; a Python host bridges the API.
Install
Quick Start
from host.quantum_solar import QuantumSolarClient
client = QuantumSolarClient("http://localhost:8090")
# Quantum phase estimation of solar angle
angle = client.quantum_estimate_solar_angle(hour_angle_deg=45.0, precision_bits=8)
print(f"Estimated angle: {angle:.4f} rad")
# Grover search for optimal timezone
tz_index = client.quantum_find_timezone(lng=-0.1278, n_qubits=5)
print(f"Optimal UTC offset index: {tz_index}")
# Hybrid analysis (quantum + classical API)
result = client.hybrid_analysis(lat=51.5074, lng=-0.1278, precision_bits=8)
print(result)
Quantum Operations
| Operation (Q#) | File | Description |
|---|---|---|
EstimateSolarPhase | SolarPhaseEstimation.qs | QPE for solar angle with configurable precision |
EncodeSolarAngle | SolarPhaseEstimation.qs | Encodes solar angle into qubit rotation |
FindOptimalTimezone | TimezoneGrover.qs | Grover's search for best UTC offset |
TimezoneOracle | TimezoneGrover.qs | Oracle marking the optimal timezone |
AnalyzeEoTFrequencies | EoTFourier.qs | QFT decomposition of Equation of Time |
Python Host Methods
| Method | Parameters | Returns |
|---|---|---|
quantum_estimate_solar_angle | hour_angle_deg, precision_bits | float (radians) |
quantum_find_timezone | lng, n_qubits | int (UTC offset index) |
hybrid_analysis | lat, lng, precision_bits | dict (combined result) |
Classical Bridge
Helper functions in host/classical_bridge.py:
from host.classical_bridge import solar_hour_angle, equation_of_time_samples
ha = solar_hour_angle(lng=-0.1278, utc_hour=12.0)
samples = equation_of_time_samples(year=2026, n_samples=365)
Error Handling
Falls back to classical simulation when the Q# runtime is unavailable:
try:
result = client.quantum_estimate_solar_angle(45.0, precision_bits=8)
except Exception as e:
print(f"Quantum error: {e}")
Dependencies: qsharp>=1.0.0, httpx>=0.24.0.