simple-squiggle

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

product.js (415B)


      1 "use strict";
      2 
      3 Object.defineProperty(exports, "__esModule", {
      4   value: true
      5 });
      6 exports.product = product;
      7 
      8 /** @param {number} i
      9  *  @param {number} n
     10  *  @returns {number} product of i to n
     11  */
     12 function product(i, n) {
     13   if (n < i) {
     14     return 1;
     15   }
     16 
     17   if (n === i) {
     18     return n;
     19   }
     20 
     21   var half = n + i >> 1; // divide (n + i) by 2 and truncate to integer
     22 
     23   return product(i, half) * product(half + 1, n);
     24 }