simple-squiggle

A restricted subset of Squiggle
Log | Files | Refs | README

trigonometry.js (3448B)


      1 "use strict";
      2 
      3 Object.defineProperty(exports, "__esModule", {
      4   value: true
      5 });
      6 exports.acosNumber = acosNumber;
      7 exports.acoshNumber = acoshNumber;
      8 exports.acotNumber = acotNumber;
      9 exports.acothNumber = acothNumber;
     10 exports.acscNumber = acscNumber;
     11 exports.acschNumber = acschNumber;
     12 exports.asecNumber = asecNumber;
     13 exports.asechNumber = asechNumber;
     14 exports.asinNumber = asinNumber;
     15 exports.asinhNumber = asinhNumber;
     16 exports.atan2Number = atan2Number;
     17 exports.atanNumber = atanNumber;
     18 exports.atanhNumber = atanhNumber;
     19 exports.cosNumber = cosNumber;
     20 exports.coshNumber = coshNumber;
     21 exports.cotNumber = cotNumber;
     22 exports.cothNumber = cothNumber;
     23 exports.cscNumber = cscNumber;
     24 exports.cschNumber = cschNumber;
     25 exports.secNumber = secNumber;
     26 exports.sechNumber = sechNumber;
     27 exports.sinNumber = sinNumber;
     28 exports.sinhNumber = sinhNumber;
     29 exports.tanNumber = tanNumber;
     30 exports.tanhNumber = tanhNumber;
     31 
     32 var _number = require("../../utils/number.js");
     33 
     34 var n1 = 'number';
     35 var n2 = 'number, number';
     36 
     37 function acosNumber(x) {
     38   return Math.acos(x);
     39 }
     40 
     41 acosNumber.signature = n1;
     42 
     43 function acoshNumber(x) {
     44   return (0, _number.acosh)(x);
     45 }
     46 
     47 acoshNumber.signature = n1;
     48 
     49 function acotNumber(x) {
     50   return Math.atan(1 / x);
     51 }
     52 
     53 acotNumber.signature = n1;
     54 
     55 function acothNumber(x) {
     56   return isFinite(x) ? (Math.log((x + 1) / x) + Math.log(x / (x - 1))) / 2 : 0;
     57 }
     58 
     59 acothNumber.signature = n1;
     60 
     61 function acscNumber(x) {
     62   return Math.asin(1 / x);
     63 }
     64 
     65 acscNumber.signature = n1;
     66 
     67 function acschNumber(x) {
     68   var xInv = 1 / x;
     69   return Math.log(xInv + Math.sqrt(xInv * xInv + 1));
     70 }
     71 
     72 acschNumber.signature = n1;
     73 
     74 function asecNumber(x) {
     75   return Math.acos(1 / x);
     76 }
     77 
     78 asecNumber.signature = n1;
     79 
     80 function asechNumber(x) {
     81   var xInv = 1 / x;
     82   var ret = Math.sqrt(xInv * xInv - 1);
     83   return Math.log(ret + xInv);
     84 }
     85 
     86 asechNumber.signature = n1;
     87 
     88 function asinNumber(x) {
     89   return Math.asin(x);
     90 }
     91 
     92 asinNumber.signature = n1;
     93 
     94 function asinhNumber(x) {
     95   return (0, _number.asinh)(x);
     96 }
     97 
     98 asinhNumber.signature = n1;
     99 
    100 function atanNumber(x) {
    101   return Math.atan(x);
    102 }
    103 
    104 atanNumber.signature = n1;
    105 
    106 function atan2Number(y, x) {
    107   return Math.atan2(y, x);
    108 }
    109 
    110 atan2Number.signature = n2;
    111 
    112 function atanhNumber(x) {
    113   return (0, _number.atanh)(x);
    114 }
    115 
    116 atanhNumber.signature = n1;
    117 
    118 function cosNumber(x) {
    119   return Math.cos(x);
    120 }
    121 
    122 cosNumber.signature = n1;
    123 
    124 function coshNumber(x) {
    125   return (0, _number.cosh)(x);
    126 }
    127 
    128 coshNumber.signature = n1;
    129 
    130 function cotNumber(x) {
    131   return 1 / Math.tan(x);
    132 }
    133 
    134 cotNumber.signature = n1;
    135 
    136 function cothNumber(x) {
    137   var e = Math.exp(2 * x);
    138   return (e + 1) / (e - 1);
    139 }
    140 
    141 cothNumber.signature = n1;
    142 
    143 function cscNumber(x) {
    144   return 1 / Math.sin(x);
    145 }
    146 
    147 cscNumber.signature = n1;
    148 
    149 function cschNumber(x) {
    150   // consider values close to zero (+/-)
    151   if (x === 0) {
    152     return Number.POSITIVE_INFINITY;
    153   } else {
    154     return Math.abs(2 / (Math.exp(x) - Math.exp(-x))) * (0, _number.sign)(x);
    155   }
    156 }
    157 
    158 cschNumber.signature = n1;
    159 
    160 function secNumber(x) {
    161   return 1 / Math.cos(x);
    162 }
    163 
    164 secNumber.signature = n1;
    165 
    166 function sechNumber(x) {
    167   return 2 / (Math.exp(x) + Math.exp(-x));
    168 }
    169 
    170 sechNumber.signature = n1;
    171 
    172 function sinNumber(x) {
    173   return Math.sin(x);
    174 }
    175 
    176 sinNumber.signature = n1;
    177 
    178 function sinhNumber(x) {
    179   return (0, _number.sinh)(x);
    180 }
    181 
    182 sinhNumber.signature = n1;
    183 
    184 function tanNumber(x) {
    185   return Math.tan(x);
    186 }
    187 
    188 tanNumber.signature = n1;
    189 
    190 function tanhNumber(x) {
    191   return (0, _number.tanh)(x);
    192 }
    193 
    194 tanhNumber.signature = n1;