*i*in a sample of size

*n*has two random variables: a latent variable

**follows a Poisson distribution with mean**

*Y*_{i}**, and an observed variable**

*λ*_{i}**follows a Bernoulli distribution with probability**

*X*_{i}**that is certain function of the first variable, i.e.**

*π*_{i}**=**

*π*_{i }*f*(

**). Does Stata (Mata in particular) provide any function(s) for approximating the following summation?**

*Y*_{i}\[ \sum_{y=0}^{\infty} f(Y_i)^{X_i} [1-f(Y_i)]^{1-X_i} \biggl( \frac{\lambda_i^{Y_i}}{Y_i!}e^{-\lambda_i} \biggl) \]

The only way I know for the moment is to use the while loop and do the summation from

**and stop the loop when the change between iterations is smaller than a certain value, e.g.**

*y=0***. However, this way is inefficient, because subjects have different**

*1e-8***and**

*λ*_{i}**, and the numbers of loop to achieve the stop criterion vary over subjects. Therefore I am looking for more clever methods.**

*X*_{i}I know that, for certain forms of continous variables, Stata performs Gauss–Hermite quadrature to approximate the values of integrals, and the undocumented Mata function _gauss_hermite_nodes() can help us to do so. I wonder whether there are Stata/Mata functions that can help out in approximating the sum of an infinite series for discrete variabels.

Thanks.