A high-performance tensor computation and automatic differentiation library written in pure Rust.
Adamant aims to provide a robust foundation for scientific computing, data analysis, and machine learning applications in Rust. It bridges the gap between the performance characteristics of established numerical libraries and the safety guarantees of the Rust programming language.
Features (in development):
- N-dimensional tensor operations with dynamic shapes
- Automatic differentiation for gradient-based optimization
- SIMD optimizations for maximum CPU performance
- Clean, idiomatic Rust API designed for safety and ergonomics
- Comprehensive linear algebra operations
- No external dependencies - pure Rust implementation
Adamant is currently in the early planning and development stages. The API is subject to significant changes as we refine our approach.
Once released, you'll be able to add Adamant to your Cargo.toml:
[dependencies]
adamant = "0.1.0" # Placeholder version
use adamant::Tensor;
// Create a 2x3 tensor filled with zeros
let a = Tensor::<f32>::new(&[2, 3]);
// Create a tensor from existing data
let data = vec![1.0, 2.0, 3.0, 4.0, 5.0, 6.0];
let b = Tensor::from_vec(data, &[2, 3]).unwrap();
// Reshape a tensor
let c = b.reshape(&[3, 2]).unwrap();
// Access elements
let value = b.get(&[1, 2]).unwrap();
- Initial project structure
- Basic tensor implementation
- Core operations (add, multiply, etc.)
- Broadcasting support
- Linear algebra operations
- Automatic differentiation
- Performance optimizations
- Integration with deep learning frameworks
Contributions are welcome! As this is an early-stage project, please open an issue first to discuss any significant changes you'd like to make.
This project is licensed under the Apache License, Version 2.0 - see LICENSE file for details.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.