Arguments
fname
name of user defined function fname(xmat, j, mixture.param). xmat is an $n \times p$ matrix of $n$ samples with $p$ dimensions. fname returns a vector of function values for each row in xmat. fname is defined for $j = 1, \cdots, J$. $j = 1, \cdots, J - 1$ corresponds to different proposal mixture components, and $j = J$ corresponds to the defensive mixture component.
rpname
name of user definded function rpname(n, mixture.param). It generates $n$ random samples from target distribution pname. Parameters can be specified in mixture.param. rpname returns an $n \times p$ matrix.
dpname
name of user defined function dpname(xmat, mixture.param). It returns the density of xmat from the target distribution $pname$ as a vector of length nrow(xmat). Note that only the ratio between dpname and dqname matters. So dpname and dqname can return values of $C \times$dpname and $C \times$dqname respectively.
rqname
name of user defined function rqname(n, j, mixture.param). It generate $n$ random samples from the $j^{th}$ mixture component of proposal mixture distribution. rqname returns an $n \times p$ matrix. rqname is defined for $j = 1, \cdots, J - 1$.
dqname
name of user defined function dqname(xmat, j, mixture.param). It returns the density of xmat from the proposal distribution $q_j$ as a vector of length nrow(xmat). dqname is defined for $j = 1, \cdots, J - 1$. Note that only the ratio between dpname and dqname matters. So dpname and dqname can return values of $C \times$dpname and $C \times$dqname respectively.
mixture.param
mixture.param = list(p, J, ...), where $p$ is the dimension of the sample, and $J$ is the number of mixture components, including the defensive one. mixture.param should be compatible with user defined functions f(n, j, mixture.param), rp(n, mixture.param), rq(n, j, mixture.param), dp(xmat, mixture.param), dq(xmat, j, mixture.param)