git.iko.soy/rowtype-yoga/psfp
on 3fd5ecd help sign in
48 lines 1.4 kB history raw
1// Generated by purs version 0.13.6
2"use strict";
3var Data_EuclideanRing = require("../Data.EuclideanRing/index.js");
4var Data_Int = require("../Data.Int/index.js");
5var Data_Maybe = require("../Data.Maybe/index.js");
6var $$Math = require("../Math/index.js");
7var Seed = function (x) {
8 return x;
9};
10var unSeed = function (v) {
11 return v;
12};
13var seedMin = 1;
14var lcgM = 2147483647;
15var seedMax = lcgM - 1 | 0;
16var mkSeed = function (x) {
17 var ensureBetween = function (min) {
18 return function (max) {
19 return function (n) {
20 var rangeSize = max - min | 0;
21 var n$prime = Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt)(n)(rangeSize);
22 var $361 = n$prime < min;
23 if ($361) {
24 return n$prime + max | 0;
25 };
26 return n$prime;
27 };
28 };
29 };
30 return ensureBetween(seedMin)(seedMax)(x);
31};
32var lcgC = 0;
33var lcgA = 48271;
34var lcgPerturb = function (d) {
35 return function (v) {
36 return Seed(Data_Maybe.fromJust()(Data_Int.fromNumber($$Math.remainder(Data_Int.toNumber(lcgA) * Data_Int.toNumber(v) + d)(Data_Int.toNumber(lcgM)))));
37 };
38};
39var lcgNext = lcgPerturb(Data_Int.toNumber(lcgC));
40module.exports = {
41 mkSeed: mkSeed,
42 unSeed: unSeed,
43 lcgA: lcgA,
44 lcgC: lcgC,
45 lcgM: lcgM,
46 lcgNext: lcgNext,
47 lcgPerturb: lcgPerturb
48};