On symmetrics, diagonal, banded and so on, I disagree-as I have made clear
in the past. In the case of White standard errors or panel regressions, you
typically have long strings of multiplication by diagonals and symmetrics,
sandwich products and so forth. There are enough of these types of
operations that a math/stat library should support these forms of matrices.
isSparse() will not cut it. A symmetric matrix is typically NOT sparse, it
is typically dense in these cases. More importantly, the number of
operations you save by explicitly recognizing the special structure is not
insignificant.


>
> For banded arrays, the economies available beyond simple sparse algorithms
> are even more limited.
>
>
I am confused, Ted, since when I suggested that some of the multiplication
issues could solved by method overloading, you thought it would not work.
Probably a mis-communication on my part.


> Symmetric and triangular matrices also have special properties but it is
> hard to decide what is really important there.  Many of the special
> operations for these kinds of matrix are subject to solving by overloads
> instead of indicators since we aren't dealing with binary operations.  For
> example, left and right inverse multiplication with triangular matrices is
> handled by normal single dispatch and qualifying an argument for real
> Cholesky decomposition is specific to the Cholesky decomposition itself.
>
>
While on the discussion of extending RealMatrix in any direction, I would
humbly offer that the objects are too complex. Pardon this foolish question,
but what are the uses for the methods " double
walkInRowOrder(RealMatrixChangingVisitor visitor)" When I think of having to
fill in all those methods for any extension, my head spins.

-Greg

Reply via email to