Текст подпрограммы и версий
av16r_p.zip  av16e_p.zip  av16c_p.zip 
Тексты тестовых примеров
tav16r_p.zip  tav16e_p.zip  tav16c_p.zip 

Функция:  AV16R (модуль AV16R_p)

Назначение

Вычисление суммы модулей компонент вектора.

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

Функция AV16R вычисляет сумму модулей компонент   n - мерного вектора  x = ( x1, x2, ..., xn ) по формуле:

                          N 
               S   =   ∑   | x i |
                         i =1 

Вектор  x  не обязательно должен занимать последовательные слова памяти машины и может располагаться в памяти с некоторыми постоянными интервалами между компонентами, которые называются параметром приращения. Этот параметр может быть меньше нуля, если обработка компонент вектора должна проводиться в обратном порядке.

В случае, когда параметры приращения равны 1, используется развернутый цикл с шагом 6.

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

function AV16R(N :Integer; var SX :Array of Real; INCX :Integer;
                var IERR :Integer): Real;

Параметры

N - размерность вектора (тип: целый);
SX - вещественный одномерный массив длины  N, содержащий заданный вектор;
INCX - параметр приращения, задающий расположение вектора в массиве SХ (тип: целый);
IERR - целая переменная, указывающая характер ошибки; при этом:
IЕRR=65 - когда N ≤ 0 .

Версии

AV16E - вычисление суммы модулей компонент вектора, заданного с расширенной (Extended) точностью.
AV16C - вычисление суммы модулей компонент комплексного вектора.

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

UTAV10 - подпрограмма выдачи диагностических сообщений при работе подпрограмм АV16R и АV16С.
UTAV11 - подпрограмма выдачи диагностических сообщений при работе подпрограммы АV16E.

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

 

В функции АV16E одномерный массив, содержащий вектор, обозначен DХ и имеет тип Extended.

В функции АV16С одномерный массив, содержащий вектор, обозначен СХ и имеет тип Complex.

В функции АV16С сумма модулей компонент вычисляется по формуле:

                       N 
          W   =   ∑   [ | Re ( x i ) |  +  | Im ( x i ) | ]
                     i =1 

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

Unit tAv16r_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, AV16R_p;

function tAv16r: String;

implementation

function tAv16r: String;
var
N,INCX,IERR :Integer;
R16 :Real;
const
SX :Array [0..10] of Real = ( 2.0,0.0,2.0,0.0,2.0,0.0,2.0,0.0,2.0,0.0,2.0 );
begin
Result := '';
N := 6;
INСХ := 2;
IERR := 0;
R16 := AV16R(N,SX,INCX,IERR);
Result := Result + Format('%s',['   PEЗYЛЬTAT=']);
Result := Result + Format('%20.16f',[R16]) + #$0D#$0A;
Result := Result + Format('%s',['  IERR=']);
Result := Result + Format('%3d',[IERR]);
UtRes('tAv16r',Result);  { вывод результатов в файл tAv16r.res }
exit;
end;

end.

Результаты:     R16  =  12.  ,   IERR  =  0