|  | MatrixXd X = MatrixXd::Random(5, 5); | 
|  | MatrixXd A = X + X.transpose(); | 
|  | cout << "Here is a random symmetric 5x5 matrix:" << endl << A << endl << endl; | 
|  |  | 
|  | VectorXd diag(5); | 
|  | VectorXd subdiag(4); | 
|  | VectorXd hcoeffs(4);  // Scratch space for householder reflector. | 
|  | VectorXd workspace(5); | 
|  | internal::tridiagonalization_inplace(A, diag, subdiag, hcoeffs, workspace, true); | 
|  | cout << "The orthogonal matrix Q is:" << endl << A << endl; | 
|  | cout << "The diagonal of the tridiagonal matrix T is:" << endl << diag << endl; | 
|  | cout << "The subdiagonal of the tridiagonal matrix T is:" << endl << subdiag << endl; |