Skip to content

Commit f80058d

Browse files
committed
small cleanup of all rref types
1 parent d8b2b62 commit f80058d

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

src/utils.jl

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -401,26 +401,25 @@ function _remove_empty(A::Union{CTMatrixTypes, Matrix{<: Number}, BitMatrix, Mat
401401
end
402402
end
403403

404-
function _rref_no_col_swap(M::CTMatrixTypes, row_range::AbstractUnitRange{Int},
405-
col_range::AbstractUnitRange{Int})
404+
function _rref_no_col_swap(M::CTMatrixTypes, row_range::AbstractUnitRange{Int} = axes(M, 1),
405+
col_range::AbstractUnitRange{Int} = axes(M, 2))
406406

407407
A = deepcopy(M)
408408
_rref_no_col_swap!(A, row_range, col_range)
409409
return A
410410
end
411-
# TODO repeated signature
412-
_rref_no_col_swap(M::CTMatrixTypes, row_range::Base.OneTo{Int}, col_range::Base.OneTo{Int}) = _rref_no_col_swap(M, 1:row_range.stop, 1:col_range.stop)
413-
_rref_no_col_swap(M::CTMatrixTypes) = _rref_no_col_swap(M, axes(M, 1), axes(M, 2))
414411

415412
function _rref_no_col_swap_binary(A::Union{BitMatrix, Matrix{Bool}, Matrix{<: Integer}},
416-
row_range::AbstractUnitRange{Int} = 1:size(A, 1), col_range::AbstractUnitRange{Int} = 1:size(A, 2))
413+
row_range::AbstractUnitRange{Int} = axes(A, 1), col_range::AbstractUnitRange{Int} = axes(A, 2))
417414

418415
B = deepcopy(A)
419416
_rref_no_col_swap_binary!(B, row_range, col_range)
420417
return B
421418
end
422419

423-
function _rref_no_col_swap!(A::CTMatrixTypes, row_range::AbstractUnitRange{Int}, col_range::AbstractUnitRange{Int})
420+
function _rref_no_col_swap!(A::CTMatrixTypes, row_range::AbstractUnitRange{Int} = axes(A, 1),
421+
col_range::AbstractUnitRange{Int} = axes(A, 2))
422+
424423
# don't do anything to A if the range is empty
425424
isempty(row_range) && return nothing
426425
isempty(col_range) && return nothing
@@ -502,7 +501,7 @@ function _rref_no_col_swap!(A::CTMatrixTypes, row_range::AbstractUnitRange{Int},
502501
end
503502

504503
function _rref_no_col_swap_binary!(A::Union{BitMatrix, Matrix{Bool}, Matrix{<: Integer}},
505-
row_range::AbstractUnitRange{Int} = 1:size(A, 1), col_range::AbstractUnitRange{Int} = 1:size(A, 2))
504+
row_range::AbstractUnitRange{Int} = axes(A, 1), col_range::AbstractUnitRange{Int} = axes(A, 2))
506505

507506
isempty(row_range) && return nothing
508507
isempty(col_range) && return nothing
@@ -544,16 +543,16 @@ function _rref_no_col_swap_binary!(A::Union{BitMatrix, Matrix{Bool}, Matrix{<: I
544543
return nothing
545544
end
546545

547-
function _rref_col_swap(M::CTMatrixTypes, row_range::AbstractUnitRange{Int}, col_range::AbstractUnitRange{Int})
546+
function _rref_col_swap(M::CTMatrixTypes, row_range::AbstractUnitRange{Int} = axes(A, 1),
547+
col_range::AbstractUnitRange{Int} = axes(A, 2))
548548

549549
A = deepcopy(M)
550550
rnk, P = _rref_col_swap!(A, row_range, col_range)
551551
return rnk, A, P
552552
end
553-
_rref_col_swap(M::CTMatrixTypes, row_range::Base.OneTo{Int64}, col_range::Base.OneTo{Int64}) = _rref_col_swap(M, 1:row_range.stop, 1:col_range.stop)
554-
_rref_col_swap(M::CTMatrixTypes) = _rref_col_swap(M, axes(M, 1), axes(M, 2))
555553

556-
function _rref_col_swap!(A::CTMatrixTypes, row_range::AbstractUnitRange{Int}, col_range::AbstractUnitRange{Int})
554+
function _rref_col_swap!(A::CTMatrixTypes, row_range::AbstractUnitRange{Int} = axes(A, 1),
555+
col_range::AbstractUnitRange{Int} = axes(A, 2))
557556

558557
# don't do anything to A if the range is empty, return rank 0 and missing permutation matrix
559558
isempty(row_range) && return 0, missing
@@ -674,7 +673,15 @@ function _rref_col_swap!(A::CTMatrixTypes, row_range::AbstractUnitRange{Int}, co
674673
return rnk, P
675674
end
676675

677-
function _rref_symp_col_swap!(A::CTMatrixTypes, row_range::AbstractUnitRange{Int}, col_range::AbstractUnitRange{Int})
676+
function _rref_symp_col_swap(A::CTMatrixTypes, row_range::AbstractUnitRange{Int} = axes(A, 1),
677+
col_range::AbstractUnitRange{Int} = axes(A, 2))
678+
B = deepcopy(A)
679+
_rref_symp_col_swap!(B, row_range, col_range)
680+
return B
681+
end
682+
683+
function _rref_symp_col_swap!(A::CTMatrixTypes, row_range::AbstractUnitRange{Int} = axes(A, 1),
684+
col_range::AbstractUnitRange{Int} = axes(A, 2))
678685

679686
# don't do anything to A if the range is empty, return rank 0 and missing permutation matrix
680687
isempty(row_range) && return 0, missing
@@ -802,9 +809,6 @@ function _rref_symp_col_swap!(A::CTMatrixTypes, row_range::AbstractUnitRange{Int
802809
end
803810
return rnk, P
804811
end
805-
_rref_symp_col_swap!(A::CTMatrixTypes) = _rref_symp_col_swap!(A, axes(A, 1), axes(A, 2))
806-
_rref_symp_col_swap(A::CTMatrixTypes) = (B = deepcopy(A); _rref_symp_col_swap!(B, axes(B, 1),
807-
axes(B, 2)); return B;)
808812

809813
function _col_permutation!(X::Matrix{T}, A::Matrix{T}, p::AbstractVector{Int}) where T
810814
length(p) == size(A, 2) || throw(ArgumentError("`p` should have length `size(A, 2)`."))

0 commit comments

Comments
 (0)