Файл sparse.h

Разреженные матрицы. Подробнее...


Создание, освобождение и преобразование разреженных матриц

void sp_create (size_t m, size_t nz, size_t **IA, size_t **JA, double **AN)
 Выделение памяти под разреженную матрицу.
void sp_create_sym (size_t n, size_t nz, size_t **IA, size_t **JA, double **AN, double **AD)
 Выделение памяти под разреженную симметричную матрицу.
size_t sp_nz (size_t m, size_t *IA)
 Возвращает число ненулевых элементов в разреженном представлении матрицы.
void sp_sparse (double **A, size_t m, size_t n, size_t **IA, size_t **JA, double **AN, double eps)
 Конвертация плотного представления матрицы общего вида в разреженное.
void sp_sparse_sym (double **A, size_t n, size_t **IA, size_t **JA, double **AN, double **AD, double eps)
 Конвертация плотного представления симметричной матрицы в разреженное.
void sp_full (size_t *IA, size_t *JA, double *AN, size_t m, size_t n, double **A)
 Конвертация разреженного представления матрицы общего вида в плотное.
void sp_full_sym (size_t *IA, size_t *JA, double *AN, double *AD, size_t n, double **A)
 Конвертация разреженного представления симметричной матрицы в плотное.
void sp_sym_to_complete (size_t *IS, size_t *JS, double *SN, double *SD, size_t n, size_t *IA, size_t *JA, double *AN)
 Конвертация разреженного симметричной матрицы из формата RR(U)U в RR(C)U.
void sp_free (size_t *IA, size_t *JA, double *AN)
 Освобождение памяти, выделенной под разреженную матрицу.
void sp_free_sym (size_t *IA, size_t *JA, double *AN, double *AD)
 Освобождение памяти, выделенной под разреженную симметричную матрицу.
size_t sp_list (size_t *IA, size_t *JA, double *AN, size_t m, double *A, size_t *I, size_t *J)
 Получение списка всех ненулевых элементов разреженной матрицы.
void sp_convert (size_t nz, double *A, size_t *I, size_t *J, size_t m, size_t *IA, size_t *JA, double *AN)
 Построение разреженной матрицы по списку ненулевых элементов.
void sp_order (size_t *IA, size_t *JA, double *AN, size_t m)
 Упорядочение представления разреженной матрицы общего вида.
void sp_order_m (size_t *IA, size_t *JA, size_t m)
 Упорядочение портрета разреженной матрицы общего вида.

Ввод и вывод разреженных матриц

void sp_print (size_t *IA, size_t *JA, double *AN, size_t m, size_t n, const char *format)
 Форматированный вывод разреженной матрицы на экран.
void sp_print_list (size_t *IA, size_t *JA, double *AN, size_t m, size_t n, const char *xformat, const char *dformat)
 Форматированный вывод разреженной матрицы на экран.
void sp_fprint (FILE *file, size_t *IA, size_t *JA, double *AN, size_t m, size_t n, const char *format)
 Форматированный вывод разреженной матрицы в файл.
void sp_fprint_list (FILE *file, size_t *IA, size_t *JA, double *AN, size_t m, size_t n, const char *xformat, const char *dformat)
 Форматированный вывод разреженной матрицы на экран.
int sp_scan (size_t **IA, size_t **JA, double **AN, size_t *m, size_t *n)
 Чтение разреженной матрицы с клавиатуры.
int sp_fscan (FILE *file, size_t **IA, size_t **JA, double **AN, size_t *m, size_t *n)
 Чтение разреженной матрицы из файла.

Ввод и вывод симметричных разреженных матриц

void sp_print_sym (size_t *IA, size_t *JA, double *AN, double *AD, size_t n, const char *format)
 Форматированный вывод симметричной разреженной матрицы на экран.
void sp_print_list_sym (size_t *IA, size_t *JA, double *AN, double *AD, size_t n, const char *xformat, const char *dformat)
 Форматированный вывод симметричной разреженной матрицы на экран.
void sp_fprint_sym (FILE *file, size_t *IA, size_t *JA, double *AN, double *AD, size_t n, const char *format)
 Форматированный вывод разреженной матрицы в файл.
