aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkripken <alonzakai@gmail.com>2011-07-13 17:19:19 -0700
committerkripken <alonzakai@gmail.com>2011-07-13 17:19:19 -0700
commitefbf009d0d40443c74cdef9c47e1e54206629e8d (patch)
treec485f2bee422bc5a274f94f4652c54360966cbc4 /src
parentdc24fffc94606ccb566a3e6bb8dae5543f1ab790 (diff)
parent3c07ebaefda5c70d5014ceaa5d7cf2a3e65e9316 (diff)
Merge pull request #52 from max99x/master
Minor improvements: Pyhon 2.6- compatibility; hyperbolic math functions
Diffstat (limited to 'src')
-rw-r--r--src/library.js43
1 files changed, 37 insertions, 6 deletions
diff --git a/src/library.js b/src/library.js
index 07d177c2..e1366822 100644
--- a/src/library.js
+++ b/src/library.js
@@ -342,7 +342,8 @@ var Library = {
var parts = argText.split('e');
if (isGeneral && !flagAlternative) {
// Discard trailing zeros and periods.
- while (parts[0].length > 1 && (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) {
+ while (parts[0].length > 1 && parts[0].indexOf('.') != -1 &&
+ (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) {
parts[0] = parts[0].slice(0, -1);
}
} else {
@@ -1485,17 +1486,20 @@ var Library = {
return sig;
},
- __finite: function(x) {
- return x !== Infinity && x !== -Infinity;
+ finite: function(x) {
+ return isFinite(x);
},
+ __finite: 'finite',
- __isinf: function(x) {
- return x === Infinity || x === -Infinity;
+ isinf: function(x) {
+ return !isNaN(x) && !isFinite(x);
},
+ __isinf: 'isinf',
- __isnan: function(x) {
+ isnan: function(x) {
return isNaN(x);
},
+ __isnan: 'isnan',
copysign: function(a, b) {
if (a<0 === b<0) return a;
@@ -1506,6 +1510,33 @@ var Library = {
return Math.sqrt(a*a + b*b);
},
+ sinh: function(x) {
+ var p = Math.pow(Math.E, x);
+ return (p - (1 / p)) / 2;
+ },
+
+ cosh: function(x) {
+ var p = Math.pow(Math.E, x);
+ return (p + (1 / p)) / 2;
+ },
+
+ tanh__deps: ['sinh', 'cosh'],
+ tanh: function(x) {
+ return _sinh(x) / _cosh(x);
+ },
+
+ asinh: function(x) {
+ return Math.log(x + Math.sqrt(x * x + 1));
+ },
+
+ acosh: function(x) {
+ return Math.log(x * 1 + Math.sqrt(x * x - 1));
+ },
+
+ atanh: function(x) {
+ return Math.log((1 + x) / (1 - x)) / 2;
+ },
+
// LLVM internal math
exp2: function(x) {