Changeset 33188
- Timestamp:
- Feb 1, 2012, 10:22:52 AM (14 years ago)
- Location:
- branches/eam_branches/ipp-20111122/Ohana/src/libfits/matrix
- Files:
-
- 5 edited
-
F_compress_M.c (modified) (4 diffs)
-
F_load_M.c (modified) (2 diffs)
-
F_read_portion.c (modified) (2 diffs)
-
F_read_segment.c (modified) (2 diffs)
-
F_write_M.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20111122/Ohana/src/libfits/matrix/F_compress_M.c
r28241 r33188 424 424 int gfits_byteswap_zdata (char *zdata, int Nzdata, int pixsize) { 425 425 426 # define DOSWAP(A,B) { char tmp = A; A = B; B = tmp; } 427 426 428 # ifdef BYTE_SWAP 427 429 428 430 int i; 429 char tmp;430 431 431 432 switch (pixsize) { … … 435 436 case 2: 436 437 for (i = 0; i < 2*Nzdata; i+=2) { 437 tmp = zdata[i]; 438 zdata[i] = zdata[i+1]; 439 zdata[i+1] = tmp; 438 DOSWAP (zdata[i+0], zdata[i+1]); 440 439 } 441 440 break; … … 443 442 case 4: 444 443 for (i = 0; i < 4*Nzdata; i+=4) { 445 tmp = zdata[i+1]; 446 zdata[i+1] = zdata[i+2]; 447 zdata[i+2] = tmp; 448 tmp = zdata[i]; 449 zdata[i] = zdata[i+3]; 450 zdata[i+3] = tmp; 444 DOSWAP (zdata[i+0], zdata[i+3]); 445 DOSWAP (zdata[i+1], zdata[i+2]); 451 446 } 452 447 break; … … 454 449 case 8: 455 450 for (i = 0; i < 8*Nzdata; i+=8) { 456 tmp = zdata[i+0]; 457 zdata[i+0] = zdata[i+7]; 458 zdata[i+7] = tmp; 459 tmp = zdata[i+1]; 460 zdata[i+1] = zdata[i+6]; 461 zdata[i+6] = tmp; 462 tmp = zdata[i+2]; 463 zdata[i+2] = zdata[i+5]; 464 zdata[i+5] = tmp; 465 tmp = zdata[i+3]; 466 zdata[i+3] = zdata[i+4]; 467 zdata[i+4] = tmp; 451 DOSWAP (zdata[i+0], zdata[i+7]); 452 DOSWAP (zdata[i+1], zdata[i+6]); 453 DOSWAP (zdata[i+2], zdata[i+5]); 454 DOSWAP (zdata[i+3], zdata[i+4]); 468 455 } 469 456 break; -
branches/eam_branches/ipp-20111122/Ohana/src/libfits/matrix/F_load_M.c
r28241 r33188 38 38 } 39 39 40 # define DOSWAP(A,B) { char tmp = A; A = B; B = tmp; } 41 40 42 # ifdef BYTE_SWAP 41 43 { 42 44 int perpix; 43 unsigned char *byte0, *byte1, *byte2, *byte3, *byte4, *byte5, *byte6, *byte7 , tmp;45 unsigned char *byte0, *byte1, *byte2, *byte3, *byte4, *byte5, *byte6, *byte7; 44 46 45 47 perpix = abs(header[0].bitpix) / 8; … … 55 57 if (perpix == 2) { 56 58 for (i = 0; i < nbytes; i+=2, byte0 += 2, byte1 += 2) { 57 tmp = *byte0; 58 *byte0 = *byte1; 59 *byte1 = tmp; 59 DOSWAP(*byte0, *byte1); 60 60 } 61 61 } 62 62 if (perpix == 4) { 63 63 for (i = 0; i < nbytes; i+=4, byte0 += 4, byte1 += 4, byte2 += 4, byte3 += 4) { 64 tmp = *byte0; 65 *byte0 = *byte3; 66 *byte3 = tmp; 67 tmp = *byte1; 68 *byte1 = *byte2; 69 *byte2 = tmp; 64 DOSWAP (*byte0, *byte3); 65 DOSWAP (*byte1, *byte2); 70 66 } 71 67 } 72 68 if (perpix == 8) { 73 69 for (i = 0; i < nbytes; i+=8, byte0 += 8, byte1 += 8, byte2 += 8, byte3 += 8, byte4 += 8, byte5 += 8, byte6 += 8, byte7 += 8) { 74 tmp = *byte0; 75 *byte0 = *byte7; 76 *byte7 = tmp; 77 tmp = *byte1; 78 *byte1 = *byte6; 79 *byte6 = tmp; 80 tmp = *byte1; 81 *byte2 = *byte5; 82 *byte5 = tmp; 83 tmp = *byte1; 84 *byte3 = *byte4; 85 *byte4 = tmp; 70 DOSWAP (*byte0, *byte7); 71 DOSWAP (*byte1, *byte6); 72 DOSWAP (*byte2, *byte5); 73 DOSWAP (*byte3, *byte4); 86 74 } 87 75 } -
branches/eam_branches/ipp-20111122/Ohana/src/libfits/matrix/F_read_portion.c
r28241 r33188 52 52 fclose (f); 53 53 54 # define DOSWAP(A,B) { char tmp = A; A = B; B = tmp; } 55 54 56 # ifdef BYTE_SWAP 55 57 { 56 58 off_t i; 57 59 int perpix; 58 unsigned char *byte0, *byte1, *byte2, *byte3, *byte4, *byte5, *byte6, *byte7 , ctmp;59 60 unsigned char *byte0, *byte1, *byte2, *byte3, *byte4, *byte5, *byte6, *byte7; 61 60 62 perpix = abs(header.bitpix) / 8; 61 63 if (perpix > 1) { … … 70 72 if (perpix == 2) { 71 73 for (i = 0; i < nbytes; i+=2, byte0 += 2, byte1 += 2) { 72 ctmp = *byte0; 73 *byte0 = *byte1; 74 *byte1 = ctmp; 74 DOSWAP(*byte0, *byte1); 75 75 } 76 76 } 77 77 if (perpix == 4) { 78 78 for (i = 0; i < nbytes; i+=4, byte0 += 4, byte1 += 4, byte2 += 4, byte3 += 4) { 79 ctmp = *byte0; 80 *byte0 = *byte3; 81 *byte3 = ctmp; 82 ctmp = *byte1; 83 *byte1 = *byte2; 84 *byte2 = ctmp; 79 DOSWAP (*byte0, *byte3); 80 DOSWAP (*byte1, *byte2); 85 81 } 86 82 } 87 83 if (perpix == 8) { 88 84 for (i = 0; i < nbytes; i+=8, byte0 += 8, byte1 += 8, byte2 += 8, byte3 += 8, byte4 += 8, byte5 += 8, byte6 += 8, byte7 += 8) { 89 ctmp = *byte0; 90 *byte0 = *byte7; 91 *byte7 = ctmp; 92 ctmp = *byte1; 93 *byte1 = *byte6; 94 *byte6 = ctmp; 95 ctmp = *byte1; 96 *byte2 = *byte5; 97 *byte5 = ctmp; 98 ctmp = *byte1; 99 *byte3 = *byte4; 100 *byte4 = ctmp; 85 DOSWAP (*byte0, *byte7); 86 DOSWAP (*byte1, *byte6); 87 DOSWAP (*byte2, *byte5); 88 DOSWAP (*byte3, *byte4); 101 89 } 102 90 } -
branches/eam_branches/ipp-20111122/Ohana/src/libfits/matrix/F_read_segment.c
r28241 r33188 95 95 matrix[0].datasize = Nbytes; 96 96 97 # define DOSWAP(A,B) { char tmp = A; A = B; B = tmp; } 98 97 99 # ifdef BYTE_SWAP 98 100 { 99 unsigned char *byte0, *byte1, *byte2, *byte3, *byte4, *byte5, *byte6, *byte7 , ctmp;101 unsigned char *byte0, *byte1, *byte2, *byte3, *byte4, *byte5, *byte6, *byte7; 100 102 int perpix; 101 103 … … 112 114 if (perpix == 2) { 113 115 for (i = 0; i < nbytes; i+=2, byte0 += 2, byte1 += 2) { 114 ctmp = *byte0; 115 *byte0 = *byte1; 116 *byte1 = ctmp; 116 DOSWAP(*byte0, *byte1); 117 117 } 118 118 } 119 119 if (perpix == 4) { 120 120 for (i = 0; i < nbytes; i+=4, byte0 += 4, byte1 += 4, byte2 += 4, byte3 += 4) { 121 ctmp = *byte0; 122 *byte0 = *byte3; 123 *byte3 = ctmp; 124 ctmp = *byte1; 125 *byte1 = *byte2; 126 *byte2 = ctmp; 121 DOSWAP (*byte0, *byte3); 122 DOSWAP (*byte1, *byte2); 127 123 } 128 124 } 129 125 if (perpix == 8) { 130 126 for (i = 0; i < nbytes; i+=8, byte0 += 8, byte1 += 8, byte2 += 8, byte3 += 8, byte4 += 8, byte5 += 8, byte6 += 8, byte7 += 8) { 131 ctmp = *byte0; 132 *byte0 = *byte7; 133 *byte7 = ctmp; 134 ctmp = *byte1; 135 *byte1 = *byte6; 136 *byte6 = ctmp; 137 ctmp = *byte1; 138 *byte2 = *byte5; 139 *byte5 = ctmp; 140 ctmp = *byte1; 141 *byte3 = *byte4; 142 *byte4 = ctmp; 127 DOSWAP (*byte0, *byte7); 128 DOSWAP (*byte1, *byte6); 129 DOSWAP (*byte2, *byte5); 130 DOSWAP (*byte3, *byte4); 143 131 } 144 132 } -
branches/eam_branches/ipp-20111122/Ohana/src/libfits/matrix/F_write_M.c
r27435 r33188 36 36 nbytes = FT_RECORD_SIZE * ((off_t) (matrix[0].datasize / FT_RECORD_SIZE)); 37 37 38 # define DOSWAP(A,B) { char tmp = A; A = B; B = tmp; } 39 38 40 /* this is a bit cumbersome: swap all words, write out file, then swap back... */ 39 41 # ifdef BYTE_SWAP 40 42 { 41 43 off_t i; 42 unsigned char *byte0, *byte1, *byte2, *byte3, *byte4, *byte5, *byte6, *byte7 , tmp;44 unsigned char *byte0, *byte1, *byte2, *byte3, *byte4, *byte5, *byte6, *byte7; 43 45 int perpix; 44 46 … … 55 57 if (perpix == 2) { 56 58 for (i = 0; i < nbytes; i+=2, byte0 += 2, byte1 += 2) { 57 tmp = *byte0; 58 *byte0 = *byte1; 59 *byte1 = tmp; 59 DOSWAP(*byte0, *byte1); 60 60 } 61 61 } 62 62 if (perpix == 4) { 63 63 for (i = 0; i < nbytes; i+=4, byte0 += 4, byte1 += 4, byte2 += 4, byte3 += 4) { 64 tmp = *byte0; 65 *byte0 = *byte3; 66 *byte3 = tmp; 67 tmp = *byte1; 68 *byte1 = *byte2; 69 *byte2 = tmp; 64 DOSWAP (*byte0, *byte3); 65 DOSWAP (*byte1, *byte2); 70 66 } 71 67 } 72 68 if (perpix == 8) { 73 69 for (i = 0; i < nbytes; i+=8, byte0 += 8, byte1 += 8, byte2 += 8, byte3 += 8, byte4 += 8, byte5 += 8, byte6 += 8, byte7 += 8) { 74 tmp = *byte0; 75 *byte0 = *byte7; 76 *byte7 = tmp; 77 tmp = *byte1; 78 *byte1 = *byte6; 79 *byte6 = tmp; 80 tmp = *byte1; 81 *byte2 = *byte5; 82 *byte5 = tmp; 83 tmp = *byte1; 84 *byte3 = *byte4; 85 *byte4 = tmp; 70 DOSWAP (*byte0, *byte7); 71 DOSWAP (*byte1, *byte6); 72 DOSWAP (*byte2, *byte5); 73 DOSWAP (*byte3, *byte4); 86 74 } 87 75 } … … 98 86 { 99 87 off_t i; 100 unsigned char *byte0, *byte1, *byte2, *byte3, *byte4, *byte5, *byte6, *byte7 , tmp;88 unsigned char *byte0, *byte1, *byte2, *byte3, *byte4, *byte5, *byte6, *byte7; 101 89 int perpix; 102 90 … … 113 101 if (perpix == 2) { 114 102 for (i = 0; i < nbytes; i+=2, byte0 += 2, byte1 += 2) { 115 tmp = *byte0; 116 *byte0 = *byte1; 117 *byte1 = tmp; 103 DOSWAP(*byte0, *byte1); 118 104 } 119 105 } 120 106 if (perpix == 4) { 121 107 for (i = 0; i < nbytes; i+=4, byte0 += 4, byte1 += 4, byte2 += 4, byte3 += 4) { 122 tmp = *byte0; 123 *byte0 = *byte3; 124 *byte3 = tmp; 125 tmp = *byte1; 126 *byte1 = *byte2; 127 *byte2 = tmp; 108 DOSWAP (*byte0, *byte3); 109 DOSWAP (*byte1, *byte2); 128 110 } 129 111 } 130 112 if (perpix == 8) { 131 113 for (i = 0; i < nbytes; i+=8, byte0 += 8, byte1 += 8, byte2 += 8, byte3 += 8, byte4 += 8, byte5 += 8, byte6 += 8, byte7 += 8) { 132 tmp = *byte0; 133 *byte0 = *byte7; 134 *byte7 = tmp; 135 tmp = *byte1; 136 *byte1 = *byte6; 137 *byte6 = tmp; 138 tmp = *byte1; 139 *byte2 = *byte5; 140 *byte5 = tmp; 141 tmp = *byte1; 142 *byte3 = *byte4; 143 *byte4 = tmp; 114 DOSWAP (*byte0, *byte7); 115 DOSWAP (*byte1, *byte6); 116 DOSWAP (*byte2, *byte5); 117 DOSWAP (*byte3, *byte4); 144 118 } 145 119 }
Note:
See TracChangeset
for help on using the changeset viewer.
