Expand description
§SciRS2
Core (Alpha 6 Enhanced)
Core utilities and common functionality for the SciRS2
library.
This crate provides shared utilities, error types, and common traits
used across the SciRS2
ecosystem of crates.
§Alpha 6 Enhanced Features
- Advanced Error Diagnostics: ML-inspired error pattern recognition and domain-specific recovery strategies
- Performance Optimizations: Enhanced SIMD operations, adaptive chunking, and intelligent load balancing
- API Consistency: Standardized function signatures and comprehensive documentation
- Integration Patterns: Guidelines for combining multiple advanced features
§Overview
- Common error types and traits
- High-performance numerical operations
- SIMD-accelerated computations
- Parallel processing for multi-core systems
- Memory-efficient algorithms
- GPU acceleration abstractions
- Caching and memoization for optimized performance
- Type definitions and conversions
- Physical and mathematical constants
- Configuration system
- Input/output utilities
- Validation utilities
- Numeric traits and conversions
- Memory management utilities
- Logging and diagnostics
- Profiling tools
- Random number generation
§Performance Optimizations
The library provides several performance optimization features:
- SIMD Operations: Uses CPU vector instructions for faster array operations
- Parallel Processing: Leverages multi-core systems for improved performance
- GPU Acceleration: Provides abstractions for GPU computation (CUDA, WebGPU, Metal)
- Memory-Efficient Algorithms: Optimizes memory usage for large-scale computations
- Caching and Memoization: Avoids redundant computations
- Profiling and Instrumentation: Identifies performance bottlenecks
- Memory Management: Efficient memory utilization and pooling
§Additional Utilities
- Logging: Structured logging for scientific applications
- Random Number Generation: Consistent interface for random sampling
- Type Conversions: Safe numeric and complex number conversions
§Feature Flags
These features can be controlled via feature flags:
simd
: Enable SIMD accelerationparallel
: Enable parallel processingcache
: Enable caching and memoization functionalityvalidation
: Enable validation utilitieslogging
: Enable structured logging and diagnosticsgpu
: Enable GPU acceleration abstractionsmemory_management
: Enable advanced memory managementmemory_efficient
: Enable memory-efficient array operations and viewsarray
: Enable scientific array types (MaskedArray
,RecordArray
)profiling
: Enable performance profiling toolsrandom
: Enable random number generation utilitiestypes
: Enable type conversion utilitieslinalg
: Enable linear algebra with BLAS/LAPACK bindingsall
: Enable all features except backend-specific ones
Re-exports§
pub use crate::config::production as config_production;
pub use crate::config::get_config;
pub use crate::config::get_config_value;
pub use crate::config::set_config_value;
pub use crate::config::set_global_config;
pub use crate::config::Config;
pub use crate::config::ConfigValue;
pub use crate::constants::math;
pub use crate::constants::physical;
pub use crate::constants::prefixes;
pub use crate::array::is_masked;
pub use crate::array::mask_array;
pub use crate::array::masked_equal;
pub use crate::array::masked_greater;
pub use crate::array::masked_inside;
pub use crate::array::masked_invalid;
pub use crate::array::masked_less;
pub use crate::array::masked_outside;
pub use crate::array::masked_where;
pub use crate::array::record_array_from_arrays;
pub use crate::array::record_array_from_records;
pub use crate::array::record_array_from_typed_arrays;
pub use crate::array::ArrayError;
pub use crate::array::FieldValue;
pub use crate::array::MaskedArray;
pub use crate::array::Record;
pub use crate::array::RecordArray;
pub use crate::array::NOMASK;
pub use crate::metrics::global_health_monitor;
pub use crate::metrics::global_metrics_registry;
pub use crate::metrics::Counter;
pub use crate::metrics::Gauge;
pub use crate::metrics::HealthCheck;
pub use crate::metrics::HealthMonitor;
pub use crate::metrics::HealthStatus;
pub use crate::metrics::Histogram;
pub use crate::metrics::MetricPoint;
pub use crate::metrics::MetricType;
pub use crate::metrics::MetricValue;
pub use crate::metrics::Timer;
pub use crate::resource::get_available_memory;
pub use crate::resource::get_performance_tier;
pub use crate::resource::get_recommended_chunk_size;
pub use crate::resource::get_recommended_thread_count;
pub use crate::resource::get_system_resources;
pub use crate::resource::get_total_memory;
pub use crate::resource::is_gpu_available;
pub use crate::resource::is_simd_supported;
pub use crate::resource::DiscoveryConfig;
pub use crate::resource::PerformanceTier;
pub use crate::resource::ResourceDiscovery;
pub use crate::resource::SystemResources;
pub use crate::units::convert;
pub use crate::units::global_unit_registry;
pub use crate::units::unit_value;
pub use crate::units::Dimension;
pub use crate::units::UnitDefinition;
pub use crate::units::UnitRegistry;
pub use crate::units::UnitSystem;
pub use crate::units::UnitValue;
pub use crate::validation::production as validation_production;
pub use crate::validation::check_array_finite;
pub use crate::validation::check_finite;
pub use crate::validation::check_in_bounds;
pub use crate::validation::check_positive;
pub use crate::validation::check_shape;
pub use crate::observability::audit;
pub use crate::observability::tracing;
pub use crate::versioning::compatibility;
pub use crate::versioning::deprecation;
pub use crate::versioning::migration;
pub use crate::versioning::negotiation;
pub use crate::versioning::semantic;
pub use crate::versioning::ApiVersion;
pub use crate::versioning::CompatibilityLevel;
pub use crate::versioning::StabilityLevel;
pub use crate::versioning::SupportStatus;
pub use crate::versioning::Version;
pub use crate::versioning::VersionManager;
pub use crate::error::*;
pub use crate::io::*;
pub use crate::numeric::*;
pub use crate::utils::*;
Modules§
- alpha6_
api - Alpha 6 API consistency enhancements and comprehensive usage patterns
- api_
versioning - API versioning system for backward compatibility
- array
- Array module that provides enhanced array types and utilities
- array_
protocol - Implementation of Array Protocol (similar to
NumPy
’s__array_function__
protocol) - config
- Configuration system for
SciRS2
- constants
- Physical and Mathematical Constants
- error
- Advanced error handling and recovery system for
SciRS2
- io
- I/O utilities for
SciRS2
- metrics
- Production-Level Metrics Collection and Monitoring
- ndarray_
ext - Extended ndarray operations for scientific computing
- numeric
- Numeric traits and utilities for
SciRS2
- observability
- Observability Infrastructure
- performance_
optimization - Performance optimization utilities for critical paths
- resource
- Resource Discovery and Hardware Detection
- simd_
ops - Unified SIMD operations abstraction layer
- units
- Unit Conversion System
- utils
- Utility functions for numerical operations
- validation
- Validation utilities for
SciRS2
- versioning
- API Versioning Infrastructure
Macros§
- array_
function_ def - Convenience macro for defining array protocol functions.
- array_
function_ dispatch - computation_
error - Macro to create a computation error with location information
- config_
get - Configuration convenience macros Get a configuration value with type conversion
- config_
set - Set a configuration value
- convert_
units - Macro for convenient unit conversions
- counter
- Convenience macros for metrics Create and register a counter metric
- deprecated_
in - Macro to mark deprecated APIs
- diagnostic_
error - Macro to create a diagnostic error with automatic context
- dimension_
error - Macro to create a dimension error with location information
- domain_
error - Macro to create a domain error with location information
- error_
context - Macro to create a new error context with location information
- feature_
enabled - Check if a feature is enabled
- gauge
- Create and register a gauge metric
- histogram
- Create and register a histogram metric
- since_
version - Macro to mark APIs with version information
- timer
- Create and register a timer metric
- trace_
fn - Convenience macro for creating traced functions
- track_
precision - Convenience macros for precision tracking
- update_
precision - value_
error - Macro to create a value error with location information
- with_
circuit_ breaker - Convenience macros Execute with circuit breaker protection
- with_
retry - Execute with retry logic
Functions§
- version
SciRS2
core version information