Related open-source packages
The following open-source packages provide similar or even extended functionality as LinearMaps.jl.
Spot: A linear-operator toolbox for Matlab, which seems to have heavily inspired the Julia packageLinearOperators.jland the Python packagePyLopsfastmat: fast linear transforms in PythonJOLI.jl: Julia Operators LIbraryFunctionOperators.jlandLinearMapsAA.jlalso support mappings betweenArrays, inspired by thefatrixobject type in the Matlab version of the Michigan Image Reconstruction Toolbox (MIRT).
As for lazy array manipulation (like addition, composition, Kronecker products and concatenation), there exist further related packages in the Julia ecosystem:
LazyArrays.jlBlockArrays.jlBlockDiagonals.jlBlockFactorizations.jlKronecker.jlFillArrays.jl- `LiftedMaps.jl
Since these packages provide types that are subtypes of Julia Base's AbstractMatrix type, objects of those types can be wrapped by a LinearMap and freely mixed with, for instance, function-based linear maps. The same applies to custom matrix types as provided, for instance, by packages maintained by the JuliaArrays github organization. For any CustomMatrix{T} <: AbstractMatrix{T} type, you only need to provide a mul!(::AbstractVecOrMat, ::CustomMatrix, ::AbstractVector[, ::Number, ::Number]) method for seamless integration with LinearMaps.jl.