octave-maintainers
[Top][All Lists]

 From: Daniel J Sebald Subject: Re: About diagonal matrices Date: Sun, 01 Mar 2009 14:16:14 -0600 User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041020

```Jaroslav Hajek wrote:
```
```On Sun, Mar 1, 2009 at 8:23 PM, Daniel J Sebald <address@hidden> wrote:

```
```dbateman wrote:

```
```Well I'm finally somewhere I can write an e-mail from easily, though I
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
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
operations more complicated and probably less efficient.
You are, obviously, free to propose a detailed implementation. But
```
```
```
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

```