Exemple #1
0
inline double dcdflib_nbin_quantile(double p, double r, double sf)
{
   int what = 2;
   int status = 0;
   double x, bound, q(1 - p), sfc(1 - sf);
   cdfnbn(&what, &p, &q, &x, &r, &sf, &sfc, &status, &bound);
   return x;
}
Exemple #2
0
inline double dcdflib_nbin_cdf(double x, double r, double sf)
{
   int what = 1;
   int status = 0;
   double p, q, bound, sfc(1 - sf);
   cdfnbn(&what, &p, &q, &x, &r, &sf, &sfc, &status, &bound);
   return p;
}
Exemple #3
0
void V_cdfnbn(int *which, double *p, double *q, double *s, double *xn,
	      double *pr, double *ompr, int *status, double *bound, int *len)
{
    int i;
    for (i = 0; i < *len; i++) {
	cdfnbn((int *)which, &p[i], &q[i], &s[i], &xn[i],
	       &pr[i], &ompr[i], (int *)&status[i], &bound[i]);
    }
}
Exemple #4
0
static int cdf_pnbinom (lua_State *L) {
  /* stack should contain s, xn, pr */
  lua_Number s = luaL_checknumber(L, 1);
  lua_Number xn = luaL_checknumber(L, 2);
  lua_Number pr = luaL_checknumber(L, 3);
  lua_Number p, q, ompr, bound;
  int which = 1;
  int status;
  check_nbinom(L, 1, s, xn, pr);
  ompr = 1 - pr;
  cdfnbn(&which, &p, &q, &s, &xn, &pr, &ompr, &status, &bound);
  check_status(status, bound);
  lua_pushnumber(L, p);
  return 1;
}
Exemple #5
0
static int cdf_qnbinom (lua_State *L) {
  /* stack should contain p, xn, pr */
  lua_Number p = luaL_checknumber(L, 1);
  lua_Number xn = luaL_checknumber(L, 2);
  lua_Number pr = luaL_checknumber(L, 3);
  int si = 0;
  check_nbinom(L, 2, p, xn, pr);
  if (p==1) {
    lua_pushnumber(L, HUGE_VAL);
    return 1;
  }
  if (p>0) {
    lua_Number q = 1-p;
    lua_Number ompr = 1-pr;
    lua_Number s, bound;
    int which = 2;
    int status;
    cdfnbn(&which, &p, &q, &s, &xn, &pr, &ompr, &status, &bound);
    check_status(status, bound);
    lua_number2int(si, s);
  }
  lua_pushinteger(L, si);
  return 1;
}