def _vmf_log_asymptotic(X, kappa, mu):
n_examples, n_features = X.shape<EOL>log_vfm = kappa * X.dot(mu).T + -_log_H_asymptotic(n_features / <NUM_LIT> - <NUM_LIT:1.>, kappa)<EOL>return log_vfm<EOL>
Compute log(f(x|theta)) via Amos approximation

        log(f(x|theta)) = theta' x - log(H_{d/2-1})(\|theta\|)

    where theta = kappa * X, \|theta\| = kappa.

    Computing _vmf_log helps with numerical stability / loss of precision for
    for large values of kappa and n_features.

    See utility function implementation notes in movMF.R from
    https://cran.r-project.org/web/packages/movMF/index.html