scalanlp/breeze

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

Open

#422 aperta il 23 lug 2015

Vedi su GitHub
 (0 commenti) (0 reazioni) (0 assegnatari)Scala (690 fork)batch import
good first issuehelp wanted

Metriche repository

Star
 (3453 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

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

Guida contributor