# EigenTridiagonalDCQ Compute eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the divide-and-conquer algorithm (LAPACK function [STEDC](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-fortran/2025-2/stedc.html)). Unlike [EigenTridiagonalDC](/en/docs/matrix/openblas/eigen_values/tridiagonalmatrices/eigentridiagposdefq), this method can be used to compute the eigenvectors of the original symmetric matrix. A symmetric matrix can be reduced to tridiagonal form using the [ReduceSymmetricToTridiagonal](/en/docs/matrix/openblas/matrixtransforms/reducesymmetrictotridiagonal) method. The orthogonal matrix Q obtained from this transformation is then used to compute the eigenvectors of the original symmetric matrix. Computing for type matrix ``` bool  matrix::EigenTridiagonalDCQ(    ENUM_EIGTRIDIAG_Z     compv,              // compute eigenvectors or not    matrix&               Q,                  // orthogonal matrix used in the reduction to tridiagonal form    vector&               eigen_values,       // vector of computed eigenvalues    matrix&               eigen_vectors       // matrix of computed eigenvectors    ); ``` Computing for type matrix ``` bool  matrixf::EigenTridiagonalDCQ(    ENUM_EIGTRIDIAG_Z     compv,              // compute eigenvectors or not    matrixf&              Q,                  // orthogonal matrix used in the reduction to tridiagonal form    vectorf&              eigen_values,       // vector of computed eigenvalues    matrixf&              eigen_vectors       // matrix of computed eigenvectors    ); ``` Computing for type matrix ``` bool  matrixc::EigenTridiagonalDCQ(    ENUM_EIGTRIDIAG_Z     compv,              // compute eigenvectors or not    matrixc&              Q,                  // orthogonal matrix used in the reduction to tridiagonal form    vector&               eigen_values,       // vector of computed eigenvalues    matrixc&              eigen_vectors       // matrix of computed eigenvectors    ); ``` Computing for type matrix ``` bool  matrixcf::EigenTridiagonalDCQ(    ENUM_EIGTRIDIAG_Z     compv,              // compute eigenvectors or not    matrixcf&             Q,                  // orthogonal matrix used in the reduction to tridiagonal form    vectorf&              eigen_values,       // vector of computed eigenvalues    matrixcf&             eigen_vectors       // matrix of computed eigenvectors    ); ``` Parameters compv [in]  ENUM_EIGTRIDIAG_Z enumeration value which determines the method for computing eigenvectors. Q [in]  Orthogonal matrix Q produced by method [ReflectTridiagonalToQ](/en/docs/matrix/openblas/matrixtransforms/reflecttridiagonaltoq). eigen_values [out] Vector of eigenvalues. eigen_vectors [out] Matrix of eigenvectors. Return Value Return true if successful, otherwise false in case of an [error](/en/docs/constants/errorswarnings/errorcodes). Note Computation depends on the value of the compv parameter. When compv = EIGCOMPZ_N, compute eigenvalues only, eigenvectors are not calculated. If EIGCOMPZ_V is set, eigenvalues are computed and eigenvectors of original symmetric matrix are calculated also. If EIGCOMPZ_I is set, eigenvalues are computed and eigenvectors of tridiagonal matrix are calculated also. The input must be a symmetric matrix in the tridiagonal form. ENUM_EIGTRIDIAG_Z An enumeration that specifies whether to calculate eigenvectors. | ID | Description | | --- | --- | | EIGCOMPZ_N | 'N': Compute eigenvalues only | | EIGCOMPZ_V | 'V': Compute eigenvectors of original symmetric matrix also | | EIGCOMPZ_I | 'I': Compute eigenvectors of tridiagonal matrix also |