Dist m4ri 0.0.1.alpha
Computing distance of a classical or quantum CSS code
Loading...
Searching...
No Matches
Macros | Functions
mmio.c File Reference
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include "mmio.h"
Include dependency graph for mmio.c:

Go to the source code of this file.

Macros

#define _maybe_unused   __attribute__((unused))
 

Functions

int mm_read_unsymmetric_sparse (const char *fname, int *M_, int *N_, int *nz_, double **val_, int **I_, int **J_)
 High-level routine to read an unsymmetric sparse matrix in coordinate format.
 
int mm_is_valid (MM_typecode matcode)
 
int mm_read_banner (FILE *f, MM_typecode *matcode)
 Read the Matrix Market banner from a file.
 
int mm_write_mtx_crd_size (FILE *f, int M, int N, int nz)
 Write dimensions and number of non-zero entries for a coordinate matrix.
 
int mm_read_mtx_crd_size (FILE *f, int *M, int *N, int *nz)
 Read dimensions and number of non-zero entries for a coordinate matrix.
 
int mm_read_mtx_array_size (FILE *f, int *M, int *N)
 Read dimensions for an array (dense) matrix.
 
int mm_write_mtx_array_size (FILE *f, int M, int N)
 Write dimensions for an array (dense) matrix.
 
int mm_read_mtx_crd_data (FILE *f, _maybe_unused int M, _maybe_unused 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 *imag, MM_typecode matcode)
 Read a single coordinate entry from a file.
 
int mm_read_mtx_crd (char *fname, int *M, int *N, int *nz, int **I, int **J, double **val, MM_typecode *matcode)
 
int mm_write_banner (FILE *f, MM_typecode matcode)
 Write the Matrix Market banner to a file.
 
int mm_write_mtx_crd (char fname[], int M, int N, int nz, int I[], int J[], double val[], MM_typecode matcode)
 Write a coordinate matrix to a file.
 
char * mm_strdup (const char *s)
 
char * mm_typecode_to_str (MM_typecode matcode)
 Convert a Matrix Market typecode to a human-readable string.
 

Macro Definition Documentation

◆ _maybe_unused

#define _maybe_unused   __attribute__((unused))

Definition at line 17 of file mmio.c.

Function Documentation

◆ mm_is_valid()

int mm_is_valid ( MM_typecode  matcode)

Definition at line 95 of file mmio.c.

References mm_is_dense, mm_is_hermitian, mm_is_matrix, mm_is_pattern, mm_is_real, and mm_is_skew.

Referenced by mm_read_mtx_crd().

◆ mm_read_banner()

int mm_read_banner ( FILE *  f,
MM_typecode matcode 
)

◆ mm_read_mtx_array_size()

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

Read dimensions for an array (dense) matrix.

Parameters
fFile pointer.
MPointer to store the number of rows.
NPointer to store the number of columns.
Returns
0 on success, or an error code on failure.

Definition at line 229 of file mmio.c.

References MM_MAX_LINE_LENGTH, and MM_PREMATURE_EOF.

Referenced by csr_mm_read().

◆ mm_read_mtx_crd()

int mm_read_mtx_crd ( char *  fname,
int *  M,
int *  N,
int *  nz,
int **  I,
int **  J,
double **  val,
MM_typecode matcode 
)

◆ mm_read_mtx_crd_data()

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

Definition at line 274 of file mmio.c.

References mm_is_complex, mm_is_pattern, mm_is_real, MM_PREMATURE_EOF, and MM_UNSUPPORTED_TYPE.

Referenced by mm_read_mtx_crd().

◆ mm_read_mtx_crd_entry()

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

Read a single coordinate entry from a file.

Parameters
fFile pointer.
IPointer to store row index.
JPointer to store column index.
realPointer to store real part of the value.
imgPointer to store imaginary part of the value.
matcodeMatrix Market typecode.
Returns
0 on success, or an error code on failure.

Definition at line 307 of file mmio.c.

References mm_is_complex, mm_is_pattern, mm_is_real, MM_PREMATURE_EOF, and MM_UNSUPPORTED_TYPE.

◆ mm_read_mtx_crd_size()

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

Read dimensions and number of non-zero entries for a coordinate matrix.