void sp_fprint_list_sym (FILE *file, size_t *IA, size_t *JA, double *AN, double *AD, size_t n, const char *xformat, const char *dformat)
 Форматированный вывод симметричной разреженной матрицы в файл.
int sp_scan_sym (size_t **IA, size_t **JA, double **AN, double **AD, size_t *n)
 Чтение разреженной матрицы с клавиатуры.
int sp_fscan_sym (FILE *file, size_t **IA, size_t **JA, double **AN, double **AD, size_t *n)
 Чтение разреженной матрицы из файла.

Операции с разреженными матрицами

void sp_transpose (size_t *IA, size_t *JA, double *AN, size_t m, size_t n, size_t *IAT, size_t *JAT, double *ATN)
 Транспонирование разреженной матрицы.
int sp_add_symb (size_t *IA, size_t *JA, size_t *IB, size_t *JB, size_t m, size_t n, size_t *IC, size_t *JC, size_t size_C)
 Символическое сложение разреженных матриц.
void sp_add_num (size_t *IA, size_t *JA, double *AN, size_t *IB, size_t *JB, double *BN, size_t m, size_t n, size_t *IC, size_t *JC, double *CN)
 Численное сложение разреженных матриц.
void sp_mult_col (size_t *IA, size_t *JA, double *AN, double *b, size_t m, double *c)
 Умножение разреженной матрицы на плотный столбец.
void sp_mult_row (size_t *IA, size_t *JA, double *AN, double *b, size_t m, size_t n, double *c)
 Умножение плотной строки на разреженную матрицу.
void sp_mult_col_sym (size_t *IA, size_t *JA, double *AN, double *AD, double *b, size_t n, double *c)
 Умножение симметричной матрицы на плотный столбец.
int sp_mult_symb (size_t *IA, size_t *JA, size_t *IB, size_t *JB, size_t m, size_t k, size_t *IC, size_t *JC, size_t size_C)
 Символическое умножение разреженных матриц.
void sp_mult_num (size_t *IA, size_t *JA, double *AN, size_t *IB, size_t *JB, double *BN, size_t *IC, size_t *JC, size_t m, size_t k, double *CN)
 Численное умножение разреженных матриц.
void sp_row_nz_sym (size_t *IA, size_t *JA, size_t n, size_t *nz)
 Заполнение вектора, так что $i$-я компонента равна числу ненулевых элементов в $i$-й строке/столбце симметричной разреженной матрицы.
void sp_colperm_sym (size_t *IA, size_t *JA, size_t n, size_t *p)
 Выдаёт вектор перестановок, такой, что столбцы матрицы будут расположены по неубыванию числа ненулевых элементов в них.
void sp_permute_sym (size_t n, size_t *IA, size_t *JA, size_t *IB, size_t *JB, double *AN, double *AD, double *BN, double *BD, size_t *IP)
 Перестановка строк и столбцов симметричной матрицы.

Решение систем уравнений с разреженными матрицами

int sp_chol_symb (size_t *IA, size_t *JA, size_t n, size_t *IU, size_t *JU, size_t size_U)
 Символическое треугольное разложение (Холецкого) разреженной симметричной матрицы.
void sp_chol_num (size_t *IA, size_t *JA, double *AN, double *AD, size_t *IU, size_t *JU, size_t n, double *UN, double *DINV)
 Численное треугольное разложение (Холецкого) разреженной симметричной положительно определенной матрицы.
void sp_chol_solve (size_t *IU, size_t *JU, double *UN, double *DINV, double *b, size_t n, double *x)
 Решение симметричной разреженной системы линейных уравнений $Ax=b$ методом Холецкого.
int sp_gauss_seidel (size_t *IA, size_t *JA, double *AN, double *AD, double *b, size_t n, double f, double eps, int max_iter, double *x)
 Решение разреженной системы линейных уравнений $Ax=b$ методом Гаусса-Зейделя (с выбором параметра релаксации).
int sp_gauss_seidel_m (size_t *IA, size_t *JA, double *AN, double *b, size_t n, double f, double eps, int max_iter, double *x)
 Решение разреженной системы линейных уравнений $Ax=b$ методом Гаусса-Зейделя (с выбором параметра релаксации).
