love.math.randomNormal can be JIT-compiled

--HG--
branch : minor
This commit is contained in:
Alex Szpakowski
2017-04-01 21:19:19 -03:00
parent b205b8a020
commit f8c58c54c8
2 changed files with 25 additions and 0 deletions
+11
View File
@@ -119,6 +119,7 @@ int w_RandomGenerator_getState(lua_State *L)
struct FFI_RandomGenerator
{
double (*random)(Proxy *p);
double (*randomNormal)(Proxy *p, double stddev, double mean);
};
static FFI_RandomGenerator ffifuncs =
@@ -131,6 +132,16 @@ static FFI_RandomGenerator ffifuncs =
RandomGenerator *rng = (RandomGenerator *) p->object;
return rng->random();
},
[](Proxy *p, double stdddev, double mean) -> double // randomNormal
{
// FIXME: We need better type-checking...
if (p == nullptr || p->object == nullptr || p->type == nullptr || !p->type->isa(RandomGenerator::type))
return 0.0;
RandomGenerator *rng = (RandomGenerator *) p->object;
return rng->randomNormal(stdddev) + mean;
}
};