Crate scirs2_core

Crate scirs2_core 

Source
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 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
  • cloud: Enable cloud storage integration (S3, GCS, Azure)
  • jit: Enable just-in-time compilation with LLVM
  • ml_pipeline: Enable ML pipeline integration and real-time processing
  • 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_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_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