/* See pz_matrix.h */ /* Last edited on 2008-02-08 12:50:22 by stolfi */ #include #include #include #define pz_matrix_FILE_TYPE "pz_matrix_t" #define pz_matrix_FILE_VERSION "2004-12-31" pz_matrix_t pz_matrix_read(FILE *rd) { pz_matrix_t m; filefmt_read_header(rd, pz_matrix_FILE_TYPE, pz_matrix_FILE_VERSION); (void)filefmt_read_comment(rd, '|'); int i, j; for (i = 0; i < 4 ; i++) { for (j = 0; j < 4 ; j++) { fget_skip_formatting_chars(rd); m.c[i][j] = fget_double(rd); } fget_eol(rd); } filefmt_read_footer(rd, pz_matrix_FILE_TYPE); return m; } void pz_matrix_write(FILE *wr, pz_matrix_t *m) { filefmt_write_header(wr, pz_matrix_FILE_TYPE, pz_matrix_FILE_VERSION); int i, j; for (i = 0; i < 4 ; i++) { for (j = 0; j < 4 ; j++) { fprintf(wr, "%s%24.16e", (j == 0 ? "" : " "), m->c[i][j]); } fprintf(wr, "\n") ; } filefmt_write_footer(wr, pz_matrix_FILE_TYPE); fflush(wr); }