1function [v,beta,xnorm] = hmake1 (x) 2%HMAKE1 construct a Householder reflection 3% Example: 4% [v,beta,xnorm] = hmake1 (x) 5% See also: testall 6 7% Copyright 2006-2012, Timothy A. Davis, http://www.suitesparse.com 8 9n = length (x) ; 10if (n == 1) 11 v = 1 ; 12 xnorm = norm (x) ; 13 if (x (1) < 0) 14 beta = 2 ; 15 else 16 beta = 0 ; 17 end 18 return 19end 20sigma = x (2:n)'*x(2:n) ; 21xnorm = sqrt (x (1)^2 + sigma) ; 22v = x ; 23if (sigma == 0) 24 v (1) = 1 ; 25 if (x (1) < 0) 26 beta = 2 ; 27 else 28 beta = 0 ; 29 end 30else 31 if (x (1) <= 0) 32 v (1) = x(1) - xnorm ; 33 else 34 v (1) = -sigma / (x(1) + xnorm) ; 35 end 36 beta = (2*v(1)^2) / (sigma + v(1)^2) ; 37 v = v / v(1) ; 38end 39