fn main() {
    println("=== Testing All Loom Primitives ===")

    let a = tensor(1.0, 0.0, 0.0)
    let b = tensor(0.0, 1.0, 0.0)
    let cross = t_cross(a, b)
    println("cross(x, y) = " + cross)

    let series = tensor(1.0, 4.0, 9.0, 16.0, 25.0)
    let grad = t_gradient(series)
    println("gradient = " + grad)

    let mat = t_zeros(3, 3)
    println("zeros 3x3 = " + mat)
    let mat = t_index_set(mat, 0, 0, 1.0)
    let mat = t_index_set(mat, 1, 1, 2.0)
    let mat = t_index_set(mat, 2, 2, 3.0)
    println("diag = " + mat)
    let val = t_index_get(mat, 1, 1)
    println("mat[1,1] = " + val)

    let v = tensor(3.0, 4.0)
    let n = t_norm(v)
    println("norm([3,4]) = " + n)

    let lin = t_linspace(0.0, 1.0, 5)
    println("linspace(0,1,5) = " + lin)

    let ones = t_ones(2, 3)
    println("ones(2,3) = " + ones)

    println("=== All Working ===")
}
