pub mod gate_cache;
pub mod memory_optimization;
pub mod profiling_integration;
pub use gate_cache::{
global_gate_cache, CachedGateMatrix, GateKey, QuantumGateCache, QuantumGateCacheStats,
};
pub use memory_optimization::{
optimized_state_vector_allocation, QuantumBufferPool, StateVectorManager,
};
pub use profiling_integration::{
enable_quantum_profiling, QuantumOperationProfile, QuantumProfiler,
};
pub fn initialize_optimizations() -> crate::error::QuantRS2Result<()> {
global_gate_cache().prewarm_common_gates()?;
memory_optimization::initialize_buffer_pools();
profiling_integration::enable_quantum_profiling();
Ok(())
}
pub fn get_optimization_stats() -> OptimizationStats {
OptimizationStats {
gate_cache_stats: global_gate_cache().get_performance_stats(),
memory_stats: memory_optimization::get_memory_usage_stats(),
profiling_active: profiling_integration::is_profiling_active(),
}
}
#[derive(Debug, Clone)]
pub struct OptimizationStats {
pub gate_cache_stats: QuantumGateCacheStats,
pub memory_stats: memory_optimization::MemoryUsageStats,
pub profiling_active: bool,
}