quantrs2_core/optimizations/
mod.rs1pub mod gate_cache;
14pub mod memory_optimization;
15pub mod profiling_integration;
16
17pub use gate_cache::{
18 global_gate_cache, CachedGateMatrix, GateKey, QuantumGateCache, QuantumGateCacheStats,
19};
20pub use memory_optimization::{
21 optimized_state_vector_allocation, QuantumBufferPool, StateVectorManager,
22};
23pub use profiling_integration::{
24 enable_quantum_profiling, QuantumOperationProfile, QuantumProfiler,
25};
26
27pub fn initialize_optimizations() -> crate::error::QuantRS2Result<()> {
29 global_gate_cache().prewarm_common_gates()?;
31
32 memory_optimization::initialize_buffer_pools();
34
35 profiling_integration::enable_quantum_profiling();
37
38 Ok(())
39}
40
41pub fn get_optimization_stats() -> OptimizationStats {
43 OptimizationStats {
44 gate_cache_stats: global_gate_cache().get_performance_stats(),
45 memory_stats: memory_optimization::get_memory_usage_stats(),
46 profiling_active: profiling_integration::is_profiling_active(),
47 }
48}
49
50#[derive(Debug, Clone)]
52pub struct OptimizationStats {
53 pub gate_cache_stats: QuantumGateCacheStats,
54 pub memory_stats: memory_optimization::MemoryUsageStats,
55 pub profiling_active: bool,
56}