Текст подпрограммы и версий ( Фортран ) av12r.zip av12d.zip av12c.zip |
Тексты тестовых примеров ( Фортран ) tav12r.zip tav12d.zip tav12c.zip |
Текст подпрограммы и версий ( Си ) av12r_c.zip av12d_c.zip av12c_c.zip |
Тексты тестовых примеров ( Си ) tav12r_c.zip tav12d_c.zip tav12c_c.zip |
Текст подпрограммы и версий ( Паскаль ) av12r_p.zip av12e_p.zip av12c_p.zip |
Тексты тестовых примеров ( Паскаль ) tav12r_p.zip tav12e_p.zip tav12c_p.zip |
Вычисление евклидовой нормы вещественного вектора.
Функция АV12R вычисляет евклидову норму (длину) n - мерного вектора по формуле:
|| X ||2 = ( | x1 |2 + | x2 |2 + ... + | xN |2 )1/2 , где X = ( x1, x2, ... , xN ) .
Вектор X не обязательно должен занимать последовательные слова памяти машины и может располагаться в памяти с некоторыми постоянными интервалами между компонентами, которые называются параметром приращения.
Этот параметр может быть меньше нуля, если обработка компонент вектора должна проводится в обратном порядке.
В некоторых случаях, когда компоненты вектора имеют достаточно большое значение, при нахождении суммы квадратов компонент может возникнуть переполнение центрального процессора, хотя конечный результат меньше максимального числа, представимого на ЭВМ.
Для того, чтобы переполнение не возникало, проводится масштабирование по формуле:
EVNORM = RNORM * ( (x12 + x22 +...+ xN2) / RNORM2 )1/2 где RNORM = 2lmax + 1 , lmax = log2AMAX , AMAX = max ( | x1 |, | x2 |, ... ,| xn | ) ,
Масштабирование проводится в случае АМАХ > 1*106, когда возникает возможность переполнения.
FUNCTION AV12R (N, SX, INCX, IERR)
Параметры
N - | размерность вектора (тип: целый); |
SX - | вещественный одномерный массив длины N * | INСХ |, содержащий заданный вектор; |
INCX - | параметр приращения, задающий расположение вектора в массиве SХ (тип: целый); |
IERR - | целая переменная, указывающая характер ошибки; при этом: |
IЕRR=65 - | когда N ≤ 0, |
Версии
AV12D - | вычисление евклидовой нормы вектора, заданного с удвоенной точностью; |
AV12C - | вычисление евклидовой нормы комплексного вектоpа. |
Вызываемые подпрограммы
UTAV10 - | подпрограмма выдачи диагностических сообщений при работе подпрограмм АV12R и АV12С. |
UTAV11 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы АV12D. |
Замечания по использованию
В функции АV12D одномерный массив, содержащий вектор, обозначен DХ и имеет тип DОUВLЕ РRЕСISIОN. В функции АV12С одномерный массив, содержащий вектор, обозначен СХ и имеет тип СОМРLЕХ. |
DIMENSION SX(11) DATA SX /2., 0., 2., 0., 2., 0., 2., 0., 2., 0., 2./ N = 6 INCX = 2 IERR = 0 SW = AV12R (N, SX, INCX, IERR) Результаты: SW = 4.898979 , IERR = 0