CSS product code  0.1
C++ library to estimate distance of CSS codes. Some particular construction of CSS codes are implemented.
mmio.h File Reference
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

Go to the source code of this file.

Macros

#define MM_MAX_LINE_LENGTH   1025
 
#define MatrixMarketBanner   "%%MatrixMarket"
 
#define MM_MAX_TOKEN_LENGTH   64
 
#define mm_is_matrix(typecode)   ((typecode)[0]=='M')
 
#define mm_is_sparse(typecode)   ((typecode)[1]=='C')
 
#define mm_is_coordinate(typecode)   ((typecode)[1]=='C')
 
#define mm_is_dense(typecode)   ((typecode)[1]=='A')
 
#define mm_is_array(typecode)   ((typecode)[1]=='A')
 
#define mm_is_complex(typecode)   ((typecode)[2]=='C')
 
#define mm_is_real(typecode)   ((typecode)[2]=='R')
 
#define mm_is_pattern(typecode)   ((typecode)[2]=='P')
 
#define mm_is_integer(typecode)   ((typecode)[2]=='I')
 
#define mm_is_symmetric(typecode)   ((typecode)[3]=='S')
 
#define mm_is_general(typecode)   ((typecode)[3]=='G')
 
#define mm_is_skew(typecode)   ((typecode)[3]=='K')
 
#define mm_is_hermitian(typecode)   ((typecode)[3]=='H')
 
#define mm_set_matrix(typecode)   ((*typecode)[0]='M')
 
#define mm_set_coordinate(typecode)   ((*typecode)[1]='C')
 
#define mm_set_array(typecode)   ((*typecode)[1]='A')
 
#define mm_set_dense(typecode)   mm_set_array(typecode)
 
#define mm_set_sparse(typecode)   mm_set_coordinate(typecode)
 
#define mm_set_complex(typecode)   ((*typecode)[2]='C')
 
#define mm_set_real(typecode)   ((*typecode)[2]='R')
 
#define mm_set_pattern(typecode)   ((*typecode)[2]='P')
 
#define mm_set_integer(typecode)   ((*typecode)[2]='I')
 
#define mm_set_symmetric(typecode)   ((*typecode)[3]='S')
 
#define mm_set_general(typecode)   ((*typecode)[3]='G')
 
#define mm_set_skew(typecode)   ((*typecode)[3]='K')
 
#define mm_set_hermitian(typecode)   ((*typecode)[3]='H')
 
#define mm_clear_typecode(typecode)
 
#define mm_initialize_typecode(typecode)   mm_clear_typecode(typecode)
 
#define MM_COULD_NOT_READ_FILE   11
 
#define MM_PREMATURE_EOF   12
 
#define MM_NOT_MTX   13
 
#define MM_NO_HEADER   14
 
#define MM_UNSUPPORTED_TYPE   15
 
#define MM_LINE_TOO_LONG   16
 
#define MM_COULD_NOT_WRITE_FILE   17
 
#define MM_MTX_STR   "matrix"
 
#define MM_ARRAY_STR   "array"
 
#define MM_DENSE_STR   "array"
 
#define MM_COORDINATE_STR   "coordinate"
 
#define MM_SPARSE_STR   "coordinate"
 
#define MM_COMPLEX_STR   "complex"
 
#define MM_REAL_STR   "real"
 
#define MM_INT_STR   "integer"
 
#define MM_GENERAL_STR   "general"
 
#define MM_SYMM_STR   "symmetric"
 
#define MM_HERM_STR   "hermitian"
 
#define MM_SKEW_STR   "skew-symmetric"
 
#define MM_PATTERN_STR   "pattern"
 

Typedefs

typedef char MM_typecode[4]
 

Functions

char * mm_typecode_to_str (MM_typecode matcode)
 
int mm_read_banner (FILE *f, MM_typecode *matcode)
 
int mm_read_mtx_crd_size (FILE *f, int *M, int *N, int *nz)
 
int mm_read_mtx_array_size (FILE *f, int *M, int *N)
 
int mm_write_banner (FILE *f, MM_typecode matcode)
 
int mm_write_mtx_crd_size (FILE *f, int M, int N, int nz)
 
int mm_write_mtx_array_size (FILE *f, int M, int N)
 
int mm_is_valid (MM_typecode matcode)
 
int mm_write_mtx_crd (char fname[], int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode)
 
int mm_read_mtx_crd_data (FILE *f, int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode)
 
int mm_read_mtx_crd_entry (FILE *f, int *I, int *J, double *real, double *img, MM_typecode matcode)
 

Macro Definition Documentation

◆ MatrixMarketBanner

#define MatrixMarketBanner   "%%MatrixMarket"

Definition at line 21 of file mmio.h.

