pub mod traits;
pub mod tensor;
pub use tensor::{Rank1Tensor, Rank2Tensor, Tensor};
fn main() {
let t2 = Tensor::build(3, 2, vec![
1, 2, 3,
4, 5, 6,
7, 8, 9
]);
let t1 = Tensor::build(4, 1, vec![
2, 3, 5, 5
]);
let t3 = Tensor::build(3, 3, vec![
1, 2, 3,
4, 5, 6,
7, 8, 9,
10, 11, 12,
13, 14, 15,
16, 17, 18,
19, 20, 21,
22, 23, 24,
25, 26, 27
]);
let t4 = Tensor::build(2, 2, vec![
1, 2,
3, 4
]);
let mut t5 = Tensor::build(2, 3, vec![
1, 2,
3, 4,
5, 6,
7, 8
]);
println!( "Printing t1" );
t1.print();
println!( "Printing t2" );
t2.print();
println!( "Printing t3" );
t3.print();
println!( "Printing t4" );
t4.print();
println!( "Printing t5" );
t5.print();
println!( "Printing t5" );
t5.set(&[1,1,1], 0);
t5.print();
println!( "t2 inner product ");
t2.inner_product(&t2.clone());
println!( "t1 inner product ");
t1.inner_product(&t1.clone());
println!( "t3 inner product ");
let t = t3.inner_product(&t3.clone());
println!( "t final after inner product ");
t.print();
}