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}