simple-squiggle

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

csCumsum.js (666B)


      1 /**
      2  * It sets the p[i] equal to the sum of c[0] through c[i-1].
      3  *
      4  * @param {Array}   ptr             The Sparse Matrix ptr array
      5  * @param {Array}   c               The Sparse Matrix ptr array
      6  * @param {Number}  n               The number of columns
      7  *
      8  * Reference: http://faculty.cse.tamu.edu/davis/publications.html
      9  */
     10 export function csCumsum(ptr, c, n) {
     11   // variables
     12   var i;
     13   var nz = 0;
     14 
     15   for (i = 0; i < n; i++) {
     16     // initialize ptr @ i
     17     ptr[i] = nz; // increment number of nonzeros
     18 
     19     nz += c[i]; // also copy p[0..n-1] back into c[0..n-1]
     20 
     21     c[i] = ptr[i];
     22   } // finalize ptr
     23 
     24 
     25   ptr[n] = nz; // return sum (c [0..n-1])
     26 
     27   return nz;
     28 }