package Jampack;
/**
Zhess implements the unitary reduction to Hessenberg form
by a unitary similarity transformation. Specifically, given
a square matrix A, there is a unitary matrix U such that
* H = U^H AU
is upper Hessenberg.
Zhess represents U and H as Zmats.
@version Pre-alpha
@author G. W. Stewart
*/
public class Zhess{
/** The upper Hessenberg matrix */
public Zmat H;
/** The unitary matrix */
public Zmat U;
/** Creates a Zhess from a square Zmat. Throws a
JampackException for nonsquare matrx.
@param A A Zmat
@return The Hessenberg form of A
@exception JampackException
Thrown if A is not square.
*/
public Zhess(Zmat A)
throws JampackException{
if (A.nr != A.nc){
throw new JampackException
("Matrix not square");
}
H = new Zmat(A);
U = Eye.o(H.nr);
Z1 work = new Z1(H.nr);
for (int k=H.bx; k<=H.cx-2; k++){
Z1 u = House.genc(H, k+1, H.rx, k);
House.ua(u, H, k+1, H.rx, k+1, H.cx, work);
House.au(H, u, H.bx, H.rx, k+1, H.cx, work);
House.au(U, u, U.bx, U.rx, k+1, U.cx, work);
}
}
}
Ads help maintain this website.