Столбец аппроксимированная минимальная перестановка степени
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