Текст подпрограммы и версий
avz1r_c.zip  avz1d_c.zip  avz1c_c.zip 
Тексты тестовых примеров
tavz1r_c.zip  tavz1d_c.zip  tavz1c_c.zip 

Функция:  avz1r_c

Назначение

Вычисление суммы абсолютных значений компонент вектора или заданного подмножества компонент этого вектора.

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

Для заданного вектора  V длины  N вычисляется сумма абсолютных значений всех его компонент. Кроме того, может быть вычислена сумма абсолютных значений тех его компонент, индексы которых последовательно отстают друг от друга на величину istep.

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

    real avz1r_c (real *v, integer *n, integer *istep)

Параметры

v - вещественный одномерный массив длины  n, в котором задаются компоненты вектора;
n - число компонент вектора (тип: целый);
istep - заданный шаг изменения индексов тех компонент, сумма абсолютных значений которых вычисляется (тип: целый).

Версии

avz1d_c - вычисление суммы абсолютных значений компонент вектора, заданного с удвоенной точностью, или заданного подмножества компонент этого вектора.
avz1c_c - вычисление суммы абсолютных значений компонент комплексного вектора или заданного подмножества компонент этого вектора.

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

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

 

В функции avz1d_c вектор  V должен иметь тип double.

В функции avz1c_c вектор  V должен иметь тип complex.

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

int main(void)
{
    /* Initialized data */
    static float v[10] = { 1.f,2.f,3.f,4.f,5.f,6.f,7.f,8.f,9.f,10.f };

    /* Local variables */
    extern float avz1r_c(float *, int *, int *);
    static int n;
    static float y;
    static int istep;
    static float y1;

    n = 10;
    istep = 1;
    y = (float)avz1r_c(v, &n, &istep);

    n = 5;
    istep = 2;
    y1 = (float)avz1r_c(&v[1], &n, &istep);

    printf("\n  %16.7e \n", y);
    printf("\n  %16.7e \n", y1);
    return 0;
} /* main */
      y =  avz1r (v, n, istep)


Результат:    y = 55.