/src/igraph/vendor/cs/cs_cumsum.c
Line | Count | Source (jump to first uncovered line) |
1 | | #include "cs.h" |
2 | | /* p [0..n] = cumulative sum of c [0..n-1], and then copy p [0..n-1] into c */ |
3 | | double cs_cumsum (CS_INT *p, CS_INT *c, CS_INT n) |
4 | 0 | { |
5 | 0 | CS_INT i, nz = 0 ; |
6 | 0 | double nz2 = 0 ; |
7 | 0 | if (!p || !c) return (-1) ; /* check inputs */ |
8 | 0 | for (i = 0 ; i < n ; i++) |
9 | 0 | { |
10 | 0 | p [i] = nz ; |
11 | 0 | nz += c [i] ; |
12 | 0 | nz2 += c [i] ; /* also in double to avoid CS_INT overflow */ |
13 | 0 | c [i] = p [i] ; /* also copy p[0..n-1] back into c[0..n-1]*/ |
14 | 0 | } |
15 | 0 | p [n] = nz ; |
16 | 0 | return (nz2) ; /* return sum (c [0..n-1]) */ |
17 | 0 | } |