About diagonal matrices
Daniel J Sebald
daniel.sebald at ieee.org
Sun Mar 1 14:16:14 CST 2009
Jaroslav Hajek wrote:
> On Sun, Mar 1, 2009 at 8:23 PM, Daniel J Sebald <daniel.sebald at ieee.org> wrote:
>
>>dbateman wrote:
>>
>>
>>>Well I'm finally somewhere I can write an e-mail from easily, though I
>>>haven't had the time to reread the thread. The issue I considered in the
>>>past like this was operations like "speye(n) .^ 0" or "speye(n) ./ 0"
>>>where
>>>the 0.^0 and 0./0 terms of the matrix should create a NaN in the resulting
>>>matrix I hadn't considered the "speye(n) OP NaN" but didn't and don't yet
>>>see why it should be different if the NaN is pre-existing rather than
>>>created by the binary operation, otherwise the NaN values won't propagate
>>>and in fact might very likely disappear. You seem to think, and have
>>>convince John that disappearing NaN's are a good thing so I'll try to
>>>reread
>>>the thread and respond again later on.
>>
>>I think a "default sparse value" solves this, no matter what one thinks the
>>defined behavior should be. Call the indeces assigned the default value the
>>"sparse set". The sparse set could be NaN, while assigned values could also
>>happen to be NaN.
>
>
> No, it doesn't. At least not completely - just the simple cases. See
> my previous examples about this. And it would make the sparse
> operations more complicated and probably less efficient.
> You are, obviously, free to propose a detailed implementation. But
> please be more specific.
Say I define a sparse matrix where indeces (i,j) in S are zero. Call S the sparse set. I.e.,
M(i,j) = 0 for (i,j) in S
m_i,j otherwise
Now, do an operation on M (something simple so we can avoid the issues of set operations across sparse matrices... I know, that's where all the work is), say M/0. Then
M(i,j)/0 = Nan for (i,j) in S
m_i,j / 0 otherwise
We've kept track of the sparse set, so we still know what this. Little has changed, assigned from assigning the sparse set a value. Correct?
For the more general operations of two sparse sets, I proposed in a previous email to keep track of index sets. It adds more complexity
>>The value of the sparse matrix is when it comes time to use it in operations
>>where a full matrix would consume the CPU. So it does make sense to keep
>>track of the sparse set.
>>
>
>
> Huh? I don't understand.
What is the purpose of sparse sets? Represent large matrices that are mostly zero (or some default value, I argue). Also, when solving matrix operations or systems of equations that are sparse, much of the computations can be discarded.
Dan
More information about the Octave-maintainers
mailing list