EigenSymmetricDC2s

Вычисление всех собственных значений и, при необходимости, собственных векторов вещественной симметричной или эрмитовой (комплексно-сопряжённой) матрицы с использованием двухэтапного алгоритма приведения к тридиагональному виду. Если требуется вычисление собственные векторы, применяется алгоритм divide and conquer («разделяй и властвуй») (функции lapack SYEVD_2STAGE, HEEVD_2STAGE).

Вычисления для типа matrix<double>

bool  matrix::EigenSymmetricDC2s(
   ENUM_EIG_VALUES       jobv,               // необходимость вычисления собственных векторов
   vector&               eigen_values,       // вектор рассчитанных собственных значений
   matrix&               eigen_vectors       // матрица рассчитанных собственных векторов
   );

Вычисления для типа matrix<float>

bool  matrixf::EigenSymmetricDC2s(
   ENUM_EIG_VALUES       jobv,               // необходимость вычисления собственных векторов
   vectorf&              eigen_values,       // вектор рассчитанных собственных значений
   matrixf&              eigen_vectors       // матрица рассчитанных собственных векторов
   );

Вычисления для типа matrix<complex>

bool  matrixc::EigenSymmetricDC2s(
   ENUM_EIG_VALUES       jobv,               // необходимость вычисления собственных векторов
   vector&               eigen_values,       // вектор рассчитанных собственных значений
   matrixc&              eigen_vectors       // матрица рассчитанных собственных векторов
   );

Вычисления для типа matrix<complexf>

bool  matrixcf::EigenSymmetricDC2s(
   ENUM_EIG_VALUES       jobv,               // необходимость вычисления собственных векторов
   vectorf&              eigen_values,       // вектор рассчитанных собственных значений
   matrixcf&             eigen_vectors       // матрица рассчитанных собственных векторов
   );

Параметры

jobv

[in]  Значение из перечисления ENUM_EIG_VALUES, определяющее способ вычисления собственных векторов.

eigen_values

[out] Вектор собственных значений.

eigen_vectors

[out] Матрица собственных векторов.

Возвращаемое значение

Возвращает true в случае успеха, иначе false в случае ошибки.

Примечание

Расчёт зависит от значений параметра jobv.

При значении jobv = EIGVALUES_V рассчитываются собственные векторы и собственные значения. В текущей реализации OpenBLAS использование этого значения недоступно. В случае его использования будет возвращена ошибка 4003 (ERR_INVALID_PARAMETER).

При значении EIGVALUES_N собственные векторы не рассчитываются. Рассчитываются только собственные значения.

На вход можно подать симметричную (эрмитову), верхнетреугольную или нижнетреугольную матрицу. Треугольные матрицы подразумеваются симметричными (эрмитово-сопряжёнными).

ENUM_EIG_VALUES

Перечисление, определяющее необходимость вычисления собственных векторов.

Идентификатор

Описание

EIGVALUES_V

Вычисляются собственные векторы и собственные значения. Недоступно в этой версии.

EIGVALUES_N

Вычисляются только собственные значения, без векторов.