Текст подпрограммы и версий
avz2r_c.zip  avz2d_c.zip  avz2c_c.zip 
Тексты тестовых примеров
tavz2r_c.zip  tavz2d_c.zip  tavz2c_c.zip 

Функция:  avz2r_c

Назначение

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

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

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

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

    real avz2r_c (real *v, integer *n, integer *istep, integer *j)

Параметры

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

Версии

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

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

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

 

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

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

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

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

    /* Local variables */
    extern float avz2r_c(float *, int *, int *, int *);
    static int j, n;
    static float y;
    static int istep;

    n = 4;
    istep = 3;
    y = (float)avz2r_c(v, &n, &istep, &j);

    printf("\n  %13.5e \n", y);
    printf("\n  %5i \n", j);
    n = 10;
    istep = 1;
    y = (float)avz2r_c(v, &n, &istep, &j);

    printf("\n  %13.5e \n", y);
    printf("\n  %5i \n", j);
    return 0;
} /* main */


Результаты:   y = 5. ,   j = 5