function compute_density_profile(orbital::T, xgrid::Array{DType,1}, obdm::Array{DType,2}; kwargs...)::Array{DType,1} where T<:Orbital """ Takes the one-body density matrix and returns the spatial density-profile on the specified position grid (unnormalized). """ density = zeros(DType, (length(xgrid),)) for i=1:size(obdm)[1] di = conj.(orbital.(i, xgrid)) for j=1:size(obdm)[2] density .+= di.* orbital.(j, xgrid) .* obdm[i,j] end end return -density end function compute_updown_noise_correlation(orbital::T, xgrid::Array{DType,1}, tbdm::Array{DType,4}; kwargs...)::Array{DType,2} where T<:Orbital """ Takes the two-body density matrix (for up and down) and returns the spatial noise-correlation-profile on the specified position grid (unnormalized). """ nn_corr = zeros(DType, (length(xgrid),length(xgrid))) for i=1:size(obdm)[1] di = conj.(orbital.(i, xgrid)) for j=1:size(obdm)[2] density .+= di.* orbital.(j, xgrid) .* obdm[i,j] end end return -density end