Текст подпрограммы и версий ( Фортран )
av18r.zip  av18d.zip 
Тексты тестовых примеров ( Фортран )
tav18r.zip  tav18d.zip 
Текст подпрограммы и версий ( Си )
av18r_c.zip  av18d_c.zip 
Тексты тестовых примеров ( Си )
tav18r_c.zip  tav18d_c.zip 
Текст подпрограммы и версий ( Паскаль )
av18r_p.zip  av18e_p.zip 
Тексты тестовых примеров ( Паскаль )
tav18r_p.zip  tav18e_p.zip 

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

Назначение

Построение плоского вращения Гивенса.

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

Для заданных вещественных чисел  А и  В последовательно вычисляются величины

               σ  =  sign(A)  ,     если     | A | ≥ | B |
               σ  =  sign(B)  ,     если     | B | ≥ | A | ,

               R  =  σ ( A2 + B2 )1/2 ,

               C  =   A / R  ,     если     R ≠ 0
               C  =   1  ,           если     R = 0 ,

               S  =   B / R  ,     если     R ≠ 0
               S  =   0  ,           если     R = 0  . 

Полученные таким образом числа С, S и R удовлетворяют матричному уравнению

                        |   C  S  |        | A |        | R |
                        | - S  C |   *   |  B |   =   | 0  | 

Дж.Форсайт, М.Малькольм, К.Моулер. Машинные методы математических вычислений. М.: Мир, 1980.

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

    SUBROUTINE  AV18R (SA, SB, C, S) 

Параметры

SA - вещественная переменная, в которой задается величина  А; на выходе содержит вычисленное значение величины  R;
SB - вещественная переменная, в которой задается величина  В; на выходе содержит вычисленное значение величины  Z, где
 
     Z  =  S  ,         если     | A | > | B |
     Z  =  1 / C  ,   если      | B | ≥ | A |   и   C ≠ 0
     Z  =  1  ,         если     C = 0  ; 
C - вещественная переменная, содержащая на выходе вычисленное значение величины  С;
S - вещественная переменная, содержащая на выходе вычисленное значение величины  S;

Версии

AV18D - построение плоского вращения Гивенса для вещественных  А и  В, заданных с удвоенной точностью.

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

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

  1. 

В подпрограмме АV18D переменные SА, SВ, С, S имеют тип DОUВLЕ РRЕСISIОN.

  2. 

Введение величины  σ не является необходимым для построения матрицы вращения Гивенса, но позволяет однозначно восстанавливать  С и  S, зная лишь одно число  Z, а именно:

- если  Z = 1,    то  С = 0  и  S = 1;

- если  | Z | < 1, то  С = ( 1 - Z2 )1/2  и  S = Z;

- если  | Z | > 1, то  С = 1/Z  и   S = ( 1 - C2 )1/2.

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

       SA =   4.2
       SB = - 3.7
       CALL  AV18R (SA, SB, C, S)

Результаты:

       SA  =  5.597 ,    SB  =  - 0.661 ,
       C    =  0.7503 ,    S     =  - 0.661