void nflcp(void) { int i; gennf(); setlcp( nstrats[1] + 1 + nstrats[2] + 1 ); /* fill M */ /* -A */ payratmatcpy(nfpay, 0, 1, 0, nstrats[1], nstrats[2], lcpM, 0, nstrats[1] + 1); /* -E\T */ for (i = 0; i < nstrats[1]; i++) lcpM[i][nstrats[1] + 1 + nstrats[2]] = ratneg(ratfromi(1)); /* F */ for (i = 0; i < nstrats[2]; i++) lcpM[nstrats[1]][nstrats[1] + 1 + i] = ratfromi(1); /* -B\T */ payratmatcpy(nfpay, 1, 1, 1, nstrats[1], nstrats[2], lcpM, nstrats[1] + 1, 0); /* -F\T */ for (i = 0; i < nstrats[2]; i++) lcpM[ nstrats[1] + 1 + i] [nstrats[1]] = ratneg(ratfromi(1)); /* E */ for (i = 0; i < nstrats[1]; i++) lcpM[ nstrats[1] + 1 + nstrats[2]] [i] = ratfromi(1); /* define RHS q */ for (i = 0; i < lcpdim; i++) rhsq[i] = ratfromi(0); rhsq[ nstrats[1] ] = ratneg(ratfromi(1)); rhsq[ nstrats[1] + 1 + nstrats[2] ] = ratneg(ratfromi(1)); }
static int rf_rng (lua_State *L) { nl_RNG *r = getrng(L); lua_Number dfn = luaL_checknumber(L, 1); lua_Number dfd = luaL_checknumber(L, 2); lua_Number xnc = luaL_optnumber(L, 3, 0); checknp(L, dfn); checknp(L, dfd); checkneg(L, xnc); setdeviate(number, (xnc == 0) ? genf(r, dfn, dfd) : gennf(r, dfn, dfd, xnc), 4); return 1; }