function [A,V]=HESSENBERG(A)
% H=HESSENBERG(A)
% [H,V]=HESSENBERG(A)
%
% Transformiere A mittels Householder-Transf. auf obere Hessenbergform, H=V'*A*V.
% Die Werte der Householder-Transformation werden im strikten unteren Dreieck
% von H gespeichert, sofern V nicht gesucht ist. Ansonsten enthält V die
% Transformation.
% 
% -----------------------------------------------------------------------------
%
% Input
% -----
% A       nxn Matrix
%
% -----------------------------------------------------------------------------
%
% Output
% ------
% H       nxn obere Hessenbergmatrix, A wird mit dem Wert der Hessenbergmatrix
%         überschrieben. Das strikte untere Dreieck von H enthält die Vektoren
%         der Householdertransformationen, sofern V nicht explizit erwünscht
%         ist
% V       optional, Transformationsmatrix

n=size(A,1);
v=zeros(n,1);
if nargout==2
   V=eye(n);
end % if

