Methods list
LinearMapsAA.LinearMapsAALinearMapsAA.LinearMapAMLinearMapsAA.LinearMapAOLinearMapsAA.LinearMapAOLinearMapsAA.LinearMapAXBase.:*Base.:*Base.hcatBase.hvcatBase.kronBase.showBase.vcatLinearAlgebra.mul!LinearMapsAA.LinearMapAALinearMapsAA.LinearMapAALinearMapsAA.LinearMapAALinearMapsAA.LinearMapAALinearMapsAA.block_diagLinearMapsAA.lmaa_hcatLinearMapsAA.lmaa_hvcatLinearMapsAA.lmaa_vcatLinearMapsAA.lmao_mul!LinearMapsAA.redimLinearMapsAA.undim
Methods usage
LinearMapsAA.LinearMapsAA — Modulemodule LinearMapsAA
Provides AbstractArray (actually AbstractMatrix) or "Ann Arbor" version of LinearMap objects
LinearMapsAA.LinearMapAX — Typestruct LinearMapAX{T,Do,Di,LM,P}Union of LinearMapAM and LinearMapAO because most operations apply to both AM and AO types.
T:eltypeDo: output dimensionalityDi: input dimensionalityLM:LinearMaptypeP:NamedTupletype
LinearMapsAA.LinearMapAM — Typestruct LinearMapAM{T,Do,Di,LM,P} <: AbstractMatrix{T}"matrix" version that is quite akin to a matrix in its behavior
LinearMapsAA.LinearMapAO — Typestruct LinearMapAO{T,Do,Di,LM,P}"Tensor" version that can map from arrays to arrays. (It is not a subtype of AbstractArray.)
LinearMapsAA.LinearMapAO — MethodB = LinearMapAO(A::LinearMapAX)Make an AO from an AM, despite idim and odim being 1D, for expert users who want B*X to be an Array. Somewhat an opposite of undim.
Base.:* — Method*(I, X) = X
*(J, X) = J.λ * XExtends the effect of I::UniformScaling and scaled versions thereof to also apply to X::AbstractArray instead of just to Vector and Matrix types.
Base.:* — Method*(A::LinearMapAO, xv::AbstractVector{<:AbstractArray}) = [A * x for x in xv]Fancy multiply when xv is a Vector of AbstractArrays of appropriate size.
Base.hcat — Methodhcat(As::LinearMapAO... ; tryop::Bool=true)hcat with (by default) attempt to append nblock to idim if consistent blocks.
Base.hvcat — Methodhvcat(rows, As::LinearMapAO...)hvcat that discards special idim and odim information (too hard!) # todo?
Base.kron — Methodkron(A::LinearMapAX, M::AbstractMatrix)
kron(M::AbstractMatrix, A::LinearMapAX)
kron(A::LinearMapAX, B::LinearMapAX)Kronecker products
Returns a LinearMapAO with appropriate idim and odim if either argument is a LinearMapAO else returns a LinearMapAM
Base.show — Methodshow(io::IO, A::LinearMapAX)
show(io::IO, ::MIME"text/plain", A::LinearMapAX)Pretty printing for display
Base.vcat — Methodvcat(As::LinearMapAO... ; tryop::Bool=true)vcat with (by default) attempt to append nblock to odim if consistent blocks.
LinearAlgebra.mul! — Method mul!(yv, AO::LinearMapAO, xv, α, β)Fancy 5-arg multiply when yv and xv are each a Vector of AbstractArrays. Basically does mul!(yv[i], A, xv[i], α, β) for i in 1:length(xv).
LinearMapsAA.LinearMapAA — MethodA = LinearMapAA(L::AbstractMatrix ; ...)Constructor given an AbstractMatrix.
LinearMapsAA.LinearMapAA — MethodA = LinearMapAA(f::Function, fc::Function, D::Dims{2} [, prop::NamedTuple)]
; T::Type = Float32, idim::Dims, odim::Dims)Constructor given forward f and adjoint function fc.
LinearMapsAA.LinearMapAA — MethodA = LinearMapAA(f::Function, D::Dims{2} [, prop::NamedTuple]; kwargs...)Constructor given just forward function f.
LinearMapsAA.LinearMapAA — MethodA = LinearMapAA(L::LinearMap ; ...)Constructor for LinearMapAM or LinearMapAO given a LinearMap.
Options
prop::NamedTuple = NamedTuple(); cannot include the fields_lmap,_prop,_idim,_odimT::Type = eltype(L)idim::Dims = (size(L,2),)odim::Dims = (size(L,1),)operator::Boolby default:falseif bothidim&odimare 1D.
Output A is LinearMapAO if operator is true, else LinearMapAM.
LinearMapsAA.block_diag — MethodB = block_diag(As::LinearMapAX... ; tryop::Bool)Make block diagonal LinearMapAX object from blocks.
Return a LinearMapAM unless tryop and all blocks have same idim and odim.
Default for tryop is true if all blocks are type LinearMapAO.
LinearMapsAA.lmaa_hcat — MethodB = lmaa_hcat(A1, A2, ...) hcat of multiple objects
LinearMapsAA.lmaa_hvcat — MethodB = lmaa_hvcat(rows, A1, A2, ...) hvcat of multiple objects
LinearMapsAA.lmaa_vcat — MethodB = lmaa_vcat(A1, A2, ...) vcat of multiple objects
LinearMapsAA.lmao_mul! — Method lmao_mul!(Y, A, X, α, β ; idim, odim)Core routine for 5-arg multiply. If A._idim = (2,3,4) and A._odim = (5,6) and if input X has size (2,3,4, 7,8) then output Y will have size (5,6, 7,8)
LinearMapsAA.redim — Methodredim(A::LinearMapAX ; idim::Dims=A._idim, odim::Dims=A._odim)"Reinterpret" the idim and odim of A
LinearMapsAA.undim — Methodundim(A::LinearMapAX)"Reinterpret" the idim and odim of A to be of AM type