Столбец аппроксимация минимальной степени перестановки
p = colamd(S)
p = colamd(S) возвращает вектор аппроксимации минимальной степени перестановки для разреженной матрицы S. Для несимметричной матрицы S, S(:,p) имеет тенденцию иметь более скудные факторы логической единицы, чем S. Чолеская факторизация S(:,p)' * S(:,p) также имеет тенденцию быть скуднее, чем у S'*S.
knobs является двухэлементным вектором. Если S является mоколо-n, то строки с более чем (knobs(1))*n записи игнорируются. Столбцы с более чем (knobs(2))*m записи удаляются до упорядочения и упорядочиваются последними в выходной перестановке p. Если knobs параметр отсутствует, то knobs(1) = knobs(2) = spparms('wh_frac').
stats является необязательным вектором, который предоставляет данные о порядке и достоверности матрицы S.
| Количество плотных или пустых строк, игнорируемых |
| Количество плотных или пустых столбцов, игнорируемых |
| Количество сборщиков мусора, выполненных во внутренней структуре данных, используемой |
|
|
| Индекс крайнего правого столбца, который не отсортирован или содержит повторяющиеся записи, или |
| Последний раз индекс повторяющейся или неупорядоченной строки в индексе столбца, заданном |
| Количество повторяющихся и неупорядоченных индексов строк |
Хотя встроенные функции MATLAB ® генерируют допустимые разреженные матрицы, пользователь может создать недопустимую разреженную матрицу, используя API MATLAB C или Fortran, и передать ее colamd. По этой причине colamd проверяет, что S является действительным:
Если индекс строки отображается в одном столбце два или более раз, colamd игнорирует повторяющиеся записи, продолжает обработку и предоставляет информацию о повторяющихся записях в stats(4:7).
Если индексы строк в столбце не соответствуют порядку, colamd сортировка каждого столбца внутренней копии матрицы S (но не восстанавливает входную матрицу S), продолжает обработку и предоставляет информацию о неупорядоченных записях в stats(4:7).
Если S недействителен любым другим способом, colamd продолжение невозможно. Он распечатывает сообщение об ошибке и не возвращает выходные аргументы (p или stats) .
За упорядочением следует последующее упорядочение дерева исключения столбцов.
[1] Авторы кода для colamd Стефан И. Ларимор и Тимоти А. Дэвис. Алгоритм был разработан в сотрудничестве с Джоном Гилбертом, Xerox PARC, и Эсмондом Нгом, Национальной лабораторией Оук-Ридж. Исследования алгоритмов разреженных матриц: https://people.engr.tamu.edu/davis/research.html