octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: About diagonal matrices


From: dbateman
Subject: Re: About diagonal matrices
Date: Wed, 25 Feb 2009 05:15:43 -0800 (PST)

the goal of this patch was just to get the right behavior of scalar times
sparse matrix wrt the type. That is  it returns a sparse matrix rather than
a full ones. The changes Jaroslav made to the mappers and operators changed
the behavior of 0/0 however




John W. Eaton-3 wrote:
> 
> On 20-Feb-2009, dbateman wrote:
> 
> | I consider that the fact speye(3)/0 returns a full matrix a bug unless
> the
> | sparse_auto_mutate function is set. In fact this behavior is a hang over
> | from when sparse_auto_mutate(1) was not only the default but only
> behavior
> | and certain narrowing could be donee in the operators themselves rather
> than
> | the narrowing function of the octave_value. I pushed a patch..
> | 
> | 
> | 
> | octave:4> a = eye(3)/0
> | a =
> | 
> |    Inf     0     0
> |      0   Inf     0
> |      0     0   Inf
> | 
> | octave:5> a = speye(3)/0
> | warning: division by zero
> | a =
> | 
> | Compressed Column Sparse (rows = 3, cols = 3, nnz = 3 [33%])
> | )
> | 
> |   (1, 1) -> Inf
> |   (2, 2) -> Inf
> |   (3, 3) -> Inf
> | 
> | octave:14> full(a)/0
> | warning: division by zero
> | ans =
> | 
> |    Inf   NaN   NaN
> |    NaN   Inf   NaN
> |    NaN   NaN   Inf
> | 
> | and would expect the NaN fill in even for diagonal matrices as John
> | suggested and so the NaN values. The current Octave behavior is
> | mathematically wrong and saying thats the answer the user expected is no
> | excuse. We should bring back the NaN fill-in.
> 
> With the current sources, which I think includes your patch, I now see
> 
>   octave:2> speye (3)/0
>   warning: division by zero
>   ans =
> 
>   Compressed Column Sparse (rows = 3, cols = 3, nnz = 3 [33%])
>   )
> 
>     (1, 1) -> Inf
>     (2, 2) -> Inf
>     (3, 3) -> Inf
> 
>   octave:3> speye (3)*Inf
>   ans =
> 
>   Compressed Column Sparse (rows = 3, cols = 3, nnz = 3 [33%])
>   )
> 
>     (1, 1) -> Inf
>     (2, 2) -> Inf
>     (3, 3) -> Inf
> 
>   octave:4> speye (3)*NaN
>   ans =
> 
>   Compressed Column Sparse (rows = 3, cols = 3, nnz = 3 [33%])
>   )
> 
>     (1, 1) -> NaN
>     (2, 2) -> NaN
>     (3, 3) -> NaN
> 
> 
> Is that the behavior you want?
> 
> jwe
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Re%3A-About-diagonal-matrices-tp22124562p22202524.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]