int sp_conj (size_t *IA, size_t *JA, double *AN, double *b, size_t n, double eps, int max_iter, double *x)
 Решение разреженной симметричной системы линейных уравнений $Ax=b$ методом сопряженных градиентов.
int sp_conj_sym (size_t *IA, size_t *JA, double *AN, double *AD, double *b, size_t n, double eps, int max_iter, double *x)
 Решение разреженной симметричной системы линейных уравнений $Ax=b$ методом сопряженных градиентов.
int sp_biconj (size_t *IA, size_t *JA, double *AN, double *b, size_t n, double eps, int max_iter, double *x)
 Решение разреженной системы линейных уравнений $Ax=b$ методом бисопряженных градиентов.


Подробное описание

Разреженные матрицы.

Файл содержит функции, поддерживающие работу с разреженными матрицами.

Для представления разреженных матриц общего вида в библиотеке используются так называемые RR(C)O и RR(C)U-форматы (row-wise representation complete and ordered и row-wise representation complete and unordered соответственно). С каждой матрицей $A$ в этих форматах связаны одномерный массив элементов $AN$ и два массива указателей: $JA$ и $IA$. Все ненулевые элементы хранятся построчно в массиве $AN$. Индексы столбцов ненулевых элементов - в массиве $JA$. Элементы массива $IA$ указывают на позиции, с которых начинается описание очередной строки. Более точно, описание $r$-й строки хранится в позициях с $IA[r]$ до $IA[r+1]-1$ массивов $JA$ и $AN$. Если $IA[r]=IA[r+1]$, то $r$-ая строка пустая. Отличие формата RR(C)O от RR(C)U в том, что при использовании первого формата ненулевые элементы внутри каждой строки храняться упорядоченно, при использовании второго ненулевые элементы внутри одной строки могут храниться в произвольном порядке.

Для представления разреженных симметричных матриц используются RR(U)O и RR(U)U-форматы. Отличие этих форматов от двух предыдущих в том, что, в массивах $IA$, $JA$, $AN$ хранится информация об элементах матрицы, лежащих выше диагонали, диагональные элементы (в том числе нулевые) хранятся отдельно в одномерном массиве $AD$.

Подробно различные форматы хранения разреженных матриц опиcаны в [ZolotykhBelov] и [Pissanezki]


Функции

void sp_add_num ( size_t *  IA,
size_t *  JA,
double *  AN,
size_t *  IB,
size_t *  JB,
double *  BN,
size_t  m,
size_t  n,
size_t *  IC,
size_t *  JC,
double *  CN 
)

Численное сложение разреженных матриц.

Трудоемкость:

int sp_add_symb ( size_t *  IA,
size_t *  JA,
size_t *  IB,
size_t *  JB,
size_t  m,
size_t  n,
size_t *  IC,
size_t *  JC,
size_t  size_C 
)

Символическое сложение разреженных матриц.

Трудоемкость:

int sp_biconj ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  b,
size_t  n,
double  eps,
int  max_iter,
double *  x 
)

Решение разреженной системы линейных уравнений $Ax=b$ методом бисопряженных градиентов.

Функция возвращает значение, на $1$ меньшее количества выполненных итераций. Если это значение равно $max\_iter$, то заданная точность не достигнута

Трудоемкость:

Примеры:
xspbicnj.c.

void sp_chol_num ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  AD,
size_t *  IU,
size_t *  JU,
size_t  n,
double *  UN,
double *  DINV 
)

Численное треугольное разложение (Холецкого) разреженной симметричной положительно определенной матрицы.

Процедура строит численное треугольное разложение симметричной положительно определенной матрицы $A$ вида $A=U^{\rm T}U$.

Примеры:
xmda.c и xspchol.c.

void sp_chol_solve ( size_t *  IU,
size_t *  JU,
double *  UN,
double *  DINV,
double *  b,
size_t  n,
double *  x 
)

Решение симметричной разреженной системы линейных уравнений $Ax=b$ методом Холецкого.

Трудоемкость:

Примеры:
xmda.c и xspchol.c.

