Methods list
LinearMapsAA.LinearMapsAA
LinearMapsAA.LinearMapAM
LinearMapsAA.LinearMapAO
LinearMapsAA.LinearMapAO
LinearMapsAA.LinearMapAX
Base.:*
Base.:*
Base.hcat
Base.hvcat
Base.kron
Base.show
Base.vcat
LinearAlgebra.mul!
LinearMapsAA.LinearMapAA
LinearMapsAA.LinearMapAA
LinearMapsAA.LinearMapAA
LinearMapsAA.LinearMapAA
LinearMapsAA.block_diag
LinearMapsAA.lmaa_hcat
LinearMapsAA.lmaa_hvcat
LinearMapsAA.lmaa_vcat
LinearMapsAA.lmao_mul!
LinearMapsAA.redim
LinearMapsAA.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
:eltype
Do
: output dimensionalityDi
: input dimensionalityLM
:LinearMap
typeP
:NamedTuple
type
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.λ * X
Extends 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 AbstractArray
s 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
,_odim
T::Type = eltype(L)
idim::Dims = (size(L,2),)
odim::Dims = (size(L,1),)
operator::Bool
by default:false
if bothidim
&odim
are 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