Текст подпрограммы и версий
avz7r_c.zip  avz7d_c.zip  avz7c_c.zip 
Тексты тестовых примеров
tavz7r_c.zip  tavz7d_c.zip  tavz7c_c.zip 

Функция:  avz7r_c

Назначение

Нахождение индекса максимальной по абсолютной величине компоненты вещественного вектора.

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

Если несколько компонeнт вектора имеют максимальное абсолютное значение, то из их индексов выбирается минимальный.

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

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

    integer avz7r_c (integer *n, real *sx, integer *incx, integer *ierr)

Параметры

n - размерность вектора (тип: целый);
sx - вещественный одномерный массив длины n * | incx |, содержащий данный вектор;
incx - параметр приращения, задающий расположение вектора в массиве (тип: целый);
ierr - целая переменная, указывающая характер ошибки; при этом:
ierr=65 - когда n ≤ 0 .

Версии

avz7d_c - нахождение индекса максимальной компоненты вещественного вектора, заданного с удвоенной точностью;
avz7c_c - нахождение индекса максимальной компоненты комплексного вектора.

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

utav10_c - подпрограмма выдачи диагностических сообщений при работе подпрограмм avz7r_c и avz7c_c.
utav11_c - подпрограмма выдачи диагностических сообщений при работе подпрограммы avz7d_c.

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

 

В функции avz7d_c одномерный массив, содержащий вектор, обозначен dx и имеет тип double.

В функции avz7c_c одномерный массив, содержащий вектор, обозначен cx и имеет тип complex.

Подпрограммы - функции avz7r_c и avz7d_c определяют наименьший индекс  i  такой, что

            | xi |  =  max [ | xj | :  j = 1, 2, ... , n ] 

Подпрограмма - функция avz7c_c определяет наименьший индекс  i  такой, что

            | xi |  =  max [ | re(xj )| + | im(xj )| :  j = 1, 2, ..., n ] 

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

int main(void)
{
    /* Initialized data */
    static float sx[11] = { 1.f,0.f,3.f,0.f,4.f,0.f,2.f,0.f,4.f,0.f,3.f };

    /* Local variables */
    static int incx, ierr;
    extern int avz7r_c(int *, float *, int *, int *);
    static int n, iz;

    n = 6;
    incx = 2;
    ierr = 0;
    iz = avz7r_c(&n, sx, &incx, &ierr);

    printf("\n  %5i \n", iz);
    printf("\n  %5i \n", ierr);
    return 0;
} /* main */


Результаты:   iz    =  3. ,   ierr  =  0