[Numpy-discussion] [ANN] NumPy 0.9.6 released

Travis Oliphant oliphant at ee.byu.edu
Tue Mar 14 14:50:06 CST 2006

Fernando Perez wrote:

> Travis Oliphant wrote:
>> This post is to announce the release of NumPy 0.9.6 which fixes some 
>> important bugs and has several speed improvments.
> Just curious about the svd/singular... pair:
> In [2]: numpy.linalg.singular_value_decomposition??
> Definition:     numpy.linalg.singular_value_decomposition(A, 
> full_matrices=0)
> Source:
> def singular_value_decomposition(A, full_matrices=0):
>     return svd(A, full_matrices)
> In [3]: numpy.linalg.svd?
> Definition:     numpy.linalg.svd(a, full_matrices=1)
> Do we really need both spellings to be different just on the default 
> of the full_matrices flag?  It seems to me like the kind of 
> unnecessary special-casing that just forces people to remember little 
> details without a clear benefit.  If we want a long-spelling form, it 
> would be cheaper to simply alias the name with a module-level
> singular_value_decomposition = svd
> so the same /object/ is referred to via both names.
> Perhaps I'm missing the blindingly obvious solid reason, but if this  
> is just historical accident, I'd vote for unifying the two simply as 
> spelling variants.  I think the flipped default is more 
> confusion-prone than beneficial.

Backward compatibility. 

I don't like the singular_value_decomposition spelling but that was in 
Numeric (with the default given).  So, it is provided to aid in 

But, I think most people who compute svd expect it to produce 
full_matrices.   Thus, the svd spelling.

We make somebody unhappy either way I think.  If we change anything, I 
would vote for changing singular_value_decomposition and adding 
something to convert_code to write any old code using full arguments.


More information about the Numpy-discussion mailing list