add case class to wrap return values
use axpy and in-place if possible
rename variables
rewrite for only computing non-zero elements
separate seqop and combop out as independent functions
fix bug of min max
add sparse vectors test
fix the bug of Nan occur
add scala doc, refine code and comments