int sp_chol_symb ( size_t *  IA,
size_t *  JA,
size_t  n,
size_t *  IU,
size_t *  JU,
size_t  size_U 
)

Символическое треугольное разложение (Холецкого) разреженной симметричной матрицы.

Процедура строит символическое треугольное разложение симметричной матрицы A вида $A=U^{\rm T} U$.

Трудоемкость:

Примеры:
xmda.c и xspchol.c.

void sp_colperm_sym ( size_t *  IA,
size_t *  JA,
size_t  n,
size_t *  p 
)

Выдаёт вектор перестановок, такой, что столбцы матрицы будут расположены по неубыванию числа ненулевых элементов в них.

Трудоемкость: $nz\log(nz) + n$

int sp_conj ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  b,
size_t  n,
double  eps,
int  max_iter,
double *  x 
)

Решение разреженной симметричной системы линейных уравнений $Ax=b$ методом сопряженных градиентов.

В отличие от функции sp_conj_sym матрица $A$ представлена в RR(C)U-формате

Трудоемкость:

int sp_conj_sym ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  AD,
double *  b,
size_t  n,
double  eps,
int  max_iter,
double *  x 
)

Решение разреженной симметричной системы линейных уравнений $Ax=b$ методом сопряженных градиентов.

В отличие от функции sp_conj матрица $A$ представлена в RR(U)U-формате

Функция возвращает значение, на $1$ меньшее количества выполненных итераций. Если это значение равно $max\_iter$, то заданная точность не достигнута

Трудоемкость:

Примеры:
xspconjs.c.

void sp_convert ( size_t  nz,
double *  A,
size_t *  I,
size_t *  J,
size_t  m,
size_t *  IA,
size_t *  JA,
double *  AN 
)

Построение разреженной матрицы по списку ненулевых элементов.

Трудоемкость:

Примеры:
xbicg.c, xmda.c, xsparse.c, xspbicnj.c, xspchol.c, xspconjs.c и xspseid.c.

void sp_create ( size_t  m,
size_t  nz,
size_t **  IA,
size_t **  JA,
double **  AN 
)

Выделение памяти под разреженную матрицу.

Примеры:
xbicg.c, xlaplace.c, xsparse.c, xspbicnj.c, xspchol.c, xspconjs.c и xspseid.c.

void sp_create_sym ( size_t  n,
size_t  nz,
size_t **  IA,
size_t **  JA,
double **  AN,
double **  AD 
)

Выделение памяти под разреженную симметричную матрицу.

Примеры:
xlaplace.c и xmda.c.

void sp_fprint ( FILE *  file,
size_t *  IA,
size_t *  JA,
double *  AN,
size_t  m,
size_t  n,
const char *  format 
)

Форматированный вывод разреженной матрицы в файл.

Выводятся размеры матрицы, а затем три вектора, которые задают разреженное представление матрицы: $IA$, $JA$, $AN$.

void sp_fprint_list ( FILE *  file,
size_t *  IA,
size_t *  JA,
double *  AN,
size_t  m,
size_t  n,
const char *  xformat,
const char *  dformat 
)

Форматированный вывод разреженной матрицы на экран.

Выводятся размеры матрицы и число ненулевых элементов. Затем выводится матрица в виде списка ненулевых элементов с указанием их позиций.

void sp_fprint_list_sym ( FILE *  file,
size_t *  IA,
size_t *  JA,
double *  AN,
double *  AD,
size_t  n,
const char *  xformat,
const char *  dformat 
)

Форматированный вывод симметричной разреженной матрицы в файл.

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

void sp_fprint_sym ( FILE *  file,
size_t *  IA,
size_t *  JA,
double *  AN,
double *  AD,
size_t  n,
const char *  format 
)

Форматированный вывод разреженной матрицы в файл.

Выводятся размер матрицы и четыре вектора, которые задают разреженное представление матрицы: $IA$, $JA$, $AN$, $AD$.

void sp_free ( size_t *  IA,
size_t *  JA,
double *  AN 
)

Освобождение памяти, выделенной под разреженную матрицу.

Вход: $IA$, $JA$, $AN$, $AD$ - разреженное представление матрицы в RR(U)U-формате $n$ - порядок матрицы $A$

