@@ -200,6 +200,16 @@ class QuantumExecutor:
|
||||
def sample(self, kernel_name: str, shots: int = 1000,
|
||||
parameters: Optional[Dict] = None) -> Dict:
|
||||
"""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:
|
||||
return {"error": f"Kernel {kernel_name} not found"}
|
||||
|
||||
@@ -240,6 +250,15 @@ class QuantumExecutor:
|
||||
def observe(self, kernel_name: str, hamiltonian_terms: List[Dict],
|
||||
shots: int = 1000, parameters: Optional[Dict] = None) -> Dict:
|
||||
"""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:
|
||||
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:
|
||||
"""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:
|
||||
return {"error": f"Kernel {kernel_name} not found"}
|
||||
|
||||
@@ -343,6 +374,13 @@ class QuantumExecutor:
|
||||
|
||||
def get_available_targets_standalone() -> Dict:
|
||||
"""Standalone function to get available targets"""
|
||||
if not CUDAQ_AVAILABLE:
|
||||
return {
|
||||
"success": True,
|
||||
"targets": ["mock-cpu", "mock-gpu"],
|
||||
"mode": "mock"
|
||||
}
|
||||
|
||||
try:
|
||||
targets = cudaq.get_targets()
|
||||
return {"success": True, "targets": list(targets)}
|
||||
@@ -363,6 +401,16 @@ def get_target_info_standalone() -> Dict:
|
||||
|
||||
def get_platform_info() -> Dict:
|
||||
"""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:
|
||||
info = {
|
||||
"cuda_quantum_version": "0.8.0", # Would get from cudaq.__version__ if available
|
||||
|
||||
@@ -287,6 +287,8 @@ export class PythonBridge extends EventEmitter {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get quantum state vector
|
||||
*/
|
||||
|
||||
@@ -471,10 +471,11 @@ export class CudaQuantumHttpServer {
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
} 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({
|
||||
success: false,
|
||||
error: error instanceof Error ? error.message : 'Unknown error',
|
||||
error: errorMessage,
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
}
|
||||
@@ -494,10 +495,11 @@ export class CudaQuantumHttpServer {
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
} 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({
|
||||
success: false,
|
||||
error: error instanceof Error ? error.message : 'Unknown error',
|
||||
error: errorMessage,
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
}
|
||||
@@ -668,10 +670,11 @@ export class CudaQuantumHttpServer {
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
} 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({
|
||||
success: false,
|
||||
error: error instanceof Error ? error.message : 'Unknown error',
|
||||
error: errorMessage,
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
}
|
||||
@@ -728,10 +731,11 @@ export class CudaQuantumHttpServer {
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
} 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({
|
||||
success: false,
|
||||
error: error instanceof Error ? error.message : 'Unknown error',
|
||||
error: errorMessage,
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
}
|
||||
|
||||
Referencia en una nueva incidencia
Block a user