шаблон<typename _MatrixType> class Eigen::BDCSVD< _MatrixType >
класс Бidiagonal Divide and Conquer SVD
Шаблочные параметры
_MatrixType
тип матрицы, для которой вычисляется SVD разложение
Этот класс сначала сводит входную матрицу к бидиагональной форме, используя класс UpperBidiagonalization, а затем выполняет диагонализацию по принципу «разделяй и властвуй». Малые блоки диагонализируются с помощью класса JacobiSVD. Размер переключения можно контролировать с помощью метода setSwitchSize(), по умолчанию он равен 16. Для небольших матриц (<16) предпочтительнее напрямую использовать JacobiSVD. Для больших матриц BDCSVD рекомендуется и может быть быстрее на несколько порядков.
Предупреждение
Этот алгоритм вряд ли обеспечит точный результат при компиляции с небезопасными оптимизациями математических операций. Например, это касается компилятора Intel (ICC), который выполняет такую оптимизацию по умолчанию, если вы не скомпилируете с опцией -fp-modelprecise. Аналогично, опция -ffast-math компилятора GCC или clang значительно ухудшит точность.
необязательный параметр, позволяющий указать, нужно ли вычислять полные или тонкие унитарные матрицы U или V. По умолчанию не вычисляется ни одна. Это битовое поле, возможные биты: ComputeFullU, ComputeThinU, ComputeFullV, ComputeThinV.
Тонкие унитарные матрицы доступны только если у вашего типа матриц динамическое количество столбцов (например, MatrixXf). Они также недоступны с (не по умолчанию) предобусловленностью FullPivHouseholderQR.
Метод, выполняющий разложение заданной матрицы с использованием пользовательских параметров.
Параметры
matrix
матрица для разложения
computationOptions
необязательный параметр, позволяющий указать, нужно ли вычислять полные или тонкие унитарные матрицы U или V. По умолчанию не вычисляется ни одна. Это битовое поле, возможные биты: ComputeFullU, ComputeThinU, ComputeFullV, ComputeThinV.
Тонкие унитарные матрицы доступны только если у вашего типа матриц динамическое количество столбцов (например, MatrixXf). Они также недоступны с (не по умолчанию) предобусловленностью FullPivHouseholderQR.