Текст подпрограммы и версий
ame3r_c.zip , ame3d_c.zip
Тексты тестовых примеров
tame3r_c.zip , tame3d_c.zip

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

Назначение

Копирование разреженной матрицы, заданной в произвольном строчном формате

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

Подпрограмма ame3r_c выполняет копирование разреженной матрицы  A с NR строками, заданной в произвольном строчном представлении, в массивы, определяющие то же самое строчное представление матрицы  B.

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

    int ame3r_c (integer *ia, integer *ja, real *an, integer *nr,
        integer *ib, integer *jb, real *bn)

Параметры

 ia, ja -
      an  
заданные портрет и ненулевые элементы разреженной матрицы  A в произвольном строчном формате;
nr - число строк матриц  A и  B (тип: целый);
   ib, jb -
      bn  
заданные портрет и массив для ненулевых элементов матрицы  B в том же самом строчном формате;

Версии:

ame3d_c - копирование разреженной матрицы, заданной в произвольном строчном формате, в режиме удвоенной точности; при этом параметры an и bn должны иметь тип double

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

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

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

int main(void)
{
    /* Initialized data */
    static int ia[5] = { 1,4,4,6,7 };
    static int ja[6] = { 1,5,4,4,2,1 };
    static float an[6] = { 1.f,1.f,1.f,1.f,1.f,1.f };

    /* Local variables */
    extern int ame3r_c(int *, int *, float *, int *, int *, int *, float *);
    static int ib[5], jb[6];
    static float bn[6];
    static int nr, i;

    nr = 4;
    ame3r_c(ia, ja, an, &nr, ib, jb, bn);

    printf("\n  %5i %5i %5i %5i %5i \n",
           ib[0], ib[1], ib[2], ib[3], ib[4]);
    printf("\n  %5i %5i %5i %5i %5i %5i \n",
           jb[0], jb[1], jb[2], jb[3], jb[4], jb[5]);
    for (i = 1; i <= 6; ++i) {
         printf("\n  %5.0f \n", bn[i-1]);
    }
    return 0;
} /* main */


Результаты:

        ib = ( 1, 4, 4, 6, 7 )
        jb = ( 1, 5, 4, 4, 2, 1 )
       bn = ( 1, 1, 1, 1, 1, 1 )