Changeset 20936 for trunk/Ohana/src/opihi/cmd.data/periodogram.c
- Timestamp:
- Dec 7, 2008, 3:31:01 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/cmd.data/periodogram.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/cmd.data/periodogram.c
r7917 r20936 4 4 5 5 int i, N, Npt, Np, NP, VERBOSE; 6 float *tv, *fv;6 opihi_flt *tv, *fv; 7 7 float minP, maxP, minT, maxT, dTime; 8 8 float mean, var, w, tau, P, Pc, Ps, Po; … … 28 28 if ((power = SelectVector (argv[6], ANYVECTOR, TRUE)) == NULL) return (FALSE); 29 29 30 REQUIRE_VECTOR_FLT (time, FALSE); 31 REQUIRE_VECTOR_FLT (flux, FALSE); 32 30 33 /* find the max baseline, mean, and variance */ 31 minT = maxT = time[0].elements [0];34 minT = maxT = time[0].elements.Flt[0]; 32 35 Npt = time[0].Nelements; 33 tv = time[0].elements ;34 fv = flux[0].elements ;36 tv = time[0].elements.Flt; 37 fv = flux[0].elements.Flt; 35 38 mean = var = 0; 36 39 for (i = 0; i < Npt; i++, tv++, fv++) { … … 40 43 } 41 44 mean = mean / Npt; 42 fv = flux[0].elements ;45 fv = flux[0].elements.Flt; 43 46 for (i = 0; i < Npt; i++, fv++) { 44 47 var += SQ(*fv - mean); … … 56 59 Np = 0; 57 60 NP = 100; 58 R EALLOCATE (power[0].elements, float, NP);59 R EALLOCATE (period[0].elements, float, NP);61 ResetVector (power, OPIHI_FLT, NP); 62 ResetVector (period, OPIHI_FLT, NP); 60 63 61 64 P = minP; … … 64 67 65 68 /* find the period offset tau */ 66 tv = time[0].elements ;69 tv = time[0].elements.Flt; 67 70 cs = sn = 0; 68 71 for (i = 0; i < Npt; i++, tv++) { … … 73 76 74 77 /* find the power at this period */ 75 tv = time[0].elements ;76 fv = flux[0].elements ;78 tv = time[0].elements.Flt; 79 fv = flux[0].elements.Flt; 77 80 cs = sn = cs2 = sn2 = 0; 78 81 for (i = 0; i < Npt; i++, tv++, fv++) { … … 90 93 Po = (Pc + Ps) / (2*var); 91 94 92 power[0].elements [Np] = Po;93 period[0].elements [Np] = P;95 power[0].elements.Flt[Np] = Po; 96 period[0].elements.Flt[Np] = P; 94 97 Np ++; 95 98 if (Np >= NP) { 96 99 NP += 100; 97 REALLOCATE (power[0].elements , float, NP);98 REALLOCATE (period[0].elements , float, NP);100 REALLOCATE (power[0].elements.Flt, opihi_flt, NP); 101 REALLOCATE (period[0].elements.Flt, opihi_flt, NP); 99 102 } 100 103 … … 106 109 } 107 110 108 power[0].Nelements = Np; 109 period[0].Nelements = Np; 110 REALLOCATE (power[0].elements, float, Np); 111 REALLOCATE (period[0].elements, float, Np); 111 ResetVector (power, OPIHI_FLT, Np); 112 ResetVector (period, OPIHI_FLT, Np); 112 113 113 114 return (TRUE);
Note:
See TracChangeset
for help on using the changeset viewer.
