xsparse.c

00001 /*
00002   Пример использования функций из модуля @sparse.h@
00003   Конвертация разреженной матрицы в представление 
00004   в виде списка ненулевых элементов и обратно
00005   $A=  \left(  \begin{array}{rrrrr}    1 & -1 &    &    &    \\   -5 &  2 & -2 &    &    \\      & -6 &  3 & -3 &    \\      &    & -7 &  4 & -4 \\      &    &    & -8 &  5 \\  \end{array}  \right).  $
00006 */
00007 #include <stdlib.h>
00008 #include <string.h> 
00009 
00010 #include "nl.h"
00011 
00012 int main()
00013 {
00014   size_t n = 5;
00015   size_t nz = 13;
00016   double A[] = {1, 2, 3, 4, 5,-1,-2,-3,-4,-5,-6,-7,-8};
00017   size_t I[] = {0, 1, 2, 3, 4, 0, 1, 2, 3, 1, 2, 3, 4};
00018   size_t J[] = {0, 1, 2, 3, 4, 1, 2, 3, 4, 0, 1, 2, 3};
00019   size_t *IA, *JA;
00020   double *AN, **AF;
00021 
00022   sp_create(n, nz, &IA, &JA, &AN);
00023   sp_convert(nz, A, I, J, n, IA, JA, AN);
00024 
00025   printf("Разреженное представление:\n");
00026   sp_print_list(IA, JA, AN, n, n, NULL, NULL);
00027   printf("\nПредставление в виде ");
00028   printf("списка ненулевых элементов:\n");
00029   sp_print(IA, JA, AN, n, n, NULL);
00030 
00031   printf("\nПлотное представление:\n");
00032   AF = nl_dmatrix_create(n, n);
00033   sp_full(IA, JA, AN, n, n, AF);
00034   nl_dmatrix_print(AF, n, n, NULL);
00035 
00036   sp_free(IA, JA, AN);
00037   nl_dmatrix_free(AF, n);
00038 
00039   return 0;
00040 }

Документация по NL. Последние изменения: Mon Oct 9 12:25:54 2006. Создано системой  doxygen 1.4.7