simple-squiggle

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

trigonometry.js (2610B)


      1 import { acosh, asinh, atanh, cosh, sign, sinh, tanh } from '../../utils/number.js';
      2 var n1 = 'number';
      3 var n2 = 'number, number';
      4 export function acosNumber(x) {
      5   return Math.acos(x);
      6 }
      7 acosNumber.signature = n1;
      8 export function acoshNumber(x) {
      9   return acosh(x);
     10 }
     11 acoshNumber.signature = n1;
     12 export function acotNumber(x) {
     13   return Math.atan(1 / x);
     14 }
     15 acotNumber.signature = n1;
     16 export function acothNumber(x) {
     17   return isFinite(x) ? (Math.log((x + 1) / x) + Math.log(x / (x - 1))) / 2 : 0;
     18 }
     19 acothNumber.signature = n1;
     20 export function acscNumber(x) {
     21   return Math.asin(1 / x);
     22 }
     23 acscNumber.signature = n1;
     24 export function acschNumber(x) {
     25   var xInv = 1 / x;
     26   return Math.log(xInv + Math.sqrt(xInv * xInv + 1));
     27 }
     28 acschNumber.signature = n1;
     29 export function asecNumber(x) {
     30   return Math.acos(1 / x);
     31 }
     32 asecNumber.signature = n1;
     33 export function asechNumber(x) {
     34   var xInv = 1 / x;
     35   var ret = Math.sqrt(xInv * xInv - 1);
     36   return Math.log(ret + xInv);
     37 }
     38 asechNumber.signature = n1;
     39 export function asinNumber(x) {
     40   return Math.asin(x);
     41 }
     42 asinNumber.signature = n1;
     43 export function asinhNumber(x) {
     44   return asinh(x);
     45 }
     46 asinhNumber.signature = n1;
     47 export function atanNumber(x) {
     48   return Math.atan(x);
     49 }
     50 atanNumber.signature = n1;
     51 export function atan2Number(y, x) {
     52   return Math.atan2(y, x);
     53 }
     54 atan2Number.signature = n2;
     55 export function atanhNumber(x) {
     56   return atanh(x);
     57 }
     58 atanhNumber.signature = n1;
     59 export function cosNumber(x) {
     60   return Math.cos(x);
     61 }
     62 cosNumber.signature = n1;
     63 export function coshNumber(x) {
     64   return cosh(x);
     65 }
     66 coshNumber.signature = n1;
     67 export function cotNumber(x) {
     68   return 1 / Math.tan(x);
     69 }
     70 cotNumber.signature = n1;
     71 export function cothNumber(x) {
     72   var e = Math.exp(2 * x);
     73   return (e + 1) / (e - 1);
     74 }
     75 cothNumber.signature = n1;
     76 export function cscNumber(x) {
     77   return 1 / Math.sin(x);
     78 }
     79 cscNumber.signature = n1;
     80 export function cschNumber(x) {
     81   // consider values close to zero (+/-)
     82   if (x === 0) {
     83     return Number.POSITIVE_INFINITY;
     84   } else {
     85     return Math.abs(2 / (Math.exp(x) - Math.exp(-x))) * sign(x);
     86   }
     87 }
     88 cschNumber.signature = n1;
     89 export function secNumber(x) {
     90   return 1 / Math.cos(x);
     91 }
     92 secNumber.signature = n1;
     93 export function sechNumber(x) {
     94   return 2 / (Math.exp(x) + Math.exp(-x));
     95 }
     96 sechNumber.signature = n1;
     97 export function sinNumber(x) {
     98   return Math.sin(x);
     99 }
    100 sinNumber.signature = n1;
    101 export function sinhNumber(x) {
    102   return sinh(x);
    103 }
    104 sinhNumber.signature = n1;
    105 export function tanNumber(x) {
    106   return Math.tan(x);
    107 }
    108 tanNumber.signature = n1;
    109 export function tanhNumber(x) {
    110   return tanh(x);
    111 }
    112 tanhNumber.signature = n1;