◆ MM_ARRAY_STR

#define MM_ARRAY_STR   "array"

Definition at line 121 of file mmio.h.

◆ mm_clear_typecode

#define mm_clear_typecode (   typecode)
Value:
((*typecode)[0]=(*typecode)[1]= \
(*typecode)[2]=' ',(*typecode)[3]='G')

Definition at line 86 of file mmio.h.

◆ MM_COMPLEX_STR

#define MM_COMPLEX_STR   "complex"

Definition at line 125 of file mmio.h.

◆ MM_COORDINATE_STR

#define MM_COORDINATE_STR   "coordinate"

Definition at line 123 of file mmio.h.

◆ MM_COULD_NOT_READ_FILE

#define MM_COULD_NOT_READ_FILE   11

Definition at line 95 of file mmio.h.

◆ MM_COULD_NOT_WRITE_FILE

#define MM_COULD_NOT_WRITE_FILE   17

Definition at line 101 of file mmio.h.

◆ MM_DENSE_STR

#define MM_DENSE_STR   "array"

Definition at line 122 of file mmio.h.

◆ MM_GENERAL_STR

#define MM_GENERAL_STR   "general"

Definition at line 128 of file mmio.h.

◆ MM_HERM_STR

#define MM_HERM_STR   "hermitian"

Definition at line 130 of file mmio.h.

◆ mm_initialize_typecode

#define mm_initialize_typecode (   typecode)    mm_clear_typecode(typecode)

Definition at line 89 of file mmio.h.

◆ MM_INT_STR

#define MM_INT_STR   "integer"

Definition at line 127 of file mmio.h.

◆ mm_is_array

#define mm_is_array (   typecode)    ((typecode)[1]=='A')

Definition at line 52 of file mmio.h.

◆ mm_is_complex

#define mm_is_complex (   typecode)    ((typecode)[2]=='C')

Definition at line 54 of file mmio.h.

◆ mm_is_coordinate

#define mm_is_coordinate (   typecode)    ((typecode)[1]=='C')

Definition at line 50 of file mmio.h.

◆ mm_is_dense

#define mm_is_dense (   typecode)    ((typecode)[1]=='A')

Definition at line 51 of file mmio.h.

◆ mm_is_general

#define mm_is_general (   typecode)    ((typecode)[3]=='G')

Definition at line 60 of file mmio.h.

◆ mm_is_hermitian

#define mm_is_hermitian (   typecode)    ((typecode)[3]=='H')

Definition at line 62 of file mmio.h.

◆ mm_is_integer

#define mm_is_integer (   typecode)    ((typecode)[2]=='I')

Definition at line 57 of file mmio.h.

◆ mm_is_matrix

#define mm_is_matrix (   typecode)    ((typecode)[0]=='M')

Definition at line 47 of file mmio.h.

◆ mm_is_pattern

#define mm_is_pattern (   typecode)    ((typecode)[2]=='P')

Definition at line 56 of file mmio.h.

◆ mm_is_real

#define mm_is_real (   typecode)    ((typecode)[2]=='R')

Definition at line 55 of file mmio.h.

◆ mm_is_skew

#define mm_is_skew (   typecode)    ((typecode)[3]=='K')

Definition at line 61 of file mmio.h.

◆ mm_is_sparse

#define mm_is_sparse (   typecode)    ((typecode)[1]=='C')

Definition at line 49 of file mmio.h.

◆ mm_is_symmetric

#define mm_is_symmetric (   typecode)    ((typecode)[3]=='S')

Definition at line 59 of file mmio.h.

◆ MM_LINE_TOO_LONG

#define MM_LINE_TOO_LONG   16

Definition at line 100 of file mmio.h.

◆ MM_MAX_LINE_LENGTH

#define MM_MAX_LINE_LENGTH   1025

Definition at line 20 of file mmio.h.

◆ MM_MAX_TOKEN_LENGTH

#define MM_MAX_TOKEN_LENGTH   64

Definition at line 22 of file mmio.h.

◆ MM_MTX_STR

#define MM_MTX_STR   "matrix"

Definition at line 120 of file mmio.h.

◆ MM_NO_HEADER

#define MM_NO_HEADER   14

Definition at line 98 of file mmio.h.

◆ MM_NOT_MTX

#define MM_NOT_MTX   13

Definition at line 97 of file mmio.h.

◆ MM_PATTERN_STR

#define MM_PATTERN_STR   "pattern"

Definition at line 132 of file mmio.h.

◆ MM_PREMATURE_EOF

#define MM_PREMATURE_EOF   12

Definition at line 96 of file mmio.h.

◆ MM_REAL_STR

#define MM_REAL_STR   "real"

Definition at line 126 of file mmio.h.

