pub struct AdvancedSIMDTextProcessor;Expand description
Advanced SIMD text processor
Implementations§
Source§impl AdvancedSIMDTextProcessor
impl AdvancedSIMDTextProcessor
Sourcepub fn process_text(text: &str) -> TextProcessingResult
pub fn process_text(text: &str) -> TextProcessingResult
Process text with advanced SIMD operations
Sourcepub fn batch_process(texts: &[&str]) -> Vec<TextProcessingResult>
pub fn batch_process(texts: &[&str]) -> Vec<TextProcessingResult>
Batch process multiple texts
Sourcepub fn advanced_batch_process(texts: &[&str]) -> Vec<TextProcessingResult>
pub fn advanced_batch_process(texts: &[&str]) -> Vec<TextProcessingResult>
Advanced batch processing (alias for backward compatibility)
Examples found in repository?
examples/complete_integration.rs (line 203)
181 fn demo_performance_monitored_simd(&self) -> Result<()> {
182 println!("⚡ Demo 2: Performance-Monitored SIMD Operations");
183 println!("===============================================");
184
185 let testtexts = [
186 "The quick brown fox jumps over the lazy dog".to_string(),
187 "Pack my box with five dozen liquor jugs".to_string(),
188 "How vexingly quick daft zebras jump!".to_string(),
189 "Bright vixens jump; dozy fowl quack".to_string(),
190 ];
191
192 println!("Running SIMD-accelerated operations with performance monitoring...");
193
194 // Start monitoring
195 let operation_monitor = self
196 .performance_monitor
197 .start_operation("simd_operations")?;
198
199 let start_time = Instant::now();
200
201 // Optimized text processing
202 let testtext_refs: Vec<&str> = testtexts.iter().map(|s| s.as_str()).collect();
203 let processed_results = AdvancedSIMDTextProcessor::advanced_batch_process(&testtext_refs);
204
205 // SIMD string operations
206 let char_counts: Vec<usize> = testtexts
207 .iter()
208 .map(|text| SimdStringOps::count_chars(text, 'o'))
209 .collect();
210
211 // Optimized similarity matrix
212 let similarity_matrix =
213 AdvancedSIMDTextProcessor::advanced_similarity_matrix(&testtext_refs);
214
215 let processing_time = start_time.elapsed();
216
217 // Complete monitoring
218 operation_monitor.complete(testtexts.len())?;
219
220 println!("\n📊 SIMD Operation Results:");
221 println!(" • Processing Time: {processing_time:?}");
222 println!(" • Documents Processed: {}", processed_results.len());
223 println!(" • Character Counts (letter 'o'): {char_counts:?}");
224 println!(
225 " • Similarity Matrix Size: {}x{}",
226 similarity_matrix.len(),
227 similarity_matrix[0].len()
228 );
229
230 // Display similarity matrix
231 println!("\n🔗 Text Similarity Matrix:");
232 for (i, row) in similarity_matrix.iter().enumerate() {
233 print!(" Row {i}: [");
234 for (j, &similarity) in row.iter().enumerate() {
235 if j > 0 {
236 print!(", ");
237 }
238 print!("{similarity:.3}");
239 }
240 println!("]");
241 }
242
243 // Show SIMD capabilities
244 println!("\n⚙️ SIMD Capabilities:");
245 println!(" • SIMD Available: {}", SimdStringOps::is_available());
246 println!(" • String Processing: Optimized");
247 println!(" • Pattern Matching: Optimized");
248 println!(" • Similarity Computation: Vectorized");
249
250 println!();
251 Ok(())
252 }Sourcepub fn advanced_similarity_matrix(texts: &[&str]) -> Vec<Vec<f64>>
pub fn advanced_similarity_matrix(texts: &[&str]) -> Vec<Vec<f64>>
Calculate similarity matrix between texts
Examples found in repository?
examples/complete_integration.rs (line 213)
181 fn demo_performance_monitored_simd(&self) -> Result<()> {
182 println!("⚡ Demo 2: Performance-Monitored SIMD Operations");
183 println!("===============================================");
184
185 let testtexts = [
186 "The quick brown fox jumps over the lazy dog".to_string(),
187 "Pack my box with five dozen liquor jugs".to_string(),
188 "How vexingly quick daft zebras jump!".to_string(),
189 "Bright vixens jump; dozy fowl quack".to_string(),
190 ];
191
192 println!("Running SIMD-accelerated operations with performance monitoring...");
193
194 // Start monitoring
195 let operation_monitor = self
196 .performance_monitor
197 .start_operation("simd_operations")?;
198
199 let start_time = Instant::now();
200
201 // Optimized text processing
202 let testtext_refs: Vec<&str> = testtexts.iter().map(|s| s.as_str()).collect();
203 let processed_results = AdvancedSIMDTextProcessor::advanced_batch_process(&testtext_refs);
204
205 // SIMD string operations
206 let char_counts: Vec<usize> = testtexts
207 .iter()
208 .map(|text| SimdStringOps::count_chars(text, 'o'))
209 .collect();
210
211 // Optimized similarity matrix
212 let similarity_matrix =
213 AdvancedSIMDTextProcessor::advanced_similarity_matrix(&testtext_refs);
214
215 let processing_time = start_time.elapsed();
216
217 // Complete monitoring
218 operation_monitor.complete(testtexts.len())?;
219
220 println!("\n📊 SIMD Operation Results:");
221 println!(" • Processing Time: {processing_time:?}");
222 println!(" • Documents Processed: {}", processed_results.len());
223 println!(" • Character Counts (letter 'o'): {char_counts:?}");
224 println!(
225 " • Similarity Matrix Size: {}x{}",
226 similarity_matrix.len(),
227 similarity_matrix[0].len()
228 );
229
230 // Display similarity matrix
231 println!("\n🔗 Text Similarity Matrix:");
232 for (i, row) in similarity_matrix.iter().enumerate() {
233 print!(" Row {i}: [");
234 for (j, &similarity) in row.iter().enumerate() {
235 if j > 0 {
236 print!(", ");
237 }
238 print!("{similarity:.3}");
239 }
240 println!("]");
241 }
242
243 // Show SIMD capabilities
244 println!("\n⚙️ SIMD Capabilities:");
245 println!(" • SIMD Available: {}", SimdStringOps::is_available());
246 println!(" • String Processing: Optimized");
247 println!(" • Pattern Matching: Optimized");
248 println!(" • Similarity Computation: Vectorized");
249
250 println!();
251 Ok(())
252 }Auto Trait Implementations§
impl Freeze for AdvancedSIMDTextProcessor
impl RefUnwindSafe for AdvancedSIMDTextProcessor
impl Send for AdvancedSIMDTextProcessor
impl Sync for AdvancedSIMDTextProcessor
impl Unpin for AdvancedSIMDTextProcessor
impl UnwindSafe for AdvancedSIMDTextProcessor
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.