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