diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index be1337d..3e89d20 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -25,7 +25,6 @@ jobs: fail-fast: false matrix: version: - - '1.0' - '1.6' - '1' - 'nightly' diff --git a/Project.toml b/Project.toml index feef0cc..136e1e4 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "ToeplitzMatrices" uuid = "c751599d-da0a-543b-9d20-d0a503d91d24" -version = "0.8.4" +version = "0.9.0" [deps] AbstractFFTs = "621f4979-c628-5d54-868e-fcf4e3e8185c" @@ -25,7 +25,7 @@ LinearAlgebra = "<0.0.1, 1" Random = "<0.0.1, 1" StatsBase = "0.32, 0.33, 0.34" Test = "<0.0.1, 1" -julia = "1.0" +julia = "1.6" [extras] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" diff --git a/src/ToeplitzMatrices.jl b/src/ToeplitzMatrices.jl index 9a2a92c..52ce347 100644 --- a/src/ToeplitzMatrices.jl +++ b/src/ToeplitzMatrices.jl @@ -5,6 +5,7 @@ import Base: adjoint, convert, transpose, size, getindex, similar, copy, getprop import Base: parent import Base: ==, +, -, *, \ import Base: AbstractMatrix +import Base: require_one_based_indexing import LinearAlgebra: Cholesky, Factorization import LinearAlgebra: ldiv!, factorize, lmul!, pinv, eigvals, eigvecs, eigen, Eigen, det import LinearAlgebra: cholesky!, cholesky, tril!, triu!, checksquare, rmul!, dot, mul!, tril, triu, diag @@ -23,14 +24,6 @@ const HermOrSym{T,M} = Union{Hermitian{T,M}, Symmetric{T,M}} export AbstractToeplitz, Toeplitz, SymmetricToeplitz, Circulant, LowerTriangularToeplitz, UpperTriangularToeplitz, TriangularToeplitz, Hankel export durbin, trench, levinson -@static if isdefined(Base, :require_one_based_indexing) - const require_one_based_indexing = Base.require_one_based_indexing -else - function require_one_based_indexing(A...) - !Base.has_offset_axes(A...) || throw(ArgumentError("offset arrays are not supported but got an array with index other than 1")) - end -end - include("iterativeLinearSolvers.jl") # Abstract diff --git a/src/special.jl b/src/special.jl index 9195903..aaffdd1 100644 --- a/src/special.jl +++ b/src/special.jl @@ -182,7 +182,6 @@ function SymmetricToeplitz{T}(A::AbstractMatrix, uplo::Symbol = :U) where T end end SymmetricToeplitz(A::AbstractMatrix, uplo::Symbol) = SymmetricToeplitz{eltype(A)}(A,uplo) -Symmetric(A::AbstractToeplitz, uplo::Symbol = :U) = SymmetricToeplitz(A,uplo) function UpperTriangularToeplitz{T}(A::AbstractMatrix) where T checksquare(A) @@ -192,11 +191,9 @@ function LowerTriangularToeplitz{T}(A::AbstractMatrix) where T checksquare(A) LowerTriangularToeplitz{T}(_vc(A)) end -_toeplitztype(s::Symbol) = Symbol(s,"Toeplitz") +_toeplitztype(s::Symbol) = Symbol(s, :Toeplitz) for TYPE in (:UpperTriangular, :LowerTriangular) @eval begin - $TYPE{T}(A::AbstractToeplitz) where T = $(_toeplitztype(TYPE)){T}(A) - $TYPE(A::AbstractToeplitz) = $TYPE{eltype(A)}(A) convert(::Type{TriangularToeplitz{T}},A::$(_toeplitztype(TYPE))) where T<:Number = convert($(_toeplitztype(TYPE)){T},A) end end diff --git a/test/runtests.jl b/test/runtests.jl index 25efde2..fd32823 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -620,19 +620,19 @@ end A = randn(ComplexF64, 3, 3) T = Toeplitz(A) TU = UpperTriangular(T) - @test TU isa TriangularToeplitz + @test TU isa UpperTriangular @test istriu(TU) @test TU == Toeplitz(triu(A)) == triu(T) - @test TU'ones(3) == Matrix(TU)'ones(3) - @test transpose(TU)*ones(3) == transpose(Matrix(TU))*ones(3) - @test triu(TU, 1)::TriangularToeplitz == triu(Matrix(T), 1) == triu(T,1) + @test TU' * ones(3) ≈ Matrix(TU)' * ones(3) + @test transpose(TU)*ones(3) ≈ transpose(Matrix(TU))*ones(3) + @test triu(TU, 1) == triu(Matrix(T), 1) == triu(T,1) TL = LowerTriangular(T) - @test TL isa TriangularToeplitz + @test TL isa LowerTriangular @test istril(TL) @test TL == Toeplitz(tril(A)) == tril(T) - @test TL'ones(3) == Matrix(TL)'ones(3) - @test transpose(TL)*ones(3) == transpose(Matrix(TL))*ones(3) - @test tril(TL, -1)::TriangularToeplitz == tril(Matrix(T), -1) == tril(T,-1) + @test TL' * ones(3) ≈ Matrix(TL)' * ones(3) + @test transpose(TL)*ones(3) ≈ transpose(Matrix(TL))*ones(3) + @test tril(TL, -1) == tril(Matrix(T), -1) == tril(T,-1) for n in (65, 128) A = randn(n, n) TU = TriangularToeplitz(A, :U)