We can convert the current method into an under-smoothed naive method by replacing rectangular step with density estimation. I think the matrix multiplication step is slow. The advantage would be that if I define a future method with an election_list function, I could compute the undersmoothed naive density.