Skip to main content

00_quickstart/
00_quickstart.rs

1//! A first look at `matten`: create, add, reshape, and inspect a tensor.
2//!
3//! Run: cargo run --example 00_quickstart
4//!
5//! `matten` is the family car of Rust tensor libraries — easy to start,
6//! no type puzzles, and honest about performance. For heavy numerical work,
7//! migrate your flat data to `ndarray`, `nalgebra`, or `candle`.
8
9use matten::Tensor;
10
11fn main() {
12    let a = Tensor::new(vec![1.0, 2.0, 3.0, 4.0], &[2, 2]);
13    let b = Tensor::ones(&[2, 2]);
14
15    let c = &a + &b;
16    println!("a      = {a:?}");
17    println!("b      = {b:?}");
18    println!("a + b  = {c:?}");
19
20    let flat = c.flatten();
21    println!("flat   = {flat:?}");
22
23    assert_eq!(flat.shape(), &[4]);
24    assert_eq!(flat.as_slice(), &[2.0, 3.0, 4.0, 5.0]);
25    println!("All assertions passed.");
26}