#ifndef _IO_H_ #define _IO_H_ #include #include #include #include using namespace std; // General functions string homedir(void); int IntFromString(const std::string& s); double DoubleFromString(const std::string& s); float FloatFromString(const std::string& s); // File dimensions bool file_exists(string filename); int count_columns(string filename); // Assume delimiter=blank int count_rows(string filename); void count_lines_and_fields(string& filename, unsigned int &n_lines, unsigned int &n_fields, char delimiter); // General reading void file_open (string filename, ofstream &outstream); void read_string_vector(string filename, vector &vec); void read_int_vector (string filename, vector &vec); void read_double_vector(string filename, vector &vec); void read_float_vector (string filename, vector &vec); void read_string_int_hash(string filename, map &hash); void read_string_column(string& filename, int n_headers, string* &col, int &n_lines, char delimiter); void read_float_mat_bin(string filename, float** &mat, int &n_rows,int &n_cols); void write_float_mat_bin(string filename, float **mat, int n_rows,int n_cols); void read_bool_mat_bin(string filename, bool** &mat, int &n_rows,int &n_cols); void write_bool_mat_bin(string filename, bool **mat, int n_rows,int n_cols); void read_double_mat(string filename, double** &mat, int n_rows,int n_cols); void read_float_mat (string filename, float** &mat, int n_rows,int n_cols); void read_int_mat (string filename, int** &mat, int n_rows,int n_cols); void read_bool_mat (string filename, bool** &mat, int n_rows,int n_cols); void read_float_vec (string filename, float* &vec, int n); // Formated files void read_expression_mat(string& filename, int n_skip, int n_headers, float** &express, bool** &mask, int &n_lines, int &n_fields); void write_vec_matlab(ofstream &outfile,string header,double *vec,int n); void write_vec_matlab(ofstream &outfile,string header,float *vec,int n); void write_vec_matlab(ofstream &outfile,string header,int *vec,int n); void write_vec_matlab(ofstream &outfile,string header,vector vec); void write_vec_matlab(ofstream &outfile,string header,vector vec); void write_vec_matlab(ofstream &outfile,string header,vector vec); void write_vec_matlab(string header,double *vec,int n); void write_vec_matlab(string header,float *vec,int n); void write_vec_matlab(string header,int *vec,int n); void write_vec_matlab(string header,vector vec); void write_vec_matlab(string header,vector vec); void write_vec_matlab(string header,vector vec); #endif /* _IO_H_ */