This repository serve as a backup for my Maxwell-TD code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

156 lines
7.7 KiB

#ifndef HB_IO_H
#define HB_IO_H
# include <cmath>
# include <cstdlib>
# include <cstring>
# include <ctime>
# include <fstream>
# include <iomanip>
# include <iostream>
#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