on f266ea3 help sign in
elk/libraries/Native/Basics.js
89 lines 1.9 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) {
12 return (a/b)|0;
13 }
14 function rem(a, b) {
15 return a % b;
16 }
17 var mod = Utils.mod;
18 function logBase(base, n) {
19 return Math.log(n) / Math.log(base);
20 }
21 function xor(a, b) {
22 return a !== b;
23 }
24 function not(b) {
25 return !b;
26 }
27 function isInfinite(n) {
28 return n === Infinity || n === -Infinity
29 }
31 function truncate(n) {
32 return n|0;
33 }
35 function degrees(d) {
36 return d * Math.PI / 180;
37 }
38 function turns(t) {
39 return 2 * Math.PI * t;
40 }
41 function fromPolar(point) {
42 var r = point._0;
43 var t = point._1;
44 return Utils.Tuple2(r * Math.cos(t), r * Math.sin(t));
45 }
46 function toPolar(point) {
47 var x = point._0;
48 var y = point._1;
49 return Utils.Tuple2(Math.sqrt(x * x + y * y), Math.atan2(y,x));
50 }
52 var basics = {
53 div: F2(div),
54 rem: F2(rem),
55 mod: mod,
57 pi: Math.PI,
58 e: Math.E,
59 cos: Math.cos,
60 sin: Math.sin,
61 tan: Math.tan,
62 acos: Math.acos,
63 asin: Math.asin,
64 atan: Math.atan,
65 atan2: F2(Math.atan2),
67 degrees: degrees,
68 turns: turns,
69 fromPolar: fromPolar,
70 toPolar: toPolar,
72 sqrt: Math.sqrt,
73 logBase: F2(logBase),
74 compare: Utils.compare,
76 xor: F2(xor),
77 not: not,
79 truncate: truncate,
80 ceiling: Math.ceil,
81 floor: Math.floor,
82 round: Math.round,
83 toFloat: function(x) { return x; },
84 isNaN: isNaN,
85 isInfinite: isInfinite
86 };
88 return elm.Native.Basics.values = basics;
89};