Changeset 20839
- Timestamp:
- Nov 25, 2008, 4:51:39 PM (17 years ago)
- Location:
- branches/eam_branch_20081124/Ohana/src/opihi
- Files:
-
- 126 edited
-
cmd.astro/biassub.c (modified) (3 diffs)
-
cmd.astro/cgrid.c (modified) (11 diffs)
-
cmd.astro/coords.c (modified) (2 diffs)
-
cmd.astro/cplot.c (modified) (4 diffs)
-
cmd.astro/csystem.c (modified) (2 diffs)
-
cmd.astro/czplot.c (modified) (3 diffs)
-
cmd.astro/imfit-fgauss.c (modified) (3 diffs)
-
cmd.astro/imfit-pgauss-psf.c (modified) (3 diffs)
-
cmd.astro/imfit-pgauss.c (modified) (3 diffs)
-
cmd.astro/imfit-qfgauss.c (modified) (3 diffs)
-
cmd.astro/imfit-qgauss-psf.c (modified) (3 diffs)
-
cmd.astro/imfit-qgauss.c (modified) (3 diffs)
-
cmd.astro/imfit-qrgauss.c (modified) (4 diffs)
-
cmd.astro/imfit-rgauss.c (modified) (3 diffs)
-
cmd.astro/imfit-serbulge.c (modified) (3 diffs)
-
cmd.astro/imfit-sersic.c (modified) (3 diffs)
-
cmd.astro/imfit-sgauss-psf.c (modified) (3 diffs)
-
cmd.astro/imfit-sgauss.c (modified) (3 diffs)
-
cmd.astro/imfit-tgauss.c (modified) (2 diffs)
-
cmd.astro/imfit-vgauss.c (modified) (2 diffs)
-
cmd.astro/imfit.c (modified) (2 diffs)
-
cmd.astro/multifit.c (modified) (5 diffs)
-
cmd.astro/precess.c (modified) (2 diffs)
-
cmd.astro/profile.c (modified) (2 diffs)
-
cmd.astro/spec.c (modified) (2 diffs)
-
cmd.data/accum.c (modified) (2 diffs)
-
cmd.data/applyfit.c (modified) (3 diffs)
-
cmd.data/applyfit2d.c (modified) (3 diffs)
-
cmd.data/concat.c (modified) (2 diffs)
-
cmd.data/contour.c (modified) (4 diffs)
-
cmd.data/create.c (modified) (1 diff)
-
cmd.data/cumulative.c (modified) (2 diffs)
-
cmd.data/cut.c (modified) (4 diffs)
-
cmd.data/dbselect.c (modified) (3 diffs)
-
cmd.data/dimendown.c (modified) (2 diffs)
-
cmd.data/dimenup.c (modified) (2 diffs)
-
cmd.data/fft1d.c (modified) (1 diff)
-
cmd.data/fit.c (modified) (7 diffs)
-
cmd.data/fit2d.c (modified) (7 diffs)
-
cmd.data/gaussdeviate.c (modified) (2 diffs)
-
cmd.data/gaussj.c (modified) (2 diffs)
-
cmd.data/grid.c (modified) (6 diffs)
-
cmd.data/gridify.c (modified) (2 diffs)
-
cmd.data/histogram.c (modified) (2 diffs)
-
cmd.data/imcut.c (modified) (2 diffs)
-
cmd.data/imhist.c (modified) (2 diffs)
-
cmd.data/integrate.c (modified) (2 diffs)
-
cmd.data/interpolate.c (modified) (1 diff)
-
cmd.data/lookup.c (modified) (2 diffs)
-
cmd.data/medacc.c (modified) (4 diffs)
-
cmd.data/mget.c (modified) (4 diffs)
-
cmd.data/mset.c (modified) (3 diffs)
-
cmd.data/peak.c (modified) (2 diffs)
-
cmd.data/periodogram.c (modified) (8 diffs)
-
cmd.data/plot.c (modified) (1 diff)
-
cmd.data/read_vectors.c (modified) (10 diffs)
-
cmd.data/select.c (modified) (1 diff)
-
cmd.data/sort.c (modified) (3 diffs)
-
cmd.data/subset.c (modified) (1 diff)
-
cmd.data/svd.c (modified) (2 diffs)
-
cmd.data/test/histogram.sh (modified) (2 diffs)
-
cmd.data/ungridify.c (modified) (2 diffs)
-
cmd.data/uniq.c (modified) (4 diffs)
-
cmd.data/vbin.c (modified) (3 diffs)
-
cmd.data/vclip.c (modified) (4 diffs)
-
cmd.data/vgauss.c (modified) (7 diffs)
-
cmd.data/vgrid.c (modified) (2 diffs)
-
cmd.data/vload.c (modified) (2 diffs)
-
cmd.data/vmaxwell.c (modified) (6 diffs)
-
cmd.data/vpop.c (modified) (1 diff)
-
cmd.data/vroll.c (modified) (2 diffs)
-
cmd.data/vsmooth.c (modified) (4 diffs)
-
cmd.data/vstat.c (modified) (3 diffs)
-
cmd.data/vzload.c (modified) (1 diff)
-
cmd.data/write_vectors.c (modified) (2 diffs)
-
cmd.data/zplot.c (modified) (3 diffs)
-
dvo/avextract.c (modified) (4 diffs)
-
dvo/calmextract.c (modified) (4 diffs)
-
dvo/ccd.c (modified) (1 diff)
-
dvo/cmd.c (modified) (1 diff)
-
dvo/cmpread.c (modified) (2 diffs)
-
dvo/compare.c (modified) (3 diffs)
-
dvo/detrend.c (modified) (3 diffs)
-
dvo/fitcolors.c (modified) (5 diffs)
-
dvo/gstar.c (modified) (2 diffs)
-
dvo/images.c (modified) (5 diffs)
-
dvo/imbox.c (modified) (4 diffs)
-
dvo/imdata.c (modified) (10 diffs)
-
dvo/imdense.c (modified) (3 diffs)
-
dvo/imextract.c (modified) (10 diffs)
-
dvo/imrough.c (modified) (3 diffs)
-
dvo/imstats.c (modified) (2 diffs)
-
dvo/lcurve.c (modified) (5 diffs)
-
dvo/lightcurve.c (modified) (2 diffs)
-
dvo/mextract.c (modified) (3 diffs)
-
dvo/mmextract.c (modified) (3 diffs)
-
dvo/paverage.c (modified) (4 diffs)
-
dvo/pmeasure.c (modified) (4 diffs)
-
dvo/procks.c (modified) (5 diffs)
-
dvo/showtile.c (modified) (5 diffs)
-
dvo/simage.c (modified) (6 diffs)
-
dvo/skycat.c (modified) (3 diffs)
-
include/data.h (modified) (3 diffs)
-
include/display.h (modified) (2 diffs)
-
include/dvomath.h (modified) (3 diffs)
-
include/dvoshell.h (modified) (1 diff)
-
include/imfit.h (modified) (1 diff)
-
include/pantasks.h (modified) (1 diff)
-
lib.data/PlotVectors.c (modified) (1 diff)
-
lib.data/fft.c (modified) (1 diff)
-
lib.data/graphtools.c (modified) (3 diffs)
-
lib.data/mrq2dmin.c (modified) (7 diffs)
-
lib.data/mrqmin.c (modified) (5 diffs)
-
lib.data/starfuncs.c (modified) (1 diff)
-
lib.data/svdcmp.c (modified) (1 diff)
-
lib.shell/VectorOps.c (modified) (7 diffs)
-
lib.shell/check_stack.c (modified) (3 diffs)
-
lib.shell/dvomath.c (modified) (1 diff)
-
lib.shell/evaluate_stack.c (modified) (2 diffs)
-
lib.shell/expand_vectors.c (modified) (1 diff)
-
lib.shell/parse.c (modified) (1 diff)
-
lib.shell/stack_math.c (modified) (26 diffs)
-
mana/findpeaks.c (modified) (2 diffs)
-
mana/fitcontour.c (modified) (1 diff)
-
mana/rawstars.c (modified) (3 diffs)
-
mana/starcontour.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/biassub.c
r7917 r20839 5 5 int i, j, k, N, dir, nlong, nwide, start; 6 6 int sx, sy, nx, ny, NX, NY, NoVector, Nval; 7 float *V, *DV, dV, *vect, *segment, val; 7 float *V, dV, *segment, val; 8 opihi_flt *DV, *vect; 8 9 Vector *xvec, *yvec; 9 10 Buffer *buf; … … 54 55 } 55 56 56 ALLOCATE (vect, float, nlong);57 ALLOCATE (vect, opihi_flt, nlong); 57 58 ALLOCATE (segment, float, nwide); 58 59 … … 91 92 if (!NoVector) { 92 93 xvec[0].Nelements = yvec[0].Nelements = nlong; 93 REALLOCATE (xvec[0].elements , float, nlong);94 REALLOCATE (yvec[0].elements , float, nlong);94 REALLOCATE (xvec[0].elements.Flt, opihi_flt, nlong); 95 REALLOCATE (yvec[0].elements.Flt, opihi_flt, nlong); 95 96 for (i = 0; i < nlong; i++) { 96 xvec[0].elements [i] = i + start;97 yvec[0].elements [i] = vect[i];97 xvec[0].elements.Flt[i] = i + start; 98 yvec[0].elements.Flt[i] = vect[i]; 98 99 } 99 100 } -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/cgrid.c
r13479 r20839 3 3 if (N == NELEMENTS) { \ 4 4 NELEMENTS +=200; \ 5 REALLOCATE (Xvec.elements , float, NELEMENTS); \6 REALLOCATE (Yvec.elements , float, NELEMENTS); \5 REALLOCATE (Xvec.elements.Flt, opihi_flt, NELEMENTS); \ 6 REALLOCATE (Yvec.elements.Flt, opihi_flt, NELEMENTS); \ 7 7 } 8 8 … … 96 96 /* prepare vectors to hold data */ 97 97 NELEMENTS = 200; 98 ALLOCATE (Xvec.elements , float, NELEMENTS);99 ALLOCATE (Yvec.elements , float, NELEMENTS);98 ALLOCATE (Xvec.elements.Flt, opihi_flt, NELEMENTS); 99 ALLOCATE (Yvec.elements.Flt, opihi_flt, NELEMENTS); 100 100 N = 0; 101 101 … … 109 109 for (d = firstDEC; (d < 90 + dD) && (LOnPic || NorthPole || SouthPole); d += dD) { 110 110 D = MAX (-90, MIN(90, d)); 111 status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);112 /* 113 if ((fabs(Xvec.elements [N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))114 First = TRUE; 115 */ 116 if ((Xvec.elements [N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) &&117 (Yvec.elements [N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {118 N++; 119 CHECKELEMENTS; 120 OnPic = TRUE; 121 if (!First) { 122 Xvec.elements [N] = Xvec.elements[N-1];123 Yvec.elements [N] = Yvec.elements[N-1];124 N++; 125 CHECKELEMENTS; 126 } else { 127 if (N > 1) { 128 Xvec.elements [N-2] = Xvec.elements[N-1];129 Yvec.elements [N-2] = Yvec.elements[N-1];111 status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords); 112 /* 113 if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10)) 114 First = TRUE; 115 */ 116 if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 117 (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) { 118 N++; 119 CHECKELEMENTS; 120 OnPic = TRUE; 121 if (!First) { 122 Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1]; 123 Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1]; 124 N++; 125 CHECKELEMENTS; 126 } else { 127 if (N > 1) { 128 Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1]; 129 Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1]; 130 130 N--; 131 131 } … … 142 142 for (d = firstDEC; (d > -90 - dD) && (LOnPic || NorthPole || SouthPole); d -= dD) { 143 143 D = MAX (-90, MIN(90, d)); 144 status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);145 /* 146 if ((fabs(Xvec.elements [N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))147 First = TRUE; 148 */ 149 if ((Xvec.elements [N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) &&150 (Yvec.elements [N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {151 N++; 152 CHECKELEMENTS; 153 OnPic = TRUE; 154 if (!First) { 155 Xvec.elements [N] = Xvec.elements[N-1];156 Yvec.elements [N] = Yvec.elements[N-1];157 N++; 158 CHECKELEMENTS; 159 } else { 160 if (N > 1) { 161 Xvec.elements [N-2] = Xvec.elements[N-1];162 Yvec.elements [N-2] = Yvec.elements[N-1];144 status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords); 145 /* 146 if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10)) 147 First = TRUE; 148 */ 149 if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 150 (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) { 151 N++; 152 CHECKELEMENTS; 153 OnPic = TRUE; 154 if (!First) { 155 Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1]; 156 Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1]; 157 N++; 158 CHECKELEMENTS; 159 } else { 160 if (N > 1) { 161 Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1]; 162 Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1]; 163 163 N--; 164 164 } … … 181 181 for (d = firstDEC; (d < 90 + dD) && (LOnPic || NorthPole || SouthPole); d += dD) { 182 182 D = MAX (-90, MIN(90, d)); 183 status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);184 /* 185 if ((fabs(Xvec.elements [N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))186 First = TRUE; 187 */ 188 if ((Xvec.elements [N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) &&189 (Yvec.elements [N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {190 N++; 191 CHECKELEMENTS; 192 OnPic = TRUE; 193 if (!First) { 194 Xvec.elements [N] = Xvec.elements[N-1];195 Yvec.elements [N] = Yvec.elements[N-1];196 N++; 197 CHECKELEMENTS; 198 } else { 199 if (N > 1) { 200 Xvec.elements [N-2] = Xvec.elements[N-1];201 Yvec.elements [N-2] = Yvec.elements[N-1];183 status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords); 184 /* 185 if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10)) 186 First = TRUE; 187 */ 188 if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 189 (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) { 190 N++; 191 CHECKELEMENTS; 192 OnPic = TRUE; 193 if (!First) { 194 Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1]; 195 Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1]; 196 N++; 197 CHECKELEMENTS; 198 } else { 199 if (N > 1) { 200 Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1]; 201 Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1]; 202 202 N--; 203 203 } … … 214 214 for (d = firstDEC; (d > -90 - dD) && (LOnPic || NorthPole || SouthPole); d -= dD) { 215 215 D = MAX (-90, MIN(90, d)); 216 status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);217 /* 218 if ((fabs(Xvec.elements [N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))219 First = TRUE; 220 */ 221 if ((Xvec.elements [N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) &&222 (Yvec.elements [N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {223 N++; 224 CHECKELEMENTS; 225 OnPic = TRUE; 226 if (!First) { 227 Xvec.elements [N] = Xvec.elements[N-1];228 Yvec.elements [N] = Yvec.elements[N-1];229 N++; 230 CHECKELEMENTS; 231 } else { 232 if (N > 1) { 233 Xvec.elements [N-2] = Xvec.elements[N-1];234 Yvec.elements [N-2] = Yvec.elements[N-1];216 status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords); 217 /* 218 if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10)) 219 First = TRUE; 220 */ 221 if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 222 (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) { 223 N++; 224 CHECKELEMENTS; 225 OnPic = TRUE; 226 if (!First) { 227 Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1]; 228 Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1]; 229 N++; 230 CHECKELEMENTS; 231 } else { 232 if (N > 1) { 233 Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1]; 234 Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1]; 235 235 N--; 236 236 } … … 253 253 First = TRUE; 254 254 for (r = firstRA; (r < firstRA + 180) && (LOnPic || NorthPole || SouthPole); r += dR) { 255 status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);256 /* 257 if ((fabs(Xvec.elements [N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))258 First = TRUE; 259 */ 260 if ((Xvec.elements [N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) &&261 (Yvec.elements [N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {262 N++; 263 CHECKELEMENTS; 264 OnPic = TRUE; 265 if (!First) { 266 Xvec.elements [N] = Xvec.elements[N-1];267 Yvec.elements [N] = Yvec.elements[N-1];268 N++; 269 CHECKELEMENTS; 270 } else { 271 if (N > 1) { 272 Xvec.elements [N-2] = Xvec.elements[N-1];273 Yvec.elements [N-2] = Yvec.elements[N-1];255 status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords); 256 /* 257 if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10)) 258 First = TRUE; 259 */ 260 if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 261 (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) { 262 N++; 263 CHECKELEMENTS; 264 OnPic = TRUE; 265 if (!First) { 266 Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1]; 267 Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1]; 268 N++; 269 CHECKELEMENTS; 270 } else { 271 if (N > 1) { 272 Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1]; 273 Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1]; 274 274 N--; 275 275 } … … 285 285 LOnPic = TRUE; 286 286 for (r = firstRA; (r > firstRA - 180) && (LOnPic || NorthPole || SouthPole); r -= dR) { 287 status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);288 /* 289 if ((fabs(Xvec.elements [N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))290 First = TRUE; 291 */ 292 if ((Xvec.elements [N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) &&293 (Yvec.elements [N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {294 N++; 295 CHECKELEMENTS; 296 OnPic = TRUE; 297 if (!First) { 298 Xvec.elements [N] = Xvec.elements[N-1];299 Yvec.elements [N] = Yvec.elements[N-1];300 N++; 301 CHECKELEMENTS; 302 } else { 303 if (N > 1) { 304 Xvec.elements [N-2] = Xvec.elements[N-1];305 Yvec.elements [N-2] = Yvec.elements[N-1];287 status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords); 288 /* 289 if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10)) 290 First = TRUE; 291 */ 292 if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 293 (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) { 294 N++; 295 CHECKELEMENTS; 296 OnPic = TRUE; 297 if (!First) { 298 Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1]; 299 Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1]; 300 N++; 301 CHECKELEMENTS; 302 } else { 303 if (N > 1) { 304 Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1]; 305 Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1]; 306 306 N--; 307 307 } … … 324 324 First = TRUE; 325 325 for (r = firstRA; (r < firstRA + 180) && (LOnPic || NorthPole || SouthPole); r += dR) { 326 status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);327 /* 328 if ((fabs(Xvec.elements [N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))329 First = TRUE; 330 */ 331 if ((Xvec.elements [N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) &&332 (Yvec.elements [N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {333 N++; 334 CHECKELEMENTS; 335 OnPic = TRUE; 336 if (!First) { 337 Xvec.elements [N] = Xvec.elements[N-1];338 Yvec.elements [N] = Yvec.elements[N-1];339 N++; 340 CHECKELEMENTS; 341 } else { 342 if (N > 1) { 343 Xvec.elements [N-2] = Xvec.elements[N-1];344 Yvec.elements [N-2] = Yvec.elements[N-1];326 status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords); 327 /* 328 if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10)) 329 First = TRUE; 330 */ 331 if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 332 (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) { 333 N++; 334 CHECKELEMENTS; 335 OnPic = TRUE; 336 if (!First) { 337 Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1]; 338 Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1]; 339 N++; 340 CHECKELEMENTS; 341 } else { 342 if (N > 1) { 343 Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1]; 344 Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1]; 345 345 N--; 346 346 } … … 356 356 LOnPic = TRUE; 357 357 for (r = firstRA; (r > firstRA - 180) && (LOnPic || NorthPole || SouthPole); r -= dR) { 358 status = fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, D, &graphmode.coords);359 /* 360 if ((fabs(Xvec.elements [N] - Xvec.elements[N-1]) > 10) && (fabs(Yvec.elements[N] - Yvec.elements[N-1]) > 10))361 First = TRUE; 362 */ 363 if ((Xvec.elements [N] >= graphmode.xmin) && (Xvec.elements[N] <= graphmode.xmax) &&364 (Yvec.elements [N] >= graphmode.ymin) && (Yvec.elements[N] <= graphmode.ymax) && status) {365 N++; 366 CHECKELEMENTS; 367 OnPic = TRUE; 368 if (!First) { 369 Xvec.elements [N] = Xvec.elements[N-1];370 Yvec.elements [N] = Yvec.elements[N-1];371 N++; 372 CHECKELEMENTS; 373 } else { 374 if (N > 1) { 375 Xvec.elements [N-2] = Xvec.elements[N-1];376 Yvec.elements [N-2] = Yvec.elements[N-1];358 status = RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, D, &graphmode.coords); 359 /* 360 if ((fabs(Xvec.elements.Flt[N] - Xvec.elements.Flt[N-1]) > 10) && (fabs(Yvec.elements.Flt[N] - Yvec.elements.Flt[N-1]) > 10)) 361 First = TRUE; 362 */ 363 if ((Xvec.elements.Flt[N] >= graphmode.xmin) && (Xvec.elements.Flt[N] <= graphmode.xmax) && 364 (Yvec.elements.Flt[N] >= graphmode.ymin) && (Yvec.elements.Flt[N] <= graphmode.ymax) && status) { 365 N++; 366 CHECKELEMENTS; 367 OnPic = TRUE; 368 if (!First) { 369 Xvec.elements.Flt[N] = Xvec.elements.Flt[N-1]; 370 Yvec.elements.Flt[N] = Yvec.elements.Flt[N-1]; 371 N++; 372 CHECKELEMENTS; 373 } else { 374 if (N > 1) { 375 Xvec.elements.Flt[N-2] = Xvec.elements.Flt[N-1]; 376 Yvec.elements.Flt[N-2] = Yvec.elements.Flt[N-1]; 377 377 N--; 378 378 } … … 391 391 graphmode.ptype = 100; /* connect a pair */ 392 392 graphmode.etype = 0; 393 PlotVectorPair (kapa, N, Xvec.elements , Yvec.elements, &graphmode);394 395 free (Xvec.elements );396 free (Yvec.elements );393 PlotVectorPair (kapa, N, Xvec.elements.Flt, Yvec.elements.Flt, &graphmode); 394 395 free (Xvec.elements.Flt); 396 free (Yvec.elements.Flt); 397 397 return (TRUE); 398 398 -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/coords.c
r17484 r20839 89 89 if (mode == SKY) { 90 90 for (i = 0; i < xvec[0].Nelements; i++) { 91 fXY_to_RD (&xvec[0].elements[i], &yvec[0].elements[i], xvec[0].elements[i], yvec[0].elements[i], &coords);91 XY_to_RD (&xvec[0].elements.Flt[i], &yvec[0].elements.Flt[i], xvec[0].elements.Flt[i], yvec[0].elements.Flt[i], &coords); 92 92 } 93 93 return (TRUE); … … 95 95 if (mode == PIXEL) { 96 96 for (i = 0; i < xvec[0].Nelements; i++) { 97 fRD_to_XY (&xvec[0].elements[i], &yvec[0].elements[i], xvec[0].elements[i], yvec[0].elements[i], &coords);97 RD_to_XY (&xvec[0].elements.Flt[i], &yvec[0].elements.Flt[i], xvec[0].elements.Flt[i], yvec[0].elements.Flt[i], &coords); 98 98 } 99 99 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/cplot.c
r19823 r20839 4 4 5 5 int i, kapa, Npts, status, leftside; 6 float *x, *y, *r, *d, Rmin, Rmax, Rmid;6 opihi_flt *x, *y, *r, *d, Rmin, Rmax, Rmid; 7 7 Vector Xvec, Yvec, *xvec, *yvec; 8 8 Graphdata graphmode; … … 28 28 } 29 29 30 ALLOCATE (Xvec.elements , float, xvec[0].Nelements);31 ALLOCATE (Yvec.elements , float, xvec[0].Nelements);30 ALLOCATE (Xvec.elements.Flt, opihi_flt, xvec[0].Nelements); 31 ALLOCATE (Yvec.elements.Flt, opihi_flt, xvec[0].Nelements); 32 32 33 33 Xvec.Nelements = xvec[0].Nelements; 34 34 Yvec.Nelements = xvec[0].Nelements; 35 35 36 r = xvec[0].elements ;37 d = yvec[0].elements ;38 x = Xvec.elements ;39 y = Yvec.elements ;36 r = xvec[0].elements.Flt; 37 d = yvec[0].elements.Flt; 38 x = Xvec.elements.Flt; 39 y = Yvec.elements.Flt; 40 40 41 41 Npts = 0; … … 51 51 if (!leftside && (r[0] < Rmid - 90)) { r[0] += 360.0; } 52 52 } 53 status = fRD_to_XY (x, y, *r, *d, &graphmode.coords);53 status = RD_to_XY (x, y, *r, *d, &graphmode.coords); 54 54 55 55 // if we fail on one of the points, drop the corresponding pair … … 77 77 78 78 graphmode.etype = 0; 79 PlotVectorPair (kapa, Npts, Xvec.elements , Yvec.elements, &graphmode);79 PlotVectorPair (kapa, Npts, Xvec.elements.Flt, Yvec.elements.Flt, &graphmode); 80 80 81 free (Xvec.elements );82 free (Yvec.elements );81 free (Xvec.elements.Flt); 82 free (Yvec.elements.Flt); 83 83 84 84 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/csystem.c
r16935 r20839 6 6 int i; 7 7 double X, Y, x, y; 8 float *xptr, *yptr;8 opihi_flt *xptr, *yptr; 9 9 Vector *xvec, *yvec; 10 10 CoordTransformSystem input, output; … … 54 54 } 55 55 56 xptr = xvec[0].elements ;57 yptr = yvec[0].elements ;56 xptr = xvec[0].elements.Flt; 57 yptr = yvec[0].elements.Flt; 58 58 59 59 for (i = 0; i < xvec[0].Nelements; i++, xptr++, yptr++) { 60 // ApplyTransform takes (double *), but xptr, yptr are (float *) 61 ApplyTransform (&x, &y, *xptr, *yptr, transform); 62 *xptr = x; 63 *yptr = y; 60 ApplyTransform (xptr, yptr, *xptr, *yptr, transform); 64 61 } 65 62 -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/czplot.c
r19823 r20839 5 5 int i, kapa, Npts; 6 6 double min, range, Rmin, Rmax; 7 float *in, *out, *r, *d, *x, *y;7 opihi_flt *in, *out, *r, *d, *x, *y; 8 8 Vector Xvec, Yvec, Zvec, *xvec, *yvec, *zvec; 9 9 Graphdata graphmode; … … 37 37 Yvec.Nelements = xvec[0].Nelements; 38 38 Zvec.Nelements = zvec[0].Nelements; 39 ALLOCATE (Xvec.elements , float, Xvec.Nelements);40 ALLOCATE (Yvec.elements , float, Yvec.Nelements);41 ALLOCATE (Zvec.elements , float, Zvec.Nelements);39 ALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 40 ALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 41 ALLOCATE (Zvec.elements.Flt, opihi_flt, Zvec.Nelements); 42 42 43 r = xvec[0].elements ;44 d = yvec[0].elements ;45 in = zvec[0].elements ;46 x = Xvec.elements ;47 y = Yvec.elements ;48 out = Zvec.elements ;43 r = xvec[0].elements.Flt; 44 d = yvec[0].elements.Flt; 45 in = zvec[0].elements.Flt; 46 x = Xvec.elements.Flt; 47 y = Yvec.elements.Flt; 48 out = Zvec.elements.Flt; 49 49 for (i = 0; i < Zvec.Nelements; i++, in++, out++, r++, d++, x++, y++) { 50 50 *out = MIN (1.0, MAX (0.01, (*in - min) / range)); 51 51 *r = ohana_normalize_angle (*r); 52 fRD_to_XY (x, y, *r, *d, &graphmode.coords);52 RD_to_XY (x, y, *r, *d, &graphmode.coords); 53 53 } 54 54 … … 57 57 graphmode.etype = 0; 58 58 Npts = Xvec.Nelements; 59 PlotVectorTriplet (kapa, Npts, Xvec.elements , Yvec.elements, Zvec.elements, &graphmode);59 PlotVectorTriplet (kapa, Npts, Xvec.elements.Flt, Yvec.elements.Flt, Zvec.elements.Flt, &graphmode); 60 60 61 free (Xvec.elements );62 free (Yvec.elements );63 free (Zvec.elements );61 free (Xvec.elements.Flt); 62 free (Yvec.elements.Flt); 63 free (Zvec.elements.Flt); 64 64 65 65 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-fgauss.c
r3144 r20839 1 1 # include "imfit.h" 2 2 3 float fgaussTD (float, float, float *, int, float *);3 opihi_flt fgaussTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void fgaussCL (); 5 5 … … 14 14 15 15 /* allocate free and fixed parameters */ 16 ALLOCATE (par, float, MAX (Npar, 1));17 bzero (par, Npar*sizeof( float));18 ALLOCATE (fpar, float, MAX (Nfpar, 1));19 bzero (fpar, Nfpar*sizeof( float));16 ALLOCATE (par, opihi_flt, MAX (Npar, 1)); 17 bzero (par, Npar*sizeof(opihi_flt)); 18 ALLOCATE (fpar, opihi_flt, MAX (Nfpar, 1)); 19 bzero (fpar, Nfpar*sizeof(opihi_flt)); 20 20 21 21 par[0] = get_variable_default ("Xg", 0); … … 40 40 41 41 /* real 2D gaussian -- x, y, sx, sy, sxy, I, sky */ 42 float fgaussTD (float x, float y, float *par, int Npar, float *dpar) {42 opihi_flt fgaussTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 43 43 44 float X, Y, px, py;45 float z, r, q, f;44 opihi_flt X, Y, px, py; 45 opihi_flt z, r, q, f; 46 46 47 47 X = x - par[0]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-pgauss-psf.c
r12840 r20839 1 1 # include "imfit.h" 2 2 3 float pgauss_psfTD (float, float, float *, int, float *);3 opihi_flt pgauss_psfTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void pgauss_psfCL (); 5 5 … … 14 14 15 15 /* allocate free and fixed parameters */ 16 ALLOCATE (par, float, MAX (Npar, 1));17 bzero (par, Npar*sizeof( float));18 ALLOCATE (fpar, float, MAX (Nfpar, 1));19 bzero (fpar, Nfpar*sizeof( float));16 ALLOCATE (par, opihi_flt, MAX (Npar, 1)); 17 bzero (par, Npar*sizeof(opihi_flt)); 18 ALLOCATE (fpar, opihi_flt, MAX (Nfpar, 1)); 19 bzero (fpar, Nfpar*sizeof(opihi_flt)); 20 20 21 21 par[0] = get_variable_default ("Xg", 0); … … 38 38 39 39 /* pseudo 2D gaussian -- x, y, (sx), (sy), (sxy), I, sky */ 40 float pgauss_psfTD (float x, float y, float *par, int Npar, float *dpar) {40 opihi_flt pgauss_psfTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 41 41 42 float X, Y, px, py;43 float z, r, q, f;42 opihi_flt X, Y, px, py; 43 opihi_flt z, r, q, f; 44 44 45 45 /* par -> fpar: (2,0), (3,1), (4,2) */ -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-pgauss.c
r3144 r20839 1 1 # include "imfit.h" 2 2 3 float pgaussTD (float, float, float *, int, float *);3 opihi_flt pgaussTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void pgaussCL (); 5 5 … … 14 14 15 15 /* allocate free and fixed parameters */ 16 ALLOCATE (par, float, MAX (Npar, 1));17 bzero (par, Npar*sizeof( float));18 ALLOCATE (fpar, float, MAX (Nfpar, 1));19 bzero (fpar, Nfpar*sizeof( float));16 ALLOCATE (par, opihi_flt, MAX (Npar, 1)); 17 bzero (par, Npar*sizeof(opihi_flt)); 18 ALLOCATE (fpar, opihi_flt, MAX (Nfpar, 1)); 19 bzero (fpar, Nfpar*sizeof(opihi_flt)); 20 20 21 21 par[0] = get_variable_default ("Xg", 0.0); … … 40 40 41 41 /* pseudo 2D gaussian -- x, y, sx, sy, sxy, I, sky */ 42 float pgaussTD (float x, float y, float *par, int Npar, float *dpar) {42 opihi_flt pgaussTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 43 43 44 float X, Y, px, py;45 float z, r, q, f;44 opihi_flt X, Y, px, py; 45 opihi_flt z, r, q, f; 46 46 47 47 X = x - par[0]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-qfgauss.c
r3144 r20839 1 1 # include "imfit.h" 2 2 3 float qfgaussTD (float, float, float *, int, float *);3 opihi_flt qfgaussTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void qfgaussCL (); 5 5 … … 14 14 15 15 /* allocate free and fixed parameters */ 16 ALLOCATE (par, float, MAX (Npar, 1));17 bzero (par, Npar*sizeof( float));18 ALLOCATE (fpar, float, MAX (Nfpar, 1));19 bzero (fpar, Nfpar*sizeof( float));16 ALLOCATE (par, opihi_flt, MAX (Npar, 1)); 17 bzero (par, Npar*sizeof(opihi_flt)); 18 ALLOCATE (fpar, opihi_flt, MAX (Nfpar, 1)); 19 bzero (fpar, Nfpar*sizeof(opihi_flt)); 20 20 21 21 par[0] = get_variable_default ("Xg", 0); … … 44 44 45 45 /* one component, two slopes: (1 + z^M + z^N)^(-1) -- x, y, sx, sy, sxy, I, sky */ 46 float qfgaussTD (float x, float y, float *par, int Npar, float *dpar) {46 opihi_flt qfgaussTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 47 47 48 float X, Y, px, py;49 float z, r, q, f;48 opihi_flt X, Y, px, py; 49 opihi_flt z, r, q, f; 50 50 51 51 X = x - par[0]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-qgauss-psf.c
r12840 r20839 1 1 # include "imfit.h" 2 2 3 float qgauss_psfTD (float, float, float *, int, float *);3 opihi_flt qgauss_psfTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void qgauss_psfCL (); 5 5 … … 14 14 15 15 /* allocate free and fixed parameters */ 16 ALLOCATE (par, float, MAX (Npar, 1));17 bzero (par, Npar*sizeof( float));18 ALLOCATE (fpar, float, MAX (Nfpar, 1));19 bzero (fpar, Nfpar*sizeof( float));16 ALLOCATE (par, opihi_flt, MAX (Npar, 1)); 17 bzero (par, Npar*sizeof(opihi_flt)); 18 ALLOCATE (fpar, opihi_flt, MAX (Nfpar, 1)); 19 bzero (fpar, Nfpar*sizeof(opihi_flt)); 20 20 21 21 par[0] = get_variable_default ("Xg", 0); … … 41 41 42 42 /* one component, two slopes: (1 + z^M + z^N)^(-1) -- x, y, sx, sy, sxy, I, sky, sr */ 43 float qgauss_psfTD (float x, float y, float *par, int Npar, float *dpar) {43 opihi_flt qgauss_psfTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 44 44 45 float X, Y, px, py;46 float z, r, q, f;45 opihi_flt X, Y, px, py; 46 opihi_flt z, r, q, f; 47 47 48 48 X = x - par[0]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-qgauss.c
r3144 r20839 1 1 # include "imfit.h" 2 2 3 float qgaussTD (float, float, float *, int, float *);3 opihi_flt qgaussTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void qgaussCL (); 5 5 … … 14 14 15 15 /* allocate free and fixed parameters */ 16 ALLOCATE (par, float, MAX (Npar, 1));17 bzero (par, Npar*sizeof( float));18 ALLOCATE (fpar, float, MAX (Nfpar, 1));19 bzero (fpar, Nfpar*sizeof( float));16 ALLOCATE (par, opihi_flt, MAX (Npar, 1)); 17 bzero (par, Npar*sizeof(opihi_flt)); 18 ALLOCATE (fpar, opihi_flt, MAX (Nfpar, 1)); 19 bzero (fpar, Nfpar*sizeof(opihi_flt)); 20 20 21 21 par[0] = get_variable_default ("Xg", 0); … … 44 44 45 45 /* one component, two slopes: (1 + z^M + z^N)^(-1) -- x, y, sx, sy, sxy, I, sky, sr */ 46 float qgaussTD (float x, float y, float *par, int Npar, float *dpar) {46 opihi_flt qgaussTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 47 47 48 float X, Y, px, py;49 float z, r, q, f;48 opihi_flt X, Y, px, py; 49 opihi_flt z, r, q, f; 50 50 51 51 X = x - par[0]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-qrgauss.c
r4420 r20839 1 1 # include "imfit.h" 2 2 3 float qrgaussTD (float, float, float *, int, float *);3 opihi_flt qrgaussTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void qrgaussCL (); 5 5 … … 14 14 15 15 /* allocate free and fixed parameters */ 16 ALLOCATE (par, float, MAX (Npar, 1));17 bzero (par, Npar*sizeof( float));18 ALLOCATE (fpar, float, MAX (Nfpar, 1));19 bzero (fpar, Nfpar*sizeof( float));16 ALLOCATE (par, opihi_flt, MAX (Npar, 1)); 17 bzero (par, Npar*sizeof(opihi_flt)); 18 ALLOCATE (fpar, opihi_flt, MAX (Nfpar, 1)); 19 bzero (fpar, Nfpar*sizeof(opihi_flt)); 20 20 21 21 par[0] = get_variable_default ("Xg", 0); … … 44 44 } 45 45 46 float qrgaussTD (float x, float y, float *par, int Npar, float *dpar) {46 opihi_flt qrgaussTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 47 47 48 float X, Y, px, py;49 float z, r, q, f;48 opihi_flt X, Y, px, py; 49 opihi_flt z, r, q, f; 50 50 51 51 X = x - par[0]; … … 77 77 # if (0) 78 78 /* one component, two slopes: (1 + z^M + z^N)^(-1) -- x, y, sx, sy, sxy, I, sky, sr */ 79 float qrgaussTD (float x, float y, float *par, int Npar, float *dpar) {79 opihi_flt qrgaussTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 80 80 81 float X, Y, px, py;82 float z, r, q, f;81 opihi_flt X, Y, px, py; 82 opihi_flt z, r, q, f; 83 83 84 84 /* if (par[7] < 1.0) par[7] = 1.0; */ -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-rgauss.c
r3144 r20839 1 1 # include "imfit.h" 2 2 3 float rgaussTD (float, float, float *, int, float *);3 opihi_flt rgaussTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void rgaussCL (); 5 5 … … 14 14 15 15 /* allocate free and fixed parameters */ 16 ALLOCATE (par, float, MAX (Npar, 1));17 bzero (par, Npar*sizeof( float));18 ALLOCATE (fpar, float, MAX (Nfpar, 1));19 bzero (fpar, Nfpar*sizeof( float));16 ALLOCATE (par, opihi_flt, MAX (Npar, 1)); 17 bzero (par, Npar*sizeof(opihi_flt)); 18 ALLOCATE (fpar, opihi_flt, MAX (Nfpar, 1)); 19 bzero (fpar, Nfpar*sizeof(opihi_flt)); 20 20 21 21 par[0] = get_variable_default ("Xg", 0); … … 36 36 37 37 /* two components: (1 + z_1 + 0.5*z_1^2 + z_2^N)^(-1) -- x, y, sx1, sy1, sxy1, I, sky, sx2, sy2, sxy2 */ 38 float rgaussTD (float x, float y, float *par, int Npar, float *dpar) {38 opihi_flt rgaussTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 39 39 40 float X, Y, px1, py1, px2, py2;41 float z1, z2, r, q1, q2, f;40 opihi_flt X, Y, px1, py1, px2, py2; 41 opihi_flt z1, z2, r, q1, q2, f; 42 42 43 43 X = x - par[0]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-serbulge.c
r3144 r20839 1 1 # include "imfit.h" 2 2 3 float serbulgeTD (float, float, float *, int, float *);3 opihi_flt serbulgeTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void serbulgeCL (); 5 5 … … 14 14 15 15 /* allocate free and fixed parameters */ 16 ALLOCATE (par, float, MAX (Npar, 1));17 bzero (par, Npar*sizeof( float));18 ALLOCATE (fpar, float, MAX (Nfpar, 1));19 bzero (fpar, Nfpar*sizeof( float));16 ALLOCATE (par, opihi_flt, MAX (Npar, 1)); 17 bzero (par, Npar*sizeof(opihi_flt)); 18 ALLOCATE (fpar, opihi_flt, MAX (Nfpar, 1)); 19 bzero (fpar, Nfpar*sizeof(opihi_flt)); 20 20 21 21 par[0] = get_variable_default ("Xg", 0); … … 41 41 /* sersic galaxy model w/ bulge: -- x, y, (sx, sy, sxy)_1, I_1, sky, (sx, sy, sxy)_2, I_2, n */ 42 42 /* exp (-b (r/r_e)^(1/n)) + pgauss (r) */ 43 float serbulgeTD (float x, float y, float *par, int Npar, float *dpar) {43 opihi_flt serbulgeTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 44 44 45 float X, Y, px1, px2, py1, py2;46 float z1, z2, r1, r2, t, q1, q2, f;45 opihi_flt X, Y, px1, px2, py1, py2; 46 opihi_flt z1, z2, r1, r2, t, q1, q2, f; 47 47 48 48 X = x - par[0]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-sersic.c
r3144 r20839 1 1 # include "imfit.h" 2 2 3 float sersicTD (float, float, float *, int, float *);3 opihi_flt sersicTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void sersicCL (); 5 5 … … 14 14 15 15 /* allocate free and fixed parameters */ 16 ALLOCATE (par, float, MAX (Npar, 1));17 bzero (par, Npar*sizeof( float));18 ALLOCATE (fpar, float, MAX (Nfpar, 1));19 bzero (fpar, Nfpar*sizeof( float));16 ALLOCATE (par, opihi_flt, MAX (Npar, 1)); 17 bzero (par, Npar*sizeof(opihi_flt)); 18 ALLOCATE (fpar, opihi_flt, MAX (Nfpar, 1)); 19 bzero (fpar, Nfpar*sizeof(opihi_flt)); 20 20 21 21 par[0] = get_variable_default ("Xg", 0); … … 33 33 /* sersic galaxy model -- x, y, sx, sy, sxy, I, sky, n */ 34 34 /* exp (-b (r/r_e)^(1/n)) */ 35 float sersicTD (float x, float y, float *par, int Npar, float *dpar) {35 opihi_flt sersicTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 36 36 37 float X, Y, px, py;38 float z, r, t, q, f;37 opihi_flt X, Y, px, py; 38 opihi_flt z, r, t, q, f; 39 39 40 40 X = x - par[0]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-sgauss-psf.c
r12840 r20839 1 1 # include "imfit.h" 2 2 3 float sgauss_psfTD (float, float, float *, int, float *);3 opihi_flt sgauss_psfTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void sgauss_psfCL (); 5 5 … … 14 14 15 15 /* allocate free and fixed parameters */ 16 ALLOCATE (par, float, MAX (Npar, 1));17 bzero (par, Npar*sizeof( float));18 ALLOCATE (fpar, float, MAX (Nfpar, 1));19 bzero (fpar, Nfpar*sizeof( float));16 ALLOCATE (par, opihi_flt, MAX (Npar, 1)); 17 bzero (par, Npar*sizeof(opihi_flt)); 18 ALLOCATE (fpar, opihi_flt, MAX (Nfpar, 1)); 19 bzero (fpar, Nfpar*sizeof(opihi_flt)); 20 20 21 21 par[0] = get_variable_default ("Xg", 0); … … 43 43 44 44 /* two components: (1 + z_1 + z_2^N)^(-1) -- x, y, sx1, sy1, sxy1, I, sky, sx2, sy2, sxy2 */ 45 float sgauss_psfTD (float x, float y, float *par, int Npar, float *dpar) {45 opihi_flt sgauss_psfTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 46 46 47 float X, Y, px1, py1, px2, py2;48 float z1, z2, r, q1, q2, f;47 opihi_flt X, Y, px1, py1, px2, py2; 48 opihi_flt z1, z2, r, q1, q2, f; 49 49 50 50 X = x - par[0]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-sgauss.c
r3144 r20839 3 3 # define FSCALE 1.2 4 4 5 float sgaussTD (float, float, float *, int, float *);5 opihi_flt sgaussTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 6 6 void sgaussCL (); 7 7 … … 16 16 17 17 /* allocate free and fixed parameters */ 18 ALLOCATE (par, float, MAX (Npar, 1));19 bzero (par, Npar*sizeof( float));20 ALLOCATE (fpar, float, MAX (Nfpar, 1));21 bzero (fpar, Nfpar*sizeof( float));18 ALLOCATE (par, opihi_flt, MAX (Npar, 1)); 19 bzero (par, Npar*sizeof(opihi_flt)); 20 ALLOCATE (fpar, opihi_flt, MAX (Nfpar, 1)); 21 bzero (fpar, Nfpar*sizeof(opihi_flt)); 22 22 23 23 par[0] = get_variable_default ("Xg", 0); … … 52 52 53 53 /* two components: (1 + z_1 + z_2^N)^(-1) -- x, y, sx1, sy1, sxy1, I, sky, sx2, sy2, sxy2 */ 54 float sgaussTD (float x, float y, float *par, int Npar, float *dpar) {54 opihi_flt sgaussTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 55 55 56 float X, Y, px1, py1, px2, py2;57 float z1, z2, r, q1, q2, f, f1, f2;56 opihi_flt X, Y, px1, py1, px2, py2; 57 opihi_flt z1, z2, r, q1, q2, f, f1, f2; 58 58 59 59 X = x - par[0]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-tgauss.c
r3144 r20839 1 1 # include "imfit.h" 2 2 3 float tgaussTD (float, float, float *, int, float *);3 opihi_flt tgaussTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void tgaussCL (); 5 5 … … 31 31 32 32 /* two components: (1 + z_1^M + z_2^N)^(-1) -- x, y, sx1, sy1, sxy1, I, sky, sx2, sy2, sxy2 */ 33 float tgaussTD (float x, float y, float *par, int Npar, float *dpar) {33 opihi_flt tgaussTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 34 34 35 float X, Y, px1, py1, px2, py2;36 float z1, z2, r, q1, q2, f;35 opihi_flt X, Y, px1, py1, px2, py2; 36 opihi_flt z1, z2, r, q1, q2, f; 37 37 38 38 X = x - par[0]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit-vgauss.c
r3144 r20839 1 1 # include "imfit.h" 2 2 3 float vgaussTD (float, float, float *, int, float *);3 opihi_flt vgaussTD (opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 4 4 void vgaussCL (); 5 5 … … 25 25 } 26 26 27 /* pseudo 2D gaussian with floating 2nd and 3rd order terms -- x, y, sx, sy, sxy, I, sky, f1, f2 */28 float vgaussTD (float x, float y, float *par, int Npar, float *dpar) {27 /* pseudo 2D gaussian with opihi_flting 2nd and 3rd order terms -- x, y, sx, sy, sxy, I, sky, f1, f2 */ 28 opihi_flt vgaussTD (opihi_flt x, opihi_flt y, opihi_flt *par, int Npar, opihi_flt *dpar) { 29 29 30 float X, Y, px, py;31 float z, r, q, f, k;30 opihi_flt X, Y, px, py; 31 opihi_flt z, r, q, f, k; 32 32 33 33 X = x - par[0]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/imfit.c
r12840 r20839 6 6 int sx, sy, nx, ny, Nx, Ny; 7 7 float chisq, ochisq, dchisq, Gain, RDnoise, SatThreshold; 8 float *x, *y, *z, *dz, *V; 8 opihi_flt *x, *y, *z, *dz; 9 float *V; 9 10 Buffer *buf; 10 11 … … 94 95 N = 0; 95 96 Npts = nx*ny; 96 ALLOCATE (x, float, 2*Npts);97 ALLOCATE (y, float, 2*Npts);98 ALLOCATE (z, float, 2*Npts);99 ALLOCATE (dz, float, 2*Npts);97 ALLOCATE (x, opihi_flt, 2*Npts); 98 ALLOCATE (y, opihi_flt, 2*Npts); 99 ALLOCATE (z, opihi_flt, 2*Npts); 100 ALLOCATE (dz, opihi_flt, 2*Npts); 100 101 for (j = 0; j < ny; j++) { 101 102 if (j + sy < 0) continue; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/multifit.c
r16059 r20839 72 72 v = 0; 73 73 for (n = 0; n < Nwo[i-1][0].Nelements; n++) { 74 v += -pow (Nwo[i-1][0].elements [n], (double)(j+J));74 v += -pow (Nwo[i-1][0].elements.Flt[n], (double)(j+J)); 75 75 } 76 76 a[Ny][Nx] = v; … … 83 83 v = 0; 84 84 for (n = 0; n < Nwo[i][0].Nelements; n++) { 85 v += -pow (Nwo[i][0].elements [n], (double)(j+J));85 v += -pow (Nwo[i][0].elements.Flt[n], (double)(j+J)); 86 86 } 87 87 a[Ny][Nx] = v; … … 94 94 v = 0; 95 95 for (n = 0; n < Nwb[i][0].Nelements; n++) { 96 v += pow (Nwb[i][0].elements [n], (double)(j+J));96 v += pow (Nwb[i][0].elements.Flt[n], (double)(j+J)); 97 97 } 98 98 if (i > 0) { 99 99 for (n = 0; n < Nwo[i-1][0].Nelements; n++) { 100 v += pow (Nwo[i-1][0].elements [n], (double)(j+J));100 v += pow (Nwo[i-1][0].elements.Flt[n], (double)(j+J)); 101 101 } 102 102 } 103 103 if (i < Norder - 1) { 104 104 for (n = 0; n < Nwo[i][0].Nelements; n++) { 105 v += pow (Nwo[i][0].elements [n], (double)(j+J));105 v += pow (Nwo[i][0].elements.Flt[n], (double)(j+J)); 106 106 } 107 107 } … … 123 123 v = 0; 124 124 for (n = 0; n < Nwb[i][0].Nelements; n++) { 125 v += NMb[i][0].elements [n]*pow (Nwb[i][0].elements[n], (double)j);126 v -= Nmb[i][0].elements [n]*pow (Nwb[i][0].elements[n], (double)j);125 v += NMb[i][0].elements.Flt[n]*pow (Nwb[i][0].elements.Flt[n], (double)j); 126 v -= Nmb[i][0].elements.Flt[n]*pow (Nwb[i][0].elements.Flt[n], (double)j); 127 127 } 128 128 if (i > 0) { 129 129 for (n = 0; n < Nwo[i-1][0].Nelements; n++) { 130 v += Nmh[i-1][0].elements [n] * pow (Nwo[i-1][0].elements[n], (double)j);131 v -= Nml[i-1][0].elements [n] * pow (Nwo[i-1][0].elements[n], (double)j);130 v += Nmh[i-1][0].elements.Flt[n] * pow (Nwo[i-1][0].elements.Flt[n], (double)j); 131 v -= Nml[i-1][0].elements.Flt[n] * pow (Nwo[i-1][0].elements.Flt[n], (double)j); 132 132 } 133 133 } 134 134 if (i < Norder - 1) { 135 135 for (n = 0; n < Nwo[i][0].Nelements; n++) { 136 v += Nml[i][0].elements [n] * pow (Nwo[i][0].elements[n], (double)j);137 v -= Nmh[i][0].elements [n] * pow (Nwo[i][0].elements[n], (double)j);136 v += Nml[i][0].elements.Flt[n] * pow (Nwo[i][0].elements.Flt[n], (double)j); 137 v -= Nmh[i][0].elements.Flt[n] * pow (Nwo[i][0].elements.Flt[n], (double)j); 138 138 } 139 139 } … … 146 146 for (i = 0; i < Norder; i++) { 147 147 Nc[i][0].Nelements = nterm[i]; 148 REALLOCATE (Nc[i][0].elements , float, nterm[i]);148 REALLOCATE (Nc[i][0].elements.Flt, opihi_flt, nterm[i]); 149 149 for (j = 0; j < nterm[i]; j++, Ny++) { 150 Nc[i][0].elements [j] = b[Ny][0];150 Nc[i][0].elements.Flt[j] = b[Ny][0]; 151 151 } 152 152 } -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/precess.c
r7917 r20839 91 91 92 92 for (i = 0; i < xvec[0].Nelements; i++) { 93 A = xvec[0].elements [i];94 D = yvec[0].elements [i];93 A = xvec[0].elements.Flt[i]; 94 D = yvec[0].elements.Flt[i]; 95 95 SD = cos(RAD_DEG*A + zeta)*sin(theta)*cos(RAD_DEG*D) + cos(theta)*sin(RAD_DEG*D); 96 96 CD = sqrt (1 - SD*SD); … … 104 104 RA += 360; 105 105 106 xvec[0].elements [i] = RA;107 yvec[0].elements [i] = DEC;106 xvec[0].elements.Flt[i] = RA; 107 yvec[0].elements.Flt[i] = DEC; 108 108 } 109 109 -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/profile.c
r7917 r20839 29 29 30 30 xvec[0].Nelements = yvec[0].Nelements = (int)SQ(2*N+1); 31 REALLOCATE (xvec[0].elements , float, 5*(int)SQ(2*N+1));32 REALLOCATE (yvec[0].elements , float, 5*(int)SQ(2*N+1));33 bzero (yvec[0].elements , (int)SQ(2*N+1)*sizeof(float)+1);31 REALLOCATE (xvec[0].elements.Flt, opihi_flt, 5*(int)SQ(2*N+1)); 32 REALLOCATE (yvec[0].elements.Flt, opihi_flt, 5*(int)SQ(2*N+1)); 33 bzero (yvec[0].elements.Flt, (int)SQ(2*N+1)*sizeof(opihi_flt)+1); 34 34 V = (float *)(buf[0].matrix.buffer); 35 35 Npt = 0; … … 37 37 for (i = sx - N; i < sx + N; i++) { 38 38 for (j = sy - N; j < sy + N; j++, Npt++) { 39 yvec[0].elements [Npt] = V[i + j*Nx];40 xvec[0].elements [Npt] = hypot (i - sx, j - sy);39 yvec[0].elements.Flt[Npt] = V[i + j*Nx]; 40 xvec[0].elements.Flt[Npt] = hypot (i - sx, j - sy); 41 41 } 42 42 } 43 43 44 fsortpair (xvec[0].elements, yvec[0].elements, xvec[0].Nelements);44 dsortpair (xvec[0].elements.Flt, yvec[0].elements.Flt, xvec[0].Nelements); 45 45 46 46 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.astro/spec.c
r7917 r20839 55 55 56 56 N = y2 - y1; 57 REALLOCATE (xvec[0].elements , float, N);58 REALLOCATE (yvec[0].elements , float, N);57 REALLOCATE (xvec[0].elements.Flt, opihi_flt, N); 58 REALLOCATE (yvec[0].elements.Flt, opihi_flt, N); 59 59 xvec[0].Nelements = N; 60 60 yvec[0].Nelements = N; … … 103 103 R += 1.0 / sky2; 104 104 } 105 xvec[0].elements [j] = j + y1;106 yvec[0].elements [j] = F / R;105 xvec[0].elements.Flt[j] = j + y1; 106 yvec[0].elements.Flt[j] = F / R; 107 107 gprint (GP_ERR, " %5.1f %7.1f %6.2f\n", sky, sky2, (F/R)); 108 108 } -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/accum.c
r7917 r20839 5 5 int i, Nbins, bin, N, Normalize; 6 6 float start, end, delta; 7 float *V, *K, *O, *NV; 7 int *NV; 8 opihi_flt *V, *K, *O; 8 9 Vector *val, *key, *out; 9 10 … … 46 47 47 48 out[0].Nelements = Nbins; 48 REALLOCATE (out[0].elements , float, out[0].Nelements);49 bzero (out[0].elements , sizeof(float)*out[0].Nelements);49 REALLOCATE (out[0].elements.Flt, opihi_flt, out[0].Nelements); 50 bzero (out[0].elements.Flt, sizeof(opihi_flt)*out[0].Nelements); 50 51 if (Normalize) { 51 ALLOCATE (NV, float, Nbins);52 bzero (NV, sizeof( float)*Nbins);52 ALLOCATE (NV, int, Nbins); 53 bzero (NV, sizeof(int)*Nbins); 53 54 } 54 55 55 V = val[0].elements ;56 K = key[0].elements ;57 O = out[0].elements ;56 V = val[0].elements.Flt; 57 K = key[0].elements.Flt; 58 O = out[0].elements.Flt; 58 59 59 60 for (i = 0; i < val[0].Nelements; i++, V++, K++) { -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/applyfit.c
r16428 r20839 1 1 # include "data.h" 2 3 char *get_variable (char *);4 2 5 3 int applyfit (int argc, char **argv) { … … 8 6 char *c, name[64]; 9 7 double *C, X; 10 float *x, *y;8 opihi_flt *x, *y; 11 9 Vector *xvec, *yvec; 12 10 … … 39 37 } 40 38 yvec[0].Nelements = xvec[0].Nelements; 41 REALLOCATE (yvec[0].elements , float, yvec[0].Nelements);42 bzero (yvec[0].elements , sizeof(float)*yvec[0].Nelements);43 x = xvec[0].elements ;44 y = yvec[0].elements ;39 REALLOCATE (yvec[0].elements.Flt, opihi_flt, yvec[0].Nelements); 40 bzero (yvec[0].elements.Flt, sizeof(opihi_flt)*yvec[0].Nelements); 41 x = xvec[0].elements.Flt; 42 y = yvec[0].elements.Flt; 45 43 46 44 for (j = 0; j < xvec[0].Nelements; j++, x++, y++) { -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/applyfit2d.c
r16428 r20839 1 1 # include "data.h" 2 3 char *get_variable (char *);4 2 5 3 int applyfit2d (int argc, char **argv) { … … 8 6 char *c, name[64]; 9 7 double **C, X, Y; 10 float *x, *y, *z;8 opihi_flt *x, *y, *z; 11 9 Vector *xvec, *yvec, *zvec; 12 10 … … 46 44 47 45 zvec[0].Nelements = xvec[0].Nelements; 48 REALLOCATE (zvec[0].elements , float, zvec[0].Nelements);49 bzero (zvec[0].elements , sizeof(float)*zvec[0].Nelements);50 x = xvec[0].elements ;51 y = yvec[0].elements ;52 z = zvec[0].elements ;46 REALLOCATE (zvec[0].elements.Flt, opihi_flt, zvec[0].Nelements); 47 bzero (zvec[0].elements.Flt, sizeof(opihi_flt)*zvec[0].Nelements); 48 x = xvec[0].elements.Flt; 49 y = yvec[0].elements.Flt; 50 z = zvec[0].elements.Flt; 53 51 54 52 for (n = 0; n < xvec[0].Nelements; n++, x++, y++, z++) { -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/concat.c
r8131 r20839 19 19 Nin = ovec[0].Nelements; 20 20 ovec[0].Nelements++; 21 REALLOCATE (ovec[0].elements , float, ovec[0].Nelements);22 ovec[0].elements [Nin] = value;21 REALLOCATE (ovec[0].elements.Flt, opihi_flt, ovec[0].Nelements); 22 ovec[0].elements.Flt[Nin] = value; 23 23 return (TRUE); 24 24 } … … 26 26 if ((ivec = SelectVector (argv[1], OLDVECTOR, TRUE)) == NULL) return (FALSE); 27 27 28 REALLOCATE (ovec[0].elements , float, ovec[0].Nelements + ivec[0].Nelements);28 REALLOCATE (ovec[0].elements.Flt, opihi_flt, ovec[0].Nelements + ivec[0].Nelements); 29 29 for (j = ovec[0].Nelements, i = 0; i < ivec[0].Nelements; i++, j++) { 30 ovec[0].elements [j] = ivec[0].elements[i];30 ovec[0].elements.Flt[j] = ivec[0].elements.Flt[i]; 31 31 } 32 32 ovec[0].Nelements += ivec[0].Nelements; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/contour.c
r7917 r20839 44 44 int N, NVEC; 45 45 46 void DUMP (float x, float y, float dx, float dy) { 47 48 xv[0].elements[N] = x; 49 xv[0].elements[N+1] = x+dx; 50 51 yv[0].elements[N] = y; 52 yv[0].elements[N+1] = y+dy; 46 void DUMP (opihi_flt x, opihi_flt y, opihi_flt dx, opihi_flt dy) { 47 48 xv[0].elements.Flt[N] = x; 49 xv[0].elements.Flt[N+1] = x+dx; 50 yv[0].elements.Flt[N] = y; 51 yv[0].elements.Flt[N+1] = y+dy; 53 52 54 53 N+=2; … … 56 55 if (N >= NVEC - 2) { 57 56 NVEC += 100; 58 REALLOCATE (xv[0].elements , float, NVEC);59 REALLOCATE (yv[0].elements , float, NVEC);57 REALLOCATE (xv[0].elements.Flt, opihi_flt, NVEC); 58 REALLOCATE (yv[0].elements.Flt, opihi_flt, NVEC); 60 59 } 61 60 } … … 64 63 65 64 int i, j, Nx, Ny; 65 opihi_flt x, y, dx, dy; 66 66 float level, d00, d01, d10, d11, tmp; 67 float x, y, dx, dy;68 67 float *v00, *v01, *v10, *v11; 69 68 float *matrix; … … 93 92 N = 0; 94 93 NVEC = 100; 95 REALLOCATE (xv[0].elements , float, NVEC);96 REALLOCATE (yv[0].elements , float, NVEC);94 REALLOCATE (xv[0].elements.Flt, opihi_flt, NVEC); 95 REALLOCATE (yv[0].elements.Flt, opihi_flt, NVEC); 97 96 98 97 for (j = 1; j < Ny; j++) { -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/create.c
r12332 r20839 28 28 29 29 vec[0].Nelements = (end - start) / delta; 30 REALLOCATE (vec[0].elements , float, vec[0].Nelements);30 REALLOCATE (vec[0].elements.Flt, opihi_flt, vec[0].Nelements); 31 31 32 32 for (i = 0; i < vec[0].Nelements; i++) { 33 vec[0].elements [i] = start + i*delta;33 vec[0].elements.Flt[i] = start + i*delta; 34 34 } 35 35 -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/cumulative.c
r10307 r20839 4 4 5 5 int i; 6 float *Vi, *Vo;6 opihi_flt *Vi, *Vo; 7 7 Vector *ivec, *ovec; 8 8 … … 16 16 ovec[0].Nelements = ivec[0].Nelements; 17 17 18 REALLOCATE (ovec[0].elements , float, ovec[0].Nelements);19 bzero (ovec[0].elements , sizeof(float)*ovec[0].Nelements);18 REALLOCATE (ovec[0].elements.Flt, opihi_flt, ovec[0].Nelements); 19 bzero (ovec[0].elements.Flt, sizeof(opihi_flt)*ovec[0].Nelements); 20 20 21 Vi = ivec[0].elements ;22 Vo = ovec[0].elements ;21 Vi = ivec[0].elements.Flt; 22 Vo = ovec[0].elements.Flt; 23 23 *Vo = *Vi; 24 24 for (i = 1; i < ivec[0].Nelements; i++, Vi++, Vo++) { -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/cut.c
r16446 r20839 49 49 /* create output vectors */ 50 50 xvec[0].Nelements = yvec[0].Nelements = nx; 51 REALLOCATE (xvec[0].elements , float, MAX (nx, 1));52 REALLOCATE (yvec[0].elements , float, MAX (nx, 1));53 bzero (yvec[0].elements , nx*sizeof(float));51 REALLOCATE (xvec[0].elements.Flt, opihi_flt, MAX (nx, 1)); 52 REALLOCATE (yvec[0].elements.Flt, opihi_flt, MAX (nx, 1)); 53 bzero (yvec[0].elements.Flt, nx*sizeof(opihi_flt)); 54 54 for (i = 0; i < nx; i++) { 55 xvec[0].elements [i] = i + sx;55 xvec[0].elements.Flt[i] = i + sx; 56 56 } 57 57 ALLOCATE (Vbuf, float, MAX (ny, 1)); … … 74 74 if (Mode == MEAN) { value /= ny; } 75 75 } 76 yvec[0].elements [i] = value;76 yvec[0].elements.Flt[i] = value; 77 77 } 78 78 free (Vbuf); … … 82 82 case 'Y': 83 83 xvec[0].Nelements = yvec[0].Nelements = ny; 84 REALLOCATE (xvec[0].elements , float, ny);85 REALLOCATE (yvec[0].elements , float, ny);86 bzero (yvec[0].elements , ny*sizeof(float));84 REALLOCATE (xvec[0].elements.Flt, opihi_flt, ny); 85 REALLOCATE (yvec[0].elements.Flt, opihi_flt, ny); 86 bzero (yvec[0].elements.Flt, ny*sizeof(opihi_flt)); 87 87 for (i = 0; i < ny; i++) { 88 xvec[0].elements [i] = i + sy;88 xvec[0].elements.Flt[i] = i + sy; 89 89 } 90 90 ALLOCATE (Vbuf, float, MAX (nx, 1)); … … 107 107 if (Mode == MEAN) { value /= nx; } 108 108 } 109 yvec[0].elements [i] = value;109 yvec[0].elements.Flt[i] = value; 110 110 } 111 111 free (Vbuf); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/dbselect.c
r17852 r20839 67 67 return (FALSE); 68 68 } 69 REALLOCATE (vec[i][0].elements , float, Nrows);69 REALLOCATE (vec[i][0].elements.Flt, opihi_flt, Nrows); 70 70 vec[i][0].Nelements = Nrows; 71 71 } … … 91 91 case FIELD_TYPE_FLOAT: 92 92 case FIELD_TYPE_DOUBLE: 93 vec[i][0].elements [j] = atof (row[i]);93 vec[i][0].elements.Flt[j] = atof (row[i]); 94 94 break; 95 95 case FIELD_TYPE_TIME: … … 97 97 case FIELD_TYPE_DATETIME: 98 98 seconds = ohana_date_to_sec (row[i]); 99 vec[i][0].elements [j] = ohana_sec_to_mjd (seconds);99 vec[i][0].elements.Flt[j] = ohana_sec_to_mjd (seconds); 100 100 break; 101 101 default: 102 vec[i][0].elements [j] = NAN;102 vec[i][0].elements.Flt[j] = NAN; 103 103 } 104 104 } else { 105 vec[i][0].elements [j] = NAN;105 vec[i][0].elements.Flt[j] = NAN; 106 106 } 107 107 } -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/dimendown.c
r7917 r20839 6 6 7 7 int i, Nx, Ny, Npix, N, mode; 8 float *in, *out; 8 float *in; 9 opihi_flt *out; 9 10 Vector *vec; 10 11 Buffer *buf; … … 30 31 31 32 vec[0].Nelements = Npix; 32 REALLOCATE (vec[0].elements , float, Npix);33 REALLOCATE (vec[0].elements.Flt, opihi_flt, Npix); 33 34 34 35 in = (float *) buf[0].matrix.buffer; 35 out = vec[0].elements ;36 out = vec[0].elements.Flt; 36 37 37 38 switch (mode) { -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/dimenup.c
r9275 r20839 4 4 5 5 int i, Nx, Ny, Npix; 6 float *in, *out; 6 opihi_flt *in; 7 float *out; 7 8 Vector *vec; 8 9 Buffer *buf; … … 29 30 30 31 out = (float *) buf[0].matrix.buffer; 31 in = vec[0].elements ;32 in = vec[0].elements.Flt; 32 33 33 34 for (i = 0; i < Npix; i++, in++, out++) { -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/fft1d.c
r16107 r20839 43 43 Ore[0].Nelements = Npix; 44 44 Oim[0].Nelements = Npix; 45 REALLOCATE (Ore[0].elements , float, Npix);46 REALLOCATE (Oim[0].elements , float, Npix);45 REALLOCATE (Ore[0].elements.Flt, opihi_flt, Npix); 46 REALLOCATE (Oim[0].elements.Flt, opihi_flt, Npix); 47 47 48 48 // copy data to output vectors (fft is done in place) 49 memcpy (Ore[0].elements , Ire[0].elements, Npix*sizeof(float));49 memcpy (Ore[0].elements.Flt, Ire[0].elements.Flt, Npix*sizeof(opihi_flt)); 50 50 51 51 // copy imaginary vector or create a zero vector 52 52 if (ZeroImaginary) { 53 memset (Oim[0].elements , 0, Npix*sizeof(float));53 memset (Oim[0].elements.Flt, 0, Npix*sizeof(opihi_flt)); 54 54 } else { 55 memcpy (Oim[0].elements , Iim[0].elements, Npix*sizeof(float));55 memcpy (Oim[0].elements.Flt, Iim[0].elements.Flt, Npix*sizeof(opihi_flt)); 56 56 } 57 57 58 fft1D (Ore[0].elements, Oim[0].elements, Npix, Nbit, forward);58 dfft1D (Ore[0].elements.Flt, Oim[0].elements.Flt, Npix, Nbit, forward); 59 59 60 60 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/fit.c
r16059 r20839 8 8 int N, Weight, Quiet, ClipNiter; 9 9 Vector *xvec, *yvec, *dyvec; 10 float *x, *y, *dy, *yf, *yfit;10 opihi_flt *x, *y, *dy, *yf, *yfit; 11 11 char name[64], *mask; 12 12 … … 63 63 mterm = 2*nterm; 64 64 65 ALLOCATE (yfit, float, xvec[0].Nelements);65 ALLOCATE (yfit, opihi_flt, xvec[0].Nelements); 66 66 ALLOCATE (mask, char, xvec[0].Nelements); 67 67 memset (mask, 0, xvec[0].Nelements); … … 88 88 89 89 /* perform linear fit */ 90 x = xvec[0].elements ;91 y = yvec[0].elements ;92 if (Weight) dy = dyvec[0].elements ;90 x = xvec[0].elements.Flt; 91 y = yvec[0].elements.Flt; 92 if (Weight) dy = dyvec[0].elements.Flt; 93 93 94 94 for (i = 0; i < xvec[0].Nelements; i++, x++, y++) { … … 121 121 122 122 /* generate fitted values */ 123 x = xvec[0].elements ;123 x = xvec[0].elements.Flt; 124 124 yf = yfit; 125 125 for (i = 0; i < xvec[0].Nelements; i++, x++, yf++) { … … 134 134 135 135 /* measure fit residual scatter */ 136 x = xvec[0].elements ;137 y = yvec[0].elements ;136 x = xvec[0].elements.Flt; 137 y = yvec[0].elements.Flt; 138 138 yf = yfit; 139 139 dY = dY2 = 0; … … 150 150 151 151 /* mask outlier points */ 152 x = xvec[0].elements ;153 y = yvec[0].elements ;152 x = xvec[0].elements.Flt; 153 y = yvec[0].elements.Flt; 154 154 yf = yfit; 155 155 Nmask = 0; … … 193 193 if ((fvec = SelectVector ("yfit", ANYVECTOR, TRUE)) == NULL) return (FALSE); 194 194 if ((mvec = SelectVector ("mask", ANYVECTOR, TRUE)) == NULL) return (FALSE); 195 free (fvec[0].elements );196 fvec[0].elements = yfit;195 free (fvec[0].elements.Flt); 196 fvec[0].elements.Flt = yfit; 197 197 fvec[0].Nelements = xvec[0].Nelements; 198 198 mvec[0].Nelements = xvec[0].Nelements; 199 199 200 REALLOCATE (mvec[0].elements , float, xvec[0].Nelements);200 REALLOCATE (mvec[0].elements.Flt, opihi_flt, xvec[0].Nelements); 201 201 for (i = 0; i < xvec[0].Nelements; i++) { 202 mvec[0].elements [i] = mask[i];202 mvec[0].elements.Flt[i] = mask[i]; 203 203 } 204 204 } else { -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/fit2d.c
r16059 r20839 7 7 int k, K, i, j, n, Npt, Nmask, nx, ny, nterm, mterm, wterm, order; 8 8 int N, Weight, Quiet, ClipNiter, VERBOSE; 9 float *x, *y, *z, *dz, *zfit, *zf;9 opihi_flt *x, *y, *z, *dz, *zfit, *zf; 10 10 char name[64], *mask; 11 11 Vector *xvec, *yvec, *zvec, *dzvec; … … 74 74 mterm = 2*order + 1; 75 75 76 ALLOCATE (zfit, float, xvec[0].Nelements);76 ALLOCATE (zfit, opihi_flt, xvec[0].Nelements); 77 77 ALLOCATE (mask, char, xvec[0].Nelements); 78 78 memset (mask, 0, xvec[0].Nelements); … … 102 102 } 103 103 104 x = xvec[0].elements ;105 y = yvec[0].elements ;106 z = zvec[0].elements ;107 if (Weight) dz = dzvec[0].elements ;104 x = xvec[0].elements.Flt; 105 y = yvec[0].elements.Flt; 106 z = zvec[0].elements.Flt; 107 if (Weight) dz = dzvec[0].elements.Flt; 108 108 109 109 /* add up the x,y values */ … … 128 128 129 129 /* add up the z values */ 130 x = xvec[0].elements ;131 y = yvec[0].elements ;132 z = zvec[0].elements ;130 x = xvec[0].elements.Flt; 131 y = yvec[0].elements.Flt; 132 z = zvec[0].elements.Flt; 133 133 for (i = 0; i < xvec[0].Nelements; i++, x++, y++, z++) { 134 134 if (mask[i]) continue; … … 179 179 */ 180 180 /* generate fitted values */ 181 x = xvec[0].elements ;182 y = yvec[0].elements ;181 x = xvec[0].elements.Flt; 182 y = yvec[0].elements.Flt; 183 183 zf = zfit; 184 184 for (n = 0; n < xvec[0].Nelements; n++, x++, y++, zf++) { … … 197 197 198 198 /* measure fit residual scatter */ 199 x = xvec[0].elements ;200 y = yvec[0].elements ;201 z = zvec[0].elements ;199 x = xvec[0].elements.Flt; 200 y = yvec[0].elements.Flt; 201 z = zvec[0].elements.Flt; 202 202 zf = zfit; 203 203 dZ = dZ2 = 0; … … 216 216 217 217 /* mask outlier points */ 218 x = xvec[0].elements ;219 y = yvec[0].elements ;220 z = zvec[0].elements ;218 x = xvec[0].elements.Flt; 219 y = yvec[0].elements.Flt; 220 z = zvec[0].elements.Flt; 221 221 zf = zfit; 222 222 Nmask = 0; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/gaussdeviate.c
r7917 r20839 16 16 17 17 vec[0].Nelements = Npts; 18 REALLOCATE (vec[0].elements , float, Npts);18 REALLOCATE (vec[0].elements.Flt, opihi_flt, Npts); 19 19 20 20 gauss_init (2048); 21 21 for (i = 0; i < Npts; i++) { 22 vec[0].elements [i] = rnd_gauss (mean, sigma);22 vec[0].elements.Flt[i] = rnd_gauss (mean, sigma); 23 23 } 24 24 return (TRUE); … … 47 47 48 48 vec[0].Nelements = Npts; 49 REALLOCATE (vec[0].elements , float, Npts);49 REALLOCATE (vec[0].elements.Flt, opihi_flt, Npts); 50 50 51 51 gauss_init (Npts); 52 52 for (i = 0; i < Npts; i++) { 53 vec[0].elements [i] = int_gauss (i);53 vec[0].elements.Flt[i] = int_gauss (i); 54 54 } 55 55 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/gaussj.c
r16117 r20839 2 2 3 3 int gaussjordan (int argc, char **argv) { 4 5 float *m, *v; 4 5 float *m; 6 opihi_flt *v; 6 7 double **a, **b; 7 8 int i, j, N, status, QUIET; … … 32 33 33 34 m = (float *) A[0].matrix.buffer; 34 v = B[0].elements ;35 v = B[0].elements.Flt; 35 36 for (i = 0; i < N; i++) { 36 37 for (j = 0; j < N; j++) { -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/grid.c
r13479 r20839 25 25 Xvec.Nelements = 200; 26 26 Yvec.Nelements = 200; 27 ALLOCATE (Xvec.elements , float, Xvec.Nelements);28 ALLOCATE (Yvec.elements , float, Yvec.Nelements);27 ALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 28 ALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 29 29 30 30 major = minor = 1; … … 64 64 if (MajorTick) { 65 65 /* major tick */ 66 Xvec.elements [N] = next;67 Yvec.elements [N] = graphmode.ymin;68 N++; 69 if (N == Xvec.Nelements) { 70 Xvec.Nelements += 200; 71 Yvec.Nelements += 200; 72 REALLOCATE (Xvec.elements , float, Xvec.Nelements);73 REALLOCATE (Yvec.elements , float, Yvec.Nelements);74 } 75 Xvec.elements [N] = next;76 Yvec.elements [N] = graphmode.ymax;77 N++; 78 if (N == Xvec.Nelements) { 79 Xvec.Nelements += 200; 80 Yvec.Nelements += 200; 81 REALLOCATE (Xvec.elements , float, Xvec.Nelements);82 REALLOCATE (Yvec.elements , float, Yvec.Nelements);66 Xvec.elements.Flt[N] = next; 67 Yvec.elements.Flt[N] = graphmode.ymin; 68 N++; 69 if (N == Xvec.Nelements) { 70 Xvec.Nelements += 200; 71 Yvec.Nelements += 200; 72 REALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 73 REALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 74 } 75 Xvec.elements.Flt[N] = next; 76 Yvec.elements.Flt[N] = graphmode.ymax; 77 N++; 78 if (N == Xvec.Nelements) { 79 Xvec.Nelements += 200; 80 Yvec.Nelements += 200; 81 REALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 82 REALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 83 83 } 84 84 } … … 86 86 if (MinorTick) { 87 87 /* minor tick */ 88 Xvec.elements [N] = next;89 Yvec.elements [N] = graphmode.ymin;90 N++; 91 if (N == Xvec.Nelements) { 92 Xvec.Nelements += 200; 93 Yvec.Nelements += 200; 94 REALLOCATE (Xvec.elements , float, Xvec.Nelements);95 REALLOCATE (Yvec.elements , float, Yvec.Nelements);96 } 97 Xvec.elements [N] = next;98 Yvec.elements [N] = graphmode.ymax;99 N++; 100 if (N == Xvec.Nelements) { 101 Xvec.Nelements += 200; 102 Yvec.Nelements += 200; 103 REALLOCATE (Xvec.elements , float, Xvec.Nelements);104 REALLOCATE (Yvec.elements , float, Yvec.Nelements);88 Xvec.elements.Flt[N] = next; 89 Yvec.elements.Flt[N] = graphmode.ymin; 90 N++; 91 if (N == Xvec.Nelements) { 92 Xvec.Nelements += 200; 93 Yvec.Nelements += 200; 94 REALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 95 REALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 96 } 97 Xvec.elements.Flt[N] = next; 98 Yvec.elements.Flt[N] = graphmode.ymax; 99 N++; 100 if (N == Xvec.Nelements) { 101 Xvec.Nelements += 200; 102 Yvec.Nelements += 200; 103 REALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 104 REALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 105 105 } 106 106 } … … 144 144 if (MajorTick) { 145 145 /* major tick */ 146 Xvec.elements [N] = graphmode.xmin;147 Yvec.elements [N] = next;148 N++; 149 if (N == Xvec.Nelements) { 150 Xvec.Nelements += 200; 151 Yvec.Nelements += 200; 152 REALLOCATE (Xvec.elements , float, Xvec.Nelements);153 REALLOCATE (Yvec.elements , float, Yvec.Nelements);154 } 155 Xvec.elements [N] = graphmode.xmax;156 Yvec.elements [N] = next;157 N++; 158 if (N == Xvec.Nelements) { 159 Xvec.Nelements += 200; 160 Yvec.Nelements += 200; 161 REALLOCATE (Xvec.elements , float, Xvec.Nelements);162 REALLOCATE (Yvec.elements , float, Yvec.Nelements);146 Xvec.elements.Flt[N] = graphmode.xmin; 147 Yvec.elements.Flt[N] = next; 148 N++; 149 if (N == Xvec.Nelements) { 150 Xvec.Nelements += 200; 151 Yvec.Nelements += 200; 152 REALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 153 REALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 154 } 155 Xvec.elements.Flt[N] = graphmode.xmax; 156 Yvec.elements.Flt[N] = next; 157 N++; 158 if (N == Xvec.Nelements) { 159 Xvec.Nelements += 200; 160 Yvec.Nelements += 200; 161 REALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 162 REALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 163 163 } 164 164 } … … 166 166 if (MinorTick) { 167 167 /* minor tick */ 168 Xvec.elements [N] = graphmode.xmin;169 Yvec.elements [N] = next;170 N++; 171 if (N == Xvec.Nelements) { 172 Xvec.Nelements += 200; 173 Yvec.Nelements += 200; 174 REALLOCATE (Xvec.elements , float, Xvec.Nelements);175 REALLOCATE (Yvec.elements , float, Yvec.Nelements);176 } 177 Xvec.elements [N] = graphmode.xmax;178 Yvec.elements [N] = next;179 N++; 180 if (N == Xvec.Nelements) { 181 Xvec.Nelements += 200; 182 Yvec.Nelements += 200; 183 REALLOCATE (Xvec.elements , float, Xvec.Nelements);184 REALLOCATE (Yvec.elements , float, Yvec.Nelements);168 Xvec.elements.Flt[N] = graphmode.xmin; 169 Yvec.elements.Flt[N] = next; 170 N++; 171 if (N == Xvec.Nelements) { 172 Xvec.Nelements += 200; 173 Yvec.Nelements += 200; 174 REALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 175 REALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 176 } 177 Xvec.elements.Flt[N] = graphmode.xmax; 178 Yvec.elements.Flt[N] = next; 179 N++; 180 if (N == Xvec.Nelements) { 181 Xvec.Nelements += 200; 182 Yvec.Nelements += 200; 183 REALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 184 REALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 185 185 } 186 186 } … … 193 193 graphmode.ptype = 100; /* connect a pair */ 194 194 graphmode.etype = 0; 195 PlotVectorPair (kapa, N, Xvec.elements , Yvec.elements, &graphmode);196 197 free (Xvec.elements );198 free (Yvec.elements );195 PlotVectorPair (kapa, N, Xvec.elements.Flt, Yvec.elements.Flt, &graphmode); 196 197 free (Xvec.elements.Flt); 198 free (Yvec.elements.Flt); 199 199 200 200 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/gridify.c
r9275 r20839 5 5 int i, Nx, Ny, Xb, Yb, Normalize, N; 6 6 float Xmin, Xmax, dX, Ymin, Ymax, dY; 7 float *buf, *val , *x, *y, *z;7 float *buf, *val; 8 8 int *Nval; 9 9 Buffer *bf; 10 10 Vector *vx, *vy, *vz; 11 opihi_flt *x, *y, *z; 11 12 12 13 Normalize = TRUE; … … 50 51 bzero (Nval, Nx*Ny*sizeof(int)); 51 52 52 x = vx[0].elements ;53 y = vy[0].elements ;54 z = vz[0].elements ;53 x = vx[0].elements.Flt; 54 y = vy[0].elements.Flt; 55 z = vz[0].elements.Flt; 55 56 for (i = 0; i < vx[0].Nelements; i++, x++, y++, z++) { 56 57 Xb = (*x - Xmin) / dX; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/histogram.c
r20820 r20839 4 4 5 5 int i, bin, Nbins; 6 float *V, start, end, delta; 6 opihi_flt start, end, delta; 7 opihi_flt *V; 7 8 Vector *xvec, *yvec; 8 9 … … 32 33 yvec[0].Nelements = Nbins; 33 34 34 REALLOCATE (yvec[0].elements , float, yvec[0].Nelements);35 bzero (yvec[0].elements , sizeof(float)*yvec[0].Nelements);35 REALLOCATE (yvec[0].elements.Flt, opihi_flt, yvec[0].Nelements); 36 bzero (yvec[0].elements.Flt, sizeof(opihi_flt)*yvec[0].Nelements); 36 37 if (Nbins < 1) { 37 38 return (TRUE); 38 39 } 39 40 40 V = xvec[0].elements ;41 V = xvec[0].elements.Flt; 41 42 for (i = 0; i < xvec[0].Nelements; i++, V++) { 42 43 if (isnan(*V)) continue; 43 44 bin = MIN (MAX (0, (*V - start) / delta), Nbins - 1); 44 yvec[0].elements [bin] += 1.0;45 yvec[0].elements.Flt[bin] += 1.0; 45 46 } 46 47 -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/imcut.c
r7917 r20839 37 37 dY = dY / L; 38 38 39 REALLOCATE (xvec[0].elements , float, MAX (L, 1));40 REALLOCATE (yvec[0].elements , float, MAX (L, 1));39 REALLOCATE (xvec[0].elements.Flt, opihi_flt, MAX (L, 1)); 40 REALLOCATE (yvec[0].elements.Flt, opihi_flt, MAX (L, 1)); 41 41 xvec[0].Nelements = L; 42 42 yvec[0].Nelements = L; … … 46 46 xi = xs + i*dX - 0.5; 47 47 yi = ys + i*dY - 0.5; 48 xvec[0].elements [i] = i;49 yvec[0].elements [i] = V[xi + Nx*yi];48 xvec[0].elements.Flt[i] = i; 49 yvec[0].elements.Flt[i] = V[xi + Nx*yi]; 50 50 } 51 51 -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/imhist.c
r16429 r20839 107 107 vec1[0].Nelements = Nbins + 1; 108 108 vec2[0].Nelements = Nbins + 1; 109 REALLOCATE (vec1[0].elements , float, vec1[0].Nelements);110 bzero (vec1[0].elements , vec1[0].Nelements*sizeof(float));111 REALLOCATE (vec2[0].elements , float, vec2[0].Nelements);112 bzero (vec2[0].elements , vec2[0].Nelements*sizeof(float));109 REALLOCATE (vec1[0].elements.Flt, opihi_flt, vec1[0].Nelements); 110 bzero (vec1[0].elements.Flt, vec1[0].Nelements*sizeof(opihi_flt)); 111 REALLOCATE (vec2[0].elements.Flt, opihi_flt, vec2[0].Nelements); 112 bzero (vec2[0].elements.Flt, vec2[0].Nelements*sizeof(opihi_flt)); 113 113 114 114 for (j = sy; j < sy + ny; j++) { … … 116 116 for (i = 0; i < nx; i++, V++) { 117 117 bin = MAX (MIN (Nbins, (*V - min) / dx), 0); 118 vec2[0].elements [bin] += 1.0;118 vec2[0].elements.Flt[bin] += 1.0; 119 119 } 120 120 } 121 121 for (i = 0; i < Nbins + 1; i++, V++) { 122 vec1[0].elements [i] = i*dx + min;122 vec1[0].elements.Flt[i] = i*dx + min; 123 123 } 124 124 -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/integrate.c
r7917 r20839 4 4 5 5 int i, N, VERBOSE; 6 float *X, *Y;6 opihi_flt *X, *Y; 7 7 double start, end, value, range; 8 8 Vector *vecx, *vecy; … … 25 25 end = atof (argv[4]); 26 26 27 X = vecx[0].elements ;28 Y = vecy[0].elements ;27 X = vecx[0].elements.Flt; 28 Y = vecy[0].elements.Flt; 29 29 30 30 value = 0; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/interpolate.c
r7917 r20839 22 22 23 23 yout[0].Nelements = xout[0].Nelements; 24 REALLOCATE (yout[0].elements , float, yout[0].Nelements);24 REALLOCATE (yout[0].elements.Flt, opihi_flt, yout[0].Nelements); 25 25 26 dx = xin[0].elements [1] - xin[0].elements[0];27 dy = yin[0].elements [1] - yin[0].elements[0];28 x0 = xin[0].elements [0];29 y0 = yin[0].elements [0];26 dx = xin[0].elements.Flt[1] - xin[0].elements.Flt[0]; 27 dy = yin[0].elements.Flt[1] - yin[0].elements.Flt[0]; 28 x0 = xin[0].elements.Flt[0]; 29 y0 = yin[0].elements.Flt[0]; 30 30 31 31 /* in vectors are sorted, out vectors are not */ 32 32 for (j = 0; j < xin[0].Nelements - 1; j++) { 33 dx = xin[0].elements [j+1] - xin[0].elements[j];34 dy = yin[0].elements [j+1] - yin[0].elements[j];35 x0 = xin[0].elements [j];36 y0 = yin[0].elements [j];37 x1 = xin[0].elements [j+1];33 dx = xin[0].elements.Flt[j+1] - xin[0].elements.Flt[j]; 34 dy = yin[0].elements.Flt[j+1] - yin[0].elements.Flt[j]; 35 x0 = xin[0].elements.Flt[j]; 36 y0 = yin[0].elements.Flt[j]; 37 x1 = xin[0].elements.Flt[j+1]; 38 38 for (i = 0; i < xout[0].Nelements; i++) { 39 if ((xout[0].elements [i] >= x0) && (xout[0].elements[i] < x1)) {40 yout[0].elements [i] = (dy/dx)*(xout[0].elements[i] - x0) + y0;39 if ((xout[0].elements.Flt[i] >= x0) && (xout[0].elements.Flt[i] < x1)) { 40 yout[0].elements.Flt[i] = (dy/dx)*(xout[0].elements.Flt[i] - x0) + y0; 41 41 } 42 if ((j == 0) && (xout[0].elements [i] < x0)) {43 yout[0].elements [i] = (dy/dx)*(xout[0].elements[i] - x0) + y0;42 if ((j == 0) && (xout[0].elements.Flt[i] < x0)) { 43 yout[0].elements.Flt[i] = (dy/dx)*(xout[0].elements.Flt[i] - x0) + y0; 44 44 } 45 if ((j == xin[0].Nelements - 2) && (xout[0].elements [i] >= x1)) {46 yout[0].elements [i] = (dy/dx)*(xout[0].elements[i] - x0) + y0;45 if ((j == xin[0].Nelements - 2) && (xout[0].elements.Flt[i] >= x1)) { 46 yout[0].elements.Flt[i] = (dy/dx)*(xout[0].elements.Flt[i] - x0) + y0; 47 47 } 48 48 } -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/lookup.c
r7952 r20839 4 4 5 5 int i, j; 6 float *ip, *op, *xp, *yp;6 opihi_flt *ip, *op, *xp, *yp; 7 7 Vector *in, *out, *xv, *yv; 8 8 … … 23 23 24 24 out[0].Nelements = in[0].Nelements; 25 REALLOCATE (out[0].elements , float, out[0].Nelements);25 REALLOCATE (out[0].elements.Flt, opihi_flt, out[0].Nelements); 26 26 27 ip = in[0].elements ;28 op = out[0].elements ;27 ip = in[0].elements.Flt; 28 op = out[0].elements.Flt; 29 29 30 30 for (i = 0; i < in[0].Nelements; i++, ip++, op++) { 31 31 // re-write this using bisection 32 xp = xv[0].elements ;33 yp = yv[0].elements ;32 xp = xv[0].elements.Flt; 33 yp = yv[0].elements.Flt; 34 34 35 35 for (j = 0; (*ip < *xp) && (j < yv[0].Nelements); j++); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/medacc.c
r7917 r20839 5 5 int i, j, Nbins, Nvalues, N, N0, N1; 6 6 double start, end, delta, k0, k1, fn; 7 float *V, *K, *V1, *K1, *O, *tmpvec, *tmpkey;7 opihi_flt *V, *K, *V1, *K1, *O, *tmpvec, *tmpkey; 8 8 Vector *val, *key, *out; 9 9 … … 35 35 36 36 out[0].Nelements = Nbins; 37 REALLOCATE (out[0].elements , float, out[0].Nelements);38 bzero (out[0].elements , sizeof(float)*out[0].Nelements);37 REALLOCATE (out[0].elements.Flt, opihi_flt, out[0].Nelements); 38 bzero (out[0].elements.Flt, sizeof(opihi_flt)*out[0].Nelements); 39 39 40 40 /* copy vec and key to temp vectors */ 41 ALLOCATE (tmpvec, float, val[0].Nelements);42 ALLOCATE (tmpkey, float, val[0].Nelements);41 ALLOCATE (tmpvec, opihi_flt, val[0].Nelements); 42 ALLOCATE (tmpkey, opihi_flt, val[0].Nelements); 43 43 44 V = val[0].elements ;45 K = key[0].elements ;44 V = val[0].elements.Flt; 45 K = key[0].elements.Flt; 46 46 V1 = tmpvec; 47 47 K1 = tmpkey; … … 53 53 54 54 /* sort vec and key by key */ 55 fsortpair (tmpkey, tmpvec, Nvalues);55 dsortpair (tmpkey, tmpvec, Nvalues); 56 56 57 O = out[0].elements ;57 O = out[0].elements.Flt; 58 58 /* find the start and end key for each range */ 59 59 N0 = 0; … … 67 67 N1 = j; 68 68 N = N1 - N0; 69 fsort (&tmpvec[N0], N);69 dsort (&tmpvec[N0], N); 70 70 fn = O[i] = 0; 71 71 for (j = N0 + 0.25*N; j < N0 + 0.75*N; j++) { -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/mget.c
r7917 r20839 4 4 5 5 int i, Nx, Ny, Npix, xdir, Nset; 6 float *in, *out; 6 float *in; 7 opihi_flt *out; 7 8 Buffer *buf; 8 9 Vector *vec; … … 33 34 if (xdir) { 34 35 vec[0].Nelements = Npix = Nx; 35 REALLOCATE (vec[0].elements , float, Npix);36 REALLOCATE (vec[0].elements.Flt, opihi_flt, Npix); 36 37 if (Nset >= Ny) { 37 38 gprint (GP_ERR, "row out of range\n"); … … 39 40 } 40 41 in = (float *) buf[0].matrix.buffer + Nx*Nset; 41 out = vec[0].elements ;42 out = vec[0].elements.Flt; 42 43 for (i = 0; i < Npix; i++, in++, out++) { 43 44 *out = *in; 44 45 } 45 return (TRUE);46 46 } else { 47 47 vec[0].Nelements = Npix = Ny; 48 REALLOCATE (vec[0].elements , float, Npix);48 REALLOCATE (vec[0].elements.Flt, opihi_flt, Npix); 49 49 if (Nset >= Nx) { 50 50 gprint (GP_ERR, "column out of range\n"); … … 52 52 } 53 53 in = (float *) buf[0].matrix.buffer + Nset; 54 out = vec[0].elements ;54 out = vec[0].elements.Flt; 55 55 for (i = 0; i < Npix; i++, in+=Nx, out++) { 56 56 *out = *in; 57 57 } 58 return (TRUE);59 }58 } 59 return (TRUE); 60 60 } 61 -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/mset.c
r7917 r20839 4 4 5 5 int i, Nx, Ny, Npix, xdir, Nset; 6 float *in, *out; 6 opihi_flt *in; 7 float *out; 7 8 Buffer *buf; 8 9 Vector *vec; … … 42 43 } 43 44 out = (float *) buf[0].matrix.buffer + Nx*Nset; 44 in = vec[0].elements ;45 in = vec[0].elements.Flt; 45 46 for (i = 0; i < Npix; i++, in++, out++) { 46 47 *out = *in; … … 57 58 } 58 59 out = (float *) buf[0].matrix.buffer + Nset; 59 in = vec[0].elements ;60 in = vec[0].elements.Flt; 60 61 for (i = 0; i < Npix; i++, in++, out+=Nx) { 61 62 *out = *in; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/peak.c
r7917 r20839 5 5 int i, N, imax, QUIET; 6 6 double start, end, xmax, ymax; 7 float *X, *Y;7 opihi_flt *X, *Y; 8 8 Vector *vecx, *vecy; 9 9 … … 26 26 end = atof (argv[4]); 27 27 } else { 28 start = vecx[0].elements [0];29 end = vecx[0].elements [vecx[0].Nelements - 1];28 start = vecx[0].elements.Flt[0]; 29 end = vecx[0].elements.Flt[vecx[0].Nelements - 1]; 30 30 } 31 31 32 X = vecx[0].elements ;33 Y = vecy[0].elements ;32 X = vecx[0].elements.Flt; 33 Y = vecy[0].elements.Flt; 34 34 35 35 imax = -1; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/periodogram.c
r7917 r20839 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; … … 29 29 30 30 /* find the max baseline, mean, and variance */ 31 minT = maxT = time[0].elements [0];31 minT = maxT = time[0].elements.Flt[0]; 32 32 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; 35 35 mean = var = 0; 36 36 for (i = 0; i < Npt; i++, tv++, fv++) { … … 40 40 } 41 41 mean = mean / Npt; 42 fv = flux[0].elements ;42 fv = flux[0].elements.Flt; 43 43 for (i = 0; i < Npt; i++, fv++) { 44 44 var += SQ(*fv - mean); … … 56 56 Np = 0; 57 57 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); 60 60 61 61 P = minP; … … 64 64 65 65 /* find the period offset tau */ 66 tv = time[0].elements ;66 tv = time[0].elements.Flt; 67 67 cs = sn = 0; 68 68 for (i = 0; i < Npt; i++, tv++) { … … 73 73 74 74 /* 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; 77 77 cs = sn = cs2 = sn2 = 0; 78 78 for (i = 0; i < Npt; i++, tv++, fv++) { … … 90 90 Po = (Pc + Ps) / (2*var); 91 91 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; 94 94 Np ++; 95 95 if (Np >= NP) { 96 96 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); 99 99 } 100 100 … … 108 108 power[0].Nelements = Np; 109 109 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); 112 112 113 113 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/plot.c
r13479 r20839 58 58 if (!KapaPrepPlot (kapa, Npts, &graphmode)) return (FALSE); 59 59 60 KapaPlotVector (kapa, Npts, xvec[0].elements, "x");61 KapaPlotVector (kapa, Npts, yvec[0].elements, "y");60 PlotVectorSingle (kapa, Npts, xvec[0].elements.Flt, "x"); 61 PlotVectorSingle (kapa, Npts, yvec[0].elements.Flt, "y"); 62 62 if (graphmode.etype & 0x01) { 63 KapaPlotVector (kapa, Npts, dymvec[0].elements, "dym");64 KapaPlotVector (kapa, Npts, dypvec[0].elements, "dyp");63 PlotVectorSingle (kapa, Npts, dymvec[0].elements.Flt, "dym"); 64 PlotVectorSingle (kapa, Npts, dypvec[0].elements.Flt, "dyp"); 65 65 } 66 66 if (graphmode.etype & 0x02) { 67 KapaPlotVector (kapa, Npts, dxmvec[0].elements, "dxm");68 KapaPlotVector (kapa, Npts, dxpvec[0].elements, "dxp");67 PlotVectorSingle (kapa, Npts, dxmvec[0].elements.Flt, "dxm"); 68 PlotVectorSingle (kapa, Npts, dxpvec[0].elements.Flt, "dxp"); 69 69 } 70 70 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/read_vectors.c
r17070 r20839 84 84 NELEM = 1000; 85 85 for (i = 0; i < Nvec; i++) { 86 REALLOCATE (vec[i][0].elements , float, NELEM);86 REALLOCATE (vec[i][0].elements.Flt, opihi_flt, NELEM); 87 87 } 88 88 … … 121 121 for (i = 0; (i < Nvec) && status; i++) { 122 122 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;123 vec[i][0].elements.Flt[N] = value; 124 if (!status) vec[i][0].elements.Flt[N] = 0.0/0.0; 125 125 } 126 126 if (status) N++; … … 130 130 NELEM += 1000; 131 131 for (i = 0; i < Nvec; i++) { 132 REALLOCATE (vec[i][0].elements , float, NELEM);132 REALLOCATE (vec[i][0].elements.Flt, opihi_flt, NELEM); 133 133 } 134 134 } … … 137 137 } 138 138 for (i = 0; i < Nvec; i++) { 139 REALLOCATE (vec[i][0].elements , float, MAX (N,1));139 REALLOCATE (vec[i][0].elements.Flt, opihi_flt, MAX (N,1)); 140 140 vec[i][0].Nelements = N; 141 141 } … … 268 268 sprintf (name, "%s:%d", argv[i], j); 269 269 if ((vec[j] = SelectVector (name, ANYVECTOR, TRUE)) == NULL) ESCAPE ("bad vector name"); 270 REALLOCATE (vec[j][0].elements , float, MAX (Ny,1));270 REALLOCATE (vec[j][0].elements.Flt, opihi_flt, MAX (Ny,1)); 271 271 vec[j][0].Nelements = Ny; 272 272 } … … 276 276 for (j = 0; j < Ny; j++) { 277 277 for (k = 0; k < Nval; k++, Pd++) { 278 vec[k][0].elements [j] = *Pd;278 vec[k][0].elements.Flt[j] = *Pd; 279 279 } 280 280 } … … 284 284 for (j = 0; j < Ny; j++) { 285 285 for (k = 0; k < Nval; k++, Pf++) { 286 vec[k][0].elements [j] = *Pf;286 vec[k][0].elements.Flt[j] = *Pf; 287 287 } 288 288 } … … 292 292 for (j = 0; j < Ny; j++) { 293 293 for (k = 0; k < Nval; k++, Pi++) { 294 vec[k][0].elements [j] = *Pi;294 vec[k][0].elements.Flt[j] = *Pi; 295 295 } 296 296 } … … 300 300 for (j = 0; j < Ny; j++) { 301 301 for (k = 0; k < Nval; k++, Ps++) { 302 vec[k][0].elements [j] = *Ps;302 vec[k][0].elements.Flt[j] = *Ps; 303 303 } 304 304 } … … 308 308 for (j = 0; j < Ny; j++) { 309 309 for (k = 0; k < Nval; k++, Pc++) { 310 vec[k][0].elements [j] = *Pc;310 vec[k][0].elements.Flt[j] = *Pc; 311 311 } 312 312 } -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/select.c
r7917 r20839 27 27 /* check size of in1, in2, tvec: must match */ 28 28 29 REALLOCATE (ovec[0].elements , float, MAX (tvec[0].Nelements, 1));29 REALLOCATE (ovec[0].elements.Flt, opihi_flt, MAX (tvec[0].Nelements, 1)); 30 30 for (i = 0; i < tvec[0].Nelements; i++) { 31 ovec[0].elements [i] = tvec[0].elements[i] ? in1[0].elements[i] : in2[0].elements[i];31 ovec[0].elements.Flt[i] = tvec[0].elements.Flt[i] ? in1[0].elements.Flt[i] : in2[0].elements.Flt[i]; 32 32 } 33 33 ovec[0].Nelements = tvec[0].Nelements; 34 REALLOCATE (ovec[0].elements , float, MAX (ovec[0].Nelements, 1));34 REALLOCATE (ovec[0].elements.Flt, opihi_flt, MAX (ovec[0].Nelements, 1)); 35 35 36 36 DeleteVector (tvec); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/sort.c
r7917 r20839 1 1 # include "data.h" 2 3 void sortindex (double *X, int *IDX, int N) { 4 5 # define SWAPFUNC(A,B){ double tmp; int itmp; \ 6 tmp = X[A]; X[A] = X[B]; X[B] = tmp; \ 7 itmp = IDX[A]; IDX[A] = IDX[B]; IDX[B] = itmp; \ 8 } 9 # define COMPARE(A,B)(X[A] < X[B]) 10 11 OHANA_SORT (N, COMPARE, SWAPFUNC); 12 13 # undef SWAPFUNC 14 # undef COMPARE 15 16 } 2 17 3 18 int sort_vectors (int argc, char **argv) { 4 19 5 20 int i, j, Nvec, Nval; 6 float *temp, *index, *T, *V, *I; 21 opihi_flt *temp, *T, *V; 22 int *index, *I; 7 23 Vector **vec; 8 24 … … 36 52 37 53 /* create index (use float to use sortpair) */ 38 ALLOCATE (index, float, Nval);54 ALLOCATE (index, int, Nval); 39 55 for (i = 0; i < Nval; i++) index[i] = i; 40 56 41 57 /* sort key & index */ 42 fsortpair (vec[0][0].elements, index, Nval);58 sortindex (vec[0][0].elements.Flt, index, Nval); 43 59 44 ALLOCATE (temp, float, Nval);60 ALLOCATE (temp, opihi_flt, Nval); 45 61 for (i = 1; i < Nvec; i++) { 46 62 T = temp; 47 V = vec[i][0].elements ;63 V = vec[i][0].elements.Flt; 48 64 I = index; 49 65 for (j = 0; j < Nval; j++, T++, I++) { 50 *T = V[ (int)(*I)];66 *T = V[*I]; 51 67 } 52 /* swap .elements (== V) and temp */53 vec[i][0].elements = temp;68 /* swap .elements.Flt (== V) and temp */ 69 vec[i][0].elements.Flt = temp; 54 70 temp = V; 55 71 } … … 61 77 62 78 } 63 64 -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/subset.c
r7917 r20839 28 28 /* check size of ivec, tvec: must match */ 29 29 30 REALLOCATE (ovec[0].elements , float, MAX (tvec[0].Nelements, 1));30 REALLOCATE (ovec[0].elements.Flt, opihi_flt, MAX (tvec[0].Nelements, 1)); 31 31 for (j = i = 0; i < tvec[0].Nelements; i++) { 32 if (tvec[0].elements [i]) {33 ovec[0].elements [j] = ivec[0].elements[i];32 if (tvec[0].elements.Flt[i]) { 33 ovec[0].elements.Flt[j] = ivec[0].elements.Flt[i]; 34 34 j++; 35 35 } 36 36 } 37 37 ovec[0].Nelements = j; 38 REALLOCATE (ovec[0].elements , float, MAX (ovec[0].Nelements, 1));38 REALLOCATE (ovec[0].elements.Flt, opihi_flt, MAX (ovec[0].Nelements, 1)); 39 39 40 40 DeleteVector (tvec); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/svd.c
r7917 r20839 4 4 5 5 int i, Nx, Ny, status; 6 float *in, *out, *A, *U, *W, *V; 6 float *in, *out, *A, *U, *V; 7 Buffer *Ma, *Mu, *Mv; 7 8 Vector *Vw; 8 Buffer *Ma, *Mu, *Mv;9 opihi_flt *W; 9 10 10 11 if (argc != 6) goto usage; … … 43 44 /* w is Nx */ 44 45 Vw[0].Nelements = Nx; 45 REALLOCATE (Vw[0].elements , float, Nx);46 REALLOCATE (Vw[0].elements.Flt, opihi_flt, Nx); 46 47 47 48 /* pointers to the various arrays */ 48 49 A = (float *) Ma[0].matrix.buffer; 49 50 U = (float *) Mu[0].matrix.buffer; 50 W = (float *) Vw[0].elements;51 51 V = (float *) Mv[0].matrix.buffer; 52 W = Vw[0].elements.Flt; 52 53 53 54 /* copy A to U (svdcmp replaces A with U) */ -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/test/histogram.sh
r16056 r20839 12 12 local i 13 13 14 create x 0 10 0.1 14 # set data values at the i*0.1 + 0.05 values so round-off does not causs miscounts 15 create x 0.05 10.05 0.1 15 16 16 17 for i 45 55 … … 18 19 end 19 20 21 # histogram bins are 0-0.1, 0.1-0.2, etc 20 22 histogram x xhis 0 10 0.1 21 23 -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/ungridify.c
r7917 r20839 6 6 int Nx, Ny, NX, NY; 7 7 int Xmin, Xmax, Ymin, Ymax; 8 float *v, *x, *y, *z;9 8 Buffer *bf; 9 float *v; 10 10 Vector *vx, *vy, *vz; 11 opihi_flt *x, *y, *z; 11 12 12 13 if (argc != 9) { … … 29 30 if ((vy = SelectVector (argv[7], ANYVECTOR, TRUE)) == NULL) return (FALSE); 30 31 if ((vz = SelectVector (argv[8], ANYVECTOR, TRUE)) == NULL) return (FALSE); 31 REALLOCATE (vx[0].elements , float, Nx*Ny);32 REALLOCATE (vy[0].elements , float, Nx*Ny);33 REALLOCATE (vz[0].elements , float, Nx*Ny);32 REALLOCATE (vx[0].elements.Flt, opihi_flt, Nx*Ny); 33 REALLOCATE (vy[0].elements.Flt, opihi_flt, Nx*Ny); 34 REALLOCATE (vz[0].elements.Flt, opihi_flt, Nx*Ny); 34 35 35 x = vx[0].elements ;36 y = vy[0].elements ;37 z = vz[0].elements ;36 x = vx[0].elements.Flt; 37 y = vy[0].elements.Flt; 38 z = vz[0].elements.Flt; 38 39 n = 0; 39 40 v = (float *)bf[0].matrix.buffer; 40 41 for (j = Ymin; j < Ymax; j++) { 41 42 for (i = Xmin; i < Xmax; i++, x++, y++, z++, n++) { 42 vx[0].elements [n] = i;43 vy[0].elements [n] = j;43 vx[0].elements.Flt[n] = i; 44 vy[0].elements.Flt[n] = j; 44 45 if (i < 0) continue; 45 46 if (i >= NX) continue; 46 47 if (j < 0) continue; 47 48 if (j >= NY) continue; 48 vz[0].elements [n] = v[i+j*NX];49 vz[0].elements.Flt[n] = v[i+j*NX]; 49 50 } 50 51 } -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/uniq.c
r7917 r20839 4 4 5 5 int Nnew, i, j, found; 6 float *v1, *v2;6 opihi_flt *v1, *v2; 7 7 Vector *ivec, *ovec; 8 8 … … 16 16 17 17 /* allocate the maximum possible needed */ 18 ALLOCATE (ovec[0].elements , float, ivec[0].Nelements);18 ALLOCATE (ovec[0].elements.Flt, opihi_flt, ivec[0].Nelements); 19 19 20 20 Nnew = 0; 21 v1 = ivec[0].elements ;21 v1 = ivec[0].elements.Flt; 22 22 for (i = 0; i < ivec[0].Nelements; i++, v1++) { 23 v2 = ovec[0].elements ;23 v2 = ovec[0].elements.Flt; 24 24 found = FALSE; 25 25 for (j = 0; !found && (j < Nnew); j++, v2++) { … … 27 27 } 28 28 if (!found) { 29 ovec[0].elements [Nnew] = *v1;29 ovec[0].elements.Flt[Nnew] = *v1; 30 30 Nnew ++; 31 31 } … … 33 33 34 34 ovec[0].Nelements = Nnew; 35 REALLOCATE (ovec[0].elements , float, ovec[0].Nelements);35 REALLOCATE (ovec[0].elements.Flt, opihi_flt, ovec[0].Nelements); 36 36 37 37 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/vbin.c
r7917 r20839 5 5 int i, j, n, N, Nin, Nout; 6 6 int Normalize, Ignore; 7 float *Vout, *Vin, IgnoreValue;7 opihi_flt *Vout, *Vin, IgnoreValue; 8 8 double scale; 9 9 Vector *in, *out; … … 42 42 Nout = Nin / scale; 43 43 44 REALLOCATE (out[0].elements , float, Nout);44 REALLOCATE (out[0].elements.Flt, opihi_flt, Nout); 45 45 out[0].Nelements = Nout; 46 46 47 Vin = in[0].elements ;48 Vout = out[0].elements ;47 Vin = in[0].elements.Flt; 48 Vout = out[0].elements.Flt; 49 49 for (n = j = 0; j < Nout; j++, Vout++) { 50 50 *Vout = 0; … … 57 57 if (Normalize) { 58 58 if (N > 0) { 59 *Vout /= ( float) N;59 *Vout /= (opihi_flt) N; 60 60 } else { 61 61 *Vout = 0; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/vclip.c
r7917 r20839 5 5 int i, Npix, DO_NAN, DO_INF, N; 6 6 double min, Vmin, max, Vmax, nan_val, inf_val; 7 float *in;7 opihi_flt *in; 8 8 Vector *vec; 9 9 … … 41 41 42 42 Npix = vec[0].Nelements; 43 in = vec[0].elements ;43 in = vec[0].elements.Flt; 44 44 45 45 if (argc == 6) { … … 51 51 } 52 52 } 53 in = vec[0].elements ;53 in = vec[0].elements.Flt; 54 54 if (DO_NAN) { 55 55 for (i = 0; i < Npix; i++, in++) { … … 59 59 } 60 60 } 61 in = vec[0].elements ;61 in = vec[0].elements.Flt; 62 62 if (DO_INF) { 63 63 for (i = 0; i < Npix; i++, in++) { -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/vgauss.c
r16446 r20839 2 2 3 3 /* local private functions */ 4 float fgaussOD (float, float *, int, float *);4 opihi_flt fgaussOD (opihi_flt, opihi_flt *, int, opihi_flt *); 5 5 6 6 # define GET_VAR(V,A) \ … … 16 16 17 17 int i, N, Npts, Npar, Quiet; 18 float par[4], *v1, *v2, *dy, **covar;19 float chisq, ochisq, dchisq;18 opihi_flt par[4], *v1, *v2, *dy, **covar; 19 opihi_flt chisq, ochisq, dchisq; 20 20 Vector *xvec, *yvec, *svec, *ovec; 21 21 char *c, name[16]; … … 43 43 44 44 Npts = xvec[0].Nelements; 45 ALLOCATE (dy, float, Npts);46 REALLOCATE (ovec[0].elements , float, Npts);45 ALLOCATE (dy, opihi_flt, Npts); 46 REALLOCATE (ovec[0].elements.Flt, opihi_flt, Npts); 47 47 48 48 GET_VAR (par[0], "C0"); … … 52 52 Npar = 4; 53 53 54 v1 = svec[0].elements ;54 v1 = svec[0].elements.Flt; 55 55 v2 = dy; 56 56 for (i = 0; i < Npts; i++, v1++, v2++) { … … 58 58 } 59 59 60 ochisq = mrqinit (xvec[0].elements , yvec[0].elements, dy, Npts, par, Npar, fgaussOD, !Quiet);60 ochisq = mrqinit (xvec[0].elements.Flt, yvec[0].elements.Flt, dy, Npts, par, Npar, fgaussOD, !Quiet); 61 61 dchisq = ochisq + 2*Npts; 62 62 63 63 for (i = 0; (i < 20) && ((dchisq > 0.1*(Npts - Npar)) || (dchisq <= 0.0)); i++) { 64 chisq = mrqmin (xvec[0].elements , yvec[0].elements, dy, Npts, par, Npar, fgaussOD, !Quiet);64 chisq = mrqmin (xvec[0].elements.Flt, yvec[0].elements.Flt, dy, Npts, par, Npar, fgaussOD, !Quiet); 65 65 dchisq = ochisq - chisq; 66 66 ochisq = chisq; … … 70 70 71 71 for (i = 0; i < Npts; i++) { 72 ovec[0].elements [i] = fgaussOD (xvec[0].elements[i], par, Npar, dy);72 ovec[0].elements.Flt[i] = fgaussOD (xvec[0].elements.Flt[i], par, Npar, dy); 73 73 } 74 74 ovec[0].Nelements = Npts; … … 90 90 91 91 /* pars: x_o, sigma, I, back */ 92 float fgaussOD (float x, float *par, int Npar, float *dpar) {92 opihi_flt fgaussOD (opihi_flt x, opihi_flt *par, int Npar, opihi_flt *dpar) { 93 93 94 float z, r, f;94 opihi_flt z, r, f; 95 95 96 96 z = (x - par[0])/par[1]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/vgrid.c
r9275 r20839 5 5 int i, Nx, Ny, Xb, Yb; 6 6 float Xmin, Xmax, dX, Ymin, Ymax, dY; 7 float *buf, *val, *x, *y, *z; 7 float *buf; 8 opihi_flt *val, *x, *y, *z; 8 9 int *Nval; 9 10 Buffer *bf; … … 39 40 strcpy (bf[0].file, "(empty)"); 40 41 41 ALLOCATE (val, float, Nx*Ny);42 bzero (val, Nx*Ny*sizeof( float));42 ALLOCATE (val, opihi_flt, Nx*Ny); 43 bzero (val, Nx*Ny*sizeof(opihi_flt)); 43 44 ALLOCATE (Nval, int, Nx*Ny); 44 45 bzero (Nval, Nx*Ny*sizeof(int)); 45 46 46 x = vx[0].elements ;47 y = vy[0].elements ;48 z = vz[0].elements ;47 x = vx[0].elements.Flt; 48 y = vy[0].elements.Flt; 49 z = vz[0].elements.Flt; 49 50 for (i = 0; i < vx[0].Nelements; i++, x++, y++, z++) { 50 51 Xb = (*x - Xmin) / dX; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/vload.c
r19840 r20839 6 6 int kapa, type; 7 7 char *name; 8 double dx, dy, size,angle;8 double dx, dy, angle; 9 9 KiiOverlay *overlay; 10 10 Vector *vecx, *vecy; … … 82 82 overlay[i].type = type; 83 83 overlay[i].text = NULL; 84 overlay[i].x = vecx[0].elements [i]+0.5;85 overlay[i].y = vecy[0].elements [i]+0.5;84 overlay[i].x = vecx[0].elements.Flt[i]+0.5; 85 overlay[i].y = vecy[0].elements.Flt[i]+0.5; 86 86 overlay[i].dx = dx; 87 87 overlay[i].dy = dy; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/vmaxwell.c
r16446 r20839 2 2 3 3 /* local private functions */ 4 float fmaxwellOD (float, float *, int, float *);4 opihi_flt fmaxwellOD (opihi_flt, opihi_flt *, int, opihi_flt *); 5 5 6 6 # define GET_VAR(V,A) \ … … 16 16 17 17 int i, N, Npts, Npar, Quiet; 18 float par[5], *v1, *v2, *dy, **covar;19 float chisq, ochisq, dchisq;18 opihi_flt par[5], *v1, *v2, *dy, **covar; 19 opihi_flt chisq, ochisq, dchisq; 20 20 Vector *xvec, *yvec, *svec, *ovec; 21 21 char *c, name[16]; … … 43 43 44 44 Npts = xvec[0].Nelements; 45 ALLOCATE (dy, float, Npts);46 REALLOCATE (ovec[0].elements , float, Npts);45 ALLOCATE (dy, opihi_flt, Npts); 46 REALLOCATE (ovec[0].elements.Flt, opihi_flt, Npts); 47 47 48 48 GET_VAR (par[0], "C0"); … … 54 54 /* careful of variable renomalization */ 55 55 56 v1 = svec[0].elements ;56 v1 = svec[0].elements.Flt; 57 57 v2 = dy; 58 58 for (i = 0; i < Npts; i++, v1++, v2++) *v2 = 1.0 / (*v1 * *v1); 59 59 60 ochisq = mrqinit (xvec[0].elements , yvec[0].elements, dy, Npts, par, Npar, fmaxwellOD, !Quiet);60 ochisq = mrqinit (xvec[0].elements.Flt, yvec[0].elements.Flt, dy, Npts, par, Npar, fmaxwellOD, !Quiet); 61 61 dchisq = ochisq + 2*Npts; 62 62 63 63 for (i = 0; (i < 20) && ((dchisq > 0.1*(Npts - Npar)) || (dchisq <= 0.0)); i++) { 64 chisq = mrqmin (xvec[0].elements , yvec[0].elements, dy, Npts, par, Npar, fmaxwellOD, !Quiet);64 chisq = mrqmin (xvec[0].elements.Flt, yvec[0].elements.Flt, dy, Npts, par, Npar, fmaxwellOD, !Quiet); 65 65 dchisq = ochisq - chisq; 66 66 ochisq = chisq; … … 70 70 71 71 for (i = 0; i < Npts; i++) { 72 ovec[0].elements [i] = fmaxwellOD (xvec[0].elements[i], par, Npar, dy);72 ovec[0].elements.Flt[i] = fmaxwellOD (xvec[0].elements.Flt[i], par, Npar, dy); 73 73 } 74 74 ovec[0].Nelements = Npts; … … 90 90 91 91 /* pars: x_o, -0.5/sigma^2, I, back, ref */ 92 float fmaxwellOD (float x, float *par, int Npar, float *dpar) {92 opihi_flt fmaxwellOD (opihi_flt x, opihi_flt *par, int Npar, opihi_flt *dpar) { 93 93 94 float z, r, f;94 opihi_flt z, r, f; 95 95 96 96 z = (x - par[0])/par[1]; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/vpop.c
r7917 r20839 17 17 18 18 if (Npix > 1) { 19 memmove (&vec[0].elements [0], &vec[0].elements[1], Npix*sizeof(float));19 memmove (&vec[0].elements.Flt[0], &vec[0].elements.Flt[1], Npix*sizeof(opihi_flt)); 20 20 } 21 21 vec[0].Nelements = Npix - 1; -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/vroll.c
r7917 r20839 4 4 5 5 int Npix; 6 float first;6 opihi_flt first; 7 7 Vector *vec; 8 8 … … 17 17 if (Npix < 2) return (TRUE); 18 18 19 first = vec[0].elements [0];20 memmove (&vec[0].elements [0], &vec[0].elements[1], Npix*sizeof(float));21 vec[0].elements [Npix-1] = first;19 first = vec[0].elements.Flt[0]; 20 memmove (&vec[0].elements.Flt[0], &vec[0].elements.Flt[1], Npix*sizeof(opihi_flt)); 21 vec[0].elements.Flt[Npix-1] = first; 22 22 return (TRUE); 23 23 } -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/vsmooth.c
r7917 r20839 4 4 5 5 int i, n, N, Nx, Ns, Ngauss; 6 float *vi, *vo, *gauss, *gaussnorm;6 opihi_flt *vi, *vo, *gauss, *gaussnorm; 7 7 float g, s, sigma, Nsigma; 8 8 Vector *in; … … 23 23 sigma = atof (argv[2]); 24 24 Nx = in[0].Nelements; 25 vi = in[0].elements ;25 vi = in[0].elements.Flt; 26 26 27 27 /* build a 1D gaussian */ 28 28 Ns = (int) (Nsigma*sigma + 0.5); 29 29 Ngauss = 2*Ns + 1; 30 ALLOCATE (gaussnorm, float, Ngauss);30 ALLOCATE (gaussnorm, opihi_flt, Ngauss); 31 31 gauss = &gaussnorm[Ns]; 32 32 for (i = -Ns; i < Ns + 1; i++) { … … 34 34 } 35 35 36 ALLOCATE (vo, float, Nx);36 ALLOCATE (vo, opihi_flt, Nx); 37 37 38 38 for (i = 0; i < Nx; i++) { … … 47 47 } 48 48 49 free (in[0].elements );49 free (in[0].elements.Flt); 50 50 free (gaussnorm); 51 51 52 in[0].elements = vo;52 in[0].elements.Flt = vo; 53 53 return (TRUE); 54 54 } -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/vstat.c
r7917 r20839 5 5 int i, N; 6 6 double max, min, sum, var, dvar, mean, stdev; 7 float *X, IgnoreValue;7 opihi_flt *X, IgnoreValue; 8 8 int Ignore, Quiet; 9 9 … … 41 41 42 42 /* calculate max, min, mean, sum, npix */ 43 X = vec[0].elements ;43 X = vec[0].elements.Flt; 44 44 max = -HUGE_VAL; 45 45 min = HUGE_VAL; … … 65 65 ALLOCATE (Nval, int, 1002); 66 66 bzero (Nval, 1000*sizeof(int)); 67 X = vec[0].elements ;67 X = vec[0].elements.Flt; 68 68 var = 0; 69 69 for (i = 0; i < vec[0].Nelements; i++, X++) { -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/vzload.c
r17419 r20839 58 58 59 59 for (i = N = 0; i < Noverlay; i++) { 60 size = MIN (MAX_OUTPUT_SIZE, (vecz[0].elements [i] - min) / range);60 size = MIN (MAX_OUTPUT_SIZE, (vecz[0].elements.Flt[i] - min) / range); 61 61 if (size < 0.1) continue; 62 62 63 63 overlay[N].type = type; 64 64 overlay[N].text = NULL; 65 overlay[N].x = vecx[0].elements [i]+0.5;66 overlay[N].y = vecy[0].elements [i]+0.5;65 overlay[N].x = vecx[0].elements.Flt[i]+0.5; 66 overlay[N].y = vecy[0].elements.Flt[i]+0.5; 67 67 overlay[N].angle = 0.0; 68 68 -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/write_vectors.c
r20820 r20839 78 78 for (i = 0; i < vec[0][0].Nelements; i++) { 79 79 for (j = 0; j < Nvec; j++) { 80 fprintf (f, "%.10g ", vec[j][0].elements [i]);80 fprintf (f, "%.10g ", vec[j][0].elements.Flt[i]); 81 81 } 82 82 fprintf (f, "\n"); … … 135 135 for (j = 0; j < Nvec; j++) { 136 136 if (fmttype[j] == 'd') { 137 fprintf (f, fmtlist[j], (int)(vec[j][0].elements [i]));137 fprintf (f, fmtlist[j], (int)(vec[j][0].elements.Flt[i])); 138 138 } 139 139 if (fmttype[j] == 'f') { 140 fprintf (f, fmtlist[j], (float)(vec[j][0].elements [i]));140 fprintf (f, fmtlist[j], (float)(vec[j][0].elements.Flt[i])); 141 141 } 142 142 } -
branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/zplot.c
r14590 r20839 4 4 5 5 int i, kapa, Npts; 6 float *in, *out;6 opihi_flt *in, *out; 7 7 double min, range; 8 8 Graphdata graphmode; … … 32 32 } 33 33 Zvec.Nelements = zvec[0].Nelements; 34 ALLOCATE (Zvec.elements , float, Zvec.Nelements);34 ALLOCATE (Zvec.elements.Flt, opihi_flt, Zvec.Nelements); 35 35 36 in = zvec[0].elements ;37 out = Zvec.elements ;36 in = zvec[0].elements.Flt; 37 out = Zvec.elements.Flt; 38 38 for (i = 0; i < Zvec.Nelements; i++, in++, out++) { 39 39 *out = MIN (1.0, MAX (0.01, (*in - min) / range)); … … 45 45 graphmode.etype = 0; /* no errorbars */ 46 46 Npts = xvec[0].Nelements; 47 PlotVectorTriplet (kapa, Npts, xvec[0].elements , yvec[0].elements, Zvec.elements, &graphmode);47 PlotVectorTriplet (kapa, Npts, xvec[0].elements.Flt, yvec[0].elements.Flt, Zvec.elements.Flt, &graphmode); 48 48 49 free (Zvec.elements );49 free (Zvec.elements.Flt); 50 50 51 51 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/avextract.c
r20820 r20839 1 1 # include "dvoshell.h" 2 2 3 // XXX need to promote values (and dbStack entries) to opihi_flt, but wait until done testing 3 4 int avextract (int argc, char **argv) { 4 5 … … 116 117 if (!dbBooleanCond (stack, Nstack, values)) continue; 117 118 for (n = 0; n < Nreturn; n++) { 118 vec[n][0].elements [Npts] = values[n];119 vec[n][0].elements.Flt[Npts] = values[n]; 119 120 } 120 121 Npts++; … … 122 123 NPTS += 2000; 123 124 for (n = 0; n < Nreturn; n++) { 124 REALLOCATE (vec[n][0].elements , float, NPTS);125 REALLOCATE (vec[n][0].elements.Flt, opihi_flt, NPTS); 125 126 } 126 127 } … … 132 133 for (n = 0; n < Nreturn; n++) { 133 134 vec[n][0].Nelements = Npts; 134 REALLOCATE (vec[n][0].elements , float, MAX(1,Npts));135 REALLOCATE (vec[n][0].elements.Flt, opihi_flt, MAX(1,Npts)); 135 136 } 136 137 -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/calmextract.c
r15509 r20839 61 61 if ((vec[Nd2] = SelectVector ("cal:dm2", ANYVECTOR, TRUE)) == NULL) goto escape; 62 62 for (k = 0; k < NVEC; k++) { 63 REALLOCATE (vec[k][0].elements , float, NSTAR);63 REALLOCATE (vec[k][0].elements.Flt, opihi_flt, NSTAR); 64 64 vec[k][0].Nelements = 0; 65 65 } … … 110 110 NSTAR += N1 + 100; 111 111 for (k = 0; k < NVEC; k++) { 112 REALLOCATE (vec[k][0].elements , float, NSTAR);112 REALLOCATE (vec[k][0].elements.Flt, opihi_flt, NSTAR); 113 113 } 114 114 } … … 125 125 126 126 for (j = 0; j < N1; j++, N++) { 127 vec[Nd ][0].elements [N] = M1[j] - M2;128 vec[Nm1][0].elements [N] = M1[j];129 vec[Nm2][0].elements [N] = M2;130 vec[Nd2][0].elements [N] = dM2;131 vec[Nc ][0].elements [N] = color;132 vec[Ns ][0].elements [N] = Nstar;133 vec[NR ][0].elements [N] = catalog.average[i].R;134 vec[ND ][0].elements [N] = catalog.average[i].D;127 vec[Nd ][0].elements.Flt[N] = M1[j] - M2; 128 vec[Nm1][0].elements.Flt[N] = M1[j]; 129 vec[Nm2][0].elements.Flt[N] = M2; 130 vec[Nd2][0].elements.Flt[N] = dM2; 131 vec[Nc ][0].elements.Flt[N] = color; 132 vec[Ns ][0].elements.Flt[N] = Nstar; 133 vec[NR ][0].elements.Flt[N] = catalog.average[i].R; 134 vec[ND ][0].elements.Flt[N] = catalog.average[i].D; 135 135 } 136 136 Nstar ++; … … 178 178 Ns = vec[0].Nelements; 179 179 for (i = 0; i < N; i++) { 180 vec[0].elements [Ns+i] = value[i];180 vec[0].elements.Flt[Ns+i] = value[i]; 181 181 } 182 182 vec[0].Nelements = Ns + N; -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/ccd.c
r20820 r20839 97 97 for (i1 = 0; i1 < N1; i1++) { 98 98 for (i2 = 0; i2 < N2; i2++) { 99 xvec[0].elements [Npts] = M1[i1];100 yvec[0].elements [Npts] = M2[i2];99 xvec[0].elements.Flt[Npts] = M1[i1]; 100 yvec[0].elements.Flt[Npts] = M2[i2]; 101 101 Npts++; 102 102 if (Npts >= NPTS) { 103 103 NPTS += 2000; 104 REALLOCATE (xvec[0].elements , float, NPTS);105 REALLOCATE (yvec[0].elements , float, NPTS);104 REALLOCATE (xvec[0].elements.Flt, opihi_flt, NPTS); 105 REALLOCATE (yvec[0].elements.Flt, opihi_flt, NPTS); 106 106 } 107 107 } -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/cmd.c
r20820 r20839 95 95 for (i1 = 0; i1 < N1; i1++) { 96 96 for (i3 = 0; i3 < N3; i3++) { 97 xvec[0].elements [Npts] = M1[i1];98 yvec[0].elements [Npts] = M3[i3];97 xvec[0].elements.Flt[Npts] = M1[i1]; 98 yvec[0].elements.Flt[Npts] = M3[i3]; 99 99 Npts++; 100 100 if (Npts >= NPTS) { 101 101 NPTS += 2000; 102 REALLOCATE (xvec[0].elements , float, NPTS);103 REALLOCATE (yvec[0].elements , float, NPTS);102 REALLOCATE (xvec[0].elements.Flt, opihi_flt, NPTS); 103 REALLOCATE (yvec[0].elements.Flt, opihi_flt, NPTS); 104 104 } 105 105 } -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/cmpread.c
r15487 r20839 89 89 fclose (f); 90 90 91 REALLOCATE (vec[0].elements , float, Nstars);91 REALLOCATE (vec[0].elements.Flt, opihi_flt, Nstars); 92 92 vec[0].Nelements = Nstars; 93 bzero (vec[0].elements , Nstars*sizeof(float));93 bzero (vec[0].elements.Flt, Nstars*sizeof(opihi_flt)); 94 94 95 95 value = 0; … … 135 135 break; 136 136 } 137 vec[0].elements [i] = value;137 vec[0].elements.Flt[i] = value; 138 138 } 139 139 free (stars); -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/compare.c
r12332 r20839 10 10 Nmatch = 0; 11 11 NMATCH = D_NMATCH; 12 REALLOCATE (rvec[0].elements , float, NMATCH);13 REALLOCATE (dvec[0].elements , float, NMATCH);14 REALLOCATE (mvec[0].elements , float, NMATCH);15 REALLOCATE (drvec[0].elements , float, NMATCH);16 REALLOCATE (ddvec[0].elements , float, NMATCH);17 REALLOCATE (dmvec[0].elements , float, NMATCH);12 REALLOCATE (rvec[0].elements.Flt, opihi_flt, NMATCH); 13 REALLOCATE (dvec[0].elements.Flt, opihi_flt, NMATCH); 14 REALLOCATE (mvec[0].elements.Flt, opihi_flt, NMATCH); 15 REALLOCATE (drvec[0].elements.Flt, opihi_flt, NMATCH); 16 REALLOCATE (ddvec[0].elements.Flt, opihi_flt, NMATCH); 17 REALLOCATE (dmvec[0].elements.Flt, opihi_flt, NMATCH); 18 18 19 19 for (i = j = 0; (i < catlog1[0].Naverage) && (j < catlog2[0].Naverage);) { … … 36 36 dR = hypot (dX, dY); 37 37 if (dR < radius) { 38 rvec[0].elements [Nmatch] = catlog1[0].average[i].R;39 dvec[0].elements [Nmatch] = catlog1[0].average[i].D;40 // mvec[0].elements [Nmatch] = catlog1[0].average[i].M;41 drvec[0].elements [Nmatch] = dX;42 ddvec[0].elements [Nmatch] = dY;43 // dmvec[0].elements [Nmatch] = catlog1[0].average[i].M - catlog2[0].average[j].M;38 rvec[0].elements.Flt[Nmatch] = catlog1[0].average[i].R; 39 dvec[0].elements.Flt[Nmatch] = catlog1[0].average[i].D; 40 // mvec[0].elements.Flt[Nmatch] = catlog1[0].average[i].M; 41 drvec[0].elements.Flt[Nmatch] = dX; 42 ddvec[0].elements.Flt[Nmatch] = dY; 43 // dmvec[0].elements.Flt[Nmatch] = catlog1[0].average[i].M - catlog2[0].average[j].M; 44 44 Nmatch ++; 45 45 if (Nmatch == NMATCH - 1) { 46 46 NMATCH += D_NMATCH; 47 REALLOCATE ( rvec[0].elements , float, NMATCH);48 REALLOCATE ( dvec[0].elements , float, NMATCH);49 REALLOCATE ( mvec[0].elements , float, NMATCH);50 REALLOCATE (drvec[0].elements , float, NMATCH);51 REALLOCATE (ddvec[0].elements , float, NMATCH);52 REALLOCATE (dmvec[0].elements , float, NMATCH);47 REALLOCATE ( rvec[0].elements.Flt, opihi_flt, NMATCH); 48 REALLOCATE ( dvec[0].elements.Flt, opihi_flt, NMATCH); 49 REALLOCATE ( mvec[0].elements.Flt, opihi_flt, NMATCH); 50 REALLOCATE (drvec[0].elements.Flt, opihi_flt, NMATCH); 51 REALLOCATE (ddvec[0].elements.Flt, opihi_flt, NMATCH); 52 REALLOCATE (dmvec[0].elements.Flt, opihi_flt, NMATCH); 53 53 } 54 54 } … … 59 59 } 60 60 61 REALLOCATE ( rvec[0].elements , float, Nmatch);62 REALLOCATE ( dvec[0].elements , float, Nmatch);63 REALLOCATE ( mvec[0].elements , float, Nmatch);64 REALLOCATE (drvec[0].elements , float, Nmatch);65 REALLOCATE (ddvec[0].elements , float, Nmatch);66 REALLOCATE (dmvec[0].elements , float, Nmatch);61 REALLOCATE ( rvec[0].elements.Flt, opihi_flt, Nmatch); 62 REALLOCATE ( dvec[0].elements.Flt, opihi_flt, Nmatch); 63 REALLOCATE ( mvec[0].elements.Flt, opihi_flt, Nmatch); 64 REALLOCATE (drvec[0].elements.Flt, opihi_flt, Nmatch); 65 REALLOCATE (ddvec[0].elements.Flt, opihi_flt, Nmatch); 66 REALLOCATE (dmvec[0].elements.Flt, opihi_flt, Nmatch); 67 67 68 68 rvec[0].Nelements = Nmatch; -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/detrend.c
r14590 r20839 15 15 int Type, mode, CCD; 16 16 int NVALUE; 17 float *value;17 opihi_flt *value; 18 18 time_t TimeReference; 19 19 int TimeFormat; … … 151 151 N = 0; 152 152 NVALUE = 1000; 153 REALLOCATE (vec[0].elements , float, NVALUE);154 value = vec[0].elements ;153 REALLOCATE (vec[0].elements.Flt, opihi_flt, NVALUE); 154 value = vec[0].elements.Flt; 155 155 156 156 GetTimeFormat (&TimeReference, &TimeFormat); … … 193 193 if (N >= NVALUE - 1) { 194 194 NVALUE += 1000; 195 REALLOCATE (vec[0].elements , float, NVALUE);196 value = vec[0].elements ;197 } 198 } 199 200 REALLOCATE (vec[0].elements , float, MAX (1,N));195 REALLOCATE (vec[0].elements.Flt, opihi_flt, NVALUE); 196 value = vec[0].elements.Flt; 197 } 198 } 199 200 REALLOCATE (vec[0].elements.Flt, opihi_flt, MAX (1,N)); 201 201 vec[0].Nelements = N; 202 202 -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/fitcolors.c
r16810 r20839 17 17 char name[64], filename[64], plotname[64], label[64]; 18 18 double *M1, *M2; 19 float *out, *colorFit, *deltaFit, dColor, C0, C1; 20 float minDelta, maxDelta, minColor, maxColor; 19 float *out; 20 opihi_flt *colorFit, *deltaFit, dColor, C0, C1; 21 opihi_flt minDelta, maxDelta, minColor, maxColor; 21 22 int kapa, Npx, Npy, NPX, NPY, Nplot, PLOT; 22 23 Graphdata graphdata; … … 99 100 KapaSetFont (kapa, "helvetica", 14); 100 101 101 ALLOCATE (colorFit, float, 11);102 ALLOCATE (deltaFit, float, 11);102 ALLOCATE (colorFit, opihi_flt, 11); 103 ALLOCATE (deltaFit, opihi_flt, 11); 103 104 dColor = (maxColor - minColor) / 10.0; 104 105 for (i = 0; i < 11; i++) { … … 232 233 if (M2[i2] < minColor) continue; 233 234 if (M2[i2] > maxColor) continue; 234 yvec[0].elements [Npts] = M1[i1];235 xvec[0].elements [Npts] = M2[i2];235 yvec[0].elements.Flt[Npts] = M1[i1]; 236 xvec[0].elements.Flt[Npts] = M2[i2]; 236 237 Npts++; 237 238 if (Npts >= NPTS) { 238 239 NPTS += 2000; 239 REALLOCATE (xvec[0].elements , float, NPTS);240 REALLOCATE (yvec[0].elements , float, NPTS);240 REALLOCATE (xvec[0].elements.Flt, opihi_flt, NPTS); 241 REALLOCATE (yvec[0].elements.Flt, opihi_flt, NPTS); 241 242 } 242 243 } … … 305 306 KapaSetLimits (kapa, &graphdata); 306 307 KapaBox (kapa, &graphdata); 307 KapaPrepPlot (kapa, Npts, &graphdata); 308 KapaPlotVector (kapa, Npts, xvec[0].elements, "x"); 309 KapaPlotVector (kapa, Npts, yvec[0].elements, "y"); 308 309 PlotVectorPair (kapa, Npts, xvec[0].elements.Flt, yvec[0].elements.Flt, &graphdata); 310 310 311 311 for (i = 0; i < 11; i++) { … … 314 314 graphdata.style = 0; 315 315 graphdata.color = KapaColorByName ("red"); 316 KapaPrepPlot (kapa, 11, &graphdata); 317 KapaPlotVector (kapa, 11, colorFit, "x"); 318 KapaPlotVector (kapa, 11, deltaFit, "y"); 316 317 PlotVectorPair (kapa, 11, colorFit, deltaFit, &graphdata); 319 318 320 319 KapaSetFont (kapa, "helvetica", 8); -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/gstar.c
r19823 r20839 136 136 N = 0; 137 137 NPTS = 1000; 138 ALLOCATE (vec1[0].elements , float, NPTS);139 ALLOCATE (vec2[0].elements , float, NPTS);140 ALLOCATE (vec3[0].elements , float, NPTS);141 ALLOCATE (vec4[0].elements , float, NPTS);138 ALLOCATE (vec1[0].elements.Flt, opihi_flt, NPTS); 139 ALLOCATE (vec2[0].elements.Flt, opihi_flt, NPTS); 140 ALLOCATE (vec3[0].elements.Flt, opihi_flt, NPTS); 141 ALLOCATE (vec4[0].elements.Flt, opihi_flt, NPTS); 142 142 } 143 143 … … 250 250 251 251 if (SaveVectors) { 252 vec1[0].elements [N] = Mcat;253 vec2[0].elements [N] = TimeValue (catalog.measure[m].t, TimeReference, TimeFormat);254 vec3[0].elements [N] = catalog.measure[m].airmass;255 vec4[0].elements [N] = catalog.measure[m].photcode;252 vec1[0].elements.Flt[N] = Mcat; 253 vec2[0].elements.Flt[N] = TimeValue (catalog.measure[m].t, TimeReference, TimeFormat); 254 vec3[0].elements.Flt[N] = catalog.measure[m].airmass; 255 vec4[0].elements.Flt[N] = catalog.measure[m].photcode; 256 256 N ++; 257 257 if (N == NPTS - 1) { 258 258 NPTS += 2000; 259 REALLOCATE (vec1[0].elements , float, NPTS);260 REALLOCATE (vec2[0].elements , float, NPTS);261 REALLOCATE (vec3[0].elements , float, NPTS);262 REALLOCATE (vec4[0].elements , float, NPTS);259 REALLOCATE (vec1[0].elements.Flt, opihi_flt, NPTS); 260 REALLOCATE (vec2[0].elements.Flt, opihi_flt, NPTS); 261 REALLOCATE (vec3[0].elements.Flt, opihi_flt, NPTS); 262 REALLOCATE (vec4[0].elements.Flt, opihi_flt, NPTS); 263 263 } 264 264 } -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/images.c
r19823 r20839 113 113 114 114 npts = NPTS = 200; 115 ALLOCATE (Xvec.elements , float, NPTS);116 ALLOCATE (Yvec.elements , float, NPTS);115 ALLOCATE (Xvec.elements.Flt, opihi_flt, NPTS); 116 ALLOCATE (Yvec.elements.Flt, opihi_flt, NPTS); 117 117 ALLOCATE (plist, int, NPTS); 118 118 n = N = 0; … … 238 238 status = FALSE; 239 239 for (j = 0; j < Npts; j++) { 240 status |= fRD_to_XY (&Xvec.elements[N+2*j], &Yvec.elements[N+2*j], r[j], d[j], &graphmode.coords);240 status |= RD_to_XY (&Xvec.elements.Flt[N+2*j], &Yvec.elements.Flt[N+2*j], r[j], d[j], &graphmode.coords); 241 241 if (j > 0) { 242 Xvec.elements [N+2*j - 1] = Xvec.elements[N+2*j];243 Yvec.elements [N+2*j - 1] = Yvec.elements[N+2*j];242 Xvec.elements.Flt[N+2*j - 1] = Xvec.elements.Flt[N+2*j]; 243 Yvec.elements.Flt[N+2*j - 1] = Yvec.elements.Flt[N+2*j]; 244 244 } 245 245 } 246 Xvec.elements [N+2*Npts-1] = Xvec.elements[N];247 Yvec.elements [N+2*Npts-1] = Yvec.elements[N];246 Xvec.elements.Flt[N+2*Npts-1] = Xvec.elements.Flt[N]; 247 Yvec.elements.Flt[N+2*Npts-1] = Yvec.elements.Flt[N]; 248 248 if (!status) continue; 249 249 // if none of the points are on the visible side of the projection, do not plot the image … … 251 251 InPic = FALSE; 252 252 for (j = 0; j < 2*Npts; j+=2) { 253 if ((Xvec.elements [N+j] >= graphmode.xmin) &&254 (Xvec.elements [N+j] <= graphmode.xmax) &&255 (Yvec.elements [N+j] >= graphmode.ymin) &&256 (Yvec.elements [N+j] <= graphmode.ymax))253 if ((Xvec.elements.Flt[N+j] >= graphmode.xmin) && 254 (Xvec.elements.Flt[N+j] <= graphmode.xmax) && 255 (Yvec.elements.Flt[N+j] >= graphmode.ymin) && 256 (Yvec.elements.Flt[N+j] <= graphmode.ymax)) 257 257 InPic = TRUE; 258 258 } … … 269 269 if (N + 16 >= NPTS) { /* need to leave room for 8 point image */ 270 270 NPTS += 400; 271 REALLOCATE (Xvec.elements , float, NPTS);272 REALLOCATE (Yvec.elements , float, NPTS);271 REALLOCATE (Xvec.elements.Flt, opihi_flt, NPTS); 272 REALLOCATE (Yvec.elements.Flt, opihi_flt, NPTS); 273 273 } 274 274 } … … 280 280 graphmode.ptype = 100; /* connect pairs of points */ 281 281 graphmode.etype = 0; 282 PlotVectorPair (kapa, N, Xvec.elements , Yvec.elements, &graphmode);283 } 284 285 free (Xvec.elements );286 free (Yvec.elements );282 PlotVectorPair (kapa, N, Xvec.elements.Flt, Yvec.elements.Flt, &graphmode); 283 } 284 285 free (Xvec.elements.Flt); 286 free (Yvec.elements.Flt); 287 287 free (image); 288 288 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/imbox.c
r20212 r20839 36 36 37 37 /* project this image to screen display coords */ 38 ALLOCATE (Xvec.elements , float, 8);39 ALLOCATE (Yvec.elements , float, 8);38 ALLOCATE (Xvec.elements.Flt, opihi_flt, 8); 39 ALLOCATE (Yvec.elements.Flt, opihi_flt, 8); 40 40 41 41 while (gfits_fread_header (f, &header)) { … … 82 82 while (r > Rmid) r-= 360.0; 83 83 } 84 status |= fRD_to_XY (&Xvec.elements[2*j], &Yvec.elements[2*j], r, d, &graphmode.coords);84 status |= RD_to_XY (&Xvec.elements.Flt[2*j], &Yvec.elements.Flt[2*j], r, d, &graphmode.coords); 85 85 if (j > 0) { 86 Xvec.elements [2*j - 1] = Xvec.elements[2*j];87 Yvec.elements [2*j - 1] = Yvec.elements[2*j];86 Xvec.elements.Flt[2*j - 1] = Xvec.elements.Flt[2*j]; 87 Yvec.elements.Flt[2*j - 1] = Yvec.elements.Flt[2*j]; 88 88 } 89 89 } 90 Xvec.elements [7] = Xvec.elements[0];91 Yvec.elements [7] = Yvec.elements[0];90 Xvec.elements.Flt[7] = Xvec.elements.Flt[0]; 91 Yvec.elements.Flt[7] = Yvec.elements.Flt[0]; 92 92 InPic = FALSE; 93 93 for (j = 0; j < 8; j+=2) { 94 if ((Xvec.elements [j] >= graphmode.xmin) &&95 (Xvec.elements [j] <= graphmode.xmax) &&96 (Yvec.elements [j] >= graphmode.ymin) &&97 (Yvec.elements [j] <= graphmode.ymax))94 if ((Xvec.elements.Flt[j] >= graphmode.xmin) && 95 (Xvec.elements.Flt[j] <= graphmode.xmax) && 96 (Yvec.elements.Flt[j] >= graphmode.ymin) && 97 (Yvec.elements.Flt[j] <= graphmode.ymax)) 98 98 InPic = TRUE; 99 99 } … … 104 104 graphmode.ptype = 100; /* connect pairs of points */ 105 105 graphmode.etype = 0; 106 PlotVectorPair (kapa, 8, Xvec.elements , Yvec.elements, &graphmode);106 PlotVectorPair (kapa, 8, Xvec.elements.Flt, Yvec.elements.Flt, &graphmode); 107 107 } 108 108 skip: … … 112 112 } 113 113 fclose (f); 114 free (Xvec.elements );115 free (Yvec.elements );114 free (Xvec.elements.Flt); 115 free (Yvec.elements.Flt); 116 116 return (TRUE); 117 117 -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/imdata.c
r20820 r20839 125 125 /* create output vector */ 126 126 NPTS = 1000; 127 REALLOCATE (vec[0].elements , float, NPTS);127 REALLOCATE (vec[0].elements.Flt, opihi_flt, NPTS); 128 128 vec[0].Nelements = N = 0; 129 129 … … 153 153 if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue; 154 154 n = catalog.measure[i].averef; 155 vec[0].elements [N] = catalog.average[n].R - catalog.measure[i].dR / 3600.0;156 N++; 157 CHECK_REALLOCATE (vec[0].elements , float, NPTS, N, 1000);155 vec[0].elements.Flt[N] = catalog.average[n].R - catalog.measure[i].dR / 3600.0; 156 N++; 157 CHECK_REALLOCATE (vec[0].elements.Flt, opihi_flt, NPTS, N, 1000); 158 158 } 159 159 break; … … 162 162 if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue; 163 163 n = catalog.measure[i].averef; 164 vec[0].elements [N] = catalog.average[n].D - catalog.measure[i].dD / 3600.0;165 N++; 166 CHECK_REALLOCATE (vec[0].elements , float, NPTS, N, 1000);164 vec[0].elements.Flt[N] = catalog.average[n].D - catalog.measure[i].dD / 3600.0; 165 N++; 166 CHECK_REALLOCATE (vec[0].elements.Flt, opihi_flt, NPTS, N, 1000); 167 167 } 168 168 break; … … 170 170 for (i = 0; i < catalog.Nmeasure; i++) { 171 171 if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue; 172 vec[0].elements [N] = catalog.measure[i].M;173 N++; 174 CHECK_REALLOCATE (vec[0].elements , float, NPTS, N, 1000);172 vec[0].elements.Flt[N] = catalog.measure[i].M; 173 N++; 174 CHECK_REALLOCATE (vec[0].elements.Flt, opihi_flt, NPTS, N, 1000); 175 175 } 176 176 break; … … 178 178 for (i = 0; i < catalog.Nmeasure; i++) { 179 179 if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue; 180 vec[0].elements [N] = catalog.measure[i].dM;181 N++; 182 CHECK_REALLOCATE (vec[0].elements , float, NPTS, N, 1000);180 vec[0].elements.Flt[N] = catalog.measure[i].dM; 181 N++; 182 CHECK_REALLOCATE (vec[0].elements.Flt, opihi_flt, NPTS, N, 1000); 183 183 } 184 184 break; … … 186 186 for (i = 0; i < catalog.Nmeasure; i++) { 187 187 if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue; 188 vec[0].elements [N] = catalog.measure[i].Mcal;189 N++; 190 CHECK_REALLOCATE (vec[0].elements , float, NPTS, N, 1000);188 vec[0].elements.Flt[N] = catalog.measure[i].Mcal; 189 N++; 190 CHECK_REALLOCATE (vec[0].elements.Flt, opihi_flt, NPTS, N, 1000); 191 191 } 192 192 break; … … 195 195 if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue; 196 196 n = catalog.measure[i].averef; 197 // vec[0].elements [N] = catalog.average[n].M;197 // vec[0].elements.Flt[N] = catalog.average[n].M; 198 198 N++; 199 199 } … … 202 202 for (i = 0; i < catalog.Nmeasure; i++) { 203 203 if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue; 204 vec[0].elements [N] = catalog.measure[i].photcode;205 N++; 206 CHECK_REALLOCATE (vec[0].elements , float, NPTS, N, 1000);204 vec[0].elements.Flt[N] = catalog.measure[i].photcode; 205 N++; 206 CHECK_REALLOCATE (vec[0].elements.Flt, opihi_flt, NPTS, N, 1000); 207 207 } 208 208 break; … … 210 210 for (i = 0; i < catalog.Nmeasure; i++) { 211 211 if ((catalog.measure[i].t < start) || (catalog.measure[i].t > stop)) continue; 212 vec[0].elements [N] = TimeValue (catalog.measure[i].t, TimeReference, TimeFormat);213 N++; 214 CHECK_REALLOCATE (vec[0].elements , float, NPTS, N, 1000);212 vec[0].elements.Flt[N] = TimeValue (catalog.measure[i].t, TimeReference, TimeFormat); 213 N++; 214 CHECK_REALLOCATE (vec[0].elements.Flt, opihi_flt, NPTS, N, 1000); 215 215 } 216 216 break; … … 220 220 221 221 vec[0].Nelements = N; 222 REALLOCATE (vec[0].elements , float, MAX(1,N));222 REALLOCATE (vec[0].elements.Flt, opihi_flt, MAX(1,N)); 223 223 return (TRUE); 224 224 } -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/imdense.c
r19823 r20839 31 31 32 32 NPTS = 200; 33 ALLOCATE (Xvec.elements , float, NPTS);34 ALLOCATE (Yvec.elements , float, NPTS);33 ALLOCATE (Xvec.elements.Flt, opihi_flt, NPTS); 34 ALLOCATE (Yvec.elements.Flt, opihi_flt, NPTS); 35 35 N = 0; 36 36 for (i = 0; i < Nimage; i++) { … … 45 45 while (r < Rmin) r += 360.0; 46 46 while (r > Rmax) r -= 360.0; 47 status |= fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], r, d, &graphmode.coords);48 if ((Xvec.elements [N] >= graphmode.xmin) &&49 (Xvec.elements [N] <= graphmode.xmax) &&50 (Yvec.elements [N] >= graphmode.ymin) &&51 (Yvec.elements [N] <= graphmode.ymax) && status) {47 status |= RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], r, d, &graphmode.coords); 48 if ((Xvec.elements.Flt[N] >= graphmode.xmin) && 49 (Xvec.elements.Flt[N] <= graphmode.xmax) && 50 (Yvec.elements.Flt[N] >= graphmode.ymin) && 51 (Yvec.elements.Flt[N] <= graphmode.ymax) && status) { 52 52 N++; 53 53 if (N > NPTS - 1) { 54 54 NPTS += 200; 55 REALLOCATE (Xvec.elements , float, NPTS);56 REALLOCATE (Yvec.elements , float, NPTS);55 REALLOCATE (Xvec.elements.Flt, opihi_flt, NPTS); 56 REALLOCATE (Yvec.elements.Flt, opihi_flt, NPTS); 57 57 } 58 58 } … … 63 63 graphmode.style = 2; /* points */ 64 64 graphmode.etype = 0; 65 PlotVectorPair (kapa, N, Xvec.elements , Yvec.elements, &graphmode);65 PlotVectorPair (kapa, N, Xvec.elements.Flt, Yvec.elements.Flt, &graphmode); 66 66 } 67 67 68 free (Xvec.elements );69 free (Yvec.elements );68 free (Xvec.elements.Flt); 69 free (Yvec.elements.Flt); 70 70 free (image); 71 71 return (TRUE); -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/imextract.c
r17246 r20839 165 165 166 166 /* create storage vector */ 167 REALLOCATE (vec[0].elements , float, Nimage);167 REALLOCATE (vec[0].elements.Flt, opihi_flt, Nimage); 168 168 vec[0].Nelements = Nimage; 169 169 … … 186 186 y = 0.5*image[j].NY; 187 187 XY_to_RD (&ra, &dec, x, y, &image[j].coords); 188 vec[0].elements [N] = ra;188 vec[0].elements.Flt[N] = ra; 189 189 break; 190 190 case DEC: … … 193 193 y = 0.5*image[j].NY; 194 194 XY_to_RD (&ra, &dec, x, y, &image[j].coords); 195 vec[0].elements [N] = dec;195 vec[0].elements.Flt[N] = dec; 196 196 break; 197 197 case Xm: 198 vec[0].elements [N] = pow(10.0, 0.01*image[j].Xm);198 vec[0].elements.Flt[N] = pow(10.0, 0.01*image[j].Xm); 199 199 break; 200 200 case AIRMASS: 201 vec[0].elements [N] = image[j].secz;201 vec[0].elements.Flt[N] = image[j].secz; 202 202 break; 203 203 case MCAL: 204 vec[0].elements [N] = image[j].Mcal;204 vec[0].elements.Flt[N] = image[j].Mcal; 205 205 break; 206 206 case dMCAL: 207 vec[0].elements [N] = image[j].dMcal;207 vec[0].elements.Flt[N] = image[j].dMcal; 208 208 break; 209 209 case PHOTCODE: 210 vec[0].elements [N] = image[j].photcode;210 vec[0].elements.Flt[N] = image[j].photcode; 211 211 break; 212 212 case TIME: 213 213 t = image[j].tzero + 0.5*image[j].NY * image[j].trate / 10000; 214 vec[0].elements [N] = TimeValue (t, TimeReference, TimeFormat);214 vec[0].elements.Flt[N] = TimeValue (t, TimeReference, TimeFormat); 215 215 break; 216 216 case FWHM: 217 vec[0].elements [N] = image[j].fwhm_x / 25.0;217 vec[0].elements.Flt[N] = image[j].fwhm_x / 25.0; 218 218 break; 219 219 case EXPTIME: 220 vec[0].elements [N] = image[j].exptime;220 vec[0].elements.Flt[N] = image[j].exptime; 221 221 break; 222 222 case NSTAR: 223 vec[0].elements [N] = image[j].nstar;223 vec[0].elements.Flt[N] = image[j].nstar; 224 224 break; 225 225 case NCAL: 226 vec[0].elements [N] = image[j].Mxxxx;226 vec[0].elements.Flt[N] = image[j].Mxxxx; 227 227 break; 228 228 case SKY: 229 vec[0].elements [N] = image[j].Myyyy + 0x8000;229 vec[0].elements.Flt[N] = image[j].Myyyy + 0x8000; 230 230 break; 231 231 case FLAG: 232 vec[0].elements [N] = image[j].code;232 vec[0].elements.Flt[N] = image[j].code; 233 233 break; 234 234 case NX_PIX: 235 vec[0].elements [N] = image[j].NX;235 vec[0].elements.Flt[N] = image[j].NX; 236 236 break; 237 237 case NY_PIX: 238 vec[0].elements [N] = image[j].NY;238 vec[0].elements.Flt[N] = image[j].NY; 239 239 break; 240 240 case IMAGE_ID: 241 vec[0].elements [N] = image[j].imageID;241 vec[0].elements.Flt[N] = image[j].imageID; 242 242 break; 243 243 case THETA: { … … 247 247 theta1 = DEG_RAD*atan2 (+s1*image[j].coords.pc1_2, s1*image[j].coords.pc1_1); 248 248 theta2 = DEG_RAD*atan2 (-s2*image[j].coords.pc2_1, s2*image[j].coords.pc2_2); 249 vec[0].elements [N] = 0.5*(theta1+theta2);249 vec[0].elements.Flt[N] = 0.5*(theta1+theta2); 250 250 break; } 251 251 case SKEW: { … … 255 255 theta1 = DEG_RAD*atan2 (+s1*image[j].coords.pc1_2, s1*image[j].coords.pc1_1); 256 256 theta2 = DEG_RAD*atan2 (-s2*image[j].coords.pc2_1, s2*image[j].coords.pc2_2); 257 vec[0].elements [N] = (theta1-theta2);257 vec[0].elements.Flt[N] = (theta1-theta2); 258 258 break; } 259 259 case SCALE: { … … 261 261 scale1 = fabs(image[j].coords.cdelt1); 262 262 scale2 = fabs(image[j].coords.cdelt2); 263 vec[0].elements [N] = 0.5*(scale1+scale2);263 vec[0].elements.Flt[N] = 0.5*(scale1+scale2); 264 264 break; } 265 265 case DSCALE: { … … 267 267 scale1 = fabs(image[j].coords.cdelt1); 268 268 scale2 = fabs(image[j].coords.cdelt2); 269 vec[0].elements [N] = (scale1-scale2);269 vec[0].elements.Flt[N] = (scale1-scale2); 270 270 break; } 271 271 … … 275 275 case Y_LR_CHIP: 276 276 case X_UL_CHIP: 277 vec[0].elements [N] = 0.0;277 vec[0].elements.Flt[N] = 0.0; 278 278 break; 279 279 case X_LR_CHIP: 280 280 case X_UR_CHIP: 281 vec[0].elements [N] = image[j].NX;281 vec[0].elements.Flt[N] = image[j].NX; 282 282 break; 283 283 case Y_UL_CHIP: 284 284 case Y_UR_CHIP: 285 vec[0].elements [N] = image[j].NX;285 vec[0].elements.Flt[N] = image[j].NX; 286 286 break; 287 287 … … 289 289 case Y_LL_FP: 290 290 XY_to_LM (&x, &y, 0.0, 0.0, &image[j].coords); 291 vec[0].elements [N] = (mode == X_LL_FP) ? x : y;291 vec[0].elements.Flt[N] = (mode == X_LL_FP) ? x : y; 292 292 break; 293 293 case X_LR_FP: 294 294 case Y_LR_FP: 295 295 XY_to_LM (&x, &y, image[j].NX, 0.0, &image[j].coords); 296 vec[0].elements [N] = (mode == X_LR_FP) ? x : y;296 vec[0].elements.Flt[N] = (mode == X_LR_FP) ? x : y; 297 297 break; 298 298 case X_UL_FP: 299 299 case Y_UL_FP: 300 300 XY_to_LM (&x, &y, 0.0, image[j].NY, &image[j].coords); 301 vec[0].elements [N] = (mode == X_UL_FP) ? x : y;301 vec[0].elements.Flt[N] = (mode == X_UL_FP) ? x : y; 302 302 break; 303 303 case X_UR_FP: 304 304 case Y_UR_FP: 305 305 XY_to_LM (&x, &y, image[j].NX, image[j].NY, &image[j].coords); 306 vec[0].elements [N] = (mode == X_UR_FP) ? x : y;306 vec[0].elements.Flt[N] = (mode == X_UR_FP) ? x : y; 307 307 break; 308 308 } … … 311 311 312 312 vec[0].Nelements = N; 313 REALLOCATE (vec[0].elements , float, N);313 REALLOCATE (vec[0].elements.Flt, opihi_flt, N); 314 314 315 315 free (subset); -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/imrough.c
r14590 r20839 13 13 char DataBase[256], *Filter; 14 14 double trange; 15 float *Vec;15 opihi_flt *Vec; 16 16 time_t tzero, tend, TimeReference; 17 17 RegImage *image; … … 132 132 N = 0; 133 133 NVEC = 1000; 134 REALLOCATE (vec[0].elements , float, NVEC);135 Vec = vec[0].elements ;134 REALLOCATE (vec[0].elements.Flt, opihi_flt, NVEC); 135 Vec = vec[0].elements.Flt; 136 136 137 137 GetTimeFormat (&TimeReference, &TimeFormat); … … 216 216 if (N >= NVEC - 1) { 217 217 NVEC += 1000; 218 REALLOCATE (vec[0].elements , float, NVEC);219 Vec = vec[0].elements ;220 } 221 } 222 223 REALLOCATE (vec[0].elements , float, MAX (1,N));218 REALLOCATE (vec[0].elements.Flt, opihi_flt, NVEC); 219 Vec = vec[0].elements.Flt; 220 } 221 } 222 223 REALLOCATE (vec[0].elements.Flt, opihi_flt, MAX (1,N)); 224 224 vec[0].Nelements = N; 225 225 -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/imstats.c
r13479 r20839 35 35 Xvec.Nelements = Nimage; 36 36 Yvec.Nelements = Nimage; 37 ALLOCATE (Xvec.elements , float, Xvec.Nelements);38 ALLOCATE (Yvec.elements , float, Yvec.Nelements);37 ALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 38 ALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 39 39 gprint (GP_LOG, "seq ra (J2000) dec time (s) Nstars\n"); 40 40 for (i = 0; i < Nimage; i++) { 41 Xvec.elements [i] = image[i].secz;41 Xvec.elements.Flt[i] = image[i].secz; 42 42 if (Mcal) 43 Yvec.elements [i] = image[i].Mcal;43 Yvec.elements.Flt[i] = image[i].Mcal; 44 44 else 45 Yvec.elements [i] = image[i].dMcal;45 Yvec.elements.Flt[i] = image[i].dMcal; 46 46 if (!FindMosaicForImage (image, Nimage, i)) continue; 47 47 XY_to_RD (&r, &d, 0.5*image[i].NX, 0.5*image[i].NY, &image[i].coords); 48 48 gprint (GP_ERR, "%d %8.4f %8.4f %10d %6d %5.3f %6.3f %6.3f\n", 49 i, r, d, image[i].tzero, image[i].nstar, Xvec.elements [i],49 i, r, d, image[i].tzero, image[i].nstar, Xvec.elements.Flt[i], 50 50 image[i].Mcal, image[i].dMcal); 51 51 } … … 54 54 graphmode.style = 2; 55 55 graphmode.etype = 0; 56 PlotVectorPair (kapa, Nimage, Xvec.elements , Yvec.elements, &graphmode);56 PlotVectorPair (kapa, Nimage, Xvec.elements.Flt, Yvec.elements.Flt, &graphmode); 57 57 58 free (Xvec.elements );59 free (Yvec.elements );58 free (Xvec.elements.Flt); 59 free (Yvec.elements.Flt); 60 60 return (TRUE); 61 61 } -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/lcurve.c
r16810 r20839 103 103 104 104 NPTS = 100; 105 ALLOCATE (Xvec.elements , float, NPTS);106 ALLOCATE (Yvec.elements , float, NPTS);107 dYvec.elements = NULL;108 if (ErrorBars) { ALLOCATE (dYvec.elements , float, NPTS); }105 ALLOCATE (Xvec.elements.Flt, opihi_flt, NPTS); 106 ALLOCATE (Yvec.elements.Flt, opihi_flt, NPTS); 107 dYvec.elements.Flt = NULL; 108 if (ErrorBars) { ALLOCATE (dYvec.elements.Flt, opihi_flt, NPTS); } 109 109 N = 0; 110 110 … … 124 124 m = catalog.average[N1[i]].measureOffset; 125 125 for (j = 0; j < catalog.average[N1[i]].Nmeasure; j++, m++) { 126 if (ErrorBars) dYvec.elements [N] = catalog.measure[m].dM;127 Xvec.elements [N] = TimeValue (catalog.measure[m].t, TimeReference, TimeFormat);128 Yvec.elements [N] = PhotCat (&catalog.measure[m]);126 if (ErrorBars) dYvec.elements.Flt[N] = catalog.measure[m].dM; 127 Xvec.elements.Flt[N] = TimeValue (catalog.measure[m].t, TimeReference, TimeFormat); 128 Yvec.elements.Flt[N] = PhotCat (&catalog.measure[m]); 129 129 /**** need to use PhotRel optionally here ****/ 130 130 N++; 131 131 if (N == NPTS) { 132 132 NPTS += 100; 133 REALLOCATE (Xvec.elements , float, NPTS);134 REALLOCATE (Yvec.elements , float, NPTS);135 if (ErrorBars) { REALLOCATE (dYvec.elements , float, NPTS); }133 REALLOCATE (Xvec.elements.Flt, opihi_flt, NPTS); 134 REALLOCATE (Yvec.elements.Flt, opihi_flt, NPTS); 135 if (ErrorBars) { REALLOCATE (dYvec.elements.Flt, opihi_flt, NPTS); } 136 136 } 137 137 } … … 142 142 143 143 if (ErrorBars) 144 fsortthree (Xvec.elements, Yvec.elements, dYvec.elements, N);144 dsortthree (Xvec.elements.Flt, Yvec.elements.Flt, dYvec.elements.Flt, N); 145 145 else 146 fsortpair (Xvec.elements, Yvec.elements, N);146 dsortpair (Xvec.elements.Flt, Yvec.elements.Flt, N); 147 147 148 148 /* autoscale the plot */ … … 154 154 graphmode.etype = 0; 155 155 156 KapaPrepPlot (kapa, N, &graphmode);157 KapaPlotVector (kapa, N, Xvec.elements, "x");158 KapaPlotVector (kapa, N, Yvec.elements, "y");159 156 if (ErrorBars) { 160 KapaPlotVector (kapa, N, dYvec.elements, "dym"); 161 KapaPlotVector (kapa, N, dYvec.elements, "dyp"); 157 PlotVectorPairErrors (kapa, N, Xvec.elements.Flt, Yvec.elements.Flt, dYvec.elements.Flt, &graphmode); 158 } else { 159 PlotVectorPair (kapa, N, Xvec.elements.Flt, Yvec.elements.Flt, &graphmode); 162 160 } 163 161 … … 175 173 176 174 if (SaveVectors) { 177 free (xvec[0].elements );178 free (yvec[0].elements );179 xvec[0].elements = Xvec.elements;180 yvec[0].elements = Yvec.elements;175 free (xvec[0].elements.Flt); 176 free (yvec[0].elements.Flt); 177 xvec[0].elements.Flt = Xvec.elements.Flt; 178 yvec[0].elements.Flt = Yvec.elements.Flt; 181 179 xvec[0].Nelements = yvec[0].Nelements = Xvec.Nelements; 182 180 } else { 183 free (Xvec.elements );184 free (Yvec.elements );181 free (Xvec.elements.Flt); 182 free (Yvec.elements.Flt); 185 183 } 186 184 187 if (ErrorBars) free (dYvec.elements );185 if (ErrorBars) free (dYvec.elements.Flt); 188 186 dvo_catalog_free (&catalog); 189 187 -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/lightcurve.c
r16810 r20839 87 87 N = 0; 88 88 NPTS = 100; 89 REALLOCATE (tvec[0].elements , float, NPTS);90 REALLOCATE (mvec[0].elements , float, NPTS);91 REALLOCATE (dmvec[0].elements , float, NPTS);89 REALLOCATE (tvec[0].elements.Flt, opihi_flt, NPTS); 90 REALLOCATE (mvec[0].elements.Flt, opihi_flt, NPTS); 91 REALLOCATE (dmvec[0].elements.Flt, opihi_flt, NPTS); 92 92 93 93 GetTimeFormat (&TimeReference, &TimeFormat); … … 117 117 } 118 118 119 tvec[0].elements [N] = TimeValue (catalog.measure[m].t, TimeReference, TimeFormat);120 dmvec[0].elements [N] = catalog.measure[m].dM;119 tvec[0].elements.Flt[N] = TimeValue (catalog.measure[m].t, TimeReference, TimeFormat); 120 dmvec[0].elements.Flt[N] = catalog.measure[m].dM; 121 121 if (RELPHOT) { 122 mvec[0].elements [N] = PhotCat (&catalog.measure[m]);122 mvec[0].elements.Flt[N] = PhotCat (&catalog.measure[m]); 123 123 } else { 124 mvec[0].elements [N] = PhotRel (&catalog.measure[m], &catalog.average[k], &catalog.secfilt[k*Nsecfilt]);124 mvec[0].elements.Flt[N] = PhotRel (&catalog.measure[m], &catalog.average[k], &catalog.secfilt[k*Nsecfilt]); 125 125 } 126 126 N++; 127 127 if (N == NPTS) { 128 128 NPTS += 100; 129 REALLOCATE (tvec[0].elements , float, NPTS);130 REALLOCATE (mvec[0].elements , float, NPTS);131 REALLOCATE (dmvec[0].elements , float, NPTS);129 REALLOCATE (tvec[0].elements.Flt, opihi_flt, NPTS); 130 REALLOCATE (mvec[0].elements.Flt, opihi_flt, NPTS); 131 REALLOCATE (dmvec[0].elements.Flt, opihi_flt, NPTS); 132 132 } 133 133 } 134 134 } 135 135 } 136 fsortthree (tvec[0].elements, mvec[0].elements, dmvec[0].elements, N);136 dsortthree (tvec[0].elements.Flt, mvec[0].elements.Flt, dmvec[0].elements.Flt, N); 137 137 tvec[0].Nelements = mvec[0].Nelements = dmvec[0].Nelements = N; 138 138 -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/mextract.c
r20820 r20839 139 139 if (!dbBooleanCond (stack, Nstack, values)) continue; 140 140 for (n = 0; n < Nreturn; n++) { 141 vec[n][0].elements [Npts] = values[n];141 vec[n][0].elements.Flt[Npts] = values[n]; 142 142 // fprintf (stderr, "keep : field: %s, value: %f\n", fields[n].name, values[n]); 143 143 } … … 146 146 NPTS += 2000; 147 147 for (n = 0; n < Nreturn; n++) { 148 REALLOCATE (vec[n][0].elements , float, NPTS);148 REALLOCATE (vec[n][0].elements.Flt, opihi_flt, NPTS); 149 149 } 150 150 } … … 162 162 for (n = 0; n < Nreturn; n++) { 163 163 vec[n][0].Nelements = Npts; 164 REALLOCATE (vec[n][0].elements , float, MAX(1,Npts));164 REALLOCATE (vec[n][0].elements.Flt, opihi_flt, MAX(1,Npts)); 165 165 } 166 166 -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/mmextract.c
r20820 r20839 232 232 for (n2 = 0; n2 < Nt2; n2++) { 233 233 for (n = 0; n < Nreturn_base; n++) { 234 vec[2*n+0][0].elements [Npts] = table1[n][n1];235 vec[2*n+1][0].elements [Npts] = table2[n][n2];234 vec[2*n+0][0].elements.Flt[Npts] = table1[n][n1]; 235 vec[2*n+1][0].elements.Flt[Npts] = table2[n][n2]; 236 236 } 237 237 Npts++; … … 239 239 NPTS += 2000; 240 240 for (n = 0; n < Nreturn; n++) { 241 REALLOCATE (vec[n][0].elements , float, NPTS);241 REALLOCATE (vec[n][0].elements.Flt, opihi_flt, NPTS); 242 242 } 243 243 } … … 257 257 for (n = 0; n < Nreturn; n++) { 258 258 vec[n][0].Nelements = Npts; 259 REALLOCATE (vec[n][0].elements , float, MAX(1,Npts));259 REALLOCATE (vec[n][0].elements.Flt, opihi_flt, MAX(1,Npts)); 260 260 } 261 261 -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/paverage.c
r20820 r20839 10 10 double Radius, Rmin, Rmax, R, D; 11 11 unsigned IDclip, IDchoice, LimExclude; 12 float *Xvec, *Yvec, *Zvec;12 opihi_flt *Xvec, *Yvec, *Zvec; 13 13 void *Signal; 14 14 … … 96 96 Npts = 0; 97 97 NPTS = 1000; 98 ALLOCATE (Xvec, float, NPTS);99 ALLOCATE (Yvec, float, NPTS);100 ALLOCATE (Zvec, float, NPTS);98 ALLOCATE (Xvec, opihi_flt, NPTS); 99 ALLOCATE (Yvec, opihi_flt, NPTS); 100 ALLOCATE (Zvec, opihi_flt, NPTS); 101 101 102 102 // prepare to handle interrupt signals … … 133 133 R = average[i].R; 134 134 D = average[i].D; 135 status = fRD_to_XY (&Xvec[Npts], &Yvec[Npts], R, D, &graphmode.coords);135 status = RD_to_XY (&Xvec[Npts], &Yvec[Npts], R, D, &graphmode.coords); 136 136 if (!status) continue; 137 137 Npts ++; … … 139 139 if (Npts == NPTS - 1) { 140 140 NPTS += 1000; 141 REALLOCATE (Xvec, float, NPTS);142 REALLOCATE (Yvec, float, NPTS);143 REALLOCATE (Zvec, float, NPTS);141 REALLOCATE (Xvec, opihi_flt, NPTS); 142 REALLOCATE (Yvec, opihi_flt, NPTS); 143 REALLOCATE (Zvec, opihi_flt, NPTS); 144 144 } 145 145 if ((Npts > NCHUNK) || (Nloaded >= 25)) { -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/pmeasure.c
r20820 r20839 14 14 unsigned photFlagChoice, photFlagClip; 15 15 int PhotcodeClip; 16 float *Xvec, *Yvec, *Zvec;16 opihi_flt *Xvec, *Yvec, *Zvec; 17 17 time_t tzero, tend; 18 18 void *Signal; … … 169 169 Npts = 0; 170 170 NPTS = 1000; 171 ALLOCATE (Xvec, float, NPTS);172 ALLOCATE (Yvec, float, NPTS);173 ALLOCATE (Zvec, float, NPTS);171 ALLOCATE (Xvec, opihi_flt, NPTS); 172 ALLOCATE (Yvec, opihi_flt, NPTS); 173 ALLOCATE (Zvec, opihi_flt, NPTS); 174 174 175 175 // prepare to handle interrupt signals … … 218 218 free (date); 219 219 } 220 status = fRD_to_XY (&Xvec[Npts], &Yvec[Npts], R, D, &graphmode.coords);220 status = RD_to_XY (&Xvec[Npts], &Yvec[Npts], R, D, &graphmode.coords); 221 221 if (!status) continue; 222 222 Npts ++; … … 224 224 if (Npts == NPTS - 1) { 225 225 NPTS += 1000; 226 REALLOCATE (Xvec, float, NPTS);227 REALLOCATE (Yvec, float, NPTS);228 REALLOCATE (Zvec, float, NPTS);226 REALLOCATE (Xvec, opihi_flt, NPTS); 227 REALLOCATE (Yvec, opihi_flt, NPTS); 228 REALLOCATE (Zvec, opihi_flt, NPTS); 229 229 } 230 230 if ((Npts > NCHUNK) || (Nloaded >= 25)) { -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/procks.c
r19823 r20839 96 96 /* data has been loaded, get ready to plot it */ 97 97 Yvec.Nelements = Xvec.Nelements = 3*Nrocks; 98 ALLOCATE (Xvec.elements , float, Xvec.Nelements);99 ALLOCATE (Yvec.elements , float, Yvec.Nelements);98 ALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 99 ALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 100 100 101 101 /* project stars to screen display coords */ … … 106 106 while (rocks[i].ra[j] < Rmin) rocks[i].ra[j] += 360.0; 107 107 while (rocks[i].ra[j] > Rmax) rocks[i].ra[j] -= 360.0; 108 fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], rocks[i].ra[j], rocks[i].dec[j], &graphmode.coords);108 RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], rocks[i].ra[j], rocks[i].dec[j], &graphmode.coords); 109 109 N ++; 110 110 } … … 114 114 graphmode.style = 2; /* set style to points */ 115 115 graphmode.etype = 0; /* no errorbars */ 116 PlotVectorPair (kapa, N, Xvec.elements , Yvec.elements, &graphmode);116 PlotVectorPair (kapa, N, Xvec.elements.Flt, Yvec.elements.Flt, &graphmode); 117 117 118 118 /* now plot vectors between two extrema */ 119 119 Yvec.Nelements = Xvec.Nelements = 2*Nrocks; 120 REALLOCATE (Xvec.elements , float, Xvec.Nelements);121 REALLOCATE (Yvec.elements , float, Yvec.Nelements);120 REALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 121 REALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 122 122 123 123 /* project stars to screen display coords */ … … 136 136 while (rocks[i].ra[N1] < Rmin) rocks[i].ra[N1] += 360.0; 137 137 while (rocks[i].ra[N1] > Rmax) rocks[i].ra[N1] -= 360.0; 138 fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], rocks[i].ra[N0], rocks[i].dec[N0], &graphmode.coords);138 RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], rocks[i].ra[N0], rocks[i].dec[N0], &graphmode.coords); 139 139 N ++; 140 fRD_to_XY (&Xvec.elements[N], &Yvec.elements[N], rocks[i].ra[N1], rocks[i].dec[N1], &graphmode.coords);140 RD_to_XY (&Xvec.elements.Flt[N], &Yvec.elements.Flt[N], rocks[i].ra[N1], rocks[i].dec[N1], &graphmode.coords); 141 141 N ++; 142 142 } … … 147 147 graphmode.etype = 0; /* no errorbars */ 148 148 149 PlotVectorPair (kapa, N, Xvec.elements , Yvec.elements, &graphmode);149 PlotVectorPair (kapa, N, Xvec.elements.Flt, Yvec.elements.Flt, &graphmode); 150 150 151 free (Xvec.elements );152 free (Yvec.elements );151 free (Xvec.elements.Flt); 152 free (Yvec.elements.Flt); 153 153 return (TRUE); 154 154 -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/showtile.c
r13479 r20839 22 22 N = 0; 23 23 NPTS = 200; 24 ALLOCATE (Xvec.elements , float, NPTS);25 ALLOCATE (Yvec.elements , float, NPTS);24 ALLOCATE (Xvec.elements.Flt, opihi_flt, NPTS); 25 ALLOCATE (Yvec.elements.Flt, opihi_flt, NPTS); 26 26 27 27 /* starting position */ … … 49 49 for (i = 0; i < 4; i++) { 50 50 fXY_to_RD (&R, &D, dr[i], dd[i], &coords); 51 status |= fRD_to_XY (&Xvec.elements[N+2*i], &Yvec.elements[N+2*i], R, D, &graphmode.coords);51 status |= RD_to_XY (&Xvec.elements.Flt[N+2*i], &Yvec.elements.Flt[N+2*i], R, D, &graphmode.coords); 52 52 if (i > 0) { 53 Xvec.elements [N+2*i - 1] = Xvec.elements[N+2*i];54 Yvec.elements [N+2*i - 1] = Yvec.elements[N+2*i];53 Xvec.elements.Flt[N+2*i - 1] = Xvec.elements.Flt[N+2*i]; 54 Yvec.elements.Flt[N+2*i - 1] = Yvec.elements.Flt[N+2*i]; 55 55 } 56 56 if (i == 1) { … … 59 59 } 60 60 } 61 Xvec.elements [N+7] = Xvec.elements[N];62 Yvec.elements [N+7] = Yvec.elements[N];61 Xvec.elements.Flt[N+7] = Xvec.elements.Flt[N]; 62 Yvec.elements.Flt[N+7] = Yvec.elements.Flt[N]; 63 63 64 64 /* check if any corner is in plotting region */ 65 65 InPic = FALSE; 66 66 for (i = 0; i < 8; i+=2) { 67 if ((Xvec.elements [N+i] >= graphmode.xmin) &&68 (Xvec.elements [N+i] <= graphmode.xmax) &&69 (Yvec.elements [N+i] >= graphmode.ymin) &&70 (Yvec.elements [N+i] <= graphmode.ymax))67 if ((Xvec.elements.Flt[N+i] >= graphmode.xmin) && 68 (Xvec.elements.Flt[N+i] <= graphmode.xmax) && 69 (Yvec.elements.Flt[N+i] >= graphmode.ymin) && 70 (Yvec.elements.Flt[N+i] <= graphmode.ymax)) 71 71 InPic = TRUE; 72 72 } … … 75 75 if (N > NPTS - 1) { /* this is OK because NPTS is made always a multiple of 8 */ 76 76 NPTS += 200; 77 REALLOCATE (Xvec.elements , float, NPTS);78 REALLOCATE (Yvec.elements , float, NPTS);77 REALLOCATE (Xvec.elements.Flt, opihi_flt, NPTS); 78 REALLOCATE (Yvec.elements.Flt, opihi_flt, NPTS); 79 79 } 80 80 } … … 86 86 graphmode.ptype = 100; /* connect pairs of points */ 87 87 graphmode.etype = 0; 88 PlotVectorPair (kapa, N, Xvec.elements , Yvec.elements, &graphmode);88 PlotVectorPair (kapa, N, Xvec.elements.Flt, Yvec.elements.Flt, &graphmode); 89 89 } 90 90 91 free (Xvec.elements );92 free (Yvec.elements );91 free (Xvec.elements.Flt); 92 free (Yvec.elements.Flt); 93 93 return (TRUE); 94 94 -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/simage.c
r13479 r20839 95 95 Yvec.Nelements = Nstars; 96 96 Zvec.Nelements = Nstars; 97 ALLOCATE (Xvec.elements , float, Xvec.Nelements);98 ALLOCATE (Yvec.elements , float, Yvec.Nelements);99 ALLOCATE (Zvec.elements , float, Zvec.Nelements);97 ALLOCATE (Xvec.elements.Flt, opihi_flt, Xvec.Nelements); 98 ALLOCATE (Yvec.elements.Flt, opihi_flt, Yvec.Nelements); 99 ALLOCATE (Zvec.elements.Flt, opihi_flt, Zvec.Nelements); 100 100 ALLOCATE (buffer, char, (BLOCK*BYTES_STAR)); 101 101 … … 107 107 if (nbytes != BLOCK*BYTES_STAR) { 108 108 gprint (GP_ERR, "failed to read in stars (1)\n"); 109 free (Xvec.elements );110 free (Yvec.elements );111 free (Zvec.elements );109 free (Xvec.elements.Flt); 110 free (Yvec.elements.Flt); 111 free (Zvec.elements.Flt); 112 112 free (buffer); 113 113 return (FALSE); … … 118 118 dparse (&M, 3, &buffer[j*BYTES_STAR]); 119 119 XY_to_RD (&R, &D, X, Y, &coords); 120 fRD_to_XY (&Xvec.elements[nstars], &Yvec.elements[nstars], R, D, &graphmode.coords);121 Zvec.elements [nstars] = MIN (1.0, MAX (0.01, (M - zero) / range));120 RD_to_XY (&Xvec.elements.Flt[nstars], &Yvec.elements.Flt[nstars], R, D, &graphmode.coords); 121 Zvec.elements.Flt[nstars] = MIN (1.0, MAX (0.01, (M - zero) / range)); 122 122 } 123 123 } … … 126 126 if (nbytes != (Nbytes % (BLOCK*BYTES_STAR))) { 127 127 gprint (GP_ERR, "ERROR: failed to read in stars (2)\n"); 128 free (Xvec.elements );129 free (Yvec.elements );130 free (Zvec.elements );128 free (Xvec.elements.Flt); 129 free (Yvec.elements.Flt); 130 free (Zvec.elements.Flt); 131 131 free (buffer); 132 132 return (FALSE); … … 137 137 dparse (&M, 3, &buffer[j*BYTES_STAR]); 138 138 XY_to_RD (&R, &D, X, Y, &coords); 139 fRD_to_XY (&Xvec.elements[nstars], &Yvec.elements[nstars], R, D, &graphmode.coords);140 Zvec.elements [nstars] = MIN (1.0, MAX (0.01, (M - zero) / range));139 RD_to_XY (&Xvec.elements.Flt[nstars], &Yvec.elements.Flt[nstars], R, D, &graphmode.coords); 140 Zvec.elements.Flt[nstars] = MIN (1.0, MAX (0.01, (M - zero) / range)); 141 141 } 142 142 143 143 if (nstars != Nstars) { 144 144 gprint (GP_ERR, "ERROR: failed to read in all stars (%d of %d)\n", nstars, Nstars); 145 free (Xvec.elements );146 free (Yvec.elements );147 free (Zvec.elements );145 free (Xvec.elements.Flt); 146 free (Yvec.elements.Flt); 147 free (Zvec.elements.Flt); 148 148 free (buffer); 149 149 return (FALSE); … … 155 155 Npts = Xvec.Nelements; 156 156 157 PlotVectorTriplet (kapa, Npts, Xvec.elements , Yvec.elements, Zvec.elements, &graphmode);157 PlotVectorTriplet (kapa, Npts, Xvec.elements.Flt, Yvec.elements.Flt, Zvec.elements.Flt, &graphmode); 158 158 159 free (Xvec.elements );160 free (Yvec.elements );161 free (Zvec.elements );159 free (Xvec.elements.Flt); 160 free (Yvec.elements.Flt); 161 free (Zvec.elements.Flt); 162 162 free (buffer); 163 163 -
branches/eam_branch_20081124/Ohana/src/opihi/dvo/skycat.c
r20820 r20839 54 54 55 55 NPTS = 200; 56 ALLOCATE (Xvec.elements , float, NPTS);57 ALLOCATE (Yvec.elements , float, NPTS);56 ALLOCATE (Xvec.elements.Flt, opihi_flt, NPTS); 57 ALLOCATE (Yvec.elements.Flt, opihi_flt, NPTS); 58 58 Npts = 0; 59 59 … … 76 76 RD_to_XYpic (&X[3], &Y[3], regions[i][0].Rmax, regions[i][0].Dmin, &graphmode.coords, Rmin, Rmax, Rmid, &leftside); 77 77 78 Xvec.elements [Npts] = X[0];79 Yvec.elements [Npts] = Y[0];78 Xvec.elements.Flt[Npts] = X[0]; 79 Yvec.elements.Flt[Npts] = Y[0]; 80 80 for (j = 1; j < 4; j++) { 81 Xvec.elements [Npts + j*2 - 0] = X[j];82 Yvec.elements [Npts + j*2 - 0] = Y[j];83 Xvec.elements [Npts + j*2 - 1] = X[j];84 Yvec.elements [Npts + j*2 - 1] = Y[j];81 Xvec.elements.Flt[Npts + j*2 - 0] = X[j]; 82 Yvec.elements.Flt[Npts + j*2 - 0] = Y[j]; 83 Xvec.elements.Flt[Npts + j*2 - 1] = X[j]; 84 Yvec.elements.Flt[Npts + j*2 - 1] = Y[j]; 85 85 } 86 Xvec.elements [Npts+7] = Xvec.elements[Npts];87 Yvec.elements [Npts+7] = Yvec.elements[Npts];86 Xvec.elements.Flt[Npts+7] = Xvec.elements.Flt[Npts]; 87 Yvec.elements.Flt[Npts+7] = Yvec.elements.Flt[Npts]; 88 88 Npts += 8; 89 89 if (Npts > NPTS - 1) { /* this is OK because NPTS is made always a multiple of 8 */ 90 90 NPTS += 200; 91 REALLOCATE (Xvec.elements , float, NPTS);92 REALLOCATE (Yvec.elements , float, NPTS);91 REALLOCATE (Xvec.elements.Flt, opihi_flt, NPTS); 92 REALLOCATE (Yvec.elements.Flt, opihi_flt, NPTS); 93 93 } 94 94 } … … 101 101 graphmode.ptype = 100; /* connect pairs of points */ 102 102 graphmode.etype = 0; 103 PlotVectorPair (kapa, Npts, Xvec.elements , Yvec.elements, &graphmode);103 PlotVectorPair (kapa, Npts, Xvec.elements.Flt, Yvec.elements.Flt, &graphmode); 104 104 } 105 105 106 free (Xvec.elements );107 free (Yvec.elements );106 free (Xvec.elements.Flt); 107 free (Yvec.elements.Flt); 108 108 free (regions); 109 109 -
branches/eam_branch_20081124/Ohana/src/opihi/include/data.h
r17419 r20839 78 78 void fft1D (float *dataRe, float *dataIm, int N, int Nbit, int forward); 79 79 int fftND (float *dataRe, float *dataIm, int Ndim, int *Nsize, int forward); 80 void dfft1D (double *dataRe, double *dataIm, int N, int Nbit, int forward); 81 int dfftND (double *dataRe, double *dataIm, int Ndim, int *Nsize, int forward); 80 82 int IsBinary (int N, int *Nbit); 81 83 … … 85 87 86 88 /* in svdcmp.c */ 87 int svdcmp (float *a, float *w, float *v, int Nx, int Ny);89 int svdcmp (float *a, opihi_flt *w, float *v, int Nx, int Ny); 88 90 89 91 /* mrqmin.c */ 90 float mrqcof (float *x, float *y, float *dy, int Npts,91 float *par, int Npar, float **ta, float **tb,92 float (funcs)(float, float *, int, float *));92 opihi_flt mrqcof (opihi_flt *x, opihi_flt *y, opihi_flt *dy, int Npts, 93 opihi_flt *par, int Npar, opihi_flt **ta, opihi_flt **tb, 94 opihi_flt (funcs)(opihi_flt, opihi_flt *, int, opihi_flt *)); 93 95 94 float mrqmin (float *x, float *y, float *dy, int Npts,95 float *par, int Npar,96 float (funcs)(float, float *, int, float *), int VERBOSE);96 opihi_flt mrqmin (opihi_flt *x, opihi_flt *y, opihi_flt *dy, int Npts, 97 opihi_flt *par, int Npar, 98 opihi_flt (funcs)(opihi_flt, opihi_flt *, int, opihi_flt *), int VERBOSE); 97 99 98 float mrqinit (float *x, float *y, float *dy, int Npts,99 float *par, int Npar,100 float (funcs)(float, float *, int, float *), int VERBOSE);100 opihi_flt mrqinit (opihi_flt *x, opihi_flt *y, opihi_flt *dy, int Npts, 101 opihi_flt *par, int Npar, 102 opihi_flt (funcs)(opihi_flt, opihi_flt *, int, opihi_flt *), int VERBOSE); 101 103 102 float **mrqcovar (int Npar);104 opihi_flt **mrqcovar (int Npar); 103 105 104 106 void mrqfree (int Npar); 105 107 106 108 /* mrq2dmin.c */ 107 float mrq2dcof (float *x, float *t, float *y, float *dy, int Npts,108 float *par, int Npar, float **ta, float **tb,109 float (funcs)(float, float, float *, int, float *));109 opihi_flt mrq2dcof (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts, 110 opihi_flt *par, int Npar, opihi_flt **ta, opihi_flt **tb, 111 opihi_flt (funcs)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *)); 110 112 111 float mrq2dmin (float *x, float *t, float *y, float *dy, int Npts,112 float *par, int Npar,113 float (funcs)(float, float, float *, int, float *), int VERBOSE);113 opihi_flt mrq2dmin (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts, 114 opihi_flt *par, int Npar, 115 opihi_flt (funcs)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *), int VERBOSE); 114 116 115 float mrq2dinit (float *x, float *t, float *y, float *dy, int Npts,116 float *par, int Npar,117 float (funcs)(float, float, float *, int, float *), int VERBOSE);117 opihi_flt mrq2dinit (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts, 118 opihi_flt *par, int Npar, 119 opihi_flt (funcs)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *), int VERBOSE); 118 120 119 float mrq2dchi (float *x, float *t, float *y, float *dy, int Npts,120 float *par, int Npar,121 float (funcs)(float, float, float *, int, float *));121 opihi_flt mrq2dchi (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts, 122 opihi_flt *par, int Npar, 123 opihi_flt (funcs)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *)); 122 124 123 int mrq2dlimits ( float *pmin, float *pmax, int Npar);125 int mrq2dlimits (opihi_flt *pmin, opihi_flt *pmax, int Npar); 124 126 125 float **mrq2dcovar (int Npar);127 opihi_flt **mrq2dcovar (int Npar); 126 128 127 129 void mrq2dfree (int Npar); … … 135 137 double get_aperture_stats (Matrix *matrix, int X, int Y, int Npix, int Nborder, double max); 136 138 int set_rough_radii (double Ra, double Ri, double Ro); 137 int get_rough_star (float *data, int Nx, int Ny, int x, int y, float *xc, float *yc, float *sx, float *sy, float *sxy, float *zs, float *zp, float *sk);139 int get_rough_star (float *data, int Nx, int Ny, int x, int y, opihi_flt *xc, opihi_flt *yc, opihi_flt *sx, opihi_flt *sy, opihi_flt *sxy, opihi_flt *zs, opihi_flt *zp, opihi_flt *sk); 138 140 139 141 /* precess.c */ -
branches/eam_branch_20081124/Ohana/src/opihi/include/display.h
r13479 r20839 1 1 # include "external.h" 2 2 # include "kapa.h" 3 # include "dvomath.h" 3 4 4 5 # ifndef DISPLAY_H … … 6 7 7 8 /*** kapa graph functions ***/ 8 int PlotVectorPair PROTO((int kapa, int Npts, float *xValues, float *yValues, Graphdata *graphmode)); 9 int PlotVectorTriplet PROTO((int kapa, int Npts, float *xValues, float *yValues, float *zValues, Graphdata *graphmode)); 9 int PlotVectorSingle PROTO((int kapa, int Npts, opihi_flt *values, char *mode)); 10 int PlotVectorPair PROTO((int kapa, int Npts, opihi_flt *xValues, opihi_flt *yValues, Graphdata *graphmode)); 11 int PlotVectorPairErrors PROTO((int kapa, int Npts, opihi_flt *xValues, opihi_flt *yValues, opihi_flt *dyValues, Graphdata *graphmode)); 12 int PlotVectorTriplet PROTO((int kapa, int Npts, opihi_flt *xValues, opihi_flt *yValues, opihi_flt *zValues, Graphdata *graphmode)); 10 13 int GetGraphData PROTO((Graphdata *data, int *kapa, char *name)); 11 14 int GetGraph PROTO((Graphdata *data, int *kapa, char *name)); -
branches/eam_branch_20081124/Ohana/src/opihi/include/dvomath.h
r20827 r20839 4 4 # define DVOMATH_H 5 5 6 # define OPIHI_NAME_SIZE 1024 7 6 8 # define NCHARS 256 7 # define opihi_fl oat float9 # define opihi_flt double 8 10 # define opihi_int unsigned int 9 11 10 12 enum {ANYVECTOR, NEWVECTOR, OLDVECTOR}; 11 13 enum {ANYBUFFER, NEWBUFFER, OLDBUFFER}; 12 enum {OPIHI_FL OAT, OPIHI_INT};14 enum {OPIHI_FLT, OPIHI_INT}; 13 15 14 16 typedef struct { /* representation of a variable (0-D) */ … … 18 20 19 21 typedef struct { /* representation of a vector (1-D) */ 20 char name[ 1024];22 char name[OPIHI_NAME_SIZE]; 21 23 char type; 22 float *elements; 23 unsigned int *elementsInt; 24 union { 25 void *Ptr; 26 opihi_flt *Flt; 27 opihi_int *Int; 28 } elements; 24 29 int Nelements; 25 30 } Vector; 26 31 27 32 typedef struct { /* representation of buffer (image) */ 28 char name[ 1024];29 char file[ 1024];33 char name[OPIHI_NAME_SIZE]; 34 char file[OPIHI_NAME_SIZE]; 30 35 Header header; 31 36 Matrix matrix; … … 37 42 char *name; 38 43 char type; 39 float *ptr;40 44 Buffer *buffer; 41 45 Vector *vector; 42 float Float; 46 opihi_flt FltValue; 47 opihi_int IntValue; 43 48 } StackVar; 44 49 -
branches/eam_branch_20081124/Ohana/src/opihi/include/dvoshell.h
r20820 r20839 225 225 // dvo DB field functions 226 226 dbField *dbCmdlineFields PROTO((int argc, char **argv, int table, int *last, int *nfields)); 227 int dbCmdlineConditions PROTO((int argc, char **argv, int first, int *nextField)); 227 228 dbStack *dbRPN PROTO((int argc, char **argv, int *nstack)); 228 229 int dbCheckStack PROTO((dbStack *stack, int Nstack, int table, dbField **inFields, int *Nfields)); -
branches/eam_branch_20081124/Ohana/src/opihi/include/imfit.h
r14590 r20839 3 3 int Npar; 4 4 int Nfpar; 5 float *par;6 float *fpar;7 float *sky;5 opihi_flt *par; 6 opihi_flt *fpar; 7 opihi_flt *sky; 8 8 9 float (*fitfunc)(float, float, float *, int, float *);9 opihi_flt (*fitfunc)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *); 10 10 void (*imfit_cleanup)(); 11 11 -
branches/eam_branch_20081124/Ohana/src/opihi/include/pantasks.h
r20820 r20839 245 245 int PrintControllerOutput (); 246 246 247 int AddHost (char *hostname, int max_threads); 248 int DeleteHost (char *hostname); 249 250 int FlushControllerOutput (); 247 251 int KillControllerJob (Job *job); 248 252 int CheckControllerStatus (); -
branches/eam_branch_20081124/Ohana/src/opihi/lib.data/PlotVectors.c
r13479 r20839 1 1 # include "display.h" 2 2 3 int PlotVector Pair (int kapa, int Npts, float *xValues, float *yValues, Graphdata *graphmode) {3 int PlotVectorSingle (int kapa, int Npts, opihi_flt *values, char *mode) { 4 4 5 KapaPrepPlot (kapa, Npts, graphmode); 6 KapaPlotVector (kapa, Npts, xValues, "x"); 7 KapaPlotVector (kapa, Npts, yValues, "y"); 5 int i; 6 float *temp; 7 ALLOCATE (temp, float, Npts); 8 9 for (i = 0; i < Npts; i++) { 10 temp[i] = values[i]; 11 } 12 KapaPlotVector (kapa, Npts, temp, mode); 13 14 free (temp); 8 15 9 16 return (TRUE); 10 17 } 11 18 12 int PlotVector Triplet (int kapa, int Npts, float *xValues, float *yValues, float *zValues, Graphdata *graphmode) {19 int PlotVectorPair (int kapa, int Npts, opihi_flt *xValues, opihi_flt *yValues, Graphdata *graphmode) { 13 20 14 KapaPrepPlot (kapa, Npts, graphmode); 15 KapaPlotVector (kapa, Npts, xValues, "x"); 16 KapaPlotVector (kapa, Npts, yValues, "y"); 17 KapaPlotVector (kapa, Npts, zValues, "z"); 21 int i; 22 float *temp; 23 ALLOCATE (temp, float, Npts); 24 25 KapaPrepPlot (kapa, Npts, graphmode); 26 27 for (i = 0; i < Npts; i++) { 28 temp[i] = xValues[i]; 29 } 30 KapaPlotVector (kapa, Npts, temp, "x"); 31 32 for (i = 0; i < Npts; i++) { 33 temp[i] = yValues[i]; 34 } 35 KapaPlotVector (kapa, Npts, temp, "y"); 36 37 free (temp); 18 38 19 39 return (TRUE); 20 40 } 41 42 int PlotVectorTriplet (int kapa, int Npts, opihi_flt *xValues, opihi_flt *yValues, opihi_flt *zValues, Graphdata *graphmode) { 43 44 int i; 45 float *temp; 46 ALLOCATE (temp, float, Npts); 47 48 KapaPrepPlot (kapa, Npts, graphmode); 49 50 for (i = 0; i < Npts; i++) { 51 temp[i] = xValues[i]; 52 } 53 KapaPlotVector (kapa, Npts, temp, "x"); 54 55 for (i = 0; i < Npts; i++) { 56 temp[i] = yValues[i]; 57 } 58 KapaPlotVector (kapa, Npts, temp, "y"); 59 60 for (i = 0; i < Npts; i++) { 61 temp[i] = zValues[i]; 62 } 63 KapaPlotVector (kapa, Npts, temp, "z"); 64 65 free (temp); 66 67 return (TRUE); 68 } 69 70 int PlotVectorPairErrors (int kapa, int Npts, opihi_flt *xValues, opihi_flt *yValues, opihi_flt *dyValues, Graphdata *graphmode) { 71 72 int i; 73 float *temp; 74 ALLOCATE (temp, float, Npts); 75 76 KapaPrepPlot (kapa, Npts, graphmode); 77 78 for (i = 0; i < Npts; i++) { 79 temp[i] = xValues[i]; 80 } 81 KapaPlotVector (kapa, Npts, temp, "x"); 82 83 for (i = 0; i < Npts; i++) { 84 temp[i] = yValues[i]; 85 } 86 KapaPlotVector (kapa, Npts, temp, "y"); 87 88 for (i = 0; i < Npts; i++) { 89 temp[i] = dyValues[i]; 90 } 91 KapaPlotVector (kapa, Npts, temp, "dym"); 92 KapaPlotVector (kapa, Npts, temp, "dyp"); 93 94 free (temp); 95 96 return (TRUE); 97 } 98 -
branches/eam_branch_20081124/Ohana/src/opihi/lib.data/fft.c
r17902 r20839 133 133 } 134 134 135 // fft based on code by Douglas L. Jones (see note at EOF). modified for Ohana C style 136 void dfft1D (double *x, double *y, int n, int Nbit, int forward) { 137 138 int i,j,k,n1,n2; 139 double c,s,e,a,t1,t2; 140 double factor; 141 142 // bit-reverse 143 j = 0; 144 n2 = n/2; 145 for (i = 1; i < n - 1; i++) { 146 n1 = n2; 147 while ( j >= n1 ) { 148 j -= n1; 149 n1 /= 2; 150 } 151 j += n1; 152 153 if (i < j) { 154 t1 = x[i]; 155 x[i] = x[j]; 156 x[j] = t1; 157 t1 = y[i]; 158 y[i] = y[j]; 159 y[j] = t1; 160 } 161 } 162 163 n1 = 0; /* FFT */ 164 n2 = 1; 165 166 if (forward) { 167 factor = +2.0*M_PI; 168 } else { 169 factor = -2.0*M_PI; 170 } 171 172 for (i=0; i < Nbit; i++) { 173 n1 = n2; 174 n2 = n2 + n2; 175 e = factor/n2; 176 a = 0.0; 177 178 for (j=0; j < n1; j++) { 179 c = cos(a); 180 s = sin(a); 181 a = a + e; 182 183 for (k=j; k < n; k=k+n2) { 184 t1 = c*x[k+n1] - s*y[k+n1]; 185 t2 = s*x[k+n1] + c*y[k+n1]; 186 x[k+n1] = x[k] - t1; 187 y[k+n1] = y[k] - t2; 188 x[k] = x[k] + t1; 189 y[k] = y[k] + t2; 190 } 191 } 192 } 193 194 // re-normalize 195 for (i = 0; i < n; i++) { 196 x[i] /= n; 197 y[i] /= n; 198 } 199 200 return; 201 } 202 203 // This implementation uses the 1-D fft above for each of the vectors in each dimension. 204 // This requires 2(Nx*Ny*...) mem copies, but the fft operations are likely to happen in 205 // cache. 206 int dfftND (double *x, double *y, int Ndim, int *Nsize, int forward) { 207 208 int i, nIndex, minor, major, iDim; 209 int step, Nmajor, Nminor, Nmax, Ntotal; 210 int *Nbit; 211 double *tmpX, *tmpY; 212 213 ALLOCATE (Nbit, int, Ndim); 214 215 // find the longest axis and allocate storage for that length 216 Nmax = 0; 217 Ntotal = 1; 218 for (i = 0; i < Ndim; i++) { 219 Nmax = MAX(Nmax, Nsize[i]); 220 Ntotal *= Nsize[i]; 221 if (!IsBinary (Nsize[i], &Nbit[i])) { 222 free (Nbit); 223 return (FALSE); 224 } 225 } 226 ALLOCATE (tmpX, double, Nmax); 227 ALLOCATE (tmpY, double, Nmax); 228 229 step = 1; 230 Nminor = 1; 231 Nmajor = Ntotal; 232 for (iDim = 0; iDim < Ndim; iDim++) { 233 step *= Nsize[iDim]; 234 Nmajor /= Nsize[iDim]; 235 236 // we perform the FFT along all other dimensions 237 for (major = 0; major < Nmajor; major++) { 238 for (minor = 0; minor < Nminor; minor++) { 239 // nIndex = minor + i*Nminor + major*step; 240 // extract the data values to the temp vector 241 nIndex = minor + major*step; 242 for (i = 0; i < Nsize[iDim]; i++) { 243 tmpX[i] = x[nIndex]; 244 tmpY[i] = y[nIndex]; 245 nIndex += Nminor; 246 } 247 248 dfft1D (tmpX, tmpY, Nsize[iDim], Nbit[iDim], forward); 249 250 // replace the result vectors 251 nIndex = minor + major*step; 252 for (i = 0; i < Nsize[iDim]; i++) { 253 x[nIndex] = tmpX[i]; 254 y[nIndex] = tmpY[i]; 255 nIndex += Nminor; 256 } 257 } 258 } 259 Nminor *= Nsize[iDim]; 260 } 261 free (Nbit); 262 free (tmpX); 263 free (tmpY); 264 return (TRUE); 265 } 266 135 267 // check that a number is binary (2^Nbit). returns int(log_2(N)) in Nbit 136 268 int IsBinary (int N, int *Nbit) { -
branches/eam_branch_20081124/Ohana/src/opihi/lib.data/graphtools.c
r13479 r20839 1 1 # include "data.h" 2 2 3 // XXX need to select the active vector for the range analysis 3 4 void SetLimits (Vector *xvec, Vector *yvec, Graphdata *graphmode) { 4 5 … … 7 8 8 9 if (xvec != NULL) { 9 maxX = minX = xvec[0].elements [0];10 maxX = minX = xvec[0].elements.Flt[0]; 10 11 for (i = 1; i < xvec[0].Nelements; i++) { 11 if (!finite(xvec[0].elements [i])) continue;12 maxX = MAX (maxX, xvec[0].elements [i]);13 minX = MIN (minX, xvec[0].elements [i]);12 if (!finite(xvec[0].elements.Flt[i])) continue; 13 maxX = MAX (maxX, xvec[0].elements.Flt[i]); 14 minX = MIN (minX, xvec[0].elements.Flt[i]); 14 15 } 15 16 range = maxX - minX; … … 21 22 22 23 if (yvec != NULL) { 23 maxY = minY = yvec[0].elements [0];24 maxY = minY = yvec[0].elements.Flt[0]; 24 25 for (i = 1; i < yvec[0].Nelements; i++) { 25 if (!finite(yvec[0].elements [i])) continue;26 maxY = MAX (maxY, yvec[0].elements [i]);27 minY = MIN (minY, yvec[0].elements [i]);26 if (!finite(yvec[0].elements.Flt[i])) continue; 27 maxY = MAX (maxY, yvec[0].elements.Flt[i]); 28 minY = MIN (minY, yvec[0].elements.Flt[i]); 28 29 } 29 30 range = maxY - minY; -
branches/eam_branch_20081124/Ohana/src/opihi/lib.data/mrq2dmin.c
r16059 r20839 9 9 # define VERY_VERBOSE 0 10 10 11 static float **alpha, **talpha;12 static float **beta, **tbeta;13 static float *partry, *dyda;14 static float ochisq, lambda;15 16 static float *parmin = NULL;17 static float *parmax = NULL;18 19 float mrq2dcof (float *x, float *t, float *y, float *dy, int Npts,20 float *par, int Npar, float **ta, float **tb,21 float (funcs)(float, float, float *, int, float *)) {11 static opihi_flt **alpha, **talpha; 12 static opihi_flt **beta, **tbeta; 13 static opihi_flt *partry, *dyda; 14 static opihi_flt ochisq, lambda; 15 16 static opihi_flt *parmin = NULL; 17 static opihi_flt *parmax = NULL; 18 19 opihi_flt mrq2dcof (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts, 20 opihi_flt *par, int Npar, opihi_flt **ta, opihi_flt **tb, 21 opihi_flt (funcs)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *)) { 22 22 23 23 int k, j, i; 24 float ydiff, wt, chisq;24 opihi_flt ydiff, wt, chisq; 25 25 26 26 for (j = 0; j < Npar; j++) { … … 60 60 } 61 61 62 float mrq2dchi (float *x, float *t, float *y, float *dy, int Npts,63 float *par, int Npar,64 float (funcs)(float, float, float *, int, float *)) {65 66 int i; 67 float ydiff, chisq;62 opihi_flt mrq2dchi (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts, 63 opihi_flt *par, int Npar, 64 opihi_flt (funcs)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *)) { 65 66 int i; 67 opihi_flt ydiff, chisq; 68 68 69 69 chisq = 0.0; … … 75 75 } 76 76 77 float mrq2dmin (float *x, float *t, float *y, float *dy, int Npts,78 float *par, int Npar,79 float (funcs)(float, float, float *, int, float *), int VERBOSE) {77 opihi_flt mrq2dmin (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts, 78 opihi_flt *par, int Npar, 79 opihi_flt (funcs)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *), int VERBOSE) { 80 80 81 81 int j, k; 82 float chisq;82 opihi_flt chisq; 83 83 84 84 /* set up test matrixes for this run */ … … 90 90 91 91 /* keep this test in here? */ 92 if (! fgaussjordan (talpha, tbeta, Npar, 1)) {92 if (!dgaussjordan (talpha, tbeta, Npar, 1)) { 93 93 lambda *= 10.0; 94 94 return (ochisq); … … 131 131 } 132 132 133 int mrq2dlimits ( float *pmin, float *pmax, int Npar) {134 135 int i; 136 137 ALLOCATE (parmin, float, Npar);138 ALLOCATE (parmax, float, Npar);133 int mrq2dlimits (opihi_flt *pmin, opihi_flt *pmax, int Npar) { 134 135 int i; 136 137 ALLOCATE (parmin, opihi_flt, Npar); 138 ALLOCATE (parmax, opihi_flt, Npar); 139 139 for (i = 0; i < Npar; i++) { 140 140 parmin[i] = pmin[i]; … … 144 144 } 145 145 146 float mrq2dinit (float *x, float *t, float *y, float *dy, int Npts,147 float *par, int Npar,148 float (funcs)(float, float, float *, int, float *), int VERBOSE) {149 150 int i; 151 152 ALLOCATE (dyda, float, Npar);153 ALLOCATE (partry, float, Npar);154 ALLOCATE (alpha, float *, Npar);155 ALLOCATE (beta, float *, Npar);156 ALLOCATE (talpha, float *, Npar);157 ALLOCATE (tbeta, float *, Npar);146 opihi_flt mrq2dinit (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts, 147 opihi_flt *par, int Npar, 148 opihi_flt (funcs)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *), int VERBOSE) { 149 150 int i; 151 152 ALLOCATE (dyda, opihi_flt, Npar); 153 ALLOCATE (partry, opihi_flt, Npar); 154 ALLOCATE (alpha, opihi_flt *, Npar); 155 ALLOCATE (beta, opihi_flt *, Npar); 156 ALLOCATE (talpha, opihi_flt *, Npar); 157 ALLOCATE (tbeta, opihi_flt *, Npar); 158 158 for (i = 0; i < Npar; i++) { 159 ALLOCATE (alpha[i], float, Npar);160 ALLOCATE (beta[i], float, Npar);161 ALLOCATE (talpha[i], float, Npar);162 ALLOCATE (tbeta[i], float, Npar);159 ALLOCATE (alpha[i], opihi_flt, Npar); 160 ALLOCATE (beta[i], opihi_flt, Npar); 161 ALLOCATE (talpha[i], opihi_flt, Npar); 162 ALLOCATE (tbeta[i], opihi_flt, Npar); 163 163 } 164 164 … … 181 181 182 182 /* don't invoke this in the middle of a run, only near the end */ 183 float **mrq2dcovar (int Npar) {184 185 fgaussjordan (alpha, beta, Npar, 1);183 opihi_flt **mrq2dcovar (int Npar) { 184 185 dgaussjordan (alpha, beta, Npar, 1); 186 186 return (alpha); 187 187 -
branches/eam_branch_20081124/Ohana/src/opihi/lib.data/mrqmin.c
r16059 r20839 7 7 */ 8 8 9 static float **alpha, **talpha;10 static float **beta, **tbeta;11 static float *partry, *dyda;12 static float ochisq, lambda;9 static opihi_flt **alpha, **talpha; 10 static opihi_flt **beta, **tbeta; 11 static opihi_flt *partry, *dyda; 12 static opihi_flt ochisq, lambda; 13 13 14 float mrqcof (float *x, float *y, float *dy, int Npts,15 float *par, int Npar, float **ta, float **tb,16 float (funcs)(float, float *, int, float *)) {14 opihi_flt mrqcof (opihi_flt *x, opihi_flt *y, opihi_flt *dy, int Npts, 15 opihi_flt *par, int Npar, opihi_flt **ta, opihi_flt **tb, 16 opihi_flt (funcs)(opihi_flt, opihi_flt *, int, opihi_flt *)) { 17 17 18 18 int k, j, i; 19 float ydiff, wt, chisq;19 opihi_flt ydiff, wt, chisq; 20 20 21 21 for (j = 0; j < Npar; j++) { … … 45 45 } 46 46 47 float mrqmin (float *x, float *y, float *dy, int Npts,48 float *par, int Npar,49 float (funcs)(float, float *, int, float *), int VERBOSE) {47 opihi_flt mrqmin (opihi_flt *x, opihi_flt *y, opihi_flt *dy, int Npts, 48 opihi_flt *par, int Npar, 49 opihi_flt (funcs)(opihi_flt, opihi_flt *, int, opihi_flt *), int VERBOSE) { 50 50 51 51 int j, k; 52 float chisq;53 float rho, dX, dL;52 opihi_flt chisq; 53 opihi_flt rho, dX, dL; 54 54 55 55 /* set up test matrixes for this run */ … … 60 60 } 61 61 62 fgaussjordan (talpha, tbeta, Npar, 1);62 dgaussjordan (talpha, tbeta, Npar, 1); 63 63 64 64 for (j = 0; j < Npar; j++) partry[j] = par[j] - tbeta[j][0]; … … 102 102 } 103 103 104 float mrqinit (float *x, float *y, float *dy, int Npts,105 float *par, int Npar,106 float (funcs)(float, float *, int, float *), int VERBOSE) {104 opihi_flt mrqinit (opihi_flt *x, opihi_flt *y, opihi_flt *dy, int Npts, 105 opihi_flt *par, int Npar, 106 opihi_flt (funcs)(opihi_flt, opihi_flt *, int, opihi_flt *), int VERBOSE) { 107 107 108 108 int i; 109 109 110 ALLOCATE (dyda, float, Npar);111 ALLOCATE (partry, float, Npar);112 ALLOCATE (alpha, float *, Npar);113 ALLOCATE (beta, float *, Npar);114 ALLOCATE (talpha, float *, Npar);115 ALLOCATE (tbeta, float *, Npar);110 ALLOCATE (dyda, opihi_flt, Npar); 111 ALLOCATE (partry, opihi_flt, Npar); 112 ALLOCATE (alpha, opihi_flt *, Npar); 113 ALLOCATE (beta, opihi_flt *, Npar); 114 ALLOCATE (talpha, opihi_flt *, Npar); 115 ALLOCATE (tbeta, opihi_flt *, Npar); 116 116 for (i = 0; i < Npar; i++) { 117 ALLOCATE (alpha[i], float, Npar);118 ALLOCATE (beta[i], float, Npar);119 ALLOCATE (talpha[i], float, Npar);120 ALLOCATE (tbeta[i], float, Npar);117 ALLOCATE (alpha[i], opihi_flt, Npar); 118 ALLOCATE (beta[i], opihi_flt, Npar); 119 ALLOCATE (talpha[i], opihi_flt, Npar); 120 ALLOCATE (tbeta[i], opihi_flt, Npar); 121 121 } 122 122 … … 136 136 137 137 /* don't invoke this in the middle of a run, only near the end */ 138 float **mrqcovar (int Npar) {139 fgaussjordan (alpha, beta, Npar, 1);138 opihi_flt **mrqcovar (int Npar) { 139 dgaussjordan (alpha, beta, Npar, 1); 140 140 return (alpha); 141 141 } -
branches/eam_branch_20081124/Ohana/src/opihi/lib.data/starfuncs.c
r19827 r20839 119 119 /* use a circular aperture */ 120 120 int get_rough_star (float *data, int Nx, int Ny, int x, int y, 121 float *xc, float *yc,122 float *sx, float *sy, float *sxy,123 float *zs, float *zp, float *sk) {121 opihi_flt *xc, opihi_flt *yc, 122 opihi_flt *sx, opihi_flt *sy, opihi_flt *sxy, 123 opihi_flt *zs, opihi_flt *zp, opihi_flt *sk) { 124 124 125 125 double Ra2, Ri2, Ro2, rad2; -
branches/eam_branch_20081124/Ohana/src/opihi/lib.data/svdcmp.c
r4689 r20839 12 12 13 13 /* n == Nx, m == Ny */ 14 int svdcmp (float *a, float *w, float *v, int Nx, int Ny) {14 int svdcmp (float *a, opihi_flt *w, float *v, int Nx, int Ny) { 15 15 16 16 int flag, i, its, j, jj, k, l, nm, status; -
branches/eam_branch_20081124/Ohana/src/opihi/lib.shell/VectorOps.c
r20827 r20839 1 1 # include "opihi.h" 2 3 // NOTE: we refer to elements.Ptr if we do not care about the actual type 2 4 3 5 static Vector **vectors; … … 18 20 19 21 for (i = 0; i < Nvectors; i++) { 20 if (vectors[i][0].elements) { 21 free (vectors[i][0].elements); 22 } 23 if (vectors[i][0].elementsInt) { 24 free (vectors[i][0].elementsInt); 22 if (vectors[i][0].elements.Int) { 23 free (vectors[i][0].elements.Int); 25 24 } 26 25 free (vectors[i]); … … 34 33 ALLOCATE (vec, Vector, 1); 35 34 36 vec[0].elementsInt = NULL; 37 ALLOCATE (vec[0].elements, opihi_float, 1); 38 vec[0].type = OPIHI_FLOAT; /* is a float unless specified otherwise */ 39 40 bzero (vec[0].name, 1024); 35 vec[0].type = OPIHI_FLT; // is a float unless specified otherwise 36 ALLOCATE (vec[0].elements.Flt, opihi_flt, 1); 37 38 bzero (vec[0].name, OPIHI_NAME_SIZE); 41 39 vec[0].Nelements = 0; 42 40 return (vec); … … 104 102 if (i == Nvectors) return (FALSE); 105 103 106 if (vectors[i][0].elements) free (vectors[i][0].elements); 107 if (vectors[i][0].elementsInt) free (vectors[i][0].elementsInt); 104 if (vectors[i][0].elements.Ptr) free (vectors[i][0].elements.Ptr); 108 105 free (vectors[i]); 109 106 … … 125 122 if (i == Nvectors) return (FALSE); 126 123 127 if (vectors[i][0].elements) free (vectors[i][0].elements); 128 if (vectors[i][0].elementsInt) free (vectors[i][0].elementsInt); 124 if (vectors[i][0].elements.Ptr) free (vectors[i][0].elements.Ptr); 129 125 free (vectors[i]); 130 126 … … 145 141 return (TRUE); 146 142 } 143 147 144 int CopyVector (Vector *out, Vector *in) { 148 free (out[0].elements);145 if (out[0].elements.Ptr) free (out[0].elements.Ptr); 149 146 out[0].Nelements = in[0].Nelements; 150 if (in[0].elements ) {151 assert (in[0].type == OPIHI_FLOAT);152 ALLOCATE (out[0].elements, opihi_float, out[0].Nelements);153 memcpy (out[0].elements, in[0].elements, out[0].Nelements*sizeof(opihi_float));154 out[0].type = OPIHI_FLOAT;155 } else {156 assert (in[0].type == OPIHI_INT);157 ALLOCATE (out[0].elementsInt, opihi_int, out[0].Nelements);158 memcpy (out[0].elementsInt, in[0].elementsInt, out[0].Nelements*sizeof(opihi_int));159 out[0].type = OPIHI_INT;147 if (in[0].elements.Ptr) { 148 if (in[0].type == OPIHI_FLT) { 149 ALLOCATE (out[0].elements.Flt, opihi_flt, out[0].Nelements); 150 memcpy (out[0].elements.Flt, in[0].elements.Flt, out[0].Nelements*sizeof(opihi_flt)); 151 out[0].type = OPIHI_FLT; 152 } else { 153 ALLOCATE (out[0].elements.Int, opihi_int, out[0].Nelements); 154 memcpy (out[0].elements.Int, in[0].elements.Int, out[0].Nelements*sizeof(opihi_int)); 155 out[0].type = OPIHI_INT; 156 } 160 157 } 161 158 return (TRUE); … … 170 167 return (TRUE); 171 168 } 169 172 170 int MoveVector (Vector *out, Vector *in) { 173 171 int i, j; 174 172 175 free (out[0].elements); 176 out[0].Nelements = in[0].Nelements; 177 out[0].elements = in[0].elements; 178 out[0].elementsInt = in[0].elementsInt; 179 out[0].type = in[0].type; 173 if (out[0].elements.Ptr) free (out[0].elements.Ptr); 174 out[0].Nelements = in[0].Nelements; 175 out[0].elements.Ptr = in[0].elements.Ptr; 176 out[0].type = in[0].type; 180 177 181 178 /* delete vector entry from vector list, if it exists */ -
branches/eam_branch_20081124/Ohana/src/opihi/lib.shell/check_stack.c
r6250 r20839 12 12 13 13 /** if this is a number, put it on the list of scalers and move on **/ 14 stack[i].Float = strtod (stack[i].name, &c); 14 // XXX need to handle IntValue vs FltValue 15 stack[i].FltValue = strtod (stack[i].name, &c); 15 16 if (c == stack[i].name + strlen (stack[i].name)) { 16 stack[i].ptr = &(stack[i].Float);17 17 stack[i].type = 'S'; 18 18 continue; … … 22 22 if (IsBuffer (stack[i].name)) { 23 23 stack[i].buffer = SelectBuffer (stack[i].name, OLDBUFFER, TRUE); 24 stack[i].ptr = (float *) stack[i].buffer[0].matrix.buffer;25 24 stack[i].type = 'M'; 26 25 if (Nx == -1) { … … 44 43 if (IsVector (stack[i].name)) { 45 44 stack[i].vector = SelectVector (stack[i].name, OLDVECTOR, FALSE); 46 stack[i].ptr = (float *) stack[i].vector[0].elements;47 45 stack[i].type = 'V'; 48 46 -
branches/eam_branch_20081124/Ohana/src/opihi/lib.shell/dvomath.c
r14708 r20839 79 79 sprintf (outname, "%s", stack[0].name); 80 80 } else { 81 sprintf (outname, "%.12g", stack[0].Fl oat);81 sprintf (outname, "%.12g", stack[0].FltValue); 82 82 } 83 83 break; -
branches/eam_branch_20081124/Ohana/src/opihi/lib.shell/evaluate_stack.c
r18078 r20839 140 140 /* copy data to new stack variable */ 141 141 void copy_stack (StackVar *stack1, StackVar *stack2) { 142 stack1[0].name = stack2[0].name ; 143 stack1[0].type = stack2[0].type ; 144 stack1[0].ptr = stack2[0].ptr ; 145 stack1[0].buffer = stack2[0].buffer; 146 stack1[0].vector = stack2[0].vector; 147 stack1[0].Float = stack2[0].Float ; 148 if (!strncasecmp (&stack1[0].type, "S", 1)) { 149 stack1[0].ptr = &stack1[0].Float; 150 } 142 stack1[0].name = stack2[0].name ; 143 stack1[0].type = stack2[0].type ; 144 stack1[0].buffer = stack2[0].buffer; 145 stack1[0].vector = stack2[0].vector; 146 stack1[0].FltValue = stack2[0].FltValue; 147 stack1[0].IntValue = stack2[0].IntValue; 151 148 } 152 149 … … 173 170 if (IsVectorPtr (stack[i].vector) && (stack[i].type == 'v')) { 174 171 if (VERBOSE) gprint (GP_ERR, "free %s (vect) (%lx)\n", stack[i].name, (long) stack[i].vector); 175 free (stack[i].vector[0].elements );172 free (stack[i].vector[0].elements.Ptr); 176 173 free (stack[i].vector); 177 174 stack[i].vector = NULL; -
branches/eam_branch_20081124/Ohana/src/opihi/lib.shell/expand_vectors.c
r17247 r20839 126 126 } 127 127 if (I < 0) I += vec[0].Nelements; 128 f1 = vec[0].elements [I];128 f1 = vec[0].elements.Flt[I]; 129 129 } 130 130 } -
branches/eam_branch_20081124/Ohana/src/opihi/lib.shell/parse.c
r16059 r20839 190 190 } 191 191 if (Nx < 0) Nx += vec[0].Nelements; 192 vec[0].elements [Nx] = atof (val);192 vec[0].elements.Flt[Nx] = atof (val); 193 193 } 194 194 -
branches/eam_branch_20081124/Ohana/src/opihi/lib.shell/stack_math.c
r20827 r20839 9 9 10 10 int i, Nx; 11 float *out, *M1, *M2;12 11 char line[512]; // this is only used to report an error 13 12 13 // the vectors have to match in length 14 if (V1[0].vector[0].Nelements != V2[0].vector[0].Nelements) { 15 return (FALSE); 16 } 17 14 18 Nx = V1[0].vector[0].Nelements; 15 if (Nx != V2[0].vector[0].Nelements) { 16 return (FALSE); 17 } 18 19 if (V1[0].type == 'v') { /** use V1 as temp buffer **/ 20 OUT[0].vector = V1[0].vector; 21 V1[0].type = 'V'; /* prevent it from being freed below */ 22 } else { 23 if (V2[0].type == 'v') { /** use V2 as temp buffer, but header of V1 **/ 24 OUT[0].vector = V2[0].vector; 25 V2[0].type = 'V'; /* prevent it from being freed below */ 26 } else { /* no spare temp buffer */ 27 OUT[0].vector = InitVector (); 28 CopyVector (OUT[0].vector, V1[0].vector); 29 } 30 } 31 OUT[0].type = 'v'; /*** <<--- says this is a temporary matrix ***/ 32 33 M1 = V1[0].ptr; 34 M2 = V2[0].ptr; 35 out = OUT[0].ptr = (float *)OUT[0].vector[0].elements; 36 37 // XXX this is not quite there: 38 // 1) do I drop the .ptr element of StackVar? 39 // 2) things below are using type from a StackVar to get the vector type -- wrong place 40 // 3) the temp would need lots of work -- is it worth it? 41 // 4) some operators force the output to be float -- we cannot use a single bit of code to 42 // define the output type based on which is a float and which is not. getting ugly. 43 // ??? how much more work to bring the MV, etc functions into shape ??? 44 19 20 // XXX we temporarily drop the concept of using one of the temporary input vectors for 21 // the output vector (thus saving an ALLOC): we have to juggle the size of the input vectors 22 // as well as their temporary state 23 24 // create the output vector guaranteed to be temporary until the very end 25 OUT[0].vector = InitVector (); 26 OUT[0].type = 'v'; 27 28 // set up the possible operations : int OP int -> int, all else yield float 29 // OP is the operation performed on *M1 and *M2 45 30 # define VV_FUNC(OP) \ 46 if ((M1->type == OPIHI_FLOAT) && (M2->type == OPIHI_FLOAT)) { \ 47 // output must be float, can use either as a temp \ 48 opihi_float *M1 = V1[0].vector[0].elements; \ 49 opihi_float *M2 = V2[0].vector[0].elements; \ 31 if ((V1->vector->type == OPIHI_FLT) && (V2->vector->type == OPIHI_FLT)) { \ 32 CopyVector (OUT[0].vector, V1[0].vector); \ 33 opihi_flt *M1 = V1[0].vector[0].elements.Flt; \ 34 opihi_flt *M2 = V2[0].vector[0].elements.Flt; \ 35 opihi_flt *out = OUT[0].vector[0].elements.Flt; \ 50 36 for (i = 0; i < Nx; i++, out++, M1++, M2++) { \ 51 *out = *M1 OP *M2; \37 *out = OP; \ 52 38 } \ 53 39 break; \ 54 40 } \ 55 if ((M1->type != OPIHI_FLOAT) && (M2->type == OPIHI_FLOAT)) { \ 56 // output must be float, can use M2 as a temp \ 57 opihi_float *M1 = V1[0].vector[0].elementsInt; \ 58 opihi_float *M2 = V2[0].vector[0].elements; \ 41 if ((V1->vector->type == OPIHI_FLT) && (V2->vector->type != OPIHI_FLT)) { \ 42 CopyVector (OUT[0].vector, V1[0].vector); \ 43 opihi_flt *M1 = V1[0].vector[0].elements.Flt; \ 44 opihi_int *M2 = V2[0].vector[0].elements.Int; \ 45 opihi_flt *out = OUT[0].vector[0].elements.Flt; \ 59 46 for (i = 0; i < Nx; i++, out++, M1++, M2++) { \ 60 *out = *M1 OP *M2; \47 *out = OP; \ 61 48 } \ 62 49 break; \ 63 50 } \ 64 if ((M1->type == OPIHI_FLOAT) && (M2->type != OPIHI_FLOAT)) { \ 65 // output must be float, can use M1 as a temp \ 66 opihi_float *M1 = V1[0].vector[0].elements; \ 67 opihi_float *M2 = V2[0].vector[0].elementsInt; \ 51 if ((V1->vector->type != OPIHI_FLT) && (V2->vector->type == OPIHI_FLT)) { \ 52 CopyVector (OUT[0].vector, V2[0].vector); \ 53 opihi_int *M1 = V1[0].vector[0].elements.Int; \ 54 opihi_flt *M2 = V2[0].vector[0].elements.Flt; \ 55 opihi_flt *out = OUT[0].vector[0].elements.Flt; \ 68 56 for (i = 0; i < Nx; i++, out++, M1++, M2++) { \ 69 *out = *M1 OP *M2; \57 *out = OP; \ 70 58 } \ 71 59 break; \ 72 60 } \ 73 if ((M1->type != OPIHI_FLOAT) && (M2->type != OPIHI_FLOAT)) { \ 74 // output may be int, can use either as temp \ 75 opihi_float *M1 = V1[0].vector[0].elementsInt; \ 76 opihi_float *M2 = V2[0].vector[0].elementsInt; \ 61 if ((V1->vector->type != OPIHI_FLT) && (V2->vector->type != OPIHI_FLT)) { \ 62 CopyVector (OUT[0].vector, V1[0].vector); \ 63 opihi_int *M1 = V1[0].vector[0].elements.Int; \ 64 opihi_int *M2 = V2[0].vector[0].elements.Int; \ 65 opihi_int *out = OUT[0].vector[0].elements.Int; \ 77 66 for (i = 0; i < Nx; i++, out++, M1++, M2++) { \ 78 *out = *M1 OP *M2; \67 *out = OP; \ 79 68 } \ 80 69 break; \ … … 82 71 83 72 switch (op[0]) { 84 case '+': 85 VV_FUNC 86 87 if ((M1->type == OPIHI_FLOAT) && (M2->type == OPIHI_FLOAT)) { 88 // output must be float, can use either as a temp 89 M1 = V1[0].vector[0].elements; 90 M2 = V2[0].vector[0].elements; 91 for (i = 0; i < Nx; i++, out++, M1++, M2++) { 92 *out = *M1 + *M2; 93 } 94 break; 95 } 96 if ((M1->type != OPIHI_FLOAT) && (M2->type == OPIHI_FLOAT)) { 97 // output must be float, can use M2 as a temp 98 M1 = V1[0].vector[0].elementsInt; 99 M2 = V2[0].vector[0].elements; 100 for (i = 0; i < Nx; i++, out++, M1++, M2++) { 101 *out = *M1 + *M2; 102 } 103 break; 104 } 105 if ((M1->type == OPIHI_FLOAT) && (M2->type != OPIHI_FLOAT)) { 106 // output must be float, can use M1 as a temp 107 M1 = V1[0].vector[0].elements; 108 M2 = V2[0].vector[0].elementsInt; 109 for (i = 0; i < Nx; i++, out++, M1++, M2++) { 110 *out = *M1 + *M2; 111 } 112 break; 113 } 114 if ((M1->type != OPIHI_FLOAT) && (M2->type != OPIHI_FLOAT)) { 115 // output may be int, can use either as temp 116 M1 = V1[0].vector[0].elementsInt; 117 M2 = V2[0].vector[0].elementsInt; 118 for (i = 0; i < Nx; i++, out++, M1++, M2++) { 119 *out = *M1 + *M2; 120 } 121 break; 122 } 123 case '-': 124 for (i = 0; i < Nx; i++, out++, M1++, M2++) 125 *out = *M1 - *M2; 126 break; 127 case '*': 128 for (i = 0; i < Nx; i++, out++, M1++, M2++) 129 *out = *M1 * *M2; 130 break; 131 case '/': 132 for (i = 0; i < Nx; i++, out++, M1++, M2++) 133 *out = *M1 / *M2; 134 break; 135 case '%': 136 for (i = 0; i < Nx; i++, out++, M1++, M2++) 137 *out = (int) *M1 % (int) *M2; 138 break; 139 case 0x5e: 140 for (i = 0; i < Nx; i++, out++, M1++, M2++) 141 *out = pow (*M1, *M2); 142 break; 143 case '@': 144 for (i = 0; i < Nx; i++, out++, M1++, M2++) 145 *out = DEG_RAD*atan2 (*M1, *M2); 146 break; 147 case 'D': 148 for (i = 0; i < Nx; i++, out++, M1++, M2++) 149 *out = MIN (*M1, *M2); 150 break; 151 case 'U': 152 for (i = 0; i < Nx; i++, out++, M1++, M2++) 153 *out = MAX (*M1, *M2); 154 break; 155 case '<': 156 for (i = 0; i < Nx; i++, out++, M1++, M2++) 157 *out = (*M1 < *M2) ? 1 : 0; 158 break; 159 case '>': 160 for (i = 0; i < Nx; i++, out++, M1++, M2++) 161 *out = (*M1 > *M2) ? 1 : 0; 162 break; 163 case '&': 164 for (i = 0; i < Nx; i++, out++, M1++, M2++) 165 *out = ((int)*M1 & (int)*M2); 166 break; 167 case '|': 168 for (i = 0; i < Nx; i++, out++, M1++, M2++) 169 *out = ((int)*M1 | (int)*M2); 170 break; 171 case 'E': 172 for (i = 0; i < Nx; i++, out++, M1++, M2++) 173 *out = (*M1 == *M2) ? 1 : 0; 174 break; 175 case 'N': 176 for (i = 0; i < Nx; i++, out++, M1++, M2++) 177 *out = (*M1 != *M2) ? 1 : 0; 178 break; 179 case 'L': 180 for (i = 0; i < Nx; i++, out++, M1++, M2++) 181 *out = (*M1 <= *M2) ? 1 : 0; 182 break; 183 case 'G': 184 for (i = 0; i < Nx; i++, out++, M1++, M2++) 185 *out = (*M1 >= *M2) ? 1 : 0; 186 break; 187 case 'A': 188 for (i = 0; i < Nx; i++, out++, M1++, M2++) 189 *out = (*M1 && *M2) ? 1 : 0; 190 break; 191 case 'O': 192 for (i = 0; i < Nx; i++, out++, M1++, M2++) 193 *out = (*M1 || *M2) ? 1 : 0; 194 break; 73 case '+': VV_FUNC(*M1 + *M2); 74 case '-': VV_FUNC(*M1 - *M2); 75 case '*': VV_FUNC(*M1 * *M2); 76 case '/': VV_FUNC(*M1 / *M2); 77 case '%': VV_FUNC((int)*M1 % (int)*M2); 78 case '^': VV_FUNC(pow (*M1, *M2)); 79 case '@': VV_FUNC(DEG_RAD*atan2 (*M1, *M2)); 80 case 'D': VV_FUNC(MIN (*M1, *M2)); 81 case 'U': VV_FUNC(MAX (*M1, *M2)); 82 case '<': VV_FUNC((*M1 < *M2) ? 1 : 0); 83 case '>': VV_FUNC((*M1 > *M2) ? 1 : 0); 84 case '&': VV_FUNC(((int)*M1 & (int)*M2)); 85 case '|': VV_FUNC(((int)*M1 | (int)*M2)); 86 case 'E': VV_FUNC((*M1 == *M2) ? 1 : 0); 87 case 'N': VV_FUNC((*M1 != *M2) ? 1 : 0); 88 case 'L': VV_FUNC((*M1 <= *M2) ? 1 : 0); 89 case 'G': VV_FUNC((*M1 >= *M2) ? 1 : 0); 90 case 'A': VV_FUNC((*M1 && *M2) ? 1 : 0); 91 case 'O': VV_FUNC((*M1 || *M2) ? 1 : 0); 195 92 default: 196 93 sprintf (line, "error: op %c not defined!", op[0]); … … 198 95 return (FALSE); 199 96 } 97 # undef VV_FUNC 200 98 201 99 /** free up any temporary buffers: **/ 202 100 203 101 if (V1[0].type == 'v') { 204 free (V1[0].vector[0].elements );102 free (V1[0].vector[0].elements.Ptr); 205 103 free (V1[0].vector); 206 104 } 207 105 if (V2[0].type == 'v') { 208 free (V2[0].vector[0].elements );106 free (V2[0].vector[0].elements.Ptr); 209 107 free (V2[0].vector); 210 108 } … … 220 118 221 119 int i, Nx; 222 float *out, *M1, *M2;223 120 char line[512]; // this is only used to report an error 224 121 … … 234 131 OUT[0].type = 'v'; /*** <<--- says this is a temporary matrix ***/ 235 132 236 M1 = V1[0].ptr; 237 M2 = V2[0].ptr; 238 out = OUT[0].ptr = (float *)OUT[0].vector[0].elements; 133 opihi_flt M1 = V1[0].FltValue; 134 opihi_flt *M2 = V2[0].vector[0].elements.Flt; 135 opihi_flt *out = OUT[0].vector[0].elements.Flt; 136 137 # define SV_FUNC(OP) \ 138 for (i = 0; i < Nx; i++, out++, M2++) \ 139 *out = OP; \ 140 break; 239 141 240 142 switch (op[0]) { 241 case '+': 242 for (i = 0; i < Nx; i++, out++, M2++) 243 *out = *M1 + *M2; 244 break; 245 case '-': 246 for (i = 0; i < Nx; i++, out++, M2++) 247 *out = *M1 - *M2; 248 break; 249 case '*': 250 for (i = 0; i < Nx; i++, out++, M2++) 251 *out = *M1 * *M2; 252 break; 253 case '/': 254 for (i = 0; i < Nx; i++, out++, M2++) 255 *out = *M1 / *M2; 256 break; 257 case '%': 258 for (i = 0; i < Nx; i++, out++, M2++) 259 *out = (int) *M1 % (int) *M2; 260 break; 261 case 0x5e: 262 for (i = 0; i < Nx; i++, out++, M2++) 263 *out = pow (*M1, *M2); 264 break; 265 case '@': 266 for (i = 0; i < Nx; i++, out++, M2++) 267 *out = DEG_RAD*atan2 (*M1, *M2); 268 break; 269 case 'D': 270 for (i = 0; i < Nx; i++, out++, M2++) 271 *out = MIN (*M1, *M2); 272 break; 273 case 'U': 274 for (i = 0; i < Nx; i++, out++, M2++) 275 *out = MAX (*M1, *M2); 276 break; 277 case '<': 278 for (i = 0; i < Nx; i++, out++, M2++) 279 *out = (*M1 < *M2) ? 1 : 0; 280 break; 281 case '>': 282 for (i = 0; i < Nx; i++, out++, M2++) 283 *out = (*M1 > *M2) ? 1 : 0; 284 break; 285 case '&': 286 for (i = 0; i < Nx; i++, out++, M2++) 287 *out = ((int)*M1 & (int)*M2); 288 break; 289 case '|': 290 for (i = 0; i < Nx; i++, out++, M2++) 291 *out = ((int)*M1 | (int)*M2); 292 break; 293 case 'E': 294 for (i = 0; i < Nx; i++, out++, M2++) 295 *out = (*M1 == *M2) ? 1 : 0; 296 break; 297 case 'N': 298 for (i = 0; i < Nx; i++, out++, M2++) 299 *out = (*M1 != *M2) ? 1 : 0; 300 break; 301 case 'L': 302 for (i = 0; i < Nx; i++, out++, M2++) 303 *out = (*M1 <= *M2) ? 1 : 0; 304 break; 305 case 'G': 306 for (i = 0; i < Nx; i++, out++, M2++) 307 *out = (*M1 >= *M2) ? 1 : 0; 308 break; 309 case 'A': 310 for (i = 0; i < Nx; i++, out++, M2++) 311 *out = (*M1 && *M2) ? 1 : 0; 312 break; 313 case 'O': 314 for (i = 0; i < Nx; i++, out++, M2++) 315 *out = (*M1 || *M2) ? 1 : 0; 316 break; 317 default: 318 sprintf (line, "error: op %c not defined!", op[0]); 319 push_error (line); 320 return (FALSE); 321 } 143 case '+': SV_FUNC(M1 + *M2); 144 case '-': SV_FUNC(M1 - *M2); 145 case '*': SV_FUNC(M1 * *M2); 146 case '/': SV_FUNC(M1 / *M2); 147 case '%': SV_FUNC((int) M1 % (int) *M2); 148 case '^': SV_FUNC(pow (M1, *M2)); 149 case '@': SV_FUNC(DEG_RAD*atan2 (M1, *M2)); 150 case 'D': SV_FUNC(MIN (M1, *M2)); 151 case 'U': SV_FUNC(MAX (M1, *M2)); 152 case '<': SV_FUNC((M1 < *M2) ? 1 : 0); 153 case '>': SV_FUNC((M1 > *M2) ? 1 : 0); 154 case '&': SV_FUNC(((int)M1 & (int)*M2)); 155 case '|': SV_FUNC(((int)M1 | (int)*M2)); 156 case 'E': SV_FUNC((M1 == *M2) ? 1 : 0); 157 case 'N': SV_FUNC((M1 != *M2) ? 1 : 0); 158 case 'L': SV_FUNC((M1 <= *M2) ? 1 : 0); 159 case 'G': SV_FUNC((M1 >= *M2) ? 1 : 0); 160 case 'A': SV_FUNC((M1 && *M2) ? 1 : 0); 161 case 'O': SV_FUNC((M1 || *M2) ? 1 : 0); 162 default: 163 sprintf (line, "error: op %c not defined!", op[0]); 164 push_error (line); 165 return (FALSE); 166 } 167 # undef SV_FUNC 322 168 323 169 /** free up any temporary buffers: **/ 324 170 if (V2[0].type == 'v') { 325 free (V2[0].vector[0].elements );171 free (V2[0].vector[0].elements.Ptr); 326 172 free (V2[0].vector); 327 173 } … … 338 184 339 185 int i, Nx; 340 float *out, *M1, *M2;341 186 char line[512]; // this is only used to report an error 342 187 … … 352 197 OUT[0].type = 'v'; /*** <<--- says this is a temporary matrix ***/ 353 198 354 M1 = V1[0].ptr; 355 M2 = V2[0].ptr; 356 out = OUT[0].ptr = (float *)OUT[0].vector[0].elements; 199 opihi_flt *M1 = V1[0].vector[0].elements.Flt; 200 opihi_flt M2 = V2[0].FltValue; 201 opihi_flt *out = OUT[0].vector[0].elements.Flt; 202 203 # define VS_FUNC(OP) \ 204 for (i = 0; i < Nx; i++, out++, M1++) \ 205 *out = OP; \ 206 break; 357 207 358 208 switch (op[0]) { 359 case '+': 360 for (i = 0; i < Nx; i++, out++, M1++) 361 *out = *M1 + *M2; 362 break; 363 case '-': 364 for (i = 0; i < Nx; i++, out++, M1++) 365 *out = *M1 - *M2; 366 break; 367 case '*': 368 for (i = 0; i < Nx; i++, out++, M1++) 369 *out = *M1 * *M2; 370 break; 371 case '/': 372 for (i = 0; i < Nx; i++, out++, M1++) 373 *out = *M1 / *M2; 374 break; 375 case '%': 376 for (i = 0; i < Nx; i++, out++, M1++) 377 *out = (int) *M1 % (int) *M2; 378 break; 379 case 0x5e: 380 for (i = 0; i < Nx; i++, out++, M1++) 381 *out = pow (*M1, *M2); 382 break; 383 case '@': 384 for (i = 0; i < Nx; i++, out++, M1++) 385 *out = DEG_RAD*atan2 (*M1, *M2); 386 break; 387 case 'D': 388 for (i = 0; i < Nx; i++, out++, M1++) 389 *out = MIN (*M1, *M2); 390 break; 391 case 'U': 392 for (i = 0; i < Nx; i++, out++, M1++) 393 *out = MAX (*M1, *M2); 394 break; 395 case '<': 396 for (i = 0; i < Nx; i++, out++, M1++) 397 *out = (*M1 < *M2) ? 1 : 0; 398 break; 399 case '>': 400 for (i = 0; i < Nx; i++, out++, M1++) 401 *out = (*M1 > *M2) ? 1 : 0; 402 break; 403 case '&': 404 for (i = 0; i < Nx; i++, out++, M1++) 405 *out = ((int)*M1 & (int)*M2); 406 break; 407 case '|': 408 for (i = 0; i < Nx; i++, out++, M1++) 409 *out = ((int)*M1 | (int)*M2); 410 break; 411 case 'E': 412 for (i = 0; i < Nx; i++, out++, M1++) 413 *out = (*M1 == *M2) ? 1 : 0; 414 break; 415 case 'N': 416 for (i = 0; i < Nx; i++, out++, M1++) 417 *out = (*M1 != *M2) ? 1 : 0; 418 break; 419 case 'L': 420 for (i = 0; i < Nx; i++, out++, M1++) 421 *out = (*M1 <= *M2) ? 1 : 0; 422 break; 423 case 'G': 424 for (i = 0; i < Nx; i++, out++, M1++) 425 *out = (*M1 >= *M2) ? 1 : 0; 426 break; 427 case 'A': 428 for (i = 0; i < Nx; i++, out++, M1++) 429 *out = (*M1 && *M2) ? 1 : 0; 430 break; 431 case 'O': 432 for (i = 0; i < Nx; i++, out++, M1++) 433 *out = (*M1 || *M2) ? 1 : 0; 434 break; 435 default: 436 sprintf (line, "error: op %c not defined!", op[0]); 437 push_error (line); 438 return (FALSE); 439 } 209 case '+': VS_FUNC(*M1 + M2); 210 case '-': VS_FUNC(*M1 - M2); 211 case '*': VS_FUNC(*M1 * M2); 212 case '/': VS_FUNC(*M1 / M2); 213 case '%': VS_FUNC((int) *M1 % (int) M2); 214 case '^': VS_FUNC(pow (*M1, M2)); 215 case '@': VS_FUNC(DEG_RAD*atan2 (*M1, M2)); 216 case 'D': VS_FUNC(MIN (*M1, M2)); 217 case 'U': VS_FUNC(MAX (*M1, M2)); 218 case '<': VS_FUNC((*M1 < M2) ? 1 : 0); 219 case '>': VS_FUNC((*M1 > M2) ? 1 : 0); 220 case '&': VS_FUNC(((int)*M1 & (int)M2)); 221 case '|': VS_FUNC(((int)*M1 | (int)M2)); 222 case 'E': VS_FUNC((*M1 == M2) ? 1 : 0); 223 case 'N': VS_FUNC((*M1 != M2) ? 1 : 0); 224 case 'L': VS_FUNC((*M1 <= M2) ? 1 : 0); 225 case 'G': VS_FUNC((*M1 >= M2) ? 1 : 0); 226 case 'A': VS_FUNC((*M1 && M2) ? 1 : 0); 227 case 'O': VS_FUNC((*M1 || M2) ? 1 : 0); 228 default: 229 sprintf (line, "error: op %c not defined!", op[0]); 230 push_error (line); 231 return (FALSE); 232 } 233 # undef VS_FUNC 440 234 441 235 /** free up any temporary buffers: **/ 442 236 443 237 if (V1[0].type == 'v') { 444 free (V1[0].vector[0].elements );238 free (V1[0].vector[0].elements.Ptr); 445 239 free (V1[0].vector); 446 240 } … … 454 248 } 455 249 250 // the vector is applied to each column 456 251 int MV_binary (StackVar *OUT, StackVar *V1, StackVar *V2, char *op) { 457 252 458 253 int i, j, Nx, Ny; 459 float *out, *M1, *M2;460 254 char line[512]; // this is only used to report an error 461 255 … … 478 272 OUT[0].type = 'm'; /*** <<--- says this is a temporary matrix ***/ 479 273 480 M1 = V1[0].ptr; 481 M2 = V2[0].ptr; 482 out = OUT[0].ptr = (float *)OUT[0].buffer[0].matrix.buffer; 274 float *M1 = (float *) V1[0].buffer[0].matrix.buffer; 275 opihi_flt *M2 = V2[0].vector[0].elements.Flt; 276 float *out = (float *)OUT[0].buffer[0].matrix.buffer; 277 278 # define MV_FUNC(OP) \ 279 for (i = 0; i < Ny; i++, M2++) { \ 280 for (j = 0; j < Nx; j++, out++, M1++) { \ 281 *out = OP; \ 282 } \ 283 } \ 284 break; 483 285 484 286 switch (op[0]) { 485 case '+': 486 for (i = 0; i < Ny; i++, M2++) { 487 for (j = 0; j < Nx; j++, out++, M1++) 488 *out = *M1 + *M2; 489 } 490 break; 491 case '-': 492 for (i = 0; i < Ny; i++, M2++) { 493 for (j = 0; j < Nx; j++, out++, M1++) 494 *out = *M1 - *M2; 495 } 496 break; 497 case '*': 498 for (i = 0; i < Ny; i++, M2++) { 499 for (j = 0; j < Nx; j++, out++, M1++) 500 *out = *M1 * *M2; 501 } 502 break; 503 case '/': 504 for (i = 0; i < Ny; i++, M2++) { 505 for (j = 0; j < Nx; j++, out++, M1++) 506 *out = *M1 / *M2; 507 } 508 break; 509 case '%': 510 for (i = 0; i < Ny; i++, M2++) { 511 for (j = 0; j < Nx; j++, out++, M1++) 512 *out = (int) *M1 % (int) *M2; 513 } 514 break; 515 case 0x5e: 516 for (i = 0; i < Ny; i++, M2++) { 517 for (j = 0; j < Nx; j++, out++, M1++) 518 *out = pow (*M1, *M2); 519 } 520 break; 521 case '@': 522 for (i = 0; i < Ny; i++, M2++) { 523 for (j = 0; j < Nx; j++, out++, M1++) 524 *out = DEG_RAD*atan2 (*M1, *M2); 525 } 526 break; 527 case 'D': 528 for (i = 0; i < Ny; i++, M2++) { 529 for (j = 0; j < Nx; j++, out++, M1++) 530 *out = MIN (*M1, *M2); 531 } 532 break; 533 case 'U': 534 for (i = 0; i < Ny; i++, M2++) { 535 for (j = 0; j < Nx; j++, out++, M1++) 536 *out = MAX (*M1, *M2); 537 } 538 break; 539 case '<': 540 for (i = 0; i < Ny; i++, M2++) { 541 for (j = 0; j < Nx; j++, out++, M1++) 542 *out = (*M1 < *M2) ? 1 : 0; 543 } 544 break; 545 case '>': 546 for (i = 0; i < Ny; i++, M2++) { 547 for (j = 0; j < Nx; j++, out++, M1++) 548 *out = (*M1 > *M2) ? 1 : 0; 549 } 550 break; 551 case '&': 552 for (i = 0; i < Ny; i++, M2++) { 553 for (j = 0; j < Nx; j++, out++, M1++) 554 *out = ((int)*M1 & (int)*M2); 555 } 556 break; 557 case '|': 558 for (i = 0; i < Ny; i++, M2++) { 559 for (j = 0; j < Nx; j++, out++, M1++) 560 *out = ((int)*M1 | (int)*M2); 561 } 562 break; 563 case 'E': 564 for (i = 0; i < Ny; i++, M2++) { 565 for (j = 0; j < Nx; j++, out++, M1++) 566 *out = (*M1 == *M2) ? 1 : 0; 567 } 568 break; 569 case 'N': 570 for (i = 0; i < Ny; i++, M2++) { 571 for (j = 0; j < Nx; j++, out++, M1++) 572 *out = (*M1 != *M2) ? 1 : 0; 573 } 574 break; 575 case 'L': 576 for (i = 0; i < Ny; i++, M2++) { 577 for (j = 0; j < Nx; j++, out++, M1++) 578 *out = (*M1 <= *M2) ? 1 : 0; 579 } 580 break; 581 case 'G': 582 for (i = 0; i < Ny; i++, M2++) { 583 for (j = 0; j < Nx; j++, out++, M1++) 584 *out = (*M1 >= *M2) ? 1 : 0; 585 } 586 break; 587 case 'A': 588 for (i = 0; i < Ny; i++, M2++) { 589 for (j = 0; j < Nx; j++, out++, M1++) 590 *out = (*M1 && *M2) ? 1 : 0; 591 } 592 break; 593 case 'O': 594 for (i = 0; i < Ny; i++, M2++) { 595 for (j = 0; j < Nx; j++, out++, M1++) 596 *out = (*M1 || *M2) ? 1 : 0; 597 } 598 break; 599 default: 600 sprintf (line, "error: op %c not defined!", op[0]); 601 push_error (line); 602 return (FALSE); 287 case '+': MV_FUNC(*M1 + *M2); 288 case '-': MV_FUNC(*M1 - *M2); 289 case '*': MV_FUNC(*M1 * *M2); 290 case '/': MV_FUNC(*M1 / *M2); 291 case '%': MV_FUNC((int) *M1 % (int) *M2); 292 case '^': MV_FUNC(pow (*M1, *M2)); 293 case '@': MV_FUNC(DEG_RAD*atan2 (*M1, *M2)); 294 case 'D': MV_FUNC(MIN (*M1, *M2)); 295 case 'U': MV_FUNC(MAX (*M1, *M2)); 296 case '<': MV_FUNC((*M1 < *M2) ? 1 : 0); 297 case '>': MV_FUNC((*M1 > *M2) ? 1 : 0); 298 case '&': MV_FUNC(((int)*M1 & (int)*M2)); 299 case '|': MV_FUNC(((int)*M1 | (int)*M2)); 300 case 'E': MV_FUNC((*M1 == *M2) ? 1 : 0); 301 case 'N': MV_FUNC((*M1 != *M2) ? 1 : 0); 302 case 'L': MV_FUNC((*M1 <= *M2) ? 1 : 0); 303 case 'G': MV_FUNC((*M1 >= *M2) ? 1 : 0); 304 case 'A': MV_FUNC((*M1 && *M2) ? 1 : 0); 305 case 'O': MV_FUNC((*M1 || *M2) ? 1 : 0); 306 default: 307 sprintf (line, "error: op %c not defined!", op[0]); 308 push_error (line); 309 return (FALSE); 603 310 } 604 311 … … 611 318 } 612 319 if (V2[0].type == 'v') { 613 free (V2[0].vector[0].elements );320 free (V2[0].vector[0].elements.Ptr); 614 321 free (V2[0].vector); 615 322 } … … 620 327 /* at the end, V1 and V2 are deleted only if they were temporary */ 621 328 return (TRUE); 622 623 } 624 625 329 } 330 331 // the vector is applied to each row 626 332 int VM_binary (StackVar *OUT, StackVar *V1, StackVar *V2, char *op) { 627 333 628 334 int i, j, Nx, Ny; 629 float *out, *M1, *M2;630 335 char line[512]; // this is only used to report an error 631 336 … … 646 351 OUT[0].type = 'm'; /*** <<--- says this is a temporary matrix ***/ 647 352 648 M1 = V1[0].ptr; 649 M2 = V2[0].ptr; 650 out = OUT[0].ptr = (float *)OUT[0].buffer[0].matrix.buffer; 353 opihi_flt *M1 = V1[0].vector[0].elements.Flt; 354 float *M2 = (float *) V2[0].buffer[0].matrix.buffer; 355 float *out = (float *)OUT[0].buffer[0].matrix.buffer; 356 357 # define VM_FUNC(OP) \ 358 for (i = 0; i < Ny; i++) { \ 359 M1 = V1[0].vector[0].elements.Flt; \ 360 for (j = 0; j < Nx; j++, out++, M1++, M2++) { \ 361 *out = OP; \ 362 } \ 363 } \ 364 break; 651 365 652 366 switch (op[0]) { 653 case '+': 654 for (i = 0; i < Ny; i++) { 655 M1 = V1[0].ptr; 656 for (j = 0; j < Nx; j++, out++, M1++, M2++) 657 *out = *M1 + *M2; 658 } 659 break; 660 case '-': 661 for (i = 0; i < Ny; i++) { 662 M1 = V1[0].ptr; 663 for (j = 0; j < Nx; j++, out++, M1++, M2++) 664 *out = *M1 - *M2; 665 } 666 break; 667 case '*': 668 for (i = 0; i < Ny; i++) { 669 M1 = V1[0].ptr; 670 for (j = 0; j < Nx; j++, out++, M1++, M2++) 671 *out = *M1 * *M2; 672 } 673 break; 674 case '/': 675 for (i = 0; i < Ny; i++) { 676 M1 = V1[0].ptr; 677 for (j = 0; j < Nx; j++, out++, M1++, M2++) 678 *out = *M1 / *M2; 679 } 680 break; 681 case '%': 682 for (i = 0; i < Ny; i++) { 683 M1 = V1[0].ptr; 684 for (j = 0; j < Nx; j++, out++, M1++, M2++) 685 *out = (int) *M1 % (int) *M2; 686 } 687 break; 688 case 0x5e: 689 for (i = 0; i < Ny; i++) { 690 M1 = V1[0].ptr; 691 for (j = 0; j < Nx; j++, out++, M1++, M2++) 692 *out = pow (*M1, *M2); 693 } 694 break; 695 case '@': 696 for (i = 0; i < Ny; i++) { 697 M1 = V1[0].ptr; 698 for (j = 0; j < Nx; j++, out++, M1++, M2++) 699 *out = DEG_RAD*atan2 (*M1, *M2); 700 } 701 break; 702 case 'D': 703 for (i = 0; i < Ny; i++) { 704 M1 = V1[0].ptr; 705 for (j = 0; j < Nx; j++, out++, M1++, M2++) 706 *out = MIN (*M1, *M2); 707 } 708 break; 709 case 'U': 710 for (i = 0; i < Ny; i++) { 711 M1 = V1[0].ptr; 712 for (j = 0; j < Nx; j++, out++, M1++, M2++) 713 *out = MAX (*M1, *M2); 714 } 715 break; 716 case '<': 717 for (i = 0; i < Ny; i++) { 718 M1 = V1[0].ptr; 719 for (j = 0; j < Nx; j++, out++, M1++, M2++) 720 *out = (*M1 < *M2) ? 1 : 0; 721 } 722 break; 723 case '>': 724 for (i = 0; i < Ny; i++) { 725 M1 = V1[0].ptr; 726 for (j = 0; j < Nx; j++, out++, M1++, M2++) 727 *out = (*M1 > *M2) ? 1 : 0; 728 } 729 break; 730 case '&': 731 for (i = 0; i < Ny; i++) { 732 M1 = V1[0].ptr; 733 for (j = 0; j < Nx; j++, out++, M1++, M2++) 734 *out = ((int)*M1 & (int)*M2); 735 } 736 break; 737 case '|': 738 for (i = 0; i < Ny; i++) { 739 M1 = V1[0].ptr; 740 for (j = 0; j < Nx; j++, out++, M1++, M2++) 741 *out = ((int)*M1 | (int)*M2); 742 } 743 break; 744 case 'E': 745 for (i = 0; i < Ny; i++) { 746 M1 = V1[0].ptr; 747 for (j = 0; j < Nx; j++, out++, M1++, M2++) 748 *out = (*M1 == *M2) ? 1 : 0; 749 } 750 break; 751 case 'N': 752 for (i = 0; i < Ny; i++) { 753 M1 = V1[0].ptr; 754 for (j = 0; j < Nx; j++, out++, M1++, M2++) 755 *out = (*M1 != *M2) ? 1 : 0; 756 } 757 break; 758 case 'L': 759 for (i = 0; i < Ny; i++) { 760 M1 = V1[0].ptr; 761 for (j = 0; j < Nx; j++, out++, M1++, M2++) 762 *out = (*M1 <= *M2) ? 1 : 0; 763 } 764 break; 765 case 'G': 766 for (i = 0; i < Ny; i++) { 767 M1 = V1[0].ptr; 768 for (j = 0; j < Nx; j++, out++, M1++, M2++) 769 *out = (*M1 >= *M2) ? 1 : 0; 770 } 771 break; 772 case 'A': 773 for (i = 0; i < Ny; i++) { 774 M1 = V1[0].ptr; 775 for (j = 0; j < Nx; j++, out++, M1++, M2++) 776 *out = (*M1 && *M2) ? 1 : 0; 777 } 778 break; 779 case 'O': 780 for (i = 0; i < Ny; i++) { 781 M1 = V1[0].ptr; 782 for (j = 0; j < Nx; j++, out++, M1++, M2++) 783 *out = (*M1 || *M2) ? 1 : 0; 784 } 785 break; 786 default: 787 sprintf (line, "error: op %c not defined!", op[0]); 788 push_error (line); 789 return (FALSE); 367 case '+': VM_FUNC(*M1 + *M2); 368 case '-': VM_FUNC(*M1 - *M2); 369 case '*': VM_FUNC(*M1 * *M2); 370 case '/': VM_FUNC(*M1 / *M2); 371 case '%': VM_FUNC((int) *M1 % (int) *M2); 372 case '^': VM_FUNC(pow (*M1, *M2)); 373 case '@': VM_FUNC(DEG_RAD*atan2 (*M1, *M2)); 374 case 'D': VM_FUNC(MIN (*M1, *M2)); 375 case 'U': VM_FUNC(MAX (*M1, *M2)); 376 case '<': VM_FUNC((*M1 < *M2) ? 1 : 0); 377 case '>': VM_FUNC((*M1 > *M2) ? 1 : 0); 378 case '&': VM_FUNC(((int)*M1 & (int)*M2)); 379 case '|': VM_FUNC(((int)*M1 | (int)*M2)); 380 case 'E': VM_FUNC((*M1 == *M2) ? 1 : 0); 381 case 'N': VM_FUNC((*M1 != *M2) ? 1 : 0); 382 case 'L': VM_FUNC((*M1 <= *M2) ? 1 : 0); 383 case 'G': VM_FUNC((*M1 >= *M2) ? 1 : 0); 384 case 'A': VM_FUNC((*M1 && *M2) ? 1 : 0); 385 case 'O': VM_FUNC((*M1 || *M2) ? 1 : 0); 386 default: 387 sprintf (line, "error: op %c not defined!", op[0]); 388 push_error (line); 389 return (FALSE); 790 390 } 791 391 … … 793 393 794 394 if (V1[0].type == 'v') { 795 free (V1[0].vector[0].elements );395 free (V1[0].vector[0].elements.Ptr); 796 396 free (V1[0].vector); 797 397 } … … 833 433 OUT[0].type = 'm'; /*** <<--- says this is a temporary matrix ***/ 834 434 835 M1 = V1[0].ptr;836 M2 = V2[0].ptr;837 out = OUT[0].ptr =(float *)OUT[0].buffer[0].matrix.buffer;435 M1 = (float *)V1[0].buffer[0].matrix.buffer; 436 M2 = (float *)V2[0].buffer[0].matrix.buffer; 437 out = (float *)OUT[0].buffer[0].matrix.buffer; 838 438 839 439 switch (op[0]) { … … 945 545 946 546 int i, Nx, Ny; 947 float *out, *M1, *M2; 547 float *out, *M1; 548 opihi_flt M2; 948 549 char line[512]; // this is only used to report an error 949 550 … … 961 562 OUT[0].type = 'm'; /*** <<--- says this is a temporary matrix ***/ 962 563 963 M1 = V1[0].ptr;964 M2 = V2[0]. ptr;965 out = OUT[0].ptr =(float *)OUT[0].buffer[0].matrix.buffer;564 M1 = (float *)V1[0].buffer[0].matrix.buffer; 565 M2 = V2[0].FltValue; 566 out = (float *)OUT[0].buffer[0].matrix.buffer; 966 567 967 568 switch (op[0]) { 968 569 case '+': 969 570 for (i = 0; i < Nx*Ny; i++, out++, M1++) 970 *out = *M1 + *M2;571 *out = *M1 + M2; 971 572 break; 972 573 case '-': 973 574 for (i = 0; i < Nx*Ny; i++, out++, M1++) 974 *out = *M1 - *M2;575 *out = *M1 - M2; 975 576 break; 976 577 case '*': 977 578 for (i = 0; i < Nx*Ny; i++, out++, M1++) 978 *out = *M1 * *M2;579 *out = *M1 * M2; 979 580 break; 980 581 case '/': 981 582 for (i = 0; i < Nx*Ny; i++, out++, M1++) 982 *out = *M1 / *M2;583 *out = *M1 / M2; 983 584 break; 984 585 case '%': 985 586 for (i = 0; i < Nx*Ny; i++, out++, M1++) 986 *out = (int) *M1 % (int) *M2;587 *out = (int) *M1 % (int) M2; 987 588 break; 988 589 case 0x5e: 989 590 for (i = 0; i < Nx*Ny; i++, out++, M1++) 990 *out = pow (*M1, *M2);591 *out = pow (*M1, M2); 991 592 break; 992 593 case '@': 993 594 for (i = 0; i < Nx*Ny; i++, out++, M1++) 994 *out = DEG_RAD*atan2 (*M1, *M2);595 *out = DEG_RAD*atan2 (*M1, M2); 995 596 break; 996 597 case 'D': 997 598 for (i = 0; i < Nx*Ny; i++, out++, M1++) 998 *out = MIN (*M1, *M2);599 *out = MIN (*M1, M2); 999 600 break; 1000 601 case 'U': 1001 602 for (i = 0; i < Nx*Ny; i++, out++, M1++) 1002 *out = MAX (*M1, *M2);603 *out = MAX (*M1, M2); 1003 604 break; 1004 605 case '<': 1005 606 for (i = 0; i < Nx*Ny; i++, out++, M1++) 1006 *out = (*M1 < *M2) ? 1 : 0;607 *out = (*M1 < M2) ? 1 : 0; 1007 608 break; 1008 609 case '>': 1009 610 for (i = 0; i < Nx*Ny; i++, out++, M1++) 1010 *out = (*M1 > *M2) ? 1 : 0;611 *out = (*M1 > M2) ? 1 : 0; 1011 612 break; 1012 613 case '&': 1013 614 for (i = 0; i < Nx*Ny; i++, out++, M1++) 1014 *out = ((int)*M1 & (int) *M2);615 *out = ((int)*M1 & (int)M2); 1015 616 break; 1016 617 case '|': 1017 618 for (i = 0; i < Nx*Ny; i++, out++, M1++) 1018 *out = ((int)*M1 | (int) *M2);619 *out = ((int)*M1 | (int)M2); 1019 620 break; 1020 621 case 'E': 1021 622 for (i = 0; i < Nx*Ny; i++, out++, M1++) 1022 *out = (*M1 == *M2) ? 1 : 0;623 *out = (*M1 == M2) ? 1 : 0; 1023 624 break; 1024 625 case 'N': 1025 626 for (i = 0; i < Nx*Ny; i++, out++, M1++) 1026 *out = (*M1 != *M2) ? 1 : 0;627 *out = (*M1 != M2) ? 1 : 0; 1027 628 break; 1028 629 case 'L': 1029 630 for (i = 0; i < Nx*Ny; i++, out++, M1++) 1030 *out = (*M1 <= *M2) ? 1 : 0;631 *out = (*M1 <= M2) ? 1 : 0; 1031 632 break; 1032 633 case 'G': 1033 634 for (i = 0; i < Nx*Ny; i++, out++, M1++) 1034 *out = (*M1 >= *M2) ? 1 : 0;635 *out = (*M1 >= M2) ? 1 : 0; 1035 636 break; 1036 637 case 'A': 1037 638 for (i = 0; i < Nx*Ny; i++, out++, M1++) 1038 *out = (*M1 && *M2) ? 1 : 0;639 *out = (*M1 && M2) ? 1 : 0; 1039 640 break; 1040 641 case 'O': 1041 642 for (i = 0; i < Nx*Ny; i++, out++, M1++) 1042 *out = (*M1 || *M2) ? 1 : 0;643 *out = (*M1 || M2) ? 1 : 0; 1043 644 break; 1044 645 default: … … 1064 665 1065 666 int i, Nx, Ny; 1066 float *out, *M1, *M2; 667 float *out, *M2; 668 opihi_flt M1; 1067 669 char line[512]; // this is only used to report an error 1068 670 … … 1079 681 OUT[0].type = 'm'; /*** <<--- says this is a temporary matrix ***/ 1080 682 1081 M1 = V1[0]. ptr;1082 M2 = V2[0].ptr;1083 out = OUT[0].ptr =(float *)OUT[0].buffer[0].matrix.buffer;683 M1 = V1[0].FltValue; 684 M2 = (float *)OUT[0].buffer[0].matrix.buffer; 685 out = (float *)OUT[0].buffer[0].matrix.buffer; 1084 686 1085 687 switch (op[0]) { 1086 688 case '+': 1087 689 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1088 *out = *M1 + *M2;690 *out = M1 + *M2; 1089 691 break; 1090 692 case '-': 1091 693 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1092 *out = *M1 - *M2;694 *out = M1 - *M2; 1093 695 break; 1094 696 case '*': 1095 697 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1096 *out = *M1 * *M2;698 *out = M1 * *M2; 1097 699 break; 1098 700 case '/': 1099 701 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1100 *out = *M1 / *M2;702 *out = M1 / *M2; 1101 703 break; 1102 704 case '%': 1103 705 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1104 *out = (int) *M1 % (int) *M2;706 *out = (int) M1 % (int) *M2; 1105 707 break; 1106 708 case 0x5e: 1107 709 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1108 *out = pow ( *M1, *M2);710 *out = pow (M1, *M2); 1109 711 break; 1110 712 case '@': 1111 713 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1112 *out = DEG_RAD*atan2 ( *M1, *M2);714 *out = DEG_RAD*atan2 (M1, *M2); 1113 715 break; 1114 716 case 'D': 1115 717 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1116 *out = MIN ( *M1, *M2);718 *out = MIN (M1, *M2); 1117 719 break; 1118 720 case 'U': 1119 721 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1120 *out = MAX ( *M1, *M2);722 *out = MAX (M1, *M2); 1121 723 break; 1122 724 case '<': 1123 725 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1124 *out = ( *M1 < *M2) ? 1 : 0;726 *out = (M1 < *M2) ? 1 : 0; 1125 727 break; 1126 728 case '>': 1127 729 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1128 *out = ( *M1 > *M2) ? 1 : 0;730 *out = (M1 > *M2) ? 1 : 0; 1129 731 break; 1130 732 case '&': 1131 733 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1132 *out = ((int) *M1 & (int)*M2);734 *out = ((int)M1 & (int)*M2); 1133 735 break; 1134 736 case '|': 1135 737 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1136 *out = ((int) *M1 | (int)*M2);738 *out = ((int)M1 | (int)*M2); 1137 739 break; 1138 740 case 'E': 1139 741 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1140 *out = ( *M1 == *M2) ? 1 : 0;742 *out = (M1 == *M2) ? 1 : 0; 1141 743 break; 1142 744 case 'N': 1143 745 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1144 *out = ( *M1 != *M2) ? 1 : 0;746 *out = (M1 != *M2) ? 1 : 0; 1145 747 break; 1146 748 case 'L': 1147 749 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1148 *out = ( *M1 <= *M2) ? 1 : 0;750 *out = (M1 <= *M2) ? 1 : 0; 1149 751 break; 1150 752 case 'G': 1151 753 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1152 *out = ( *M1 >= *M2) ? 1 : 0;754 *out = (M1 >= *M2) ? 1 : 0; 1153 755 break; 1154 756 case 'A': 1155 757 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1156 *out = ( *M1 && *M2) ? 1 : 0;758 *out = (M1 && *M2) ? 1 : 0; 1157 759 break; 1158 760 case 'O': 1159 761 for (i = 0; i < Nx*Ny; i++, out++, M2++) 1160 *out = ( *M1 || *M2) ? 1 : 0;762 *out = (M1 || *M2) ? 1 : 0; 1161 763 break; 1162 764 default: … … 1181 783 int SS_binary (StackVar *OUT, StackVar *V1, StackVar *V2, char *op) { 1182 784 1183 float *M1, *M2, *out;785 opihi_flt M1, M2; 1184 786 char line[512]; // this is only used to report an error 1185 787 1186 M1 = V1[0].ptr; 1187 M2 = V2[0].ptr; 1188 OUT[0].ptr = V1[0].ptr; 1189 out = OUT[0].ptr; 1190 788 M1 = V1[0].FltValue; 789 M2 = V2[0].FltValue; 790 OUT[0].type = 'S'; 1191 791 1192 792 switch (op[0]) { 1193 793 case '+': 1194 *out = *M1 + *M2;794 OUT[0].FltValue = M1 + M2; 1195 795 break; 1196 796 case '-': 1197 *out = *M1 - *M2;797 OUT[0].FltValue = M1 - M2; 1198 798 break; 1199 799 case '*': 1200 *out = *M1 * *M2;800 OUT[0].FltValue = M1 * M2; 1201 801 break; 1202 802 case '/': 1203 *out = *M1 / *M2;803 OUT[0].FltValue = M1 / M2; 1204 804 break; 1205 805 case '%': 1206 *out = (int) *M1 % (int) *M2;806 OUT[0].FltValue = (int) M1 % (int) M2; 1207 807 break; 1208 808 case 0x5e: 1209 *out = pow (*M1, *M2);809 OUT[0].FltValue = pow (M1, M2); 1210 810 break; 1211 811 case '@': 1212 *out = DEG_RAD*atan2 (*M1, *M2);812 OUT[0].FltValue = DEG_RAD*atan2 (M1, M2); 1213 813 break; 1214 814 case 'D': 1215 *out = MIN (*M1, *M2);815 OUT[0].FltValue = MIN (M1, M2); 1216 816 break; 1217 817 case 'U': 1218 *out = MAX (*M1, *M2);818 OUT[0].FltValue = MAX (M1, M2); 1219 819 break; 1220 820 case '<': 1221 *out = (*M1 < *M2) ? 1 : 0;821 OUT[0].FltValue = (M1 < M2) ? 1 : 0; 1222 822 break; 1223 823 case '>': 1224 *out = (*M1 > *M2) ? 1 : 0;824 OUT[0].FltValue = (M1 > M2) ? 1 : 0; 1225 825 break; 1226 826 case '&': 1227 *out = ((int)*M1 & (int)*M2);827 OUT[0].FltValue = ((int)M1 & (int)M2); 1228 828 break; 1229 829 case '|': 1230 *out = ((int)*M1 | (int)*M2);830 OUT[0].FltValue = ((int)M1 | (int)M2); 1231 831 break; 1232 832 case 'E': 1233 *out = (*M1 == *M2) ? 1 : 0;833 OUT[0].FltValue = (M1 == M2) ? 1 : 0; 1234 834 break; 1235 835 case 'N': 1236 *out = (*M1 != *M2) ? 1 : 0;836 OUT[0].FltValue = (M1 != M2) ? 1 : 0; 1237 837 break; 1238 838 case 'L': 1239 *out = (*M1 <= *M2) ? 1 : 0;839 OUT[0].FltValue = (M1 <= M2) ? 1 : 0; 1240 840 break; 1241 841 case 'G': 1242 *out = (*M1 >= *M2) ? 1 : 0;842 OUT[0].FltValue = (M1 >= M2) ? 1 : 0; 1243 843 break; 1244 844 case 'A': 1245 *out = (*M1 && *M2) ? 1 : 0;845 OUT[0].FltValue = (M1 && M2) ? 1 : 0; 1246 846 break; 1247 847 case 'O': 1248 *out = (*M1 || *M2) ? 1 : 0;848 OUT[0].FltValue = (M1 || M2) ? 1 : 0; 1249 849 break; 1250 850 default: … … 1253 853 return (FALSE); 1254 854 } 1255 OUT[0].Float = *(OUT[0].ptr);1256 OUT[0].type = 'S';1257 855 1258 856 clear_stack (V1); … … 1304 902 1305 903 escape: 1306 OUT[0].Fl oat= value;904 OUT[0].FltValue = value; 1307 905 OUT[0].type = 'S'; 1308 OUT[0].ptr = &OUT[0].Float;1309 906 1310 907 clear_stack (V1); … … 1317 914 int S_unary (StackVar *OUT, StackVar *V1, char *op) { 1318 915 1319 float *out, *M1;916 opihi_flt M1; 1320 917 1321 out = OUT[0].ptr = V1[0].ptr;1322 M1 = V1[0].ptr;918 M1 = V1[0].FltValue; 919 OUT[0].type = 'S'; 1323 920 1324 921 if (!strcmp (op, "=")) { } 1325 if (!strcmp (op, "abs")) { *out = fabs(*M1); } 1326 if (!strcmp (op, "int")) { *out = (float)(int)(*M1); } 1327 if (!strcmp (op, "exp")) { *out = exp (*M1); } 1328 if (!strcmp (op, "ten")) { *out = pow (10.0,*M1); } 1329 if (!strcmp (op, "log")) { *out = log10 (*M1); } 1330 if (!strcmp (op, "ln")) { *out = log (*M1); } 1331 if (!strcmp (op, "sqrt")) { *out = sqrt (*M1); } 1332 if (!strcmp (op, "erf")) { *out = erf (*M1); } 1333 1334 if (!strcmp (op, "sinh")) { *out = sinh (*M1); } 1335 if (!strcmp (op, "cosh")) { *out = cosh (*M1); } 1336 if (!strcmp (op, "asinh")) { *out = asinh (*M1); } 1337 if (!strcmp (op, "acosh")) { *out = acosh (*M1); } 1338 if (!strcmp (op, "lgamma")) { *out = lgamma (*M1); } 1339 1340 if (!strcmp (op, "sin")) { *out = sin (*M1); } 1341 if (!strcmp (op, "cos")) { *out = cos (*M1); } 1342 if (!strcmp (op, "tan")) { *out = tan (*M1); } 1343 if (!strcmp (op, "dsin")) { *out = sin (*M1*RAD_DEG); } 1344 if (!strcmp (op, "dcos")) { *out = cos (*M1*RAD_DEG); } 1345 if (!strcmp (op, "dtan")) { *out = tan (*M1*RAD_DEG); } 1346 if (!strcmp (op, "asin")) { *out = asin (*M1); } 1347 if (!strcmp (op, "acos")) { *out = acos (*M1); } 1348 if (!strcmp (op, "atan")) { *out = atan (*M1); } 1349 if (!strcmp (op, "dasin")) { *out = asin (*M1)*DEG_RAD; } 1350 if (!strcmp (op, "dacos")) { *out = acos (*M1)*DEG_RAD; } 1351 if (!strcmp (op, "datan")) { *out = atan (*M1)*DEG_RAD; } 1352 if (!strcmp (op, "rnd")) { *out = drand48(); } 1353 if (!strcmp (op, "not")) { *out = !(*M1); } 1354 if (!strcmp (op, "--")) { *out = - (*M1); } 1355 if (!strcmp (op, "isinf")) { *out = !finite(*M1); } 1356 if (!strcmp (op, "isnan")) { *out = isnan(*M1); } 1357 1358 OUT[0].Float = *out; 1359 OUT[0].type = 'S'; 922 if (!strcmp (op, "abs")) { OUT[0].FltValue = fabs(M1); } 923 if (!strcmp (op, "int")) { OUT[0].FltValue = (float)(int)(M1); } 924 if (!strcmp (op, "exp")) { OUT[0].FltValue = exp (M1); } 925 if (!strcmp (op, "ten")) { OUT[0].FltValue = pow (10.0,M1); } 926 if (!strcmp (op, "log")) { OUT[0].FltValue = log10 (M1); } 927 if (!strcmp (op, "ln")) { OUT[0].FltValue = log (M1); } 928 if (!strcmp (op, "sqrt")) { OUT[0].FltValue = sqrt (M1); } 929 if (!strcmp (op, "erf")) { OUT[0].FltValue = erf (M1); } 930 931 if (!strcmp (op, "sinh")) { OUT[0].FltValue = sinh (M1); } 932 if (!strcmp (op, "cosh")) { OUT[0].FltValue = cosh (M1); } 933 if (!strcmp (op, "asinh")) { OUT[0].FltValue = asinh (M1); } 934 if (!strcmp (op, "acosh")) { OUT[0].FltValue = acosh (M1); } 935 if (!strcmp (op, "lgamma")) { OUT[0].FltValue = lgamma (M1); } 936 937 if (!strcmp (op, "sin")) { OUT[0].FltValue = sin (M1); } 938 if (!strcmp (op, "cos")) { OUT[0].FltValue = cos (M1); } 939 if (!strcmp (op, "tan")) { OUT[0].FltValue = tan (M1); } 940 if (!strcmp (op, "dsin")) { OUT[0].FltValue = sin (M1*RAD_DEG); } 941 if (!strcmp (op, "dcos")) { OUT[0].FltValue = cos (M1*RAD_DEG); } 942 if (!strcmp (op, "dtan")) { OUT[0].FltValue = tan (M1*RAD_DEG); } 943 if (!strcmp (op, "asin")) { OUT[0].FltValue = asin (M1); } 944 if (!strcmp (op, "acos")) { OUT[0].FltValue = acos (M1); } 945 if (!strcmp (op, "atan")) { OUT[0].FltValue = atan (M1); } 946 if (!strcmp (op, "dasin")) { OUT[0].FltValue = asin (M1)*DEG_RAD; } 947 if (!strcmp (op, "dacos")) { OUT[0].FltValue = acos (M1)*DEG_RAD; } 948 if (!strcmp (op, "datan")) { OUT[0].FltValue = atan (M1)*DEG_RAD; } 949 if (!strcmp (op, "rnd")) { OUT[0].FltValue = drand48(); } 950 if (!strcmp (op, "not")) { OUT[0].FltValue = !(M1); } 951 if (!strcmp (op, "--")) { OUT[0].FltValue = - (M1); } 952 if (!strcmp (op, "isinf")) { OUT[0].FltValue = !finite(M1); } 953 if (!strcmp (op, "isnan")) { OUT[0].FltValue = isnan(M1); } 1360 954 1361 955 clear_stack (V1); … … 1367 961 1368 962 int i, Nx; 1369 float *out, *M1;1370 963 1371 964 Nx = V1[0].vector[0].Nelements; … … 1379 972 } 1380 973 OUT[0].type = 'v'; /*** <<--- says this is a temporary matrix ***/ 1381 M1 = V1[0].ptr;1382 o ut = OUT[0].ptr = (float *)OUT[0].vector[0].elements;974 opihi_flt *M1 = V1[0].vector[0].elements.Flt; 975 opihi_flt *out = OUT[0].vector[0].elements.Flt; 1383 976 1384 977 if (!strcmp (op, "=")) { } /* already set equal */ … … 1423 1016 1424 1017 if (V1[0].type == 'v') { 1425 free (V1[0].vector[0].elements );1018 free (V1[0].vector[0].elements.Ptr); 1426 1019 free (V1[0].vector); 1427 1020 V1[0].vector = NULL; … … 1449 1042 } 1450 1043 OUT[0].type = 'm'; /*** <<--- says this is a temporary matrix ***/ 1451 M1 = V1[0].ptr;1452 out = OUT[0].ptr =(float *)OUT[0].buffer[0].matrix.buffer;1044 M1 = (float *) V1[0].buffer[0].matrix.buffer; 1045 out = (float *)OUT[0].buffer[0].matrix.buffer; 1453 1046 1454 1047 if (!strcmp (op, "=")) { } -
branches/eam_branch_20081124/Ohana/src/opihi/mana/findpeaks.c
r7917 r20839 76 76 } 77 77 78 REALLOCATE (vecx[0].elements , float, MAX (Npeak, 1));79 REALLOCATE (vecy[0].elements , float, MAX (Npeak, 1));80 REALLOCATE (vecz[0].elements , float, MAX (Npeak, 1));78 REALLOCATE (vecx[0].elements.Flt, opihi_flt, MAX (Npeak, 1)); 79 REALLOCATE (vecy[0].elements.Flt, opihi_flt, MAX (Npeak, 1)); 80 REALLOCATE (vecz[0].elements.Flt, opihi_flt, MAX (Npeak, 1)); 81 81 /* eliminate non-local peaks */ 82 82 for (N = n = 0; n < Npeak; n++) { 83 83 if (!keep[n]) continue; 84 vecx[0].elements [N] = xp[n];85 vecy[0].elements [N] = yp[n];86 vecz[0].elements [N] = zp[n];84 vecx[0].elements.Flt[N] = xp[n]; 85 vecy[0].elements.Flt[N] = yp[n]; 86 vecz[0].elements.Flt[N] = zp[n]; 87 87 N ++; 88 88 } … … 92 92 free (keep); 93 93 94 REALLOCATE (vecx[0].elements , float, MAX (N, 1));95 REALLOCATE (vecy[0].elements , float, MAX (N, 1));96 REALLOCATE (vecz[0].elements , float, MAX (N, 1));94 REALLOCATE (vecx[0].elements.Flt, opihi_flt, MAX (N, 1)); 95 REALLOCATE (vecy[0].elements.Flt, opihi_flt, MAX (N, 1)); 96 REALLOCATE (vecz[0].elements.Flt, opihi_flt, MAX (N, 1)); 97 97 vecx[0].Nelements = vecy[0].Nelements = vecz[0].Nelements = N; 98 98 -
branches/eam_branch_20081124/Ohana/src/opihi/mana/fitcontour.c
r16059 r20839 32 32 */ 33 33 for (i = 0; i < vecx[0].Nelements; i++) { 34 x = vecx[0].elements [i] - xo;35 y = vecy[0].elements [i] - yo;34 x = vecx[0].elements.Flt[i] - xo; 35 y = vecy[0].elements.Flt[i] - yo; 36 36 r = hypot (x, y); 37 37 -
branches/eam_branch_20081124/Ohana/src/opihi/mana/rawstars.c
r7917 r20839 55 55 Np = xp[0].Nelements; 56 56 57 REALLOCATE (xc[0].elements , float, Np);58 REALLOCATE (yc[0].elements , float, Np);59 REALLOCATE (sx[0].elements , float, Np);60 REALLOCATE (sy[0].elements , float, Np);61 REALLOCATE (sxy[0].elements , float, Np);62 REALLOCATE (zs[0].elements , float, Np);63 REALLOCATE (zc[0].elements , float, Np);64 REALLOCATE (sk[0].elements , float, Np);57 REALLOCATE (xc[0].elements.Flt, opihi_flt, Np); 58 REALLOCATE (yc[0].elements.Flt, opihi_flt, Np); 59 REALLOCATE (sx[0].elements.Flt, opihi_flt, Np); 60 REALLOCATE (sy[0].elements.Flt, opihi_flt, Np); 61 REALLOCATE (sxy[0].elements.Flt, opihi_flt, Np); 62 REALLOCATE (zs[0].elements.Flt, opihi_flt, Np); 63 REALLOCATE (zc[0].elements.Flt, opihi_flt, Np); 64 REALLOCATE (sk[0].elements.Flt, opihi_flt, Np); 65 65 xc[0].Nelements = yc[0].Nelements = sx[0].Nelements = Np; 66 66 sy[0].Nelements = zs[0].Nelements = zc[0].Nelements = Np; … … 69 69 v = (float *) buff[0].matrix.buffer; 70 70 for (i = 0; i < Np; i++) { 71 x = xp[0].elements [i];72 y = yp[0].elements [i];71 x = xp[0].elements.Flt[i]; 72 y = yp[0].elements.Flt[i]; 73 73 if (x < 0) continue; 74 74 if (x >= Nx) continue; … … 77 77 78 78 get_rough_star (v, Nx, Ny, x, y, 79 &xc[0].elements [i],80 &yc[0].elements [i],81 &sx[0].elements [i],82 &sy[0].elements [i],83 &sxy[0].elements [i],84 &zs[0].elements [i],85 &zc[0].elements [i],86 &sk[0].elements [i]);79 &xc[0].elements.Flt[i], 80 &yc[0].elements.Flt[i], 81 &sx[0].elements.Flt[i], 82 &sy[0].elements.Flt[i], 83 &sxy[0].elements.Flt[i], 84 &zs[0].elements.Flt[i], 85 &zc[0].elements.Flt[i], 86 &sk[0].elements.Flt[i]); 87 87 } 88 88 -
branches/eam_branch_20081124/Ohana/src/opihi/mana/starcontour.c
r7917 r20839 22 22 N = 0; 23 23 Npts = 100; 24 REALLOCATE (vecx[0].elements , float, MAX (Npts, 1));25 REALLOCATE (vecy[0].elements , float, MAX (Npts, 1));24 REALLOCATE (vecx[0].elements.Flt, opihi_flt, MAX (Npts, 1)); 25 REALLOCATE (vecy[0].elements.Flt, opihi_flt, MAX (Npts, 1)); 26 26 27 27 Nx = buf[0].matrix.Naxis[0]; … … 41 41 min = TRUE; 42 42 xmin = x + (zo - zt)/(v[x + 1 + y*Nx] - zt); 43 vecx[0].elements [N] = xmin;44 vecy[0].elements [N] = y;43 vecx[0].elements.Flt[N] = xmin; 44 vecy[0].elements.Flt[N] = y; 45 45 N ++; 46 46 if (N >= Npts) { 47 47 Npts += 100; 48 REALLOCATE (vecx[0].elements , float, MAX (Npts, 1));49 REALLOCATE (vecy[0].elements , float, MAX (Npts, 1));48 REALLOCATE (vecx[0].elements.Flt, opihi_flt, MAX (Npts, 1)); 49 REALLOCATE (vecy[0].elements.Flt, opihi_flt, MAX (Npts, 1)); 50 50 } 51 51 } … … 59 59 max = TRUE; 60 60 xmax = x - (zo - zt)/(v[x - 1 + y*Nx] - zt); 61 vecx[0].elements [N] = xmax;62 vecy[0].elements [N] = y;61 vecx[0].elements.Flt[N] = xmax; 62 vecy[0].elements.Flt[N] = y; 63 63 N ++; 64 64 if (N >= Npts) { 65 65 Npts += 100; 66 REALLOCATE (vecx[0].elements , float, MAX (Npts, 1));67 REALLOCATE (vecy[0].elements , float, MAX (Npts, 1));66 REALLOCATE (vecx[0].elements.Flt, opihi_flt, MAX (Npts, 1)); 67 REALLOCATE (vecy[0].elements.Flt, opihi_flt, MAX (Npts, 1)); 68 68 } 69 69 } … … 86 86 min = TRUE; 87 87 xmin = x + (zo - zt)/(v[x + 1 + y*Nx] - zt); 88 vecx[0].elements [N] = xmin;89 vecy[0].elements [N] = y;88 vecx[0].elements.Flt[N] = xmin; 89 vecy[0].elements.Flt[N] = y; 90 90 N ++; 91 91 if (N >= Npts) { 92 92 Npts += 100; 93 REALLOCATE (vecx[0].elements , float, MAX (Npts, 1));94 REALLOCATE (vecy[0].elements , float, MAX (Npts, 1));93 REALLOCATE (vecx[0].elements.Flt, opihi_flt, MAX (Npts, 1)); 94 REALLOCATE (vecy[0].elements.Flt, opihi_flt, MAX (Npts, 1)); 95 95 } 96 96 } … … 104 104 max = TRUE; 105 105 xmax = x - (zo - zt)/(v[x - 1 + y*Nx] - zt); 106 vecx[0].elements [N] = xmax;107 vecy[0].elements [N] = y;106 vecx[0].elements.Flt[N] = xmax; 107 vecy[0].elements.Flt[N] = y; 108 108 N ++; 109 109 if (N >= Npts) { 110 110 Npts += 100; 111 REALLOCATE (vecx[0].elements , float, MAX (Npts, 1));112 REALLOCATE (vecy[0].elements , float, MAX (Npts, 1));111 REALLOCATE (vecx[0].elements.Flt, opihi_flt, MAX (Npts, 1)); 112 REALLOCATE (vecy[0].elements.Flt, opihi_flt, MAX (Npts, 1)); 113 113 } 114 114 }
Note:
See TracChangeset
for help on using the changeset viewer.
