One question: Do you plan to call this method in a loop?
Then it might be good to also have a vector version of it that computes log-pdf for an SGVector of Xs