csr_matrix.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef CSR_MATRIX_HEADER
00029 #define CSR_MATRIX_HEADER
00030
00031 #include "realtype.h"
00032
00033
00034 typedef struct
00035 {
00036 int noOfElementsInRow;
00037 int firstElementIndex;
00038 } csr_matrix_row_struct;
00039
00040 struct csr_matrix_struct
00041 {
00042 int n;
00043 int nnz;
00044 int symmetryFlag;
00045 csr_matrix_row_struct* rowList;
00046 ergo_real* elementList;
00047 int* columnIndexList;
00048 };
00049
00050
00051
00052 int ergo_CSR_create(csr_matrix_struct* csr,
00053 int symmetryFlag,
00054 int n,
00055 int nnz,
00056 int* rowind,
00057 int* colind);
00058
00059 int ergo_CSR_destroy(csr_matrix_struct* csr);
00060
00061 int ergo_CSR_copy(csr_matrix_struct* csrDest, const csr_matrix_struct* csrSource);
00062
00063 int ergo_CSR_add_equal_structure(csr_matrix_struct* csrDest, const csr_matrix_struct* csrSource);
00064
00065 int ergo_CSR_add_to_element(csr_matrix_struct* csr,
00066 int row,
00067 int col,
00068 ergo_real value);
00069
00070 ergo_real ergo_CSR_get_element(const csr_matrix_struct* csr,
00071 int row,
00072 int col);
00073
00074 ergo_real ergo_CSR_get_max_abs_element(const csr_matrix_struct* csr);
00075
00076 int ergo_CSR_get_nvalues(const csr_matrix_struct* csr);
00077
00078 int ergo_CSR_get_values(const csr_matrix_struct* csr,
00079 int* rowind,
00080 int* colind,
00081 ergo_real* values,
00082 int nvalues);
00083
00084 int ergo_CSR_get_nvalues_singlerow(const csr_matrix_struct* csr,
00085 int row);
00086
00087 int ergo_CSR_get_values_singlerow(const csr_matrix_struct* csr,
00088 int row,
00089 int* colind,
00090 ergo_real* values,
00091 int nvalues);
00092
00093
00094
00095 #endif