scalanlp/breeze

SparseArray/SparseVector.compact should be split into 2-3 functions

Open

#422 aberto em 23 de jul. de 2015

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)Scala (690 forks)batch import
good first issuehelp wanted

Métricas do repositório

Stars
 (3.453 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

Currently, SparseArray/SparseVector.compact does two separate things which are usually not intended to be done together. It should be split into three functions:

1: Add a def filter(predicate: T => Boolean): Unit function that allows specifying a predicate which is then used to strip certain values from the array/vector without reallocation.

2: Add a function called def tailor(): Unit that cuts down the memory usage to whatever is required to hold the values.

3: For backwards compatibility, replace the function compact with a function that calls filter(x => x == zero.zero) and then tailor().

Guia do colaborador