octave-maintainers
[Top][All Lists]
Advanced

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

Re: About diagonal matrices


From: Jaroslav Hajek
Subject: Re: About diagonal matrices
Date: Fri, 20 Feb 2009 18:40:15 +0100

On Fri, Feb 20, 2009 at 6:30 PM, John W. Eaton <address@hidden> wrote:
> On 20-Feb-2009, Jaroslav Hajek wrote:
>
> | I think that what Octave does now for sparse * scalar is certainly
> | better than what Matlab does; I'd keep it that way. Otherwise, when
> | you do scalar * sparse, and just by coincidence scalar happens to be
> | Inf or NaN, you fill up the memory; bang, you're dead (or your
> | computation is).
> |
> | Note that Matlab is not strictly numerically consistent either; try
> | "speye (3) * [NaN; 1; 1]" vs. "eye (3) * [NaN; 1; 1]".
> | There is simply a difference between a "numeric zero" and "assumed
> | zero" (or "defined zero"). The second one just always nullifies, which
> | is what the user actually expects.
> | I'd say document this somewhere, but keep the assumed zeros. IMHO
> | these are really corner cases and we do not need to copy the less
> | intelligent behavior of Matlab just for compatibility.
>
> I agree that these cases don't come up all that often.  So why not
> give the correct answer when they do?
>
> jwe
>

That depends on how you define the correct answer.  Most numerical
software uses (implicitly) the "defined zero" definition shown above
for sparse and structured matrices (e.g. BLAS with banded and
triangular matrices).
Matlab is apparently (somewhat) inconsistent with itself in this respect.
Also, in most of the cases (not the scalar OP matrix), the additional
checks for NaNs would also slow down the operations (and complicate
their implementation).

-- 
RNDr. Jaroslav Hajek
computing expert
Aeronautical Research and Test Institute (VZLU)
Prague, Czech Republic
url: www.highegg.matfyz.cz


reply via email to

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