#include #include #include char token[1024]; double mat[4096][4096]; int main() { FILE *fout = fopen("converted.nerv", "w"); int cnt = 0; while (scanf("%s", token) != EOF) { int nrow, ncol; int i, j; if (strcmp(token, "") == 0) { scanf("%d %d", &ncol, &nrow); scanf("%s %d %d", token, &ncol, &nrow); printf("%d %d\n", nrow, ncol); for (j = 0; j < ncol; j++) for (i = 0; i < nrow; i++) scanf("%lf", mat[i] + j); off_t base = ftello(fout); fprintf(fout, "%16d", 0); fprintf(fout, "{type=\"nerv.LinearTransParam\",id=\"affine%d_ltp\"}\n", cnt); fprintf(fout, "%d %d\n", nrow, ncol); for (i = 0; i < nrow; i++) { for (j = 0; j < ncol; j++) fprintf(fout, "%.8f ", mat[i][j]); fprintf(fout, "\n"); } size_t length = ftello(fout) - base; fseeko(fout, base, SEEK_SET); fprintf(fout, "[%13lu]\n", length); fseeko(fout, 0, SEEK_END); if (scanf("%s %d", token, &ncol) == 2 && *token == 'v') { base = ftello(fout); for (j = 0; j < ncol; j++) scanf("%lf", mat[0] + j); fprintf(fout, "%16d", 0); fprintf(fout, "{type=\"nerv.BiasParam\",id=\"affine%d_bp\"}\n", cnt); fprintf(fout, "1 %d\n", ncol); for (j = 0; j < ncol; j++) fprintf(fout, "%.8f ", mat[0][j]); fprintf(fout, "\n"); length = ftello(fout) - base; fseeko(fout, base, SEEK_SET); fprintf(fout, "[%13lu]\n", length); cnt++; fseeko(fout, 0, SEEK_END); } } } return 0; }