IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 7, 2008, 3:31:01 PM (18 years ago)
Author:
eugene
Message:

big update from eam_branch_20081124 with updates to Opihi math

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/cmd.data/read_vectors.c

    r17070 r20936  
    7070      return (FALSE);   
    7171    }
     72    // XXX we could allow flags (eg, N.i) to specify INT vs FLT types vectors...
    7273    colstr = argv[2*i+2];
    7374    for (j = 0; j < strlen (colstr); j++) {
     
    8182    col[i] = atof (colstr);
    8283  }
    83  
     84
     85  // currently, all read vectors are forced to be type FLT
    8486  NELEM = 1000;
    8587  for (i = 0; i < Nvec; i++) {
    86     REALLOCATE (vec[i][0].elements, float, NELEM);
     88    ResetVector (vec[i], OPIHI_FLT, NELEM);
    8789  }
    8890 
     
    121123        for (i = 0; (i < Nvec) && status; i++) {
    122124          status = dparse (&value, col[i], c0);
    123           vec[i][0].elements[N] = value;
    124           if (!status) vec[i][0].elements[N] = 0.0/0.0;
     125          vec[i][0].elements.Flt[N] = value;
     126          if (!status) vec[i][0].elements.Flt[N] = NAN;
    125127        }
    126128        if (status) N++;
     
    130132        NELEM += 1000;
    131133        for (i = 0; i < Nvec; i++) {
    132           REALLOCATE (vec[i][0].elements, float, NELEM);
     134          REALLOCATE (vec[i][0].elements.Flt, opihi_flt, NELEM);
    133135        }
    134136      }
     
    137139  }
    138140  for (i = 0; i < Nvec; i++) {
    139     REALLOCATE (vec[i][0].elements, float, MAX (N,1));
     141    REALLOCATE (vec[i][0].elements.Flt, opihi_flt, MAX (N,1));
    140142    vec[i][0].Nelements = N;
    141143  }
     
    157159int read_table_vectors (int argc, char **argv, char *extname) {
    158160
    159   int i, j, k, N, Nbytes, Nextend, Ny, Binary;
     161  int i, j, k, N, Nbytes, Nextend, Ny, Binary, vecType;
    160162  char type[16], ID[80], *CCDKeyword;
    161163  FTable table;
     
    260262    }
    261263    if (Nval == 0) ESCAPE ("no data for field in table");
    262 
     264   
     265    vecType = OPIHI_INT;
     266    if (!strcmp (type, "double") || !strcmp (type, "float")) {
     267      vecType = OPIHI_FLT;
     268    }
     269       
     270    // define the multifield vector names
    263271    ALLOCATE (vec, Vector *, Nval);
    264272    for (j = 0; j < Nval; j++) {
     
    268276        sprintf (name, "%s:%d", argv[i], j);
    269277      if ((vec[j] = SelectVector (name, ANYVECTOR, TRUE)) == NULL) ESCAPE ("bad vector name");
    270       REALLOCATE (vec[j][0].elements, float, MAX (Ny,1));
    271       vec[j][0].Nelements = Ny;
     278      ResetVector (vec[j], vecType, MAX (Ny,1));
    272279    }
    273280
     
    276283      for (j = 0; j < Ny; j++) {
    277284        for (k = 0; k < Nval; k++, Pd++) {
    278           vec[k][0].elements[j] = *Pd;
     285          vec[k][0].elements.Flt[j] = *Pd;
    279286        }
    280287      }
     
    284291      for (j = 0; j < Ny; j++) {
    285292        for (k = 0; k < Nval; k++, Pf++) {
    286           vec[k][0].elements[j] = *Pf;
     293          vec[k][0].elements.Flt[j] = *Pf;
    287294        }
    288295      }
     
    292299      for (j = 0; j < Ny; j++) {
    293300        for (k = 0; k < Nval; k++, Pi++) {
    294           vec[k][0].elements[j] = *Pi;
     301          vec[k][0].elements.Int[j] = *Pi;
    295302        }
    296303      }
     
    300307      for (j = 0; j < Ny; j++) {
    301308        for (k = 0; k < Nval; k++, Ps++) {
    302           vec[k][0].elements[j] = *Ps;
     309          vec[k][0].elements.Int[j] = *Ps;
    303310        }
    304311      }
     
    308315      for (j = 0; j < Ny; j++) {
    309316        for (k = 0; k < Nval; k++, Pc++) {
    310           vec[k][0].elements[j] = *Pc;
     317          vec[k][0].elements.Int[j] = *Pc;
    311318        }
    312319      }
Note: See TracChangeset for help on using the changeset viewer.