mmio.cpp File Reference
`#include "mmio.h"`
`#include <cstring>`
`#include <iostream>`

## Functions

int | mm_read_unsymmetric_sparse (const char *fname, int *M_, int *N_, int *nz_, double **val_, int **I_, int **J_)
int | mm_is_valid (MM_typecode matcode)
int | mm_read_banner (std::istream &f, MM_typecode *matcode)
int | mm_write_mtx_crd_size (std::ostream &f, int M, int N, int nz)
int | mm_read_mtx_crd_size (std::istream &f, int *M, int *N, int *nz)
int | mm_read_mtx_array_size (std::istream &f, int *M, int *N)
int | mm_write_mtx_array_size (std::ostream &f, int M, int N)
int | mm_read_mtx_crd_data (std::istream &f, int M, int N, int nz, int *Ip, int *Jp, double *val, MM_typecode matcode)
int | mm_read_mtx_crd_entry (std::istream &f, int *Ip, int *Jp, double *real, double *imag, MM_typecode matcode)
int | mm_read_mtx_crd (char *fname, int *M, int *N, int *nz, int **Ip, int **Jp, double **val, MM_typecode *matcode)
int | mm_write_banner (std::ostream &f, MM_typecode matcode)
int | mm_write_mtx_crd (char *fname, int M, int N, int nz, int *Ip, int *Jp, double *val, MM_typecode matcode)
char * | mm_typecode_to_str (MM_typecode matcode)

## Function Documentation

## mm_is_valid()

int mm_is_valid | ( | MM_typecode | matcode | ) |

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 | ( | std::istream & | f,
|  | MM_typecode * | matcode
| ) |  |

References MatrixMarketBanner, mm_clear_typecode, MM_COMPLEX_STR, MM_DENSE_STR, MM_GENERAL_STR, MM_HERM_STR, MM_INT_STR, MM_MAX_LINE_LENGTH, MM_MAX_TOKEN_LENGTH, MM_MTX_STR, MM_NO_HEADER, MM_PATTERN_STR, MM_PREMATURE_EOF, MM_REAL_STR, mm_set_complex, mm_set_dense, mm_set_general, mm_set_hermitian, mm_set_integer, mm_set_matrix, mm_set_pattern, mm_set_real, mm_set_skew, mm_set_sparse, mm_set_symmetric, MM_SKEW_STR, MM_SPARSE_STR, MM_SYMM_STR, and MM_UNSUPPORTED_TYPE.

Referenced by paso::SystemMatrix::loadMM_toCSC(), paso::SparseMatrix::loadMM_toCSR(), paso::SystemMatrix::loadMM_toCSR(), mm_read_mtx_crd(), mm_read_unsymmetric_sparse(), and paso::RHS_loadMM_toCSR().

## mm_read_mtx_array_size()

int mm_read_mtx_array_size | ( | std::istream & | f,
|  | int * | M,
|  | int * | N
| ) |  |

References MM_MAX_LINE_LENGTH, and MM_PREMATURE_EOF.

Referenced by paso::RHS_loadMM_toCSR().

## mm_read_mtx_crd()

int mm_read_mtx_crd | ( | char * | fname,
|  | int * | M,
|  | int * | N,
|  | int * | nz,
|  | int ** | Ip,
|  | int ** | Jp,
|  | double ** | val,
|  | MM_typecode * | matcode
| ) |  |

References MM_COULD_NOT_READ_FILE, mm_is_complex, mm_is_matrix, mm_is_pattern, mm_is_real, mm_is_sparse, mm_is_valid(), mm_read_banner(), mm_read_mtx_crd_data(), mm_read_mtx_crd_size(), MM_UNSUPPORTED_TYPE, and paso::nz.

## mm_read_mtx_crd_data()

int mm_read_mtx_crd_data | ( | std::istream & | f,
|  | int | M,
|  | int | N,
|  | int | nz,
|  | int * | Ip,
|  | int * | Jp,
|  | double * | val,
|  | MM_typecode | matcode
| ) |  |

References mm_is_complex, mm_is_pattern, mm_is_real, MM_PREMATURE_EOF, MM_UNSUPPORTED_TYPE, and paso::nz.

Referenced by mm_read_mtx_crd().

## mm_read_mtx_crd_entry()

int mm_read_mtx_crd_entry | ( | std::istream & | f,
|  | int * | Ip,
|  | int * | Jp,
|  | double * | real,
|  | double * | imag,
|  | MM_typecode | matcode
| ) |  |

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 | ( | std::istream & | f,
|  | int * | M,
|  | int * | N,
|  | int * | nz
| ) |  |

References MM_MAX_LINE_LENGTH, and MM_PREMATURE_EOF.

Referenced by paso::SystemMatrix::loadMM_toCSC(), paso::SparseMatrix::loadMM_toCSR(), paso::SystemMatrix::loadMM_toCSR(), 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_
| ) |  |

References paso::M, mm_is_matrix, mm_is_real, mm_is_sparse, mm_read_banner(), mm_read_mtx_crd_size(), mm_typecode_to_str(), paso::N, and paso::nz.

## mm_typecode_to_str()

char* mm_typecode_to_str | ( | MM_typecode | matcode | ) |

References 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, and MM_SYMM_STR.

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

## mm_write_banner()

int mm_write_banner | ( | std::ostream & | f,
|  | MM_typecode | matcode
| ) |  |

References MatrixMarketBanner, MM_COULD_NOT_WRITE_FILE, and mm_typecode_to_str().

Referenced by paso::SparseMatrix::saveMM().

## mm_write_mtx_array_size()

int mm_write_mtx_array_size | ( | std::ostream & | f,
|  | int | M,
|  | int | N
| ) |  |

References MM_COULD_NOT_WRITE_FILE.

## mm_write_mtx_crd()

int mm_write_mtx_crd | ( | char * | fname,
|  | int | M,
|  | int | N,
|  | int | nz,
|  | int * | Ip,
|  | int * | Jp,
|  | double * | val,
|  | MM_typecode | matcode
| ) |  |

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

## mm_write_mtx_crd_size()

int mm_write_mtx_crd_size | ( | std::ostream & | f,
|  | int | M,
|  | int | N,
|  | int | nz
| ) |  |

References MM_COULD_NOT_WRITE_FILE.

Referenced by paso::SparseMatrix::saveMM().