on 8a4496c help sign in
elk/libraries/Native/Basics.js
82 lines 2.1 kB history raw
2Elm.Native.Basics = {};
3Elm.Native.Basics.make = function(elm) {
4 elm.Native = elm.Native || {};
5 elm.Native.Basics = elm.Native.Basics || {};
6 if (elm.Native.Basics.values) return elm.Native.Basics.values;
8 var JS = Elm.Native.JavaScript.make(elm);
9 var Utils = Elm.Native.Utils.make(elm);
11 function div(a,b) { return (a/b)|0; }
12 function rem(a,b) { return a % b; }
13 var mod = Utils.mod;
14 function logBase(base,n) { return Math.log(n) / Math.log(base); }
15 function min(a,b) { return Utils.cmp(a,b) < 0 ? a : b; }
16 function max(a,b) { return Utils.cmp(a,b) > 0 ? a : b; }
17 function clamp(lo,hi,n) {
18 return Utils.cmp(n,lo) < 0 ? lo : Utils.cmp(n,hi) > 0 ? hi : n; }
19 function xor(a,b) { return a !== b; }
20 function not(b) { return !b; }
21 function isInfinite(n) { return n === Infinity || n === -Infinity }
23 function truncate(n) { return n|0; }
25 function degrees(d) {
26 return d * Math.PI / 180;
27 }
28 function turns(t) {
29 return 2 * Math.PI * t;
30 }
31 function fromPolar(point) {
32 var r = point._0;
33 var t = point._1;
34 return Utils.Tuple2(r * Math.cos(t), r * Math.sin(t));
35 }
36 function toPolar(point) {
37 var x = point._0;
38 var y = point._1;
39 return Utils.Tuple2(Math.sqrt(x * x + y * y), Math.atan2(y,x));
40 }
42 var basics = {
43 div:F2(div),
44 rem:F2(rem),
45 mod:mod,
47 pi:Math.PI,
48 e:Math.E,
49 cos:Math.cos,
50 sin:Math.sin,
51 tan:Math.tan,
52 acos:Math.acos,
53 asin:Math.asin,
54 atan:Math.atan,
55 atan2:F2(Math.atan2),
57 degrees: degrees,
58 turns: turns,
59 fromPolar: fromPolar,
60 toPolar: toPolar,
62 sqrt:Math.sqrt,
63 logBase:F2(logBase),
64 min:F2(min),
65 max:F2(max),
66 clamp:F3(clamp),
67 compare:Utils.compare,
69 xor:F2(xor),
70 not:not,
72 truncate:truncate,
73 ceiling:Math.ceil,
74 floor:Math.floor,
75 round:Math.round,
76 toFloat:function(x) { return x; },
77 isNaN:isNaN,
78 isInfinite:isInfinite
79 };
81 return elm.Native.Basics.values = basics;
82};