Expand description
Β§SciRS2 Core - Foundation for Scientific Computing in Rust
scirs2-core is the foundational crate for the SciRS2 scientific computing ecosystem, providing essential utilities, abstractions, and optimizations used by all SciRS2 modules.
Β§π― Design Philosophy
- Zero-Cost Abstractions: Performance without compromising safety
- Layered Architecture: Clear separation between interface and implementation
- Policy Compliance: Enforce SciRS2 POLICY - only scirs2-core uses external dependencies directly
- Production Ready: Enterprise-grade error handling, diagnostics, and stability guarantees
Β§π Key Features
Β§Performance Acceleration
- SIMD Operations: CPU vector instructions (SSE, AVX, NEON) for array operations
- Parallel Processing: Multi-threaded execution with intelligent load balancing
- GPU Acceleration: Unified interface for CUDA, Metal, OpenCL, and WebGPU
- Memory Efficiency: Zero-copy views, memory-mapped arrays, adaptive chunking
Β§Core Utilities
- Error Handling: ML-inspired diagnostics with recovery strategies
- Validation: Input checking with informative error messages
- Caching: Memoization and result caching for expensive computations
- Profiling: Performance monitoring and bottleneck detection
Β§Scientific Infrastructure
- Constants: Physical and mathematical constants (via
constantsmodule) - Random Number Generation: Consistent RNG interface across the ecosystem
- Complex Numbers: Type-safe complex arithmetic
- Array Protocol: Unified array interface for interoperability
Β§π¦ Module Overview
Β§Performance & Optimization
| Module | Description |
|---|---|
simd_ops | SIMD-accelerated operations with platform detection |
parallel_ops | Parallel processing primitives |
gpu | GPU acceleration abstractions |
memory | Memory management (buffer pools, zero-copy views) |
memory_efficient | Memory-mapped arrays and lazy evaluation |
Β§Error Handling & Diagnostics
| Module | Description |
|---|---|
error | Error types and traits |
validation | Input validation utilities |
logging | Structured logging for diagnostics |
profiling | Performance profiling tools |
Β§Scientific Computing Basics
| Module | Description |
|---|---|
ndarray | Unified ndarray interface (re-exports with SciRS2 extensions) |
numeric | Generic numerical operations |
random | Random number generation |
constants | Mathematical and physical constants |
Β§Infrastructure
| Module | Description |
|---|---|
config | Configuration management |
cache | Result caching and memoization |
io | I/O utilities |
cloud | Cloud storage integration (S3, GCS, Azure) |
Β§π Quick Start
Β§Installation
[dependencies]
scirs2-core = { version = "0.1.0-rc.4", features = ["simd", "parallel"] }Β§SIMD Operations
use scirs2_core::simd_ops::SimdUnifiedOps;
use ::ndarray::array;
// Automatic SIMD acceleration based on CPU capabilities
let a = array![1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0];
let b = array![8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0];
// SIMD-accelerated element-wise addition
let result = f64::simd_add(&a.view(), &b.view());Β§Parallel Processing
use scirs2_core::parallel_ops::*;
// Parallel iteration over chunks
let data = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
par_chunks(&data, 3).for_each(|chunk| {
// Process each chunk in parallel
let sum: i32 = chunk.iter().sum();
println!("Chunk sum: {}", sum);
});Β§Input Validation
use scirs2_core::validation::*;
use scirs2_core::error::CoreResult;
use ::ndarray::Array2;
fn process_matrix(data: &Array2<f64>, k: usize) -> CoreResult<()> {
// Validate inputs
check_positive(k, "k")?;
checkarray_finite(data, "data")?;
checkshape(data, &[2, 3], "data")?;
// Process data...
Ok(())
}Β§Constants
use scirs2_core::constants::{math, physical};
// Mathematical constants
let pi = math::PI;
let e = math::E;
// Physical constants
let c = physical::SPEED_OF_LIGHT;
let h = physical::PLANCK;Β§Random Number Generation
use scirs2_core::random::*;
use rand::Rng;
// Standard distributions
let mut rng = rand::rng();
let normal = Normal::new(0.0, 1.0)?;
let samples: Vec<f64> = (0..1000).map(|_| normal.sample(&mut rng)).collect();
let uniform = Uniform::new(0.0, 1.0)?;
let samples: Vec<f64> = (0..1000).map(|_| uniform.sample(&mut rng)).collect();Β§Memory-Efficient Operations
use scirs2_core::memory_efficient::*;
use std::path::Path;
use ::ndarray::Array2;
// Memory-mapped array for large datasets
let data = Array2::<f64>::zeros((1000, 1000));
let path = Path::new("/path/to/large_file.dat");
let mmap = create_mmap(&data, path, AccessMode::ReadWrite, 0)?;
// Chunked operations for out-of-core processing
let result = chunk_wise_op(&data, |chunk| {
chunk.mapv(|x| x * 2.0)
}, ChunkingStrategy::Fixed(10000))?;Β§ποΈ Architecture
βββββββββββββββββββββββββββββββββββββββββββ
β SciRS2 Ecosystem Modules β
β (linalg, stats, neural, vision, etc.) β
βββββββββββββββββββββββββββββββββββββββββββ
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β scirs2-core (This Crate) β
β ββββββββββββββββββββββββββββββββββββββ β
β β High-Level Abstractions β β
β β - SIMD Operations β β
β β - Parallel Processing β β
β β - GPU Acceleration β β
β β - Error Handling β β
β ββββββββββββββββββββββββββββββββββββββ β
β ββββββββββββββββββββββββββββββββββββββ β
β β Core Utilities β β
β β - Array Protocol β β
β β - Validation β β
β β - Memory Management β β
β β - Configuration β β
β ββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββ
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β External Dependencies β
β (ndarray, rayon, BLAS, etc.) β
β β οΈ Only scirs2-core depends directly β
βββββββββββββββββββββββββββββββββββββββββββΒ§π¨ Feature Flags
Β§Performance Features
simd- SIMD acceleration (SSE, AVX, NEON)parallel- Multi-threaded execution via Rayongpu- GPU acceleration (CUDA, Metal, OpenCL)
Β§Memory Management
memory_management- Advanced memory management (buffer pools, tracking)memory_efficient- Memory-mapped arrays and lazy evaluationmemory_metrics- Memory usage tracking and profiling
Β§Scientific Computing
array- Scientific array types (MaskedArray, RecordArray)random- Random number generationlinalg- Linear algebra with BLAS/LAPACK
Β§Development & Debugging
validation- Input validation (recommended for development)logging- Structured loggingprofiling- Performance profilingtesting- Testing utilities
Β§Advanced Features
cloud- Cloud storage (S3, GCS, Azure)jit- Just-in-time compilation with LLVMml_pipeline- ML pipeline integration
Β§Convenience
default- Commonly used features (parallel, validation)all- All features except backend-specific ones
Β§π SciRS2 Policy Compliance
Important: scirs2-core is the only crate in the SciRS2 ecosystem that directly
depends on external crates like ndarray, rand, rayon, etc.
All other SciRS2 crates must use abstractions provided by scirs2-core:
β
// β
CORRECT: Use scirs2-core abstractions
use scirs2_core::crate::ndarray::Array2;
use scirs2_core::random::Normal;
use scirs2_core::parallel_ops::*;
// β WRONG: Don't import external deps directly in other crates
// use ::ndarray::Array2; // NO!
// use rand_distr::Normal; // NO!
// use rayon::prelude::*; // NO!This policy ensures:
- Consistent APIs across the ecosystem
- Centralized version management
- Easy addition of SciRS2-specific extensions
- Better compile times through reduced duplication
Β§π Performance
scirs2-core provides multiple optimization levels:
| Feature | Speedup | Use Case |
|---|---|---|
| SIMD | 2-8x | Array operations, numerical computations |
| Parallel | 2-16x | Large datasets, independent operations |
| GPU | 10-100x | Massive parallelism, deep learning |
| Memory-mapped | β | Out-of-core processing, datasets larger than RAM |
Β§Platform Detection
Automatic CPU feature detection for optimal SIMD usage:
use scirs2_core::simd_ops::PlatformCapabilities;
let caps = PlatformCapabilities::detect();
println!("SIMD available: {}", caps.simd_available);
println!("AVX2 available: {}", caps.avx2_available);
println!("GPU available: {}", caps.gpu_available);Β§π Integration
scirs2-core integrates seamlessly with the Rust ecosystem:
- ndarray: Core array operations
- num-traits: Generic numeric operations
- rayon: Parallel processing
- BLAS/LAPACK: Optimized linear algebra
Β§π Version
Current version: 0.1.0-rc.4 (Released December 21, 2025)
Β§π Examples
See the examples directory for more detailed usage examples.
Re-exportsΒ§
pub use crate::cloud::CloudConfig;pub use crate::cloud::CloudCredentials;pub use crate::cloud::CloudError;pub use crate::cloud::CloudObjectMetadata;pub use crate::cloud::CloudProvider;pub use crate::cloud::CloudStorageClient;pub use crate::cloud::EncryptionConfig;pub use crate::cloud::EncryptionMethod;pub use crate::cloud::HttpMethod;pub use crate::cloud::ListResult;pub use crate::cloud::TransferOptions;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::jit::DataType as JitDataType;pub use crate::jit::CompiledKernel;pub use crate::jit::ExecutionProfile;pub use crate::jit::JitBackend;pub use crate::jit::JitCompiler;pub use crate::jit::JitConfig;pub use crate::jit::JitError;pub use crate::jit::KernelLanguage;pub use crate::jit::KernelSource;pub use crate::jit::OptimizationLevel;pub use crate::jit::TargetArchitecture;pub use crate::memory::format_memory_report;pub use crate::memory::generate_memory_report;pub use crate::memory::global_buffer_pool;pub use crate::memory::track_allocation;pub use crate::memory::track_deallocation;pub use crate::memory::track_resize;pub use crate::memory::BufferPool;pub use crate::memory::ChunkProcessor;pub use crate::memory::ChunkProcessor2D;pub use crate::memory::GlobalBufferPool;pub use crate::memory::ZeroCopyView;pub use crate::memory::LeakCheckGuard;pub use crate::memory::LeakDetectionConfig;pub use crate::memory::LeakDetector;pub use crate::memory::LeakReport;pub use crate::memory::LeakType;pub use crate::memory::MemoryCheckpoint;pub use crate::memory::MemoryLeak;pub use crate::memory::ProfilerTool;pub use crate::memory_efficient::chunk_wise_binary_op;pub use crate::memory_efficient::chunk_wise_op;pub use crate::memory_efficient::chunk_wise_reduce;pub use crate::memory_efficient::create_disk_array;pub use crate::memory_efficient::create_mmap;pub use crate::memory_efficient::create_temp_mmap;pub use crate::memory_efficient::diagonal_view;pub use crate::memory_efficient::evaluate;pub use crate::memory_efficient::load_chunks;pub use crate::memory_efficient::open_mmap;pub use crate::memory_efficient::register_fusion;pub use crate::memory_efficient::transpose_view;pub use crate::memory_efficient::view_as;pub use crate::memory_efficient::view_mut_as;pub use crate::memory_efficient::AccessMode;pub use crate::memory_efficient::AdaptiveChunking;pub use crate::memory_efficient::AdaptiveChunkingBuilder;pub use crate::memory_efficient::AdaptiveChunkingParams;pub use crate::memory_efficient::AdaptiveChunkingResult;pub use crate::memory_efficient::ArithmeticOps;pub use crate::memory_efficient::BroadcastOps;pub use crate::memory_efficient::ChunkIter;pub use crate::memory_efficient::ChunkedArray;pub use crate::memory_efficient::ChunkingStrategy;pub use crate::memory_efficient::DiskBackedArray;pub use crate::memory_efficient::FusedOp;pub use crate::memory_efficient::LazyArray;pub use crate::memory_efficient::LazyOp;pub use crate::memory_efficient::LazyOpKind;pub use crate::memory_efficient::MemoryMappedArray;pub use crate::memory_efficient::MemoryMappedChunkIter;pub use crate::memory_efficient::MemoryMappedChunks;pub use crate::memory_efficient::MemoryMappedSlice;pub use crate::memory_efficient::MemoryMappedSlicing;pub use crate::memory_efficient::OpFusion;pub use crate::memory_efficient::OutOfCoreArray;pub use crate::memory_efficient::ViewMut;pub use crate::memory_efficient::ZeroCopyOps;pub use crate::memory_efficient::CompressedMemMapBuilder;pub use crate::memory_efficient::CompressedMemMappedArray;pub use crate::memory_efficient::CompressionAlgorithm;pub use crate::memory_efficient::MemoryMappedChunksParallel;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::memory::metrics::clear_snapshots;pub use crate::memory::metrics::compare_snapshots;pub use crate::memory::metrics::format_bytes;pub use crate::memory::metrics::format_duration;pub use crate::memory::metrics::take_snapshot;pub use crate::memory::metrics::MemoryEvent;pub use crate::memory::metrics::MemoryEventType;pub use crate::memory::metrics::MemoryMetricsCollector;pub use crate::memory::metrics::MemoryMetricsConfig;pub use crate::memory::metrics::MemorySnapshot;pub use crate::memory::metrics::SnapshotDiff;pub use crate::memory::metrics::TrackedBufferPool;pub use crate::memory::metrics::TrackedChunkProcessor;pub use crate::memory::metrics::TrackedChunkProcessor2D;pub use crate::batch_conversions::utils as batch_utils;pub use crate::batch_conversions::BatchConversionConfig;pub use crate::batch_conversions::BatchConversionResult;pub use crate::batch_conversions::BatchConverter;pub use crate::batch_conversions::ElementConversionError;pub use crate::memory::metrics::setup_gpu_memory_tracking;pub use crate::memory::metrics::TrackedGpuBuffer;pub use crate::memory::metrics::TrackedGpuContext;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::ml_pipeline::DataType as MLDataType;pub use crate::ml_pipeline::DataBatch;pub use crate::ml_pipeline::DataSample;pub use crate::ml_pipeline::FeatureConstraint;pub use crate::ml_pipeline::FeatureSchema;pub use crate::ml_pipeline::FeatureTransformer;pub use crate::ml_pipeline::FeatureValue;pub use crate::ml_pipeline::MLPipeline;pub use crate::ml_pipeline::MLPipelineError;pub use crate::ml_pipeline::ModelPredictor;pub use crate::ml_pipeline::ModelType;pub use crate::ml_pipeline::PipelineConfig;pub use crate::ml_pipeline::PipelineMetrics;pub use crate::ml_pipeline::PipelineNode;pub use crate::ml_pipeline::TransformType;pub use crate::parallel_ops::is_parallel_enabled;pub use crate::parallel_ops::num_threads;pub use crate::parallel_ops::par_chunks;pub use crate::parallel_ops::par_chunks_mut;pub use crate::profiling::profiling_memory_tracker;pub use crate::profiling::Profiler;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::testing::TestConfig;pub use crate::testing::TestResult;pub use crate::testing::TestRunner;pub use crate::testing::TestSuite;pub use crate::types::convert;pub use crate::types::ComplexConversionError;pub use crate::types::ComplexExt;pub use crate::types::ComplexOps;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::validation::data::DataType as ValidationDataType;pub use crate::validation::data::Constraint;pub use crate::validation::data::FieldDefinition;pub use crate::validation::data::ValidationConfig;pub use crate::validation::data::ValidationError;pub use crate::validation::data::ValidationResult;pub use crate::validation::data::ValidationRule;pub use crate::validation::data::ValidationSchema;pub use crate::validation::data::Validator;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::benchmarking::BenchmarkConfig;pub use crate::benchmarking::BenchmarkMeasurement;pub use crate::benchmarking::BenchmarkResult;pub use crate::benchmarking::BenchmarkRunner;pub use crate::benchmarking::BenchmarkStatistics;pub use crate::benchmarking::BenchmarkSuite;pub use crate::cache::*;pub use crate::error::*;pub use crate::gpu::*;pub use crate::io::*;pub use crate::logging::*;pub use crate::numeric::*;pub use crate::parallel::*;pub use crate::parallel_ops::*;pub use crate::random::*;pub use crate::simd::*;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) - batch_
conversions - Batch Type Conversions
- benchmarking
- Comprehensive Benchmarking System for
SciRS2Core - cache
- Cache and memoization utilities for improved performance
- chunking
- Advanced chunking strategies for optimal parallel performance
- cloud
- Cloud Storage Integration for SciRS2
- 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
- gpu
- GPU acceleration module for scirs2-core
- gpu_
registry - GPU Kernel Registry System
- io
- I/O utilities for
SciRS2 - jit
- Just-In-Time (JIT) Compilation Framework for Dynamic Kernel Generation
- logging
- Logging and Diagnostics
- memory
- Memory Management
- memory_
efficient - Memory-efficient operations and views for large arrays.
- metrics
- Production-Level Metrics Collection and Monitoring
- ml_
pipeline - Machine Learning Pipeline Integration and Real-Time Processing
- 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
- parallel
- Advanced parallel processing and scheduling
- parallel_
ops - Parallel operations abstraction layer
- performance
- Performance optimization and monitoring for SciRS2 Core
- performance_
optimization - Performance optimization utilities for critical paths
- prelude
- Convenient re-exports of commonly used items
- profiling
- Profiling (Beta 2 Enhanced)
- python
- Python integration module for scirs2-core
- quantum_
optimization - Quantum-Inspired Optimization Algorithms for SciRS2
- random
- Ultra-advanced random number generation for SCIRS2 ecosystem
- resource
- Resource Discovery and Hardware Detection
- safe_
ops - Safe mathematical operations that handle edge cases and validate results
- simd
- SIMD-accelerated operations for SciRS2
- simd_
aligned - Memory-aligned SIMD operations for optimal performance
- simd_
ops - Unified SIMD operations abstraction layer
- simd_
ops_ polynomial - Fast polynomial approximations for transcendental functions
- stability
- Long-term stability guarantees and API contracts for SciRS2
- tensor_
cores - Tensor Cores Advanced Optimization Modules
- testing
- Testing Framework for
SciRS2Core - types
- Type Conversions
- ufuncs
- Universal Function (ufunc) system for scientific computing
- units
- Unit Conversion System
- utils
- Utility functions for numerical operations
- validation
- Validation utilities for
SciRS2 - versioning
- API Versioning Infrastructure
MacrosΒ§
- array
- Create an
Arraywith 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
Arraywith one, two, three, four, five, or six dimensions. - async_
with_ recovery - Macro to create an async operation with automatic error handling and progress tracking
- batch_
operation - Macro for batch error handling
- check_
leaks - Convenience macro for leak checking
- comprehensive_
profile - Convenience macro for comprehensive profiling
- 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
- getlogger
- Get a logger for the current module
- histogram
- Create and register a histogram metric
- performance_
hints - Macro to create and register performance hints in one step
- profile_
memory - Macro for tracking memory usage in a block of code
- profile_
time - Macro for timing a block of code
- profile_
time_ with_ parent - Macro for timing a block of code with a parent operation
- register_
performance_ hints - Macro to register performance hints for a function
- require_
api - Macro to check API availability at compile time
- s
- Re-export essential ndarray types and macros for convenience Use ::ndarray to refer to the external crate directly Slice argument constructor.
- safe_
get - Safe array access macro
- safe_op
- Convenience macros for safe operations Safe arithmetic operation macro
- since_
version - Macro to mark APIs with version information
- timer
- Create and register a timer metric
- trace_
async_ fn - Convenience macro for creating traced async functions
- trace_
fn - Convenience macro for creating traced functions
- track_
performance - Macro to automatically track function performance
- 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
- Re-export essential ndarray types and macros for convenience Use ::ndarray to refer to the external crate directly An axis index.
- ChaCha8
Rng - A cryptographically secure random number generator that uses the ChaCha algorithm.
- ChaCha12
Rng - A cryptographically secure random number generator that uses the ChaCha algorithm.
- ChaCha20
Rng - A cryptographically secure random number generator that uses the ChaCha algorithm.
- Complex
- A complex number in Cartesian form.
FunctionsΒ§
- Ix1
- Re-export essential ndarray types and macros for convenience Use ::ndarray to refer to the external crate directly Create a one-dimensional index
- Ix2
- Re-export essential ndarray types and macros for convenience Use ::ndarray to refer to the external crate directly Create a two-dimensional index
- IxDyn
- Re-export essential ndarray types and macros for convenience Use ::ndarray to refer to the external crate directly Create a dynamic-dimensional index
- _version
SciRS2core version information- arr1
- Create a one-dimensional array with elements from
xs. - arr2
- Create a two-dimensional array with elements from
xs. - par_
join - Parallel join helper Takes two closures and potentially runs them in parallel. It returns a pair of the results from those closures.
- par_
scope - Parallel-aware scope helper
Creates a βfork-joinβ scope
sand invokes the closure with a reference tos. This closure can then spawn asynchronous tasks intos. Those tasks may run asynchronously with respect to the closure; they may themselves spawn additional tasks intos. When the closure returns, it will block until all tasks that have been spawned intoscomplete.
Type AliasesΒ§
- Array
- Re-export essential ndarray types and macros for convenience Use ::ndarray to refer to the external crate directly An array that owns its data uniquely.
- Array1
- one-dimensional array
- Array2
- two-dimensional array
- ArrayD
- dynamic-dimensional array
- Array
View - Re-export essential ndarray types and macros for convenience Use ::ndarray to refer to the external crate directly A read-only array view.
- Array
View1 - one-dimensional array view
- Array
View2 - two-dimensional array view
- Array
View Mut - Re-export essential ndarray types and macros for convenience Use ::ndarray to refer to the external crate directly A read-write array view.
- Complex32
- Alias for a
Complex<f32> - Complex64
- Alias for a
Complex<f64> - Ix1
- Re-export essential ndarray types and macros for convenience Use ::ndarray to refer to the external crate directly one-dimensional
- Ix2
- Re-export essential ndarray types and macros for convenience Use ::ndarray to refer to the external crate directly two-dimensional
- IxDyn
- Re-export essential ndarray types and macros for convenience Use ::ndarray to refer to the external crate directly dynamic-dimensional