func NewVector(size int) *Vector { return &Vector{ &DenseVec{ common.NewCoreVec(false, size, 0, 1), make([]float64, size), }, } }
func NewSparseVector(size int) *Vector { return &Vector{ &SparseVec{ common.NewCoreVec(false, size, 0, 1), make(map[int]float64), }, } }
func (sv *SparseVec) ViewSelectionLike(offsets []int) Vec { return &SelectedSparseVec{ &SparseVec{ common.NewCoreVec(false, len(offsets), 0, 1), sv.elements, }, offsets, 0, } }
func (v *SelectedSparseVec) ViewVec() Vec { return &SelectedSparseVec{ &SparseVec{ common.NewCoreVec(false, v.Size(), 0, 1), v.elements, }, v.offsets, v.offset, } }
func (v *DenseVec) ViewSelectionLike(offsets []int) Vec { return &SelectedDenseVec{ &DenseVec{ common.NewCoreVec(false, len(offsets), 0, 1), v.elements, }, offsets, 0, } }
func (sv *SparseVec) ViewVec() Vec { return &SparseVec{ common.NewCoreVec(sv.IsView(), sv.Size(), sv.Zero(), sv.Stride()), sv.elements, } }
func (sv *SparseVec) Like(size int) Vec { return &SparseVec{ common.NewCoreVec(false, size, 0, 1), make(map[int]float64), } }
func (v *DenseVec) ViewVec() Vec { return &DenseVec{ common.NewCoreVec(v.IsView(), v.Size(), v.Zero(), v.Stride()), v.elements, } }
func (v *DenseVec) Like(size int) Vec { return &DenseVec{ common.NewCoreVec(false, size, 0, 1), make([]float64, size), } }