Примеры:
xbicg.c, xlaplace.c, xsparse.c, xspbicnj.c, xspchol.c, xspconjs.c и xspseid.c.

void sp_free_sym ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  AD 
)

Освобождение памяти, выделенной под разреженную симметричную матрицу.

Вход: $IA$, $JA$, $AN$, $AD$ - разреженное представление матрицы в RR(U)U-формате $n$ - порядок матрицы $A$

Примеры:
xlaplace.c и xmda.c.

int sp_fscan ( FILE *  file,
size_t **  IA,
size_t **  JA,
double **  AN,
size_t *  m,
size_t *  n 
)

Чтение разреженной матрицы из файла.

Функция считывает с клавиатуры число строк и число столбцов, размещает память под структуру хранения разреженной матрицы, а затем считывает векторы представления разреженной матрицы.

int sp_fscan_sym ( FILE *  file,
size_t **  IA,
size_t **  JA,
double **  AN,
double **  AD,
size_t *  n 
)

Чтение разреженной матрицы из файла.

Функция считывает из файла число строк/столбцов, размещает память под структуру хранения разреженной матрицы, а затем считывает вектора представляения разреженной матрицы.

void sp_full ( size_t *  IA,
size_t *  JA,
double *  AN,
size_t  m,
size_t  n,
double **  A 
)

Конвертация разреженного представления матрицы общего вида в плотное.

Трудоемкость:

Примеры:
xlaplace.c и xsparse.c.

void sp_full_sym ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  AD,
size_t  n,
double **  A 
)

Конвертация разреженного представления симметричной матрицы в плотное.

Трудоемкость:

int sp_gauss_seidel ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  AD,
double *  b,
size_t  n,
double  f,
double  eps,
int  max_iter,
double *  x 
)

Решение разреженной системы линейных уравнений $Ax=b$ методом Гаусса-Зейделя (с выбором параметра релаксации).

Трудоемкость:

Примеры:
xspseid.c.

int sp_gauss_seidel_m ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  b,
size_t  n,
double  f,
double  eps,
int  max_iter,
double *  x 
)

Решение разреженной системы линейных уравнений $Ax=b$ методом Гаусса-Зейделя (с выбором параметра релаксации).

Трудоемкость:

size_t sp_list ( size_t *  IA,
size_t *  JA,
double *  AN,
size_t  m,
double *  A,
size_t *  I,
size_t *  J 
)

Получение списка всех ненулевых элементов разреженной матрицы.

Трудоемкость:

void sp_mult_col ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  b,
size_t  m,
double *  c 
)

Умножение разреженной матрицы на плотный столбец.

Трудоемкость:

Примеры:
xbicg.c и xspbicnj.c.

void sp_mult_col_sym ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  AD,
double *  b,
size_t  n,
double *  c 
)

Умножение симметричной матрицы на плотный столбец.

Трудоемкость:

Примеры:
xmda.c и xspconjs.c.

void sp_mult_num ( size_t *  IA,
size_t *  JA,
double *  AN,
size_t *  IB,
size_t *  JB,
double *  BN,
size_t *  IC,
size_t *  JC,
size_t  m,
size_t  k,
double *  CN 
)

Численное умножение разреженных матриц.

Трудоемкость:

void sp_mult_row ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  b,
size_t  m,
size_t  n,
double *  c 
)

Умножение плотной строки на разреженную матрицу.

Трудоемкость:

int sp_mult_symb ( size_t *  IA,
size_t *  JA,
size_t *  IB,
size_t *  JB,
size_t  m,
size_t  k,
size_t *  IC,
size_t *  JC,
size_t  size_C 
)

Символическое умножение разреженных матриц.

Трудоемкость:

size_t sp_nz ( size_t  m,
size_t *  IA 
)

Возвращает число ненулевых элементов в разреженном представлении матрицы.

void sp_order ( size_t *  IA,
size_t *  JA,
double *  AN,
size_t  m 
)

Упорядочение представления разреженной матрицы общего вида.

Трудоемкость:

void sp_order_m ( size_t *  IA,
size_t *  JA,
size_t  m 
)

