A package dedicated to lazy linear operators based on diverse backends/libraries.
Project description
Lazylinop philosophy – what is a LazyLinearOp object?
Starting from a numpy array, a scipy matrix, a Faust object, or potentially many other compatible linear operators with efficient implementatons, a .LazyLinearOp object follows the lazy evaluation paradigm. In short, one can aggregate low-level .LazyLinearOp objects into higher-level ones using many classical operations (addition, concatenation, adjoint, real part, etc.), without actually building arrays. The actual effect of these operations is delayed until the resulting linear operator is actually applied to a vector (or to a collection of vectors, seen as a matrix).
The main interest of this paradigm is to enable the construction of processing pipelines that exploit as building blocks efficient implementations of “low-level” linear operators.
LazyLinearOperators are complementary to other “lazy” objects such as LazyTensors in Kheops, or the ones of lazyarray, WeldNumpy an pylops libraries, which, to the best of our knowledge, primarily provide compact descriptions of arrays which entries can be evaluated efficiently on the fly.
Getting started with lazylinop
Quick installation
conda install lazylinop
or
pip install lazylinop
For a straightforward installation of lazylinop go to this guide. Then for a quick introduction to lazylinop go to this notebook. The raw notebook is available here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for lazylinop-1.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4d124c1fbbe430598ed545cd7cb3336edf0f6bf75113cec84903fd8fd47b49b |
|
MD5 | 0a047b00cc198f6c137d75f11a3ecb86 |
|
BLAKE2b-256 | d3b9a818df4e6aedd1bc6cb9c05c8f399c7aeebc17d51b0105d7120fe6cc8a9b |