For anyone good at scala DSLs, the following is the puzzle i can't seem to
figure at the moment.
I mentioned before that I implemented assignment notations to a row or a
block, e.g. for a row vector : A(5,::) := (1,2,3)
what it really translates into in this particular case is
A.viewRow(5).assign(new Vector(new double[]{1,2,3}))
One thing i can't quite figure for in-core matrix DSL is how to translate
element assignments such as
A(5,5) := 2.0
into A.setQuick(5,5,2.0)
while still having
val k = A(5,5)
translating into
val k = A.getQuick(5,5).
it could be implemented with a "elementView" analogue but would require the
element view object creation -- which is, first, a big no-no (too
expensive) for a simple solitary element assignment (or read-out)
operation, and secondly, reading the element such as A(5,5) * 2.0 would
also involve view element object creation with implicit conversion to
Double whereas it is not even needed at all in this case.
at this point i have only a very obvious apply(Double,Double):Double =
m.getQuick(...), i.e. only element reads are supported with that syntax.
I am guessing Jake, if anyone, might have an idea here... thanks.
On Thu, Jul 4, 2013 at 11:23 PM, Dmitriy Lyubimov <[email protected]> wrote:
> FWIW, Givens streaming qr will be a bit more economical on memory than
> Householder's since it doesn't need the full buffer to compute R and
> doesn't need to keep entire original matrix around.
>
>
> On Thu, Jul 4, 2013 at 11:15 PM, Dmitriy Lyubimov <[email protected]>wrote:
>
>> Ted,
>>
>> would it make sense to port parts of QR in-core row-wise Givens solver
>> out of SSVD to work on any Matrix? I know givens method is advertised as
>> stable but not sure if it is the fastest accepted one. I guess they are all
>> about the same.
>>
>> If yes, i will need also to port the UpperTriangular matrix to adhere to
>> all the bells and wistles, and also have some sort of RowShift matrix (a
>> much simpler analogue of Pivoted matrix for row-rolled buffers). would that
>> make sense?
>>
>> thanks.
>> -D
>>
>>
>