Expand description
§SciRS2
Core (Beta 1)
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.
§Beta 1 Features
- Stable APIs: Core functionality with API stability guarantees for production use
- Advanced Error Diagnostics: ML-inspired error pattern recognition and domain-specific recovery strategies
- Performance Optimizations: Enhanced SIMD operations, adaptive chunking, and intelligent load balancing
- GPU Acceleration: CUDA, Metal MPS, and other backend support for accelerated computing
- Memory Management: Efficient memory-mapped arrays and adaptive chunking for large datasets
§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 bindingscloud
: Enable cloud storage integration (S3, GCS, Azure)jit
: Enable just-in-time compilation with LLVMml_pipeline
: Enable ML pipeline integration and real-time processingall
: 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_typed_arrays;
pub use crate::array::record_array_fromrecords;
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_healthmonitor;
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_finite;
pub use crate::validation::check_in_bounds;
pub use crate::validation::check_positive;
pub use crate::validation::checkarray_finite;
pub use crate::validation::checkshape;
pub use crate::observability::audit;
pub use crate::observability::tracing;
pub use crate::stability::global_stability_manager;
pub use crate::stability::ApiContract;
pub use crate::stability::BreakingChange;
pub use crate::stability::BreakingChangeType;
pub use crate::stability::ConcurrencyContract;
pub use crate::stability::MemoryContract;
pub use crate::stability::NumericalContract;
pub use crate::stability::PerformanceContract;
pub use crate::stability::StabilityGuaranteeManager;
pub use crate::stability::StabilityLevel;
pub use crate::stability::UsageContext;
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::SupportStatus;
pub use crate::versioning::Version;
pub use crate::versioning::VersionManager;
pub use crate::neural_architecture_search::ActivationType;
pub use crate::neural_architecture_search::Architecture;
pub use crate::neural_architecture_search::ArchitecturePerformance;
pub use crate::neural_architecture_search::ConnectionType;
pub use crate::neural_architecture_search::HardwareConstraints;
pub use crate::neural_architecture_search::LayerType;
pub use crate::neural_architecture_search::NASStrategy;
pub use crate::neural_architecture_search::NeuralArchitectureSearch;
pub use crate::neural_architecture_search::OptimizationObjectives;
pub use crate::neural_architecture_search::OptimizerType;
pub use crate::neural_architecture_search::SearchResults;
pub use crate::neural_architecture_search::SearchSpace;
pub use crate::quantum_optimization::OptimizationResult;
pub use crate::quantum_optimization::QuantumOptimizer;
pub use crate::quantum_optimization::QuantumParameters;
pub use crate::quantum_optimization::QuantumState;
pub use crate::quantum_optimization::QuantumStrategy;
pub use crate::error::*;
pub use crate::io::*;
pub use crate::numeric::*;
pub use crate::utils::*;
Modules§
- advanced_
distributed_ computing - Advanced Distributed Computing Framework
- advanced_
ecosystem_ integration - Advanced Mode Ecosystem Integration (Refactored)
- advanced_
jit_ compilation - Advanced JIT Compilation Framework
- advanced_
tensor_ cores - Advanced Tensor Cores and Automatic Kernel Tuning Framework
- api_
freeze - API freeze module for scirs2-core 1.0
- apiversioning
- 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
- distributed
- Production-grade distributed computing infrastructure
- ecosystem
- Ecosystem management and validation for SciRS2
- error
- Advanced error handling and recovery system for
SciRS2
- error_
templates - Standardized error message templates for consistent error reporting
- io
- I/O utilities for
SciRS2
- metrics
- Production-Level Metrics Collection and Monitoring
- ndarray_
ext - Extended ndarray operations for scientific computing
- neural_
architecture_ search - Self-Optimizing Neural Architecture Search (NAS) System
- numeric
- Numeric traits and utilities for
SciRS2
- observability
- Observability Infrastructure
- performance
- Performance optimization and monitoring for SciRS2 Core
- performance_
optimization - Performance optimization utilities for critical paths
- quantum_
optimization - Quantum-Inspired Optimization Algorithms for SciRS2
- resource
- Resource Discovery and Hardware Detection
- safe_
ops - Safe mathematical operations that handle edge cases and validate results
- simd_
ops - Unified SIMD operations abstraction layer
- stability
- Long-term stability guarantees and API contracts for SciRS2
- 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 - computationerror
- 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
- diagnosticerror
- Macro to create a diagnostic error with automatic context
- dimensionerror
- Macro to create a dimension error with location information
- domainerror
- 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
- require_
api - Macro to check API availability at compile time
- 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 - valueerror
- Macro to create a value error with location information
Functions§
- _version
SciRS2
core version information