Skip to content

Commit dd3e4d8

Browse files
authored
Update for DerivableInterfaces.jl v0.5 (#29)
1 parent 9c42b2a commit dd3e4d8

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "DiagonalArrays"
22
uuid = "74fd4be6-21e2-4f6f-823a-4360d37c7a77"
33
authors = ["ITensor developers <[email protected]> and contributors"]
4-
version = "0.3.6"
4+
version = "0.3.7"
55

66
[deps]
77
ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"
@@ -12,7 +12,7 @@ SparseArraysBase = "0d5efcca-f356-4864-8770-e1ed8d78f208"
1212

1313
[compat]
1414
ArrayLayouts = "1.10.4"
15-
DerivableInterfaces = "0.4"
15+
DerivableInterfaces = "0.5"
1616
FillArrays = "1.13.0"
1717
LinearAlgebra = "1.10.0"
1818
SparseArraysBase = "0.5"

src/abstractdiagonalarray/diagonalarraydiaginterface.jl

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,26 @@ diagview(a::AbstractDiagonalArray) = throw(MethodError(diagview, Tuple{typeof(a)
44

55
using DerivableInterfaces: DerivableInterfaces, @interface
66
using SparseArraysBase:
7-
SparseArraysBase, AbstractSparseArrayInterface, AbstractSparseArrayStyle ## , StorageIndex, StorageIndices
7+
SparseArraysBase, AbstractSparseArrayInterface, AbstractSparseArrayStyle
88

9-
abstract type AbstractDiagonalArrayInterface <: AbstractSparseArrayInterface end
9+
abstract type AbstractDiagonalArrayInterface{N} <: AbstractSparseArrayInterface{N} end
1010

11-
struct DiagonalArrayInterface <: AbstractDiagonalArrayInterface end
11+
struct DiagonalArrayInterface{N} <: AbstractDiagonalArrayInterface{N} end
12+
DiagonalArrayInterface{M}(::Val{N}) where {M,N} = DiagonalArrayInterface{N}()
13+
DiagionalArrayInterface(::Val{N}) where {N} = DiagonalArrayInterface{N}()
14+
DiagonalArrayInterface() = DiagonalArrayInterface{Any}()
1215

13-
function DerivableInterfaces.arraytype(::AbstractDiagonalArrayInterface, elt::Type)
14-
return DiagonalArray{elt}
16+
function Base.similar(::AbstractDiagonalArrayInterface, elt::Type, ax::Tuple)
17+
return similar(DiagonalArray{elt}, ax)
18+
end
19+
function DerivableInterfaces.interface(::Type{<:AbstractDiagonalArray{<:Any,N}}) where {N}
20+
return DiagonalArrayInterface{N}()
1521
end
16-
DerivableInterfaces.interface(::Type{<:AbstractDiagonalArray}) = DiagonalArrayInterface()
1722

1823
abstract type AbstractDiagonalArrayStyle{N} <: AbstractSparseArrayStyle{N} end
1924

20-
function DerivableInterfaces.interface(::Type{<:AbstractDiagonalArrayStyle})
21-
return DiagonalArrayInterface()
25+
function DerivableInterfaces.interface(::Type{<:AbstractDiagonalArrayStyle{N}}) where {N}
26+
return DiagonalArrayInterface{N}()
2227
end
2328

2429
struct DiagonalArrayStyle{N} <: AbstractDiagonalArrayStyle{N} end

0 commit comments

Comments
 (0)