## vectors

Sparse & dense vectors for use in high dimensional vector spaces

### 2 unstable releases

 0.3.0 May 12, 2018 Feb 18, 2017

#141 in Math

91KB
2.5K SLoC

# vectors

## Synopsis

Sparse & dense vectors for use in high dimensional vector spaces.

## Motivation

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

## Getting Started

Add the most recent version of `vectors` to your dependencies in your project's `Cargo.toml`.

``````#[macro_use(dense_vec, sparse_vec)]
extern crate vectors;
``````

… to your crate's root file (e.g. `lib.rs`, `main.rs`).

Once that's done you're ready to play!

# Example

``````extern crate vectors;

use vectors::Vector;
use vectors::heap::{SparseVector, DenseVector};

fn main() {
let sparse_1 = SparseVector::from(vec![(0, 0.1), (2, 0.2), (4, 0.3), (6, 0.4)]);
let sparse_2 = SparseVector::from(vec![(0, 0.2), (3, 0.4), (5, 0.2), (6, 0.6)]);
let dot = sparse_1.dot(&sparse_2);
println!("{:?}", dot);

let dense_1 = DenseVector::from(vec![0.0, 1.0, 2.0, 4.0, 6.0]);
let dense_2 = DenseVector::from(vec![0.2, 3.0, 0.0, 1.5, 6.0]);
let dot = dense_1.dot(&dense_2);
println!("{:?}", dot);
}
``````

## Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

## Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.