#ifndef HB_IO_H #define HB_IO_H # include # include # include # include # include # include # include #include "../dgtd-performance.hpp" using namespace std; bool ch_eqi ( char c1, char c2 ); bool ch_is_digit ( char c ); bool ch_is_format_code ( char c ); int ch_to_digit ( char c ); void hb_exact_read ( ifstream &input, int nrow, int nrhs, int rhscrd, char *rhsfmt, char *rhstyp, fp_t exact[] ); void hb_exact_write ( ofstream &output, int nrow, int nrhs, int rhscrd, char *rhsfmt, char *rhstyp, fp_t exact[] ); void hb_file_read ( ifstream &input, char **title, char **key, int *totcrd, int *ptrcrd, int *indcrd, int *valcrd, int *rhscrd, char **mxtype, int *nrow, int *ncol, int *nnzero, int *neltvl, char **ptrfmt, char **indfmt, char **valfmt, char **rhsfmt, char **rhstyp, int *nrhs, int *nrhsix, int **colptr, int **rowind, fp_t **values, fp_t **rhsval, int **rhsptr, int **rhsind, fp_t **rhsvec, fp_t **guess, fp_t **exact ); void hb_file_write ( ofstream &output, char *title, char *key, int totcrd, int ptrcrd, int indcrd, int valcrd, int rhscrd, char *mxtype, int nrow, int ncol, int nnzero, int neltvl, char *ptrfmt, char *indfmt, char *valfmt, char *rhsfmt, char *rhstyp, int nrhs, int nrhsix, int colptr[], int rowind[], fp_t values[], fp_t rhsval[], int rhsptr[], int rhsind[], fp_t rhsvec[], fp_t guess[], fp_t exact[] ); void hb_guess_read ( ifstream &input, int nrow, int nrhs, int rhscrd, char *rhsfmt, char *rhstyp, fp_t guess[] ); void hb_guess_write ( ofstream &output, int nrow, int nrhs, int rhscrd, char *rhsfmt, char *rhstyp, fp_t guess[] ); void hb_header_print ( char *title, char *key, int totcrd, int ptrcrd, int indcrd, int valcrd, int rhscrd, char *mxtype, int nrow, int ncol, int nnzero, int neltvl, char *ptrfmt, char *indfmt, char *valfmt, char *rhsfmt, char *rhstyp, int nrhs, int nrhsix ); void hb_header_read ( ifstream &input, char **title, char **key, int *totcrd, int *ptrcrd, int *indcrd, int *valcrd, int *rhscrd, char **mxtype, int *nrow, int *ncol, int *nnzero, int *neltvl, char **ptrfmt, char **indfmt, char **valfmt, char **rhsfmt, char **rhstyp, int *nrhs, int *nrhsix ); void hb_header_write ( ofstream &output, char *title, char *key, int totcrd, int ptrcrd, int indcrd, int valcrd, int rhscrd, char *mxtype, int nrow, int ncol, int nnzero, int neltvl, char *ptrfmt, char *indfmt, char *valfmt, char *rhsfmt, char *rhstyp, int nrhs, int nrhsix ); void hb_header_write_no_rhs ( ofstream &output, char *title, char *key, int totcrd, int ptrcrd, int indcrd, int valcrd, int rhscrd, char *mxtype, int nrow, int ncol, int nnzero, int neltvl, char *ptrfmt, char *indfmt, char *valfmt, char *rhsfmt, char *rhstyp, int nrhs, int nrhsix ); fp_t *hb_matvec_a_mem ( int nrow, int ncol, int nnzero, int nrhs, int colptr[], int rowind[], fp_t values[], fp_t exact[] ); void hb_rhs_read ( ifstream &input, int nrow, int nnzero, int nrhs, int nrhsix, int rhscrd, char *ptrfmt, char *indfmt, char *rhsfmt, char *mxtype, char *rhstyp, fp_t rhsval[], int rhsind[], int rhsptr[], fp_t rhsvec[] ); void hb_rhs_write ( ofstream &output, int nrow, int nnzero, int nrhs, int nrhsix, int rhscrd, char *ptrfmt, char *indfmt, char *rhsfmt, char *mxtype, char *rhstyp, fp_t rhsval[], int rhsind[], int rhsptr[], fp_t rhsvec[] ); void hb_structure_print ( int ncol, char *mxtype, int nnzero, int neltvl, int colptr[], int rowind[] ); void hb_structure_read ( ifstream &input, int ncol, char *mxtype, int nnzero, int neltvl, int ptrcrd, char *ptrfmt, int indcrd, char *indfmt, int colptr[], int rowind[] ); void hb_structure_write ( ofstream &output, int ncol, char *mxtype, int nnzero, int neltvl, char *ptrfmt, char *indfmt, int colptr[], int rowind[] ,bool zero_base = false); int *hb_ua_colind ( int ncol, int colptr[], int nnzero ); void hb_values_print ( int ncol, int colptr[], char *mxtype, int nnzero, int neltvl, fp_t values[] ); void hb_values_read ( ifstream &input, int valcrd, char *mxtype, int nnzero, int neltvl, char *valfmt, fp_t values[] ); void hb_values_write ( ofstream &output, int valcrd, char *mxtype, int nnzero, int neltvl, char *valfmt, fp_t values[] ); fp_t *hb_vecmat_a_mem ( int nrow, int ncol, int nnzero, int nrhs, int colptr[], int rowind[], fp_t values[], fp_t exact[] ); int i4_max ( int i1, int i2 ); int i4_min ( int i1, int i2 ); void i4vec_print ( int n, int a[], string title ); void i4vec_print_part ( int n, int a[], int max_print, string title ); void r8mat_print ( int m, int n, fp_t a[], string title ); void r8mat_print_some ( int m, int n, fp_t a[], int ilo, int jlo, int ihi, int jhi, string title ); void r8vec_print ( int n, fp_t a[], string title ); void r8vec_print_part ( int n, fp_t a[], int max_print, string title ); int s_len_trim ( char *s ); char *s_substring ( char *s, int a, int b ); void s_to_format ( char *s, int *r, char *code, int *w, int *m ); void s_trim ( char *s ); void timestamp ( ); void hb_file_write_no_rhs ( ofstream &output, char *title, char *key, int totcrd, int ptrcrd, int indcrd, int valcrd, int rhscrd, char *mxtype, int nrow, int ncol, int nnzero, int neltvl, char *ptrfmt, char *indfmt, char *valfmt, char *rhsfmt, char *rhstyp, int nrhs, int nrhsix, int colptr[], int rowind[], fp_t values[], fp_t rhsval[], int rhsptr[], int rhsind[], fp_t rhsvec[], fp_t guess[], fp_t exact[] ); /////////////////////////////////// rountines for st or st2hb void i4vec_dec ( int n, int a[] ); void i4vec_inc ( int n, int a[] ); int i4vec_max ( int n, int a[] ); int i4vec_min ( int n, int a[] ); void sort_heap_external ( int n, int *indx, int *i, int *j, int isgn ); void st_data_read ( char *input_filename, int m, int n, int nst, int ist[], int jst[], fp_t a[] ); void st_header_print ( int i_min, int i_max, int j_min, int j_max, int m, int n, int nst ); void st_header_read ( char *input_filename, int *i_min, int *i_max, int *j_min, int *j_max, int *m, int *n, int *nst ); void st_print ( int m, int n, int nst, int ist[], int jst[], fp_t ast[], char *title ); void st_print_some ( int row1, int row2, int col1, int col2, int nst, int ist[], int jst[], fp_t ast[], char *title ); void st_sort_a ( int m, int n, int nst, int ist[], int jst[], fp_t ast[] ); void st_transpose ( int *m, int *n, int nst, int ist[], int jst[], fp_t ast[] ); void st_write ( char *output_filename, int m, int n, int nst, int ist[], int jst[], fp_t ast[] ); fp_t *cc_mv ( int m, int n, int ncc, int icc[], int ccc[], fp_t acc[], fp_t x[] ); void cc_print ( int m, int n, int ncc, int icc[], int ccc[], fp_t acc[], char *title ); int *i4vec_copy_new ( int n, int a1[] ); void i4vec_write ( char *output_filename, int n, int table[] ); int i4vec2_compare ( int n, int a1[], int a2[], int i, int j ); void i4vec2_sort_a ( int n, int a1[], int a2[] ); int i4vec2_sorted_unique_count ( int n, int a1[], int a2[] ); void i4vec2_sorted_uniqueLly ( int n1, int a1[], int b1[], int n2, int a2[], int b2[] ); fp_t r8_uniform_01 ( int *seed ); fp_t r8vec_diff_norm ( int n, fp_t a[], fp_t b[] ); fp_t *r8vec_uniform_01_new ( int n, int *seed ); void r8vec_write ( char *output_filename, int n, fp_t x[] ); fp_t *st_mv ( int m, int n, int nst, int ist[], int jst[], fp_t ast[], fp_t x[] ); void st_print ( int m, int n, int nst, int ist[], int jst[], fp_t ast[], char *title ); int st_to_cc_size ( int nst, int ist[], int jst[] ); void st_to_cc_index ( int nst, int ist[], int jst[], int ncc, int n, int icc[], int ccc[] ); fp_t *st_to_cc_values ( int nst, int ist[], int jst[], fp_t ast[], int ncc, int n, int icc[], int ccc[] ); fp_t *wathen_st ( int nx, int ny, int nz_num, int *seed, int row[], int col[] ); int wathen_st_size ( int nx, int ny ); #endif