 //: -----------------
 String(m1)
 
-let v14 = ColVec([1, 1, 1])
-let v15 = m1⊙v14
+let v14:Tensor<F> = colvector([1, 1, 1])
+let v15:Tensor<F> = m1⊙v14
+String(v15)
 
-let m3 = Mat([[1, 2, 3], [1, 2, 3]])
-let m4 = m1⊙m3.transpose()
+let m3:Tensor<F> = tensor([[1, 2, 3], [1, 2, 3]])
+let m4:Tensor<F> = m1⊙m3.transpose()
 String(m4)
 
 
 let s = Extent(3)
 let s2 = Extent(s, over: 5)
-print("\(s2.dims)")*/
+s2.dims

let v8 = 0.5*v1
let v9 = v1**2

let v10 = RowVec([2, 2, 2, 2])


// Hadamard product
let v11 = v10*v2

// dot product
let v12 = v10⊙(v2+v2)

// outer product
let v13 = v10⊗(v2+v2)
print("\(v13)")


//: Matrix creation
//: ---------------
let m1 = Mat([[1, 2, 3], [4, 5, 6]])
let m2 = Mat(rows: 3, cols: 3)

//: Matrix indexing
//: ---------------

v2[1] = 20

// ranges
let vr1 = v1[1, 0...2]
String(vr1)

vr1[0...2] = colvector([1, 2, 3])
String(vr1)

//: Vector operations
//: -----------------
