Skip to content

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

pip install qsharp httpx

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.