◆ mm_set_array

#define mm_set_array (   typecode)    ((*typecode)[1]='A')

Definition at line 71 of file mmio.h.

◆ mm_set_complex

#define mm_set_complex (   typecode)    ((*typecode)[2]='C')

Definition at line 75 of file mmio.h.

◆ mm_set_coordinate

#define mm_set_coordinate (   typecode)    ((*typecode)[1]='C')

Definition at line 70 of file mmio.h.

◆ mm_set_dense

#define mm_set_dense (   typecode)    mm_set_array(typecode)

Definition at line 72 of file mmio.h.

◆ mm_set_general

#define mm_set_general (   typecode)    ((*typecode)[3]='G')

Definition at line 82 of file mmio.h.

◆ mm_set_hermitian

#define mm_set_hermitian (   typecode)    ((*typecode)[3]='H')

Definition at line 84 of file mmio.h.

◆ mm_set_integer

#define mm_set_integer (   typecode)    ((*typecode)[2]='I')

Definition at line 78 of file mmio.h.

◆ mm_set_matrix

#define mm_set_matrix (   typecode)    ((*typecode)[0]='M')

Definition at line 69 of file mmio.h.

◆ mm_set_pattern

#define mm_set_pattern (   typecode)    ((*typecode)[2]='P')

Definition at line 77 of file mmio.h.

◆ mm_set_real

#define mm_set_real (   typecode)    ((*typecode)[2]='R')

Definition at line 76 of file mmio.h.

◆ mm_set_skew

#define mm_set_skew (   typecode)    ((*typecode)[3]='K')

Definition at line 83 of file mmio.h.

◆ mm_set_sparse

#define mm_set_sparse (   typecode)    mm_set_coordinate(typecode)

Definition at line 73 of file mmio.h.

◆ mm_set_symmetric

#define mm_set_symmetric (   typecode)    ((*typecode)[3]='S')

Definition at line 81 of file mmio.h.

◆ MM_SKEW_STR

#define MM_SKEW_STR   "skew-symmetric"

Definition at line 131 of file mmio.h.

◆ MM_SPARSE_STR

#define MM_SPARSE_STR   "coordinate"

Definition at line 124 of file mmio.h.

◆ MM_SYMM_STR

#define MM_SYMM_STR   "symmetric"

Definition at line 129 of file mmio.h.

◆ MM_UNSUPPORTED_TYPE

#define MM_UNSUPPORTED_TYPE   15

Definition at line 99 of file mmio.h.

Typedef Documentation

◆ MM_typecode

typedef char MM_typecode[4]

Definition at line 23 of file mmio.h.

Function Documentation

◆ mm_is_valid()

int mm_is_valid ( MM_typecode  matcode)

Definition at line 84 of file mmio.c.

◆ mm_read_banner()

int mm_read_banner ( FILE *  f,
MM_typecode matcode 
)

Definition at line 94 of file mmio.c.

◆ mm_read_mtx_array_size()

int mm_read_mtx_array_size ( FILE *  f,
int *  M,
int *  N 
)

Definition at line 218 of file mmio.c.

◆ mm_read_mtx_crd_data()

int mm_read_mtx_crd_data ( FILE *  f,
int  M,
int  N,
int  nz,
int  I[],
int  J[],
double  val[],
MM_typecode  matcode 
)

Definition at line 263 of file mmio.c.

◆ mm_read_mtx_crd_entry()

int mm_read_mtx_crd_entry ( FILE *  f,
int *  I,
int *  J,
double *  real,
double *  img,
MM_typecode  matcode 
)

Definition at line 296 of file mmio.c.

◆ mm_read_mtx_crd_size()

int mm_read_mtx_crd_size ( FILE *  f,
int *  M,
int *  N,
int *  nz 
)

Definition at line 187 of file mmio.c.

◆ mm_typecode_to_str()

char* mm_typecode_to_str ( MM_typecode  matcode)

Definition at line 453 of file mmio.c.

◆ mm_write_banner()

int mm_write_banner ( FILE *  f,
MM_typecode  matcode 
)

Definition at line 384 of file mmio.c.

◆ mm_write_mtx_array_size()

int mm_write_mtx_array_size ( FILE *  f,
int  M,
int  N 
)

Definition at line 247 of file mmio.c.

◆ mm_write_mtx_crd()

int mm_write_mtx_crd ( char  fname[],
int  M,
int  N,
int  nz,
int  I[],
int  J[],
double  val[],
MM_typecode  matcode 
)

Definition at line 397 of file mmio.c.

◆ mm_write_mtx_crd_size()

int mm_write_mtx_crd_size ( FILE *  f,
int  M,
int  N,
int  nz 
)

Definition at line 179 of file mmio.c.