Текст подпрограммы и версий
amy6r_c.zip , amy6d_c.zip
Тексты тестовых примеров
tamy6r_c.zip , tamy6d_c.zip

Функция:  amy6r_c

Назначение

Нахождение максимального по модулю элемента строки (или столбца) симметричной матрицы, заданной в компактной форме.

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

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

    real amy6r_c (real *a, integer *n, integer *i, integer *j)

Параметры

a - вещественный вектор длины n на (n + 1)/2, в котором задается симметричная матрица в компактной форме;
n - заданный порядок матрицы (тип: целый);
i - заданный номер строки (или столбца) (тип: целый);
j - целая переменная, содержащая второй (или первый) индекс максимального по модулю элемента исходной матрицы в предположении, что она задана в виде квадратной матрицы, а не в компактной форме.

Версии

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

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

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

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

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

int main(void)
{
    /* Initialized data */
    static float a[10] = { 1.1f,2.1f,2.2f,3.1f,3.2f,3.3f,4.1f,4.2f,4.3f,4.4f };

    /* Local variables */
    extern float amy6r_c(float *, int *, int *, int *);
    static int i__, j, n;
    static float y;

    n = 4;
    i__ = 1;
L5:
    y = (float)amy6r_c(a, &n, &i__, &j);

    printf("\n  %10.3e \n", y);
    printf("\n  %5i \n", j);
    ++i__;
    if (i__ < 5) { goto L5; }
    return 0;
} /* main */


Результаты:    y = 4.3 ,    j = 4