using SparsityDetection
function f(du, u, p, t)
Q = reinterpret(Complex{Float64}, u)
dQ = reinterpret(Complex{Float64}, du)
dQ .= Q
end
input = rand(Float64, 4)
output = similar(input)
sparsity_pattern = sparsity!((dx, x) -> f(dx, x, [], 0), output, input)
jac = Float64.(sparse(sparsity_pattern))
colors = matrix_colors(jac)