I forgot to finish this:

I've seen the immutable Transpose proposition, but if the underlying ...
>

 ... array is mutable, it is not very robust.

 —Pierre-Yves

>
> Also:
>
> threedee = [|| 1, 2 | | 5, 6 ||
>             || 3, 4 | | 7, 8 ||]
>
> fourdee = [||| 1, 2 | | 5, 6 ||
>             || 3, 4 | | 7, 8 |||
>
>            ||| a, b | | e, f ||
>             || c, d | | g, h |||]
>
> :-)
>
>
> On Saturday, May 24, 2014 10:48:25 PM UTC+2, Pierre-Yves Gérardy wrote:
>>
>> Rather than accumulating callbacks, couldn't you keep an array of 
>> operators and devectorize the computation? 
>>
>> A potential drawback would be a loss of extensibility...
>>
>> You could also cache the realized operator after the first evaluation 
>> (memoization).
>>
>> —Pierre-Yves
>>
>> On Saturday, May 24, 2014 9:30:43 PM UTC+2, Dominique Orban wrote:
>>>
>>> I just put together a basic linear operator package for Julia: 
>>> https://github.com/dpo/linop.jl
>>>
>>> The central idea is that operators act like matrices, but it would be 
>>> too expensive to combine them before they are actually applied to a vector. 
>>> Another benefit is that you can manipulate them as if they were matrices 
>>> and write expressions such as y = (A' * A + B) * x without worrying 
>>> that A' * A + B will actually be formed (it won't).
>>>
>>> There are basic tests, but more should be added, and lots is still 
>>> missing (e.g., block operators, parallel operators, ...). Entire algorithms 
>>> could be wrapped as operators so that conceptually, you could write things 
>>> like: x = LSQR(A) * b to apply the LSQR algorithm to solve the 
>>> least-squares problem with A and b.
>>>
>>> Feedback most welcome.
>>>
>>> Cheers.
>>>
>>

Reply via email to