Упорядочение портрета разреженной матрицы общего вида.

Трудоемкость:

void sp_permute_sym ( size_t  n,
size_t *  IA,
size_t *  JA,
size_t *  IB,
size_t *  JB,
double *  AN,
double *  AD,
double *  BN,
double *  BD,
size_t *  IP 
)

Перестановка строк и столбцов симметричной матрицы.

Примеры:
xmda.c.

void sp_print ( size_t *  IA,
size_t *  JA,
double *  AN,
size_t  m,
size_t  n,
const char *  format 
)

Форматированный вывод разреженной матрицы на экран.

Выводятся размеры матрицы, а затем три вектора, которые задают разреженное представление матрицы: $IA$, $JA$, $AN$.

Примеры:
xlaplace.c и xsparse.c.

void sp_print_list ( size_t *  IA,
size_t *  JA,
double *  AN,
size_t  m,
size_t  n,
const char *  xformat,
const char *  dformat 
)

Форматированный вывод разреженной матрицы на экран.

Выводятся размеры матрицы и число ненулевых элементов. Затем матрица выводится в виде списка ненулевых элементов с указанием их позиций.

Примеры:
xbicg.c, xmda.c, xsparse.c, xspbicnj.c, xspchol.c и xspseid.c.

void sp_print_list_sym ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  AD,
size_t  n,
const char *  xformat,
const char *  dformat 
)

Форматированный вывод симметричной разреженной матрицы на экран.

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

Примеры:
xspchol.c и xspconjs.c.

void sp_print_sym ( size_t *  IA,
size_t *  JA,
double *  AN,
double *  AD,
size_t  n,
const char *  format 
)

Форматированный вывод симметричной разреженной матрицы на экран.

Выводятся размер матрицы и четыре вектора, которые задают разреженное представление матрицы: $IA$, $JA$, $AN$, $AD$.

void sp_row_nz_sym ( size_t *  IA,
size_t *  JA,
size_t  n,
size_t *  nz 
)

Заполнение вектора, так что $i$-я компонента равна числу ненулевых элементов в $i$-й строке/столбце симметричной разреженной матрицы.

Трудоемкость: $n + nz$;

int sp_scan ( size_t **  IA,
size_t **  JA,
double **  AN,
size_t *  m,
size_t *  n 
)

Чтение разреженной матрицы с клавиатуры.

Функция считывает с клавиатуры число строк и число столбцов, размещает память под структуру хранения разреженной матрицы, а затем считывает векторы представления разреженной матрицы.

int sp_scan_sym ( size_t **  IA,
size_t **  JA,
double **  AN,
double **  AD,
size_t *  n 
)

Чтение разреженной матрицы с клавиатуры.

Функция считывает с клавиатуры число строк/столбцов, размещает память под структуру хранения разреженной матрицы, а затем считывает вектора представляения разреженной матрицы.

void sp_sparse ( double **  A,
size_t  m,
size_t  n,
size_t **  IA,
size_t **  JA,
double **  AN,
double  eps 
)

Конвертация плотного представления матрицы общего вида в разреженное.

Трудоемкость:

void sp_sparse_sym ( double **  A,
size_t  n,
size_t **  IA,
size_t **  JA,
double **  AN,
double **  AD,
double  eps 
)

Конвертация плотного представления симметричной матрицы в разреженное.

Трудоемкость:

void sp_sym_to_complete ( size_t *  IS,
size_t *  JS,
double *  SN,
double *  SD,
size_t  n,
size_t *  IA,
size_t *  JA,
double *  AN 
)

Конвертация разреженного симметричной матрицы из формата RR(U)U в RR(C)U.

Память под выходную матрицу должна быть выделена, так что число ненулевых элементов должн быть не меньше $2*nz + n$, где $nz$ -- число ненулевых элементов в исходной матрице.

Пример: sp_create(n, 2*sp_nz(n,IS) + n, &IA, &JA, &AN)

void sp_transpose ( size_t *  IA,
size_t *  JA,
double *  AN,
size_t  m,
size_t  n,
size_t *  IAT,
size_t *  JAT,
double *  ATN 
)

Транспонирование разреженной матрицы.

Трудоемкость:


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