/src/igraph/vendor/cs/cs_happly.c
Line | Count | Source (jump to first uncovered line) |
1 | | #include "cs.h" |
2 | | /* apply the ith Householder vector to x */ |
3 | | CS_INT cs_happly (const cs *V, CS_INT i, double beta, CS_ENTRY *x) |
4 | 0 | { |
5 | 0 | CS_INT p, *Vp, *Vi ; |
6 | 0 | CS_ENTRY *Vx, tau = 0 ; |
7 | 0 | if (!CS_CSC (V) || !x) return (0) ; /* check inputs */ |
8 | 0 | Vp = V->p ; Vi = V->i ; Vx = V->x ; |
9 | 0 | for (p = Vp [i] ; p < Vp [i+1] ; p++) /* tau = v'*x */ |
10 | 0 | { |
11 | 0 | tau += CS_CONJ (Vx [p]) * x [Vi [p]] ; |
12 | 0 | } |
13 | 0 | tau *= beta ; /* tau = beta*(v'*x) */ |
14 | 0 | for (p = Vp [i] ; p < Vp [i+1] ; p++) /* x = x - v*tau */ |
15 | 0 | { |
16 | 0 | x [Vi [p]] -= Vx [p] * tau ; |
17 | 0 | } |
18 | 0 | return (1) ; |
19 | 0 | } |