Parameters
fFile pointer.
MPointer to store the number of rows.
NPointer to store the number of columns.
nzPointer to store the number of non-zero entries.
Returns
0 on success, or an error code on failure.

Definition at line 198 of file mmio.c.

References MM_MAX_LINE_LENGTH, and MM_PREMATURE_EOF.

Referenced by csr_mm_read(), mm_read_mtx_crd(), and mm_read_unsymmetric_sparse().

◆ mm_read_unsymmetric_sparse()

int mm_read_unsymmetric_sparse ( const char *  fname,
int *  M_,
int *  N_,
int *  nz_,
double **  val_,
int **  I_,
int **  J_ 
)

High-level routine to read an unsymmetric sparse matrix in coordinate format.

Parameters
fnameFile name.
M_Pointer to store number of rows.
N_Pointer to store number of columns.
nz_Pointer to store number of non-zero entries.
val_Pointer to store allocated array of values.
I_Pointer to store allocated array of row indices.
J_Pointer to store allocated array of column indices.
Returns
0 on success, or an error code on failure.

Definition at line 20 of file mmio.c.

References mm_is_matrix, mm_is_real, mm_is_sparse, mm_read_banner(), mm_read_mtx_crd_size(), and mm_typecode_to_str().

◆ mm_strdup()

char * mm_strdup ( const char *  s)

Create a new copy of a string s. mm_strdup() is a common routine, but not part of ANSI C, so it is included here. Used by mm_typecode_to_str().

Definition at line 457 of file mmio.c.

Referenced by mm_typecode_to_str().

◆ mm_typecode_to_str()

char * mm_typecode_to_str ( MM_typecode  matcode)

Convert a Matrix Market typecode to a human-readable string.

Parameters
matcodeThe Matrix Market typecode.
Returns
Dynamically allocated string describing the typecode.

Definition at line 464 of file mmio.c.

References _maybe_unused, MM_COMPLEX_STR, MM_DENSE_STR, MM_GENERAL_STR, MM_HERM_STR, MM_INT_STR, mm_is_complex, mm_is_dense, mm_is_general, mm_is_hermitian, mm_is_integer, mm_is_matrix, mm_is_pattern, mm_is_real, mm_is_skew, mm_is_sparse, mm_is_symmetric, MM_MAX_LINE_LENGTH, MM_MTX_STR, MM_PATTERN_STR, MM_REAL_STR, MM_SKEW_STR, MM_SPARSE_STR, mm_strdup(), and MM_SYMM_STR.

Referenced by csr_mm_read(), mm_read_unsymmetric_sparse(), mm_write_banner(), and mm_write_mtx_crd().

◆ mm_write_banner()

int mm_write_banner ( FILE *  f,
MM_typecode  matcode 
)

Write the Matrix Market banner to a file.

Parameters
fFile pointer.
matcodeThe typecode to write.
Returns
0 on success, or an error code on failure.

Definition at line 395 of file mmio.c.

References MatrixMarketBanner, MM_COULD_NOT_WRITE_FILE, and mm_typecode_to_str().

◆ mm_write_mtx_array_size()

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

Write dimensions for an array (dense) matrix.

Parameters
fFile pointer.
MNumber of rows.
NNumber of columns.
Returns
0 on success, or an error code on failure.

Definition at line 258 of file mmio.c.

References MM_COULD_NOT_WRITE_FILE.

◆ 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 
)

Write a coordinate matrix to a file.

Parameters
fnameFile name.
MNumber of rows.
NNumber of columns.
nzNumber of non-zero entries.
IArray of row indices.
JArray of column indices.
valArray of values (can be NULL for pattern matrices).
matcodeMatrix Market typecode.
Returns
0 on success, or an error code on failure.

Definition at line 408 of file mmio.c.

References MatrixMarketBanner, MM_COULD_NOT_WRITE_FILE, mm_is_complex, mm_is_pattern, mm_is_real, mm_typecode_to_str(), and MM_UNSUPPORTED_TYPE.

◆ mm_write_mtx_crd_size()

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

Write dimensions and number of non-zero entries for a coordinate matrix.

Parameters
fFile pointer.
MNumber of rows.
NNumber of columns.
nzNumber of non-zero entries.
Returns
0 on success, or an error code on failure.

Definition at line 190 of file mmio.c.

References MM_COULD_NOT_WRITE_FILE.