@@ -32,15 +32,14 @@ function LowRankOperator(U::Vector{VFun{S,T1}}, V::Vector{<:Operator}) where {S,
32
32
LowRankOperator (strictconvert (Vector{VFun{S,T}},U), map (Operator{T}, V))
33
33
end
34
34
35
+ LowRankOperator (A:: Fun , B:: Operator ) = LowRankOperator ([A], [B])
35
36
36
- LowRankOperator (B:: AbstractVector ,S... ) = LowRankOperator (strictconvert (Vector{Operator{Float64}},B),S... )
37
37
38
- LowRankOperator (A:: Fun ,B:: Operator ) = LowRankOperator ([A],[B])
39
-
40
-
41
- convert (:: Type{Operator{T}} ,L:: LowRankOperator{S} ) where {S,T} =
38
+ function convert (:: Type{Operator{T}} ,L:: LowRankOperator{S} ) where {S,T}
39
+ L isa Operator{T} && return L
42
40
LowRankOperator {S,T} (strictconvert (Vector{VFun{S,T}},L. U),
43
- strictconvert (Vector{Operator{T}},L. V))
41
+ map (Operator{T}, L. V))
42
+ end
44
43
45
44
46
45
datasize (L:: LowRankOperator ,k) =
@@ -55,9 +54,9 @@ promotedomainspace(L::LowRankOperator,sp::Space) = LowRankOperator(L.U,map(v->pr
55
54
56
55
function Base. getindex (L:: LowRankOperator , k:: Integer ,j:: Integer )
57
56
ret= zero (eltype (L))
58
- for p in eachindex (L. U)
59
- if k ≤ ncoefficients (L . U[p] )
60
- ret += coefficient (L . U[p] , k) * L. V[p][j]
57
+ for (p, LUp) in enumerate (L. U)
58
+ if k ≤ ncoefficients (LUp )
59
+ ret += coefficient (LUp , k) * L. V[p][j]
61
60
end
62
61
end
63
62
ret
0 commit comments