File indexing completed on 2025-02-21 10:03:54
0001 #ifndef __GSL_SPMATRIX_H__
0002 #define __GSL_SPMATRIX_H__
0003
0004 enum
0005 {
0006 GSL_SPMATRIX_COO = 0,
0007 GSL_SPMATRIX_CSC = 1,
0008 GSL_SPMATRIX_CSR = 2,
0009 GSL_SPMATRIX_TRIPLET = GSL_SPMATRIX_COO,
0010 GSL_SPMATRIX_CCS = GSL_SPMATRIX_CSC,
0011 GSL_SPMATRIX_CRS = GSL_SPMATRIX_CSR
0012 };
0013
0014
0015 struct gsl_spmatrix_pool_node
0016 {
0017 struct gsl_spmatrix_pool_node * next;
0018 void * block_ptr;
0019 unsigned char * free_slot;
0020 };
0021
0022 typedef struct gsl_spmatrix_pool_node gsl_spmatrix_pool;
0023
0024 #define GSL_SPMATRIX_ISCOO(m) ((m)->sptype == GSL_SPMATRIX_COO)
0025 #define GSL_SPMATRIX_ISCSC(m) ((m)->sptype == GSL_SPMATRIX_CSC)
0026 #define GSL_SPMATRIX_ISCSR(m) ((m)->sptype == GSL_SPMATRIX_CSR)
0027
0028 #define GSL_SPMATRIX_ISTRIPLET(m) GSL_SPMATRIX_ISCOO(m)
0029 #define GSL_SPMATRIX_ISCCS(m) GSL_SPMATRIX_ISCSC(m)
0030 #define GSL_SPMATRIX_ISCRS(m) GSL_SPMATRIX_ISCSR(m)
0031
0032 #define GSL_SPMATRIX_FLG_GROW (1 << 0)
0033 #define GSL_SPMATRIX_FLG_FIXED (1 << 1)
0034
0035
0036 #define GSL_SPMATRIX_COMPARE_ROWCOL(m,ia,ja,ib,jb) ((ia) < (ib) ? -1 : ((ia) > (ib) ? 1 : ((ja) < (jb) ? -1 : ((ja) > (jb)))))
0037
0038
0039
0040 void gsl_spmatrix_cumsum(const size_t n, int * c);
0041
0042 #include <gsl/gsl_spmatrix_complex_long_double.h>
0043 #include <gsl/gsl_spmatrix_complex_double.h>
0044 #include <gsl/gsl_spmatrix_complex_float.h>
0045
0046 #include <gsl/gsl_spmatrix_long_double.h>
0047 #include <gsl/gsl_spmatrix_double.h>
0048 #include <gsl/gsl_spmatrix_float.h>
0049
0050 #include <gsl/gsl_spmatrix_ulong.h>
0051 #include <gsl/gsl_spmatrix_long.h>
0052
0053 #include <gsl/gsl_spmatrix_uint.h>
0054 #include <gsl/gsl_spmatrix_int.h>
0055
0056 #include <gsl/gsl_spmatrix_ushort.h>
0057 #include <gsl/gsl_spmatrix_short.h>
0058
0059 #include <gsl/gsl_spmatrix_uchar.h>
0060 #include <gsl/gsl_spmatrix_char.h>
0061
0062 #endif