Changeset 39428
- Timestamp:
- Mar 1, 2016, 12:16:46 PM (10 years ago)
- Location:
- branches/eam_branches/ohana.20160226/src/libfits/table
- Files:
-
- 2 edited
-
F_compress_T.c (modified) (18 diffs)
-
F_uncompress_T.c (modified) (18 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ohana.20160226/src/libfits/table/F_compress_T.c
r39422 r39428 103 103 ALLOCATE_ZERO (fields, TableField, Nfields); 104 104 105 int field; 106 for (field = 0; field < Nfields; field++) { 105 for (int field = 0; field < Nfields; field++) { 107 106 snprintf (keyword, 80, "TTYPE%d", field+1); 108 107 if (!gfits_scan (srcheader, keyword, "%s", 1, fields[field].ttype)) ESCAPE; … … 137 136 char *tmpbuffer = NULL; 138 137 ALLOCATE_ZERO (tmpbuffer, char, 16*Ntile); // need space for Ntile entries, each of width 16 bytes (2 long) 139 for ( field = 0; field < Nfields; field++) {138 for (int field = 0; field < Nfields; field++) { 140 139 if (!gfits_set_bintable_column (tgtheader, tgttable, fields[field].ttype, tmpbuffer, Ntile)) ESCAPE; 141 140 } … … 163 162 int offset = 0; // bytes from first column of first field to the current field (accumulate to set) 164 163 165 for ( field = 0; field < Nfields; field++) {164 for (int field = 0; field < Nfields; field++) { 166 165 snprintf (keyword, 81, "ZFORM%d", field+1); 167 166 if (!gfits_modify (tgtheader, keyword, "%s", 1, fields[field].tformat)) ESCAPE; … … 229 228 // compress the data : copy into a tile, compress the tile, then add to the output table 230 229 // each tile -> 1 row of the output table 231 unsigned long int tile; 232 for (tile = 0; tile < Ntile; tile++) { 233 234 for (field = 0; field < Nfields; field++) { 230 for (unsigned long int tile = 0; tile < Ntile; tile++) { 231 232 for (int field = 0; field < Nfields; field++) { 235 233 236 234 gettimeofday (&startTimer, (void *) NULL); … … 257 255 258 256 if (VERBOSE_DUMP) { 259 unsigned long int k;260 257 fprintf (stderr, "c1: "); 261 for ( k = 0; k < Nrows*fields[field].Nvalues*fields[field].pixsize; k++) {258 for (unsigned long int k = 0; k < Nrows*fields[field].Nvalues*fields[field].pixsize; k++) { 262 259 fprintf (stderr, "%02hhx", raw[k]); 263 260 if (k % 2) fprintf (stderr, " "); … … 282 279 283 280 if (VERBOSE_DUMP) { 284 unsigned long int k;285 281 fprintf (stderr, "c2: "); 286 for ( k = 0; k < Nrows*fields[field].Nvalues*fields[field].pixsize; k++) {282 for (unsigned long int k = 0; k < Nrows*fields[field].Nvalues*fields[field].pixsize; k++) { 287 283 fprintf (stderr, "%02hhx", raw[k]); 288 284 if (k % 2) fprintf (stderr, " "); … … 302 298 303 299 if (VERBOSE_DUMP) { 304 unsigned long int k;305 300 fprintf (stderr, "c3: "); 306 for ( k = 0; k < Nzdata; k++) {301 for (unsigned long int k = 0; k < Nzdata; k++) { 307 302 fprintf (stderr, "%02hhx", zdata[k]); 308 303 if (k % 2) fprintf (stderr, " "); … … 327 322 328 323 if (VERBOSE_DUMP) { 329 unsigned long int k;330 324 fprintf (stderr, "c4: "); 331 for ( k = 0; k < Nzdata; k++) {325 for (unsigned long int k = 0; k < Nzdata; k++) { 332 326 fprintf (stderr, "%02hhx", zdata[k]); 333 327 if (k % 2) fprintf (stderr, " "); … … 348 342 if (OHANA_MEMCHECK) ohana_memcheck (TRUE); 349 343 350 for ( field = 0; field < Nfields; field++) {344 for (int field = 0; field < Nfields; field++) { 351 345 if (!gfits_varlength_column_finish (tgttable, &fields[field].zdef)) ESCAPE; 352 346 } … … 378 372 int gfits_collect_table_data (FTable *table, TableField *field, char *raw, unsigned long int row_start, unsigned long int Nrows) { 379 373 380 unsigned long int i;381 382 374 // we are copying NN rows into the column which starts at XX and has MM bytes per row 383 375 … … 389 381 390 382 if (VERBOSE) fprintf (stderr, "distribute: "); 391 for ( i = 0; i < Nrows; i++, tblbuffer += Nx) {383 for (unsigned long i = 0; i < Nrows; i++, tblbuffer += Nx) { 392 384 memcpy (&raw[i*rowsize], tblbuffer, rowsize); 393 385 # if (VERBOSE) 394 int j; for (j = 0; j < field->rowsize; j++) fprintf (stderr, "0x%02hhx ", table->buffer[Nx*row + field->offset + j]);386 for (int j = 0; j < field->rowsize; j++) fprintf (stderr, "0x%02hhx ", table->buffer[Nx*row + field->offset + j]); 395 387 # endif 396 388 } … … 402 394 int gfits_collect_table_data_alt (FTable *table, TableField *field, char *raw, unsigned long int row_start, unsigned long int Nrows) { 403 395 404 unsigned long int i;405 406 396 // we are copying NN rows of the column which starts at XX and has MM bytes per row 407 397 … … 409 399 410 400 if (VERBOSE) fprintf (stderr, "collect: "); 411 for ( i = 0; i < Nrows; i++) {401 for (unsigned long i = 0; i < Nrows; i++) { 412 402 int row = row_start + i; 413 403 memcpy (&raw[i*field->rowsize], &table->buffer[Nx*row + field->offset], field->rowsize); … … 423 413 int gfits_collect_table_gzp2 (FTable *table, TableField *field, char *raw, unsigned long int row_start, unsigned long int Nrows) { 424 414 425 off_t j, k;426 427 415 // we are copying NN rows into the column which starts at XX and has MM bytes per row 428 416 … … 434 422 char *rawptr = raw; 435 423 436 for ( k = 0; k < field->pixsize; k++) {424 for (off_t k = 0; k < field->pixsize; k++) { 437 425 # ifdef BYTE_SWAP 438 426 char *tblptr_start = &table->buffer[Nx*row_start + offset + (pixsize - k - 1)]; … … 440 428 char *tblptr_start = &table->buffer[Nx*row_start + offset + k]; 441 429 # endif 442 unsigned long int i; 443 for (i = 0; i < Nrows; i++, tblptr_start += Nx) { 430 for (unsigned long int i = 0; i < Nrows; i++, tblptr_start += Nx) { 444 431 char *tblptr = tblptr_start; 445 for ( j = 0; j < Nvalues; j++, tblptr += pixsize, rawptr++) {432 for (off_t j = 0; j < Nvalues; j++, tblptr += pixsize, rawptr++) { 446 433 *rawptr = *tblptr; 447 434 } … … 453 440 int gfits_collect_table_gzp2_alt (FTable *table, TableField *field, char *raw, unsigned long int row_start, unsigned long int Nrows) { 454 441 455 off_t j, k;456 457 442 // we are copying NN rows into the column which starts at XX and has MM bytes per row 458 443 459 444 off_t Nx = table->header->Naxis[0]; 460 445 461 for (k = 0; k < field->pixsize; k++) { 462 unsigned long int i; 463 for (i = 0; i < Nrows; i++) { 446 for (off_t k = 0; k < field->pixsize; k++) { 447 for (unsigned long int i = 0; i < Nrows; i++) { 464 448 unsigned long int row = row_start + i; 465 449 char *rawptr = &raw[i*field->Nvalues + k*Nrows*field->Nvalues]; … … 469 453 char *tblptr = &table->buffer[Nx*row + field->offset + k]; 470 454 # endif 471 for ( j = 0; j < field->Nvalues; j++, tblptr += field->pixsize, rawptr++) {455 for (off_t j = 0; j < field->Nvalues; j++, tblptr += field->pixsize, rawptr++) { 472 456 *rawptr = *tblptr; 473 457 myAssert (rawptr >= raw, "oops"); -
branches/eam_branches/ohana.20160226/src/libfits/table/F_uncompress_T.c
r39409 r39428 13 13 int gfits_dump_raw_table (FTable *table, char *message) { 14 14 # if (VERBOSE_DUMP) 15 int i;16 15 fprintf (stderr, "%s data:\n", message); 17 for (i = 0; i < table->header->Naxis[0]*table->header->Naxis[1]; i++) {16 for (int i = 0; i < table->header->Naxis[0]*table->header->Naxis[1]; i++) { 18 17 // for (i = 0; i < 16; i++) { 19 18 fprintf (stderr, "%02hhx", table->buffer[i]); … … 31 30 int gfits_dump_cmp_table (FTable *table, char *message) { 32 31 # if (VERBOSE_DUMP) 33 int i;34 32 fprintf (stderr, "%s pntr:\n", message); 35 for (i = 0; i < table->header->Naxis[0]*table->header->Naxis[1]; i++) {33 for (int i = 0; i < table->header->Naxis[0]*table->header->Naxis[1]; i++) { 36 34 fprintf (stderr, "%02hhx", table->buffer[i]); 37 35 if (i % 2) fprintf (stderr, " "); … … 41 39 42 40 fprintf (stderr, "%s data:\n", message); 43 for (i = 0; i < table->header->pcount; i++) {41 for (int i = 0; i < table->header->pcount; i++) { 44 42 fprintf (stderr, "%02hhx", table->buffer[table->heap_start + i]); 45 43 if (i % 2) fprintf (stderr, " "); … … 83 81 int gfits_uncompress_table (FTable *srctable, FTable *tgttable) { 84 82 85 int i;86 87 83 char keyword[256]; 88 84 … … 120 116 121 117 ALLOCATE (fields, TableField, Nfields); 122 for (i = 0; i < Nfields; i++) {118 for (int i = 0; i < Nfields; i++) { 123 119 snprintf (keyword, 80, "TTYPE%d", i+1); 124 120 if (!gfits_scan (srcheader, keyword, "%s", 1, fields[i].ttype)) ESCAPE; … … 176 172 // calling with an empty data array, data values are not actually copied (this is done 177 173 // below after decompression) 178 for (i = 0; i < Nfields; i++) {174 for (int i = 0; i < Nfields; i++) { 179 175 if (!gfits_set_bintable_column (tgtheader, tgttable, fields[i].ttype, NULL, Ny)) ESCAPE; 180 176 } … … 206 202 gettimeofday (&startTimer, (void *) NULL); 207 203 208 off_t row; 209 for (row = 0; row < srcheader->Naxis[1]; row++) { 210 211 for (i = 0; i < Nfields; i++) { 204 for (off_t row = 0; row < srcheader->Naxis[1]; row++) { 205 206 for (int i = 0; i < Nfields; i++) { 212 207 213 208 // gfits_uncompress_data can take values specific to the compression mode … … 224 219 225 220 if (VERBOSE_DUMP) { 226 int k;227 221 fprintf (stderr, "u4: "); 228 for ( k = 0; k < Nzdata; k++) {222 for (int k = 0; k < Nzdata; k++) { 229 223 fprintf (stderr, "%02hhx", zdata[k]); 230 224 if (k % 2) fprintf (stderr, " "); … … 256 250 257 251 if (VERBOSE_DUMP) { 258 int k;259 252 fprintf (stderr, "u3: "); 260 for ( k = 0; k < Nzdata; k++) {253 for (int k = 0; k < Nzdata; k++) { 261 254 fprintf (stderr, "%02hhx", zdata[k]); 262 255 if (k % 2) fprintf (stderr, " "); … … 277 270 278 271 if (VERBOSE_DUMP) { 279 unsigned long int k;280 272 fprintf (stderr, "u2: "); 281 for ( k = 0; k < Nraw*fields[i].pixsize; k++) {273 for (unsigned long int k = 0; k < Nraw*fields[i].pixsize; k++) { 282 274 fprintf (stderr, "%02hhx", raw[k]); 283 275 if (k % 2) fprintf (stderr, " "); … … 305 297 306 298 if (VERBOSE_DUMP) { 307 unsigned long int k;308 299 fprintf (stderr, "u1: "); 309 for ( k = 0; k < Nraw*fields[i].pixsize; k++) {300 for (unsigned long int k = 0; k < Nraw*fields[i].pixsize; k++) { 310 301 fprintf (stderr, "%02hhx", raw[k]); 311 302 if (k % 2) fprintf (stderr, " "); … … 362 353 int gfits_distribute_table_data (FTable *table, TableField *field, char *raw, int row_start, int Nrows) { 363 354 364 off_t i;365 366 355 // we are copying NN rows into the column which starts at XX and has MM bytes per row 367 356 … … 373 362 374 363 if (VERBOSE) fprintf (stderr, "distribute: "); 375 for ( i = 0; i < Nrows; i++, tblbuffer += Nx) {364 for (off_t i = 0; i < Nrows; i++, tblbuffer += Nx) { 376 365 memcpy (tblbuffer, &raw[i*rowsize], rowsize); 377 366 # if (VERBOSE) 378 int j; for (j = 0; j < field->rowsize; j++) fprintf (stderr, "0x%02hhx ", table->buffer[Nx*row + field->offset + j]);367 for (int j = 0; j < field->rowsize; j++) fprintf (stderr, "0x%02hhx ", table->buffer[Nx*row + field->offset + j]); 379 368 # endif 380 369 } … … 385 374 386 375 int gfits_distribute_table_gzp2 (FTable *table, TableField *field, char *raw, int row_start, int Nrows) { 387 388 off_t i, j, k;389 376 390 377 // we are copying NN rows into the column which starts at XX and has MM bytes per row … … 397 384 char *rawptr = raw; 398 385 399 for ( k = 0; k < field->pixsize; k++) {386 for (off_t k = 0; k < field->pixsize; k++) { 400 387 # ifdef BYTE_SWAP 401 388 char *tblptr_start = &table->buffer[Nx*row_start + offset + (pixsize - k - 1)]; … … 403 390 char *tblptr_start = &table->buffer[Nx*row_start + offset + k]; 404 391 # endif 405 for ( i = 0; i < Nrows; i++, tblptr_start += Nx) {392 for (off_t i = 0; i < Nrows; i++, tblptr_start += Nx) { 406 393 char *tblptr = tblptr_start; 407 for ( j = 0; j < Nvalues; j++, tblptr += pixsize, rawptr++) {394 for (off_t j = 0; j < Nvalues; j++, tblptr += pixsize, rawptr++) { 408 395 *tblptr = *rawptr; 409 396 } … … 415 402 int gfits_distribute_table_gzp2_alt (FTable *table, TableField *field, char *raw, int row_start, int Nrows) { 416 403 417 off_t i, j, k;418 419 404 // we are copying NN rows into the column which starts at XX and has MM bytes per row 420 405 421 406 off_t Nx = table->header->Naxis[0]; 422 407 423 for ( k = 0; k < field->pixsize; k++) {424 for ( i = 0; i < Nrows; i++) {408 for (off_t k = 0; k < field->pixsize; k++) { 409 for (off_t i = 0; i < Nrows; i++) { 425 410 int row = row_start + i; 426 411 char *rawptr = &raw[i*field->Nvalues + k*Nrows*field->Nvalues]; … … 430 415 char *tblptr = &table->buffer[Nx*row + field->offset + k]; 431 416 # endif 432 for ( j = 0; j < field->Nvalues; j++, tblptr += field->pixsize, rawptr++) {417 for (off_t j = 0; j < field->Nvalues; j++, tblptr += field->pixsize, rawptr++) { 433 418 *tblptr = *rawptr; 434 419 }
Note:
See TracChangeset
for help on using the changeset viewer.
