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)
chunking
Advanced chunking strategies for optimal parallel performance
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
Complete ndarray re-export for SciRS2 ecosystem
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_aligned
Memory-aligned SIMD operations for optimal performance
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
Re-export essential macros that were missing in some modules Create an Array with one, two, three, four, five, or six dimensions.
array_function_def
Convenience macro for defining array protocol functions.
array_function_dispatch
array_legacy
Create an Array with one, two, three, four, five, or six dimensions.
batch_operation
Macro for batch error handling
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
enhanced_error
Macro to create an enhanced error with automatic severity detection
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
s
Re-export essential macros that were missing in some modules Slice argument constructor.
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
with_retry
Macro for error recovery with retry logic

Structs§

Axis
An axis index.
ChaCha8Rng
A cryptographically secure random number generator that uses the ChaCha algorithm.
ChaCha12Rng
A cryptographically secure random number generator that uses the ChaCha algorithm.
ChaCha20Rng
A cryptographically secure random number generator that uses the ChaCha algorithm.
Complex
A complex number in Cartesian form.

Functions§

Ix1
Create a one-dimensional index
Ix2
Create a two-dimensional index
IxDyn
Create a dynamic-dimensional index
_version
SciRS2 core version information
arr1
Re-export essential macros that were missing in some modules Create a one-dimensional array with elements from xs.
arr2
Re-export essential macros that were missing in some modules Create a two-dimensional array with elements from xs.

Type Aliases§

Array
An array that owns its data uniquely.
Array1
one-dimensional array
Array2
two-dimensional array
ArrayD
dynamic-dimensional array
ArrayView
A read-only array view.
ArrayView1
one-dimensional array view
ArrayView2
two-dimensional array view
ArrayViewMut
A read-write array view.
Complex32
Alias for a Complex<f32>
Complex64
Alias for a Complex<f64>
Ix1
one-dimensional
Ix2
two-dimensional
IxDyn
dynamic-dimensional