Skip to content

Some operations involving adjoints are not yet supported #109

@andreasvarga

Description

@andreasvarga

The following operations lead to errors:

julia> a = rand(2,2)
2×2 Array{Float64,2}:
 0.704653  0.99139 
 0.259309  0.292939

julia> A = LinearOperator(a)
Linear operator
  nrow: 2
  ncol: 2
  eltype: Float64
  symmetric: false
  hermitian: false

julia> A'+A
ERROR: type AdjointLinearOperator has no field symmetric
Stacktrace:
 [1] getproperty(::Any, ::Symbol) at .\Base.jl:20
 [2] +(::AdjointLinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}, ::LinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}) at C:\Users\Andreas\.julia\packages\LinearOperators\La2Ey\src\LinearOperators.jl:328
 [3] top-level scope at REPL[37]:1

julia> A'+a
ERROR: type AdjointLinearOperator has no field symmetric
Stacktrace:
 [1] getproperty(::Any, ::Symbol) at .\Base.jl:20
 [2] +(::AdjointLinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}, ::LinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}) at C:\Users\Andreas\.julia\packages\LinearOperators\La2Ey\src\LinearOperators.jl:328
 [3] +(::AdjointLinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}, ::Array{Float64,2}) at C:\Users\Andreas\.julia\packages\LinearOperators\La2Ey\src\LinearOperators.jl:334
 [4] top-level scope at REPL[46]:1

julia> [A A']
ERROR: type AdjointLinearOperator has no field nrow
Stacktrace:
 [1] getproperty(::Any, ::Symbol) at .\Base.jl:20
 [2] hcat(::LinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}, ::AdjointLinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}) at C:\Users\Andreas\.julia\packages\LinearOperators\La2Ey\src\LinearOperators.jl:585
 [3] top-level scope at REPL[38]:1

julia> [A' A]
ERROR: type AdjointLinearOperator has no field nrow
Stacktrace:
 [1] getproperty(::Any, ::Symbol) at .\Base.jl:20
 [2] hcat(::AdjointLinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, 
Symbol("##12#15")){Array{Float64,2}}}, ::LinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}) at C:\Users\Andreas\.julia\packages\LinearOperators\La2Ey\src\LinearOperators.jl:585
 [3] top-level scope at REPL[39]:1

julia> [a  A']
ERROR: type AdjointLinearOperator has no field nrow
Stacktrace:
 [1] getproperty(::Any, ::Symbol) at .\Base.jl:20
 [2] hcat(::LinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}, ::AdjointLinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}) at C:\Users\Andreas\.julia\packages\LinearOperators\La2Ey\src\LinearOperators.jl:585
 [3] hcat(::Array{Float64,2}, ::AdjointLinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}) at C:\Users\Andreas\.julia\packages\LinearOperators\La2Ey\src\LinearOperators.jl:582
 [4] top-level scope at REPL[40]:1

julia> [A'; A]
ERROR: type AdjointLinearOperator has no field ncol
Stacktrace:
 [1] getproperty(::Any, ::Symbol) at .\Base.jl:20
 [2] vcat(::AdjointLinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, 
Symbol("##12#15")){Array{Float64,2}}}, ::LinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}) at C:\Users\Andreas\.julia\packages\LinearOperators\La2Ey\src\LinearOperators.jl:614
 [3] top-level scope at REPL[43]:1

julia> [A'; a]
ERROR: type AdjointLinearOperator has no field ncol
Stacktrace:
 [1] getproperty(::Any, ::Symbol) at .\Base.jl:20
 [2] vcat(::AdjointLinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, 
Symbol("##12#15")){Array{Float64,2}}}, ::LinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, Symbol("##12#15")){Array{Float64,2}}}) at C:\Users\Andreas\.julia\packages\LinearOperators\La2Ey\src\LinearOperators.jl:614
 [3] vcat(::AdjointLinearOperator{Float64,getfield(LinearOperators, Symbol("##10#13")){Array{Float64,2}},getfield(LinearOperators, Symbol("##11#14")){Array{Float64,2}},getfield(LinearOperators, 
Symbol("##12#15")){Array{Float64,2}}}, ::Array{Float64,2}) at C:\Users\Andreas\.julia\packages\LinearOperators\La2Ey\src\LinearOperators.jl:609
 [4] top-level scope at REPL[44]:1

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions