From 8df96dd8fbbf4463afff122da03670cd08c9ef1c Mon Sep 17 00:00:00 2001 From: rolux Date: Wed, 13 Jun 2012 08:12:01 +0200 Subject: [PATCH] add sign and trunc --- source/Ox/js/Math.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/source/Ox/js/Math.js b/source/Ox/js/Math.js index 4b8f7baf..8b43d9ea 100644 --- a/source/Ox/js/Math.js +++ b/source/Ox/js/Math.js @@ -147,6 +147,21 @@ Ox.round = function(number, decimals) { return Math.round(number * pow) / pow; }; +/*@ +Ox.sign Returns the sign of a number (-1, 0 or 1) + > Ox.sign(-Infinity) + -1 + > Ox.sign(-0) + 0 + > Ox.sign(0) + 0 + > Ox.sign(Infinity) + 1 +@*/ +Ox.sign = function(x) { + return x !== x || x === 0 ? x : x < 0 ? -1 : 1; +}; + /*@ Ox.sinh Hyperbolic sine Missing from `Math`. @@ -164,3 +179,12 @@ Ox.tanh Hyperbolic tangent Ox.tanh = function(x) { return (Math.exp(x) - Math.exp(-x)) / (Math.exp(x) + Math.exp(-x)); }; + +/*@ +Ox.trunc Truncates a number + > Ox.trunc(-1.5) + -1 +@*/ +Ox.trunc = function(x) { + return ~~x; +};