Skip to content

Commit

Permalink
More elegant way for diagonaloperator to accept different types
Browse files Browse the repository at this point in the history
  • Loading branch information
david-pl committed Jan 12, 2017
1 parent 7645e23 commit b64fce2
Showing 1 changed file with 2 additions and 6 deletions.
8 changes: 2 additions & 6 deletions src/operators_sparse.jl
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,9 @@ end
"""
Diagonal operator.
"""
function diagonaloperator(b::Basis, diag::Vector{Complex128})
function diagonaloperator{T <: Number}(b::Basis, diag::Vector{T})
@assert 1 <= length(diag) <= b.shape[1]
SparseOperator(b, spdiagm(diag))
SparseOperator(b, spdiagm(complex(float(diag))))
end

diagonaloperator(b::Basis, diag::Vector{Float64}) = diagonaloperator(b, complex(diag))
diagonaloperator(b::Basis, diag::Vector{Int}) = diagonaloperator(b, complex(float(diag)))
diagonaloperator(b::Basis, diag::Vector{Complex{Int}}) = diagonaloperator(b, float(diag))

end # module

0 comments on commit b64fce2

Please sign in to comment.