git.iko.soy/rowtype-yoga/yoga-r3f
on main help sign in
92 lines 2.5 kB history raw
1// Generated by purs version 0.15.16
2import * as $foreign from "./foreign.js";
3import * as Data_CommutativeRing from "../Data.CommutativeRing/index.js";
4import * as Data_Eq from "../Data.Eq/index.js";
5import * as Data_Ring from "../Data.Ring/index.js";
6import * as Data_Semiring from "../Data.Semiring/index.js";
7var mod = function (dict) {
8 return dict.mod;
9};
10var gcd = function (dictEq) {
11 var eq = Data_Eq.eq(dictEq);
12 return function (dictEuclideanRing) {
13 var zero = Data_Semiring.zero(((dictEuclideanRing.CommutativeRing0()).Ring0()).Semiring0());
14 var mod1 = mod(dictEuclideanRing);
15 return function (a) {
16 return function (b) {
17 var $24 = eq(b)(zero);
18 if ($24) {
19 return a;
20 };
21 return gcd(dictEq)(dictEuclideanRing)(b)(mod1(a)(b));
22 };
23 };
24 };
25};
26var euclideanRingNumber = {
27 degree: function (v) {
28 return 1;
29 },
30 div: $foreign.numDiv,
31 mod: function (v) {
32 return function (v1) {
33 return 0.0;
34 };
35 },
36 CommutativeRing0: function () {
37 return Data_CommutativeRing.commutativeRingNumber;
38 }
39};
40var euclideanRingInt = {
41 degree: $foreign.intDegree,
42 div: $foreign.intDiv,
43 mod: $foreign.intMod,
44 CommutativeRing0: function () {
45 return Data_CommutativeRing.commutativeRingInt;
46 }
47};
48var div = function (dict) {
49 return dict.div;
50};
51var lcm = function (dictEq) {
52 var eq = Data_Eq.eq(dictEq);
53 var gcd1 = gcd(dictEq);
54 return function (dictEuclideanRing) {
55 var Semiring0 = ((dictEuclideanRing.CommutativeRing0()).Ring0()).Semiring0();
56 var zero = Data_Semiring.zero(Semiring0);
57 var div1 = div(dictEuclideanRing);
58 var mul = Data_Semiring.mul(Semiring0);
59 var gcd2 = gcd1(dictEuclideanRing);
60 return function (a) {
61 return function (b) {
62 var $26 = eq(a)(zero) || eq(b)(zero);
63 if ($26) {
64 return zero;
65 };
66 return div1(mul(a)(b))(gcd2(a)(b));
67 };
68 };
69 };
70};
71var degree = function (dict) {
72 return dict.degree;
73};
74export {
75 degree,
76 div,
77 mod,
78 gcd,
79 lcm,
80 euclideanRingInt,
81 euclideanRingNumber
82};
83export {
84 sub
85} from "../Data.Ring/index.js";
86export {
87 add,
88 mul,
89 one,
90 zero
91} from "../Data.Semiring/index.js";
92//# sourceMappingURL=index.js.map