scalanlp/breeze

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

Open

#422 ouverte le 23 juil. 2015

Voir sur GitHub
 (0 commentaires) (0 réactions) (0 assignés)Scala (690 forks)batch import
good first issuehelp wanted

Métriques du dépôt

Stars
 (3 453 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

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().

Guide contributeur