Столбец аппроксимированная минимальная перестановка степени
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® генерируют допустимые разреженные матрицы, пользователь может создать недопустимую разреженную матрицу с помощью API MATLAB C или Фортрана и передать ее colamd
. Поэтому colamd
проверяет, что S
допустим:
Если индекс строки появляется два или больше раза в том же столбце, colamd
игнорирует дублирующиеся записи, продолжает обрабатывать и предоставляет информацию о дублирующихся записях в stats(4:7)
.
Если индексы строки в столбце не работают, виды colamd
каждый столбец его внутренней копии матричного S
(но не восстанавливает входную матрицу S
), продолжает обрабатывать и предоставляет информацию о неисправных записях в stats(4:7)
.
Если S
недопустим каким-либо другим способом, colamd
не может продолжиться. Это распечатывает сообщение об ошибке и не возвращает выходных аргументов (p
или stats
).
Упорядоченное расположение сопровождается поступорядоченным расположением дерева устранения столбца.
[1] Авторами кода для colamd
является Стефан Ай. Лэримор и Тимоти А. Дэвис. Алгоритм был разработан в сотрудничестве с Джоном Гильбертом, Xerox PARC, и Эсмондом Ыном, Окриджской национальной лабораторией. Исследование Алгоритмов Разреженной матрицы: http://faculty.cse.tamu.edu/davis/research.html