Crate scirs2_core

Source
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 acceleration
  • parallel: Enable parallel processing
  • cache: Enable caching and memoization functionality
  • validation: Enable validation utilities
  • logging: Enable structured logging and diagnostics
  • gpu: Enable GPU acceleration abstractions
  • memory_management: Enable advanced memory management
  • memory_efficient: Enable memory-efficient array operations and views
  • array: Enable scientific array types (MaskedArray, RecordArray)
  • profiling: Enable performance profiling tools
  • random: Enable random number generation utilities
  • types: Enable type conversion utilities
  • linalg: Enable linear algebra with BLAS/LAPACK bindings
  • all: 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_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