The user should use function maximum_likelihood(), which is a
user-friendly wrapper for one of the two functions (mle() or
mle_rst()) depending on whether argument zero is or is not
NULL.
Argument start_p specifies the start point for the optimization;
default NULL is interpreted as rep(1/n,n) where n
is dim(HD) (ie neutral position).
It is not necessary to normalize start_p: this is done by
dhyperdirichlet().
Non-default values for this argument are interpreted by
dhyperdirichlet().
Argument zero, if not default NULL, is Boolean in the
standard case; but if it is not Boolean, it is interpreted as a numeric
vector of integers indicating which components of the distribution are
restricted to zero. An example is given below.