Текст подпрограммы и версий ( Фортран )
amz0r.zip , amz0d.zip , amz0c.zip
Тексты тестовых примеров ( Фортран )
tamz0r.zip , tamz0d.zip , tamz0c.zip
Текст подпрограммы и версий ( Си )
amz0r_c.zip , amz0d_c.zip , amz0c_c.zip
Тексты тестовых примеров ( Си )
tamz0r_c.zip , tamz0d_c.zip , tamz0c_c.zip
Текст подпрограммы и версий ( Паскаль )
amz0r_p.zip , amz0e_p.zip , amz0c_p.zip
Тексты тестовых примеров ( Паскаль )
tamz0r_p.zip , tamz0e_p.zip , tamz0c_p.zip

Подпрограмма:  AMZ0R

Назначение

Преобразование полной симметричной матрицы в компактную форму представления.

Математическое описание

АМZ0R преобразует полную симметричную матрицу  А порядка  N в компактную форму представления. Тем самым минимизируется расход памяти, требуемой на хранение симметричной матрицы.

Использование

    SUBROUTINE  AMZ0R (A, N, B) 

Параметры

A - вещественный двумерный массив размера N на N, в котором задается симметричная матрица в полной форме;
N - порядок матрицы (тип: целый);
B - вещественный вектор длины N на (N + 1)/2, в котором запоминается исходная симметричная матрица в компактной форме представления.

Версии

AMZ0D - преобразование полной симметричной матрицы, заданной с удвоенной точностью, в компактную форму представления.
AMZ0C - преобразование полной эрмитовой матрицы в компактную форму представления.

Вызываемые подпрограммы: нет.

Замечания по использованию

 

Вектор  B может занимать то же место в памяти, что и массив  А (это означает, что первый элемент вектора  B может совпадать с первым элементом массива  А).

В подпрограмме АМZ0D параметры  А и  B должны иметь тип DОUВLЕ РRЕСISIОN.

В подпрограмме АМZ0С параметры  А и  B должны иметь тип СОМРLЕХ.

Примеры использования

   1. DIMENSION  A(3, 3), B(6)
       DATA  A /1.1, 2.1, 3.1, 2.1, 2.2, 3.2, 3.1, 3.2, 3.3/
       N = 3
       CALL  AMZ0R (A, N, B)

Результаты:    B  =  ( 1.1, 2.1, 2.2, 3.1, 3.2, 3.3 )

   2. DIMENSION  A(3, 3), B(6)
       COMPLEX  A, B
       DATA  A /(1.1, 0.), (2.1, 2.1), (3.1, 3.1), (2.1, - 2.1), (2.2, 0.), 
     *                (3.2, 3.2), (3.1, -3.1), (3.2, - 3.2), (3.3, 0.)/
       N = 3
       CALL  AMZ0C (A, N, B)

Результаты:

       B = ( (1.1, 0.), (2.1, 2.1), (2.2, 0.), (3.1, 3.1), (3.2, 3.2), (3.3, 0.) )