csCumsum.js 672 B

1234567891011121314151617181920212223242526
  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. for (i = 0; i < n; i++) {
  15. // initialize ptr @ i
  16. ptr[i] = nz;
  17. // increment number of nonzeros
  18. nz += c[i];
  19. // also copy p[0..n-1] back into c[0..n-1]
  20. c[i] = ptr[i];
  21. }
  22. // finalize ptr
  23. ptr[n] = nz;
  24. // return sum (c [0..n-1])
  25. return nz;
  26. }