From e918f9597ff9ac03501e3f44b3bbd34bb20efbd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Tue, 16 Apr 2024 13:09:06 +0200 Subject: [PATCH] Use axes instead of length (#276) --- src/Test/array.jl | 10 +++++----- src/dispatch.jl | 4 ++-- src/implementations/SparseArrays.jl | 14 +++++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Test/array.jl b/src/Test/array.jl index 756e744d..1a9aa2f3 100644 --- a/src/Test/array.jl +++ b/src/Test/array.jl @@ -307,10 +307,10 @@ function sum_test(matrix) @test_rewrite sum(matrix) if matrix isa AbstractMatrix @test_rewrite sum([ - 2matrix[i, j] for i in 1:size(matrix, 1), j in 1:size(matrix, 2) + 2matrix[i, j] for i in axes(matrix, 1), j in axes(matrix, 2) ]) @test_rewrite sum( - 2matrix[i, j] for i in 1:size(matrix, 1), j in 1:size(matrix, 2) + 2matrix[i, j] for i in axes(matrix, 1), j in axes(matrix, 2) ) end end @@ -318,10 +318,10 @@ end function sum_multiplication_test(matrix) if matrix isa AbstractMatrix @test_rewrite sum([ - 2matrix[i, j]^2 for i in 1:size(matrix, 1), j in 1:size(matrix, 2) + 2matrix[i, j]^2 for i in axes(matrix, 1), j in axes(matrix, 2) ]) @test_rewrite sum( - 2matrix[i, j]^2 for i in 1:size(matrix, 1), j in 1:size(matrix, 2) + 2matrix[i, j]^2 for i in axes(matrix, 1), j in axes(matrix, 2) ) end end @@ -344,7 +344,7 @@ function transpose_test(x) # If the element type does not support multiplication, e.g. # JuMP or MOI quadratic functions, then we should skip these tests. if x isa AbstractMatrix && _is_supported(*, eltype(x), eltype(x)) - y = [x[i, j] for j in 1:size(x, 2), i in 1:size(x, 1)] + y = [x[i, j] for j in axes(x, 2), i in axes(x, 1)] @test MA.isequal_canonical(x', y) @test MA.isequal_canonical(copy(transpose(x)), y) if size(x, 1) == size(x, 2) diff --git a/src/dispatch.jl b/src/dispatch.jl index 32a5da68..b6bdf92d 100644 --- a/src/dispatch.jl +++ b/src/dispatch.jl @@ -548,7 +548,7 @@ end # `eltype` of `B` might be different form the `eltype` of `A`. function Matrix(A::LinearAlgebra.Symmetric{<:AbstractMutable}) B = LinearAlgebra.copytri!(convert(Matrix, copy(A.data)), A.uplo) - for i in 1:size(A, 1) + for i in axes(A, 1) # `B[i, i]` is used instead of `A[i, i]` on Julia v1.1 hence the need # to overwrite it for `AbstractMutable`. B[i, i] = LinearAlgebra.symmetric( @@ -561,7 +561,7 @@ end function Matrix(A::LinearAlgebra.Hermitian{<:AbstractMutable}) B = LinearAlgebra.copytri!(convert(Matrix, copy(A.data)), A.uplo, true) - for i in 1:size(A, 1) + for i in axes(A, 1) # `B[i, i]` is used instead of `A[i, i]` on Julia v1.1 hence the need # to overwrite it for `AbstractMutable`. B[i, i] = LinearAlgebra.hermitian( diff --git a/src/implementations/SparseArrays.jl b/src/implementations/SparseArrays.jl index 40345024..c6988569 100644 --- a/src/implementations/SparseArrays.jl +++ b/src/implementations/SparseArrays.jl @@ -85,7 +85,7 @@ function operate!( A = parent(adjA) A_nonzeros = SparseArrays.nonzeros(A) A_rowvals = SparseArrays.rowvals(A) - for k in 1:size(ret, 2) + for k in axes(ret, 2) for col in 1:A.n cur = ret[col, k] for j in SparseArrays.nzrange(A, col) @@ -108,8 +108,8 @@ function operate!( _dim_check(ret, A, B) A_nonzeros = SparseArrays.nonzeros(A) A_rowvals = SparseArrays.rowvals(A) - for col in 1:size(A, 2) - for k in 1:size(ret, 2) + for col in axes(A, 2) + for k in axes(ret, 2) αxj = *(B[col, k], α...) for j in SparseArrays.nzrange(A, col) ret[A_rowvals[j], k] = @@ -130,8 +130,8 @@ function operate!( _dim_check(ret, A, B) rowval = SparseArrays.rowvals(B) B_nonzeros = SparseArrays.nonzeros(B) - for multivec_row in 1:size(A, 1) - for col in 1:size(B, 2) + for multivec_row in axes(A, 1) + for col in axes(B, 2) cur = ret[multivec_row, col] for k in SparseArrays.nzrange(B, col) cur = operate!!( @@ -159,11 +159,11 @@ function operate!( B = parent(adjB) B_rowvals = SparseArrays.rowvals(B) B_nonzeros = SparseArrays.nonzeros(B) - for B_col in 1:size(B, 2), k in SparseArrays.nzrange(B, B_col) + for B_col in axes(B, 2), k in SparseArrays.nzrange(B, B_col) B_row = B_rowvals[k] B_val = _mirror_transpose_or_adjoint(B_nonzeros[k], adjB) αB_val = *(B_val, α...) - for A_row in 1:size(A, 1) + for A_row in axes(A, 1) ret[A_row, B_row] = operate!!(add_mul, ret[A_row, B_row], A[A_row, B_col], αB_val) end