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

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

Назначение

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

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

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

Пусть симметричная положительно определенная разреженная матрица А порядка N задана в формате RR (U) U. Подпрограмма afh6r_c выполняет символическое треугольное разложение матрицы А, т.е. формирует портрет матрицы U в разложении матрицы А в произведение трех матриц: A = UTDU, где U - верхняя треугольная матрица с единичной диагональю, а D - диагональная матрица. Портрет результирующей матрицы U формируется также в формате RR (U) U.

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

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

    int afh6r_c (integer *ia, integer *ja, integer *n, integer *iu,
             integer *ju, integer *ip)

Параметры

ia, ja - заданный портрет матрицы A;
n - заданный порядок матрицы A (тип: целый);
iu, ju - вычисленный портрет матрицы U;
ip - целый одномерный массив длины n, используемый в подпрограмме в качестве рабочего

Версии: нет

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

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

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

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

    /* Local variables */
    extern int afh6r_c(int *, int *, int *, int *, int *, int *);
    static int n, ip[5], iu[6], ju[4];

    n = 5;
    afh6r_c(ia, ja, &n, iu, ju, ip);

    printf("\n %5i %5i %5i %5i %5i %5i \n",
               iu[0], iu[1], iu[2], iu[3], iu[4], iu[5]);
    printf("\n %5i %5i %5i %5i \n",
               ju[0], ju[1], ju[2], ju[3]);
    return 0;
} /* main */


Результаты:

       iu  =  ( 1, 2, 3, 4, 5, 5 )
       ju  =  ( 5, 5, 5, 5 )