Текст подпрограммы и версий
ama7r_c.zip
Тексты тестовых примеров
tama7r_c.zip

Подпрограмма:  ama7r_c

Назначение

Символическое сложение двух прямоугольных разреженных матриц, заданных в формате RR (C) U.

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

Описания форматов RR (C) U и RR (C) O приведено в описании подпрограммы amtsr_c .

Пусть заданы прямоугольные разреженные матрицы A и B размеров N на M в формате RR (C) U. Подпрограмма ama7r_c вычисляет портрет матрицы C, равной A + B, формируемый в формате RR (C) U, даже если матрицы A и B заданы в формате RR (C) O.

С.Писсанецки. Технология разреженных матриц. - М.: Мир, 1988

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

    int ama7r_c (integer *ia, integer *ja, integer *ib,
        integer *jb, integer *n, integer *m, integer *ic, integer *jc,
        integer *ix)

Параметры

ia, ja - заданный портрет матрицы A в формате RR (C) U;
ib, jb - заданный портрет матрицы B в формате RR (C) U;
n - заданное число строк матриц A и B (тип: целый);
m - заданное число столбцов матриц A и B (тип: целый).
ic, jc - полученный портрет матрицы C = A + B в формате RR (C) U;
ix - целый массив длины m, используемый в подпрограмме в качестве рабочего

Версии: нет

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

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

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

int main(void)
{
    /* Initialized data */
    static int ia[5] = { 1,3,7,9,11 };
    static int ja[10] = { 5,3,4,3,1,5,1,6,4,2 };
    static int ib[5] = { 1,4,5,8,10 };
    static int jb[9] = { 1,6,3,5,4,2,1,2,3 };

    /* Local variables */
    extern int ama7r_c(int *, int *, int *, int *, int *, int *, int *,
                       int *, int *);
    static int m, n, ic[5], jc[15], ix[6];

    n = 4;
    m = 6;
    ama7r_c(ia, ja, ib, jb, &n, &m, ic, jc, ix);

    printf("\n %4i %4i %4i %4i %4i \n", ic[0], ic[1], ic[2], ic[3], ic[4]);
    printf("\n %4i %4i %4i %4i %4i %4i %4i %4i %4i %4i %4i %4i %4i %4i %4i \n",
         jc[0], jc[1], jc[2], jc[3], jc[4], jc[5], jc[6], jc[7], jc[8], jc[9],
         jc[10], jc[11], jc[12], jc[13], jc[14]);
    return 0;
} /* main */


Результаты:

      ic = ( 1, 5, 9, 13, 16 )
      jc = ( 5, 3, 1, 6, 4, 3, 1, 5, 1, 6, 4, 2, 4, 2, 3 )