Signed-off-by: ale <ale@manalejandro.com>
Este commit está contenido en:
ale
2025-10-08 05:13:41 +02:00
padre 99feacd547
commit 8caca27b22
Se han modificado 3 ficheros con 62 adiciones y 8 borrados

Ver fichero

@@ -200,6 +200,16 @@ class QuantumExecutor:
def sample(self, kernel_name: str, shots: int = 1000, def sample(self, kernel_name: str, shots: int = 1000,
parameters: Optional[Dict] = None) -> Dict: parameters: Optional[Dict] = None) -> Dict:
"""Execute quantum circuit and sample measurement results""" """Execute quantum circuit and sample measurement results"""
if not CUDAQ_AVAILABLE:
# Mock sampling results
return {
"success": True,
"counts": {"00": shots//2, "11": shots//2},
"shots": shots,
"most_probable": "00",
"mode": "mock"
}
if kernel_name not in kernel_manager.kernels: if kernel_name not in kernel_manager.kernels:
return {"error": f"Kernel {kernel_name} not found"} return {"error": f"Kernel {kernel_name} not found"}
@@ -240,6 +250,15 @@ class QuantumExecutor:
def observe(self, kernel_name: str, hamiltonian_terms: List[Dict], def observe(self, kernel_name: str, hamiltonian_terms: List[Dict],
shots: int = 1000, parameters: Optional[Dict] = None) -> Dict: shots: int = 1000, parameters: Optional[Dict] = None) -> Dict:
"""Calculate expectation value of Hamiltonian""" """Calculate expectation value of Hamiltonian"""
if not CUDAQ_AVAILABLE:
# Mock observation result
return {
"success": True,
"expectation_value": 0.0,
"shots": shots,
"mode": "mock"
}
if kernel_name not in kernel_manager.kernels: if kernel_name not in kernel_manager.kernels:
return {"error": f"Kernel {kernel_name} not found"} return {"error": f"Kernel {kernel_name} not found"}
@@ -281,6 +300,18 @@ class QuantumExecutor:
def get_state(self, kernel_name: str, parameters: Optional[Dict] = None) -> Dict: def get_state(self, kernel_name: str, parameters: Optional[Dict] = None) -> Dict:
"""Get quantum state vector""" """Get quantum state vector"""
if not CUDAQ_AVAILABLE:
# Mock state vector
return {
"success": True,
"state_vector": [
{"real": 1.0, "imag": 0.0},
{"real": 0.0, "imag": 0.0}
],
"num_qubits": 1,
"mode": "mock"
}
if kernel_name not in kernel_manager.kernels: if kernel_name not in kernel_manager.kernels:
return {"error": f"Kernel {kernel_name} not found"} return {"error": f"Kernel {kernel_name} not found"}
@@ -343,6 +374,13 @@ class QuantumExecutor:
def get_available_targets_standalone() -> Dict: def get_available_targets_standalone() -> Dict:
"""Standalone function to get available targets""" """Standalone function to get available targets"""
if not CUDAQ_AVAILABLE:
return {
"success": True,
"targets": ["mock-cpu", "mock-gpu"],
"mode": "mock"
}
try: try:
targets = cudaq.get_targets() targets = cudaq.get_targets()
return {"success": True, "targets": list(targets)} return {"success": True, "targets": list(targets)}
@@ -363,6 +401,16 @@ def get_target_info_standalone() -> Dict:
def get_platform_info() -> Dict: def get_platform_info() -> Dict:
"""Get platform and hardware information""" """Get platform and hardware information"""
if not CUDAQ_AVAILABLE:
info = {
"cuda_quantum_version": "mock-0.8.0",
"available_targets": ["mock-cpu", "mock-gpu"],
"python_version": sys.version,
"platform": sys.platform,
"mode": "mock"
}
return {"success": True, "platform_info": info}
try: try:
info = { info = {
"cuda_quantum_version": "0.8.0", # Would get from cudaq.__version__ if available "cuda_quantum_version": "0.8.0", # Would get from cudaq.__version__ if available

Ver fichero

@@ -287,6 +287,8 @@ export class PythonBridge extends EventEmitter {
}); });
} }
/** /**
* Get quantum state vector * Get quantum state vector
*/ */

Ver fichero

@@ -471,10 +471,11 @@ export class CudaQuantumHttpServer {
timestamp: new Date().toISOString() timestamp: new Date().toISOString()
}); });
} catch (error) { } catch (error) {
this.logger.error('Error creating kernel:', error); const errorMessage = error instanceof Error ? error.message : String(error);
this.logger.error('Error creating kernel:', { error: errorMessage, stack: error instanceof Error ? error.stack : undefined });
res.status(500).json({ res.status(500).json({
success: false, success: false,
error: error instanceof Error ? error.message : 'Unknown error', error: errorMessage,
timestamp: new Date().toISOString() timestamp: new Date().toISOString()
}); });
} }
@@ -494,10 +495,11 @@ export class CudaQuantumHttpServer {
timestamp: new Date().toISOString() timestamp: new Date().toISOString()
}); });
} catch (error) { } catch (error) {
this.logger.error('Error listing kernels:', error); const errorMessage = error instanceof Error ? error.message : String(error);
this.logger.error('Error listing kernels:', { error: errorMessage, stack: error instanceof Error ? error.stack : undefined });
res.status(500).json({ res.status(500).json({
success: false, success: false,
error: error instanceof Error ? error.message : 'Unknown error', error: errorMessage,
timestamp: new Date().toISOString() timestamp: new Date().toISOString()
}); });
} }
@@ -668,10 +670,11 @@ export class CudaQuantumHttpServer {
timestamp: new Date().toISOString() timestamp: new Date().toISOString()
}); });
} catch (error) { } catch (error) {
this.logger.error('Error getting targets:', error); const errorMessage = error instanceof Error ? error.message : String(error);
this.logger.error('Error getting targets:', { error: errorMessage, stack: error instanceof Error ? error.stack : undefined });
res.status(500).json({ res.status(500).json({
success: false, success: false,
error: error instanceof Error ? error.message : 'Unknown error', error: errorMessage,
timestamp: new Date().toISOString() timestamp: new Date().toISOString()
}); });
} }
@@ -728,10 +731,11 @@ export class CudaQuantumHttpServer {
timestamp: new Date().toISOString() timestamp: new Date().toISOString()
}); });
} catch (error) { } catch (error) {
this.logger.error('Error getting platform info:', error); const errorMessage = error instanceof Error ? error.message : String(error);
this.logger.error('Error getting platform info:', { error: errorMessage, stack: error instanceof Error ? error.stack : undefined });
res.status(500).json({ res.status(500).json({
success: false, success: false,
error: error instanceof Error ? error.message : 'Unknown error', error: errorMessage,
timestamp: new Date().toISOString() timestamp: new Date().toISOString()
}); });
} }