{{#global}}
#include <limits.h>
{{/global}}
using State = unsigned int;
{{ GENERATED_CODE }}
void evaluate(Context ctx) {
unsigned int* seedp = getState(ctx);
if (isInputDirty<input_RST>(ctx))
*seedp = (unsigned int)(getValue<input_SEED>(ctx) * ULONG_MAX);
if (isInputDirty<input_UPD>(ctx)) {
int rnd = rand_r(seedp);
emitValue<output_OUT>(ctx, (Number)rnd / ((Number)RAND_MAX + 1.0));
}
}