diff --git a/Project.toml b/Project.toml index cf45b57..7aad76b 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "TensorAlgebra" uuid = "68bd88dc-f39d-4e12-b2ca-f046b68fcc6a" authors = ["ITensor developers and contributors"] -version = "0.1.5" +version = "0.1.6" [deps] ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" diff --git a/src/BaseExtensions/indexin.jl b/src/BaseExtensions/indexin.jl index 80a6f58..c302823 100644 --- a/src/BaseExtensions/indexin.jl +++ b/src/BaseExtensions/indexin.jl @@ -1,5 +1,5 @@ # `Base.indexin` doesn't handle tuples -indexin(x, y) = Base.indexin(x, y) -indexin(x, y::Tuple) = Base.indexin(x, collect(y)) -indexin(x::Tuple, y) = Tuple{Vararg{Any,length(x)}}(Base.indexin(x, y)) -indexin(x::Tuple, y::Tuple) = Tuple{Vararg{Any,length(x)}}(Base.indexin(x, collect(y))) +indexin(x, y::AbstractArray) = Base.indexin(x, y) +indexin(x, y) = Base.indexin(x, collect(y)) +indexin(x::Tuple, y::AbstractArray) = Tuple{Vararg{Any,length(x)}}(Base.indexin(x, y)) +indexin(x::Tuple, y) = Tuple{Vararg{Any,length(x)}}(Base.indexin(x, collect(y))) diff --git a/src/contract/contract.jl b/src/contract/contract.jl index b2ad6fa..dae9441 100644 --- a/src/contract/contract.jl +++ b/src/contract/contract.jl @@ -26,10 +26,10 @@ end function contract( a1::AbstractArray, - labels1::Tuple, + labels1, a2::AbstractArray, - labels2::Tuple, - α::Number=true; + labels2, + α::Number=one(Bool); alg=default_contract_alg(), kwargs..., ) @@ -39,10 +39,10 @@ end function contract( alg::Algorithm, a1::AbstractArray, - labels1::Tuple, + labels1, a2::AbstractArray, - labels2::Tuple, - α::Number=true; + labels2, + α::Number=one(Bool); kwargs..., ) labels_dest = output_labels(contract, alg, a1, labels1, a2, labels2, α; kwargs...) @@ -50,12 +50,12 @@ function contract( end function contract( - labels_dest::Tuple, + labels_dest, a1::AbstractArray, - labels1::Tuple, + labels1, a2::AbstractArray, - labels2::Tuple, - α::Number=true; + labels2, + α::Number=one(Bool); alg=default_contract_alg(), kwargs..., ) @@ -64,13 +64,13 @@ end function contract!( a_dest::AbstractArray, - labels_dest::Tuple, + labels_dest, a1::AbstractArray, - labels1::Tuple, + labels1, a2::AbstractArray, - labels2::Tuple, - α::Number=true, - β::Number=false; + labels2, + α::Number=one(Bool), + β::Number=zero(Bool); alg=default_contract_alg(), kwargs..., ) @@ -80,12 +80,12 @@ end function contract( alg::Algorithm, - labels_dest::Tuple, + labels_dest, a1::AbstractArray, - labels1::Tuple, + labels1, a2::AbstractArray, - labels2::Tuple, - α::Number=true; + labels2, + α::Number=one(Bool); kwargs..., ) biperm_dest, biperm1, biperm2 = blockedperms(contract, labels_dest, labels1, labels2) @@ -95,11 +95,11 @@ end function contract!( alg::Algorithm, a_dest::AbstractArray, - labels_dest::Tuple, + labels_dest, a1::AbstractArray, - labels1::Tuple, + labels1, a2::AbstractArray, - labels2::Tuple, + labels2, α::Number, β::Number; kwargs..., @@ -119,6 +119,6 @@ function contract( kwargs..., ) a_dest = allocate_output(contract, biperm_dest, a1, biperm1, a2, biperm2, α) - contract!(alg, a_dest, biperm_dest, a1, biperm1, a2, biperm2, α, false; kwargs...) + contract!(alg, a_dest, biperm_dest, a1, biperm1, a2, biperm2, α, zero(Bool); kwargs...) return a_dest end