I don't really have an opinion about how much or little checking to do.  If we want to make sure that the user is passing a real symmetric positive semidefinite matrix then do we also want to check that the input is square and then check that it is symmetric, and maybe also check that it is real-valued?  I don't have a feel for how much/little so I left out the checking.