IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 25, 2008, 4:51:39 PM (18 years ago)
Author:
eugene
Message:

convert opihi vectors to double type, add option for int type as well

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/periodogram.c

    r7917 r20839  
    44 
    55  int i, N, Npt, Np, NP, VERBOSE;
    6   float *tv, *fv;
     6  opihi_flt *tv, *fv;
    77  float minP, maxP, minT, maxT, dTime;
    88  float mean, var, w, tau, P, Pc, Ps, Po;
     
    2929
    3030  /* find the max baseline, mean, and variance */
    31   minT = maxT = time[0].elements[0];
     31  minT = maxT = time[0].elements.Flt[0];
    3232  Npt = time[0].Nelements;
    33   tv = time[0].elements;
    34   fv = flux[0].elements;
     33  tv = time[0].elements.Flt;
     34  fv = flux[0].elements.Flt;
    3535  mean = var = 0;
    3636  for (i = 0; i < Npt; i++, tv++, fv++) {
     
    4040  }
    4141  mean = mean / Npt;
    42   fv = flux[0].elements;
     42  fv = flux[0].elements.Flt;
    4343  for (i = 0; i < Npt; i++, fv++) {
    4444    var += SQ(*fv - mean);
     
    5656  Np = 0;
    5757  NP = 100;
    58   REALLOCATE (power[0].elements, float, NP);
    59   REALLOCATE (period[0].elements, float, NP);
     58  REALLOCATE (power[0].elements.Flt, opihi_flt, NP);
     59  REALLOCATE (period[0].elements.Flt, opihi_flt, NP);
    6060
    6161  P = minP;
     
    6464   
    6565    /* find the period offset tau  */
    66     tv = time[0].elements;
     66    tv = time[0].elements.Flt;
    6767    cs = sn = 0;
    6868    for (i = 0; i < Npt; i++, tv++) {
     
    7373     
    7474    /* find the power at this period */
    75     tv = time[0].elements;
    76     fv = flux[0].elements;
     75    tv = time[0].elements.Flt;
     76    fv = flux[0].elements.Flt;
    7777    cs = sn = cs2 = sn2 = 0;
    7878    for (i = 0; i < Npt; i++, tv++, fv++) {
     
    9090    Po = (Pc + Ps) / (2*var);
    9191
    92     power[0].elements[Np] = Po;
    93     period[0].elements[Np] = P;
     92    power[0].elements.Flt[Np] = Po;
     93    period[0].elements.Flt[Np] = P;
    9494    Np ++;
    9595    if (Np >= NP) {
    9696      NP += 100;
    97       REALLOCATE (power[0].elements, float, NP);
    98       REALLOCATE (period[0].elements, float, NP);
     97      REALLOCATE (power[0].elements.Flt, opihi_flt, NP);
     98      REALLOCATE (period[0].elements.Flt, opihi_flt, NP);
    9999    }
    100100
     
    108108  power[0].Nelements = Np;
    109109  period[0].Nelements = Np;
    110   REALLOCATE (power[0].elements, float, Np);
    111   REALLOCATE (period[0].elements, float, Np);
     110  REALLOCATE (power[0].elements.Flt, opihi_flt, Np);
     111  REALLOCATE (period[0].elements.Flt, opihi_flt, Np);
    112112 
    113113  return (TRUE);
Note: See TracChangeset for help on using the changeset viewer.