IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 1, 2012, 2:22:08 PM (14 years ago)
Author:
eugene
Message:

fix byteswap error for 64bit tables (simplify byteswap code generally to clean up); add function to get type of specified column by seq number; defaults for Bzero and Bscale in tables without temp (0.0,1.0); function to set a bintable column from a vector of different type; better error handling for F_print,F_modify

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libfits/matrix/F_compress_M.c

    r28241 r33648  
    424424int gfits_byteswap_zdata (char *zdata, int Nzdata, int pixsize) {
    425425
     426# define DOSWAP(A,B) { char tmp = A; A = B; B = tmp; }
     427
    426428# ifdef BYTE_SWAP
    427429
    428430  int i;
    429   char tmp;
    430431
    431432  switch (pixsize) {
     
    435436    case 2:
    436437      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]);
    440439      }
    441440      break;
     
    443442    case 4:
    444443      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]);
    451446      }
    452447      break;
     
    454449    case 8:
    455450      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]);
    468455      }
    469456      break;
Note: See TracChangeset for help on using the changeset viewer.