Sparse & dense vectors for use in high dimensional vector spaces.
Many machine-learning algorithms make use of vectors in high-dimensional vector spaces.
The vectors provides efficient implementations for the following representations:
| | Dense | Sparse | |-------|-------|--------| | Heap | ✅ | ✅ | | Stack | ✅ | ✅ |
Add the most recent version of vectors
to your dependencies in your project's Cargo.toml
.
Then add …
```rust
extern crate vectors; ```
… to your crate's root file (e.g. lib.rs
, main.rs
).
Once that's done you're ready to play!
```rust extern crate vectors;
use vectors::Vector; use vectors::heap::{SparseVector, DenseVector};
fn main() { let sparse1 = SparseVector::from(vec![(0, 0.1), (2, 0.2), (4, 0.3), (6, 0.4)]); let sparse2 = SparseVector::from(vec![(0, 0.2), (3, 0.4), (5, 0.2), (6, 0.6)]); let dot = sparse1.dot(&sparse2); println!("{:?}", dot);
let dense1 = DenseVector::from(vec![0.0, 1.0, 2.0, 4.0, 6.0]); let dense2 = DenseVector::from(vec![0.2, 3.0, 0.0, 1.5, 6.0]); let dot = dense1.dot(&dense2); println!("{:?}", dot); } ```
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
See also the list of contributors who participated in this project.
This project is licensed under the MPL-2.0 – see the LICENSE.md file for details.