pub struct EfficientStateVector { /* private fields */ }
Expand description
A memory-efficient storage for large quantum state vectors with SciRS2 enhancements
This provides memory-efficient storage and operations for quantum states, with support for chunk-based processing, buffer pools, and advanced memory management.
Implementations§
Source§impl EfficientStateVector
impl EfficientStateVector
Sourcepub fn new(num_qubits: usize) -> QuantRS2Result<Self>
pub fn new(num_qubits: usize) -> QuantRS2Result<Self>
Create a new efficient state vector for the given number of qubits
Sourcepub fn with_config(
num_qubits: usize,
config: MemoryConfig,
) -> QuantRS2Result<Self>
pub fn with_config( num_qubits: usize, config: MemoryConfig, ) -> QuantRS2Result<Self>
Create a new efficient state vector with custom memory configuration
Sourcepub fn new_gpu_optimized(num_qubits: usize) -> QuantRS2Result<Self>
pub fn new_gpu_optimized(num_qubits: usize) -> QuantRS2Result<Self>
Create state vector optimized for GPU operations
Sourcepub fn num_qubits(&self) -> usize
pub fn num_qubits(&self) -> usize
Get the number of qubits
Sourcepub fn normalize(&mut self) -> QuantRS2Result<()>
pub fn normalize(&mut self) -> QuantRS2Result<()>
Normalize the state vector using SciRS2 optimizations
Sourcepub fn get_probability(&self, basis_state: usize) -> QuantRS2Result<f64>
pub fn get_probability(&self, basis_state: usize) -> QuantRS2Result<f64>
Calculate the probability of measuring a specific basis state
Sourcepub fn process_chunks<F>(
&mut self,
chunk_size: usize,
f: F,
) -> QuantRS2Result<()>
pub fn process_chunks<F>( &mut self, chunk_size: usize, f: F, ) -> QuantRS2Result<()>
Apply a function to chunks of the state vector with SciRS2 optimization
This is useful for operations that can be parallelized or when working with states too large to fit in cache.
Sourcepub fn optimize_memory_layout(&mut self) -> QuantRS2Result<()>
pub fn optimize_memory_layout(&mut self) -> QuantRS2Result<()>
Optimize memory layout for better cache performance
Sourcepub fn clone_optimized(&self) -> QuantRS2Result<Self>
pub fn clone_optimized(&self) -> QuantRS2Result<Self>
Clone state vector with memory optimization
Sourcepub fn get_config(&self) -> &MemoryConfig
pub fn get_config(&self) -> &MemoryConfig
Get memory configuration
Sourcepub fn update_config(&mut self, config: MemoryConfig) -> QuantRS2Result<()>
pub fn update_config(&mut self, config: MemoryConfig) -> QuantRS2Result<()>
Update memory configuration
Source§impl EfficientStateVector
impl EfficientStateVector
Sourcepub fn memory_stats(&self) -> StateMemoryStats
pub fn memory_stats(&self) -> StateMemoryStats
Get enhanced memory usage statistics
Sourcepub fn memory_efficiency_report(&self) -> String
pub fn memory_efficiency_report(&self) -> String
Get memory efficiency report
Auto Trait Implementations§
impl Freeze for EfficientStateVector
impl RefUnwindSafe for EfficientStateVector
impl Send for EfficientStateVector
impl Sync for EfficientStateVector
impl Unpin for EfficientStateVector
impl UnwindSafe for EfficientStateVector
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more