Getting started

Creating a vector

Let's create some vectors

import slash.vector.*

val v = Vec.fromTuple(1.0, 2.0, 3.0, 4.0, 5.0)
// v: Vec[5] = Array(1.0, 2.0, 3.0, 4.0, 5.0)
val v2 = Vec[5](1.0, 2.0, 3.0, 4.0, 5.0)
// v2: Vec[5] = Array(1.0, 2.0, 3.0, 4.0, 5.0)
val v_fill = Vec.fill[5](1.0)
// v_fill: Vec[5] = Array(1.0, 1.0, 1.0, 1.0, 1.0)

val v_zeros = Vec.zeros[5]
// v_zeros: Vec[5] = Array(0.0, 0.0, 0.0, 0.0, 0.0)
val v_ones = Vec.ones[5]
// v_ones: Vec[5] = Array(1.0, 2.0, 1.0, 1.0, 1.0)


val v_rand = Vec.random[5]
// v_rand: Vec[5] = Array(
//   -0.6752220822460712,
//   -0.013420039022309593,
//   -0.4592490817037336,
//   -0.6348677660828517,
//   -0.02100791317026318
// )
val v_rand_max_min = Vec.random[5](0.5, 2.0)
// v_rand_max_min: Vec[5] = Array(
//   1.8410893276467943,
//   0.9894352920529785,
//   0.8343051796024477,
//   0.6684052997416154,
//   1.902902067042308
// )

And do some stuff

v + v_fill
// res0: Vec[5] = Array(2.0, 3.0, 4.0, 5.0, 6.0)

v2.dot(v_zeros)
// res1: Double = 0.0

v_rand -= v_ones

// native indexing is fast...
v_ones(1) = 2.0
v_ones(4)
// res4: Double = 1.0
v_ones
// res5: Vec[5] = Array(1.0, 2.0, 1.0, 1.0, 1.0)

v.mean
// res6: Double = 3.0

v.corr(v_rand)
// res7: Double = 0.33529281531105215

v_rand.elementRanks
// res8: Vec[5] = Array(1.0, 5.0, 3.0, 2.0, 4.0)