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