Текст подпрограммы и версий ( Фортран )
am10r.zip , am10d.zip , am10c.zip
Тексты тестовых примеров ( Фортран )
tam10r.zip , tam10d.zip , tam10c.zip
Текст подпрограммы и версий ( Си )
am10r_c.zip , am10d_c.zip , am10c_c.zip
Тексты тестовых примеров ( Си )
tam10r_c.zip , tam10d_c.zip , tam10c_c.zip
Текст подпрограммы и версий ( Паскаль )
am10r_p.zip , am10e_p.zip , am10c_p.zip
Тексты тестовых примеров ( Паскаль )
tam10r_p.zip , tam10e_p.zip , tam10c_p.zip

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

Назначение

Левосторонние преобразования вектора последовательностью матриц вращения, упакованных над главной диагональю прямоугольной матрицы размера N * М (N ≤ М).

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

Вектор B длины М последовательно умножается слева на матрицы вращения  ТN М, ТN М-1, ..., Т1 2,  упакованные над главной диагональю заданной прямоугольной матрицы А размера N*М (N ≤ М) таким образом, что если  t = А(i, j), то матрица  Тi j размера M*M является матрицей плоского вращения в плоскости (i, j), у которой элементы Ti i = Tj j = С,  Ti j = -S,  Tj i = S,  а остальные элементы главной диагонали равны 1,
где  С = (1 - | t |2) / (1 + | t |2) ,  S = 2t / (1 + | t |2).

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

    SUBROUTINE  AM10R (A, N, M, B) 

Параметры

A - двумерный массив размера N * М, содержащий прямоугольную матрицу, над главной диагональю которой хранится в упакованном виде последовательность матриц вращения (тип: вещественный);
N, M - число строк и столбцов матрицы  А, причем N ≤ М (тип: целый);
B - одномерный массив длины  М, в котором задается исходный вектор; в результате работы подпрограммы на месте  B запоминается преобразованный вектор (тип: вещественный).

Версии

AM10D - левосторонние преобразования вектора последовательностью матриц вращения с повышенной точностью.
AM10C - левосторонние преобразования комплексного вектора последовательностью комплексных матриц вращения.

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

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

  1. 

Заданная в необходимой форме последовательность матриц вращения, используемых данной подпрограммой, получается, например, в результате работы подпрограмм, реализующих приведение прямоугольной матрицы  А размера N * М (N ≤ М) к нижнему двухдиагональному виду (АFР7R) или к нижнему треугольному виду (АFР9R) методом вращений.

  2. 

В подпрограмме АМ10D параметры  А и  B имеют тип DОUВLЕ РRЕСISIОN.

  3.  В подпрограмме AM10C параметры  А и  B имеют тип СОМРLЕХ.

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

       DIMENSION  A(4, 5), B(5)
       DATA  A /0., 0., 0.5, 1., 3*0., 1., 0., 3*1., 0.5, 6*1., 0.5/
       DATA  B /5*1./
       CALL  AM10R (A, 4, 5, B)

Результат:  В  =  ( 0.2, - 0.2, 1.4, - 1.4, 1.0 )