Skip to content

Commit 0c31772

Browse files
authored
function barrier in SubOperator (#226)
* function barrier in SubOperator * bugfix in lu method
1 parent 1689685 commit 0c31772

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/Operators/SubOperator.jl

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,21 @@ SubOperator(A,inds,dims::Tuple{Bool,Bool},lu) = SubOperator(A,inds,Int.(dims),lu
5050

5151
function SubOperator(A,inds::NTuple{2,Block},lu)
5252
checkbounds(A,inds...)
53-
SubOperator(A,inds,(blocklengths(rangespace(A))[inds[1].n[1]],blocklengths(domainspace(A))[inds[2].n[1]]),lu)
53+
_SubOperator(A, inds, lu, domainspace(A), rangespace(A))
54+
end
55+
function _SubOperator(A, inds, lu, dsp, rsp)
56+
SubOperator(A,inds,(blocklengths(rsp)[inds[1].n[1]],
57+
blocklengths(dsp)[inds[2].n[1]]),lu)
5458
end
5559

5660
SubOperator(A, inds::NTuple{2,Block}) = SubOperator(A,inds,subblockbandwidths(A))
5761
function SubOperator(A, inds::Tuple{BlockRange{1,R},BlockRange{1,R}}) where R
5862
checkbounds(A,inds...)
59-
dims = (sum(blocklengths(rangespace(A))[inds[1].indices[1]]),
60-
sum(blocklengths(domainspace(A))[inds[2].indices[1]]))
63+
_SubOperator(A, inds, domainspace(A), rangespace(A))
64+
end
65+
function _SubOperator(A, inds, dsp, rsp)
66+
dims = (sum(blocklengths(rsp)[inds[1].indices[1]]),
67+
sum(blocklengths(dsp)[inds[2].indices[1]]))
6168
SubOperator(A,inds,dims,(dims[1]-1,dims[2]-1))
6269
end
6370

0 commit comments

Comments
 (0)