|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.su/lib_na/cat/am/amtgr.htm
Дата изменения: Fri Jun 20 11:38:18 2014 Дата индексирования: Sun Apr 10 00:37:49 2016 Кодировка: Windows-1251 |
|
Текст подпрограммы и версий ( Фортран ) amtgr.zip , amtgd.zip , amtgc.zip |
Тексты тестовых примеров ( Фортран ) tamtgr.zip , tamtgd.zip , tamtgc.zip |
|
Текст подпрограммы и версий ( Си ) amtgr_c.zip , amtgd_c.zip , amtgc_c.zip |
Тексты тестовых примеров ( Си ) tamtgr_c.zip , tamtgd_c.zip , tamtgc_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) amtgr_p.zip , amtge_p.zip , amtgc_p.zip |
Тексты тестовых примеров ( Паскаль ) tamtgr_p.zip , tamtge_p.zip , tamtgc_p.zip |
Транспонирование прямоугольной матрицы на месте
Транспонируемая прямоугольная матрица размеров М на N должна быть представлена в оперативной памяти по столбцам в виде вектора А длины МN = М * N. Подпрограмма находит такие циклы перестановок элементов, что в результате в векторе А будет получена транспонированная матрица размеров N на М, расположенная также по столбцам.
Версия подпрограммы АМТGR может быть использована также и для транспонирования прямоугольной матрицы, элементы которой имеют целый тип.
Сате Е.G., Тwigg D.W. Аnalysis of In - Situ Transposition. АCM Тransactions on Mathematical Software, Vol. 3, No. 1, 1977.
SUBROUTINE AMTGR (A, M, N, MOVE, IWRK, IERR)
Параметры
| A - | вещественный вектор длины МN = М * N, в котором расположена транспонируемая прямоугольная матрица размеров М на N по столбцам; |
| M - | число строк транспонируемой матрицы (тип: целый); |
| N - | число столбцов транспонируемой матрицы (тип: целый); |
| MOVE - | целый вектор длины IWRК, используемый как рабочий; |
| IWRK - | длина вектора МОVЕ (тип: целый); |
| IERR - | целая переменная, служащая для сообщения об ошибках в ходе работы подпрограммы; при этом: |
| IЕRR= -1 - | если значение IWRК меньше 1; |
| IЕRR= -2 - | если М или N меньше 1; |
| IЕRR=К>0 - | если К - й цикл перестановок элементов был найден, но не выполнен. |
Версии
| AMTGD - | транспонирование прямоугольной матрицы на месте, элементы которой заданы с удвоенной точностью. |
| AMTGC - | транспонирование комплексной прямоугольной матрицы на месте. |
Вызываемые подпрограммы
| UTAM12 - | подпрограмма выдачи диагностических сообщений. |
Замечания по использованию
| 1. |
После работы подпрограммы исходная матрица не сохраняется. | |
| 2. | Для ускорения работы подпрограммы рекомендуется брать значение IWRК равным (М + N) / 2. |
REAL A(3, 4)
INTEGER MOVE(2)
DATA M /3/, N /4/, IWRK /2/
DATA A /11., 21., 31., 12., 22., 32., 13., 23., 33., 14., 24., 34./
CALL AMTGR (A, M, N, MOVE, IWRK, IERR)
Результаты:
IERR = 0
A = (11., 12., 13., 14., 21., 22., 23., 24., 31., 32., 33., 34.)