Changeset 37674
- Timestamp:
- Nov 26, 2014, 6:21:42 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140904/Ohana/src/libdvo/src/AstromOffsetMapOps.c
r37445 r37674 3 3 /* AstromOffsetMap functions: 4 4 */ 5 6 int dump_map_data (float *x, float *y, float *f, int Npts, char *filename); 5 7 6 8 float AstromOffsetMapValue (AstromOffsetMap *map, float x, float y, int xdir) { … … 108 110 int Ny = map->Ny; 109 111 110 float**A, **B;111 ALLOCATE (A, float*, Nx*Ny);112 ALLOCATE (B, float*, Nx*Ny);112 double **A, **B; 113 ALLOCATE (A, double *, Nx*Ny); 114 ALLOCATE (B, double *, Nx*Ny); 113 115 for (i = 0; i < Nx*Ny; i++) { 114 ALLOCATE (A[i], float, Nx*Ny);115 memset (A[i], 0, sizeof( float)*Nx*Ny);116 ALLOCATE (B[i], float, 1);117 memset (B[i], 0, sizeof( float));116 ALLOCATE (A[i], double, Nx*Ny); 117 memset (A[i], 0, sizeof(double)*Nx*Ny); 118 ALLOCATE (B[i], double, 1); 119 memset (B[i], 0, sizeof(double)); 118 120 } 119 121 … … 135 137 for (iy = 0; iy < Ny; iy++) { 136 138 // define & init summing variables 137 floatrx_rx_ry_ry = 0;138 floatrx_rx_dy_ry = 0;139 floatdx_rx_ry_ry = 0;140 floatdx_rx_dy_ry = 0;141 floatfi_rx_ry = 0;142 floatrx_rx_py_py = 0;143 floatrx_rx_qy_py = 0;144 floatdx_rx_py_py = 0;145 floatdx_rx_qy_py = 0;146 floatfi_rx_py = 0;147 floatpx_px_ry_ry = 0;148 floatpx_px_dy_ry = 0;149 floatqx_px_ry_ry = 0;150 floatqx_px_dy_ry = 0;151 floatfi_px_ry = 0;152 floatpx_px_py_py = 0;153 floatpx_px_qy_py = 0;154 floatqx_px_py_py = 0;155 floatqx_px_qy_py = 0;156 floatfi_px_py = 0;139 double rx_rx_ry_ry = 0; 140 double rx_rx_dy_ry = 0; 141 double dx_rx_ry_ry = 0; 142 double dx_rx_dy_ry = 0; 143 double fi_rx_ry = 0; 144 double rx_rx_py_py = 0; 145 double rx_rx_qy_py = 0; 146 double dx_rx_py_py = 0; 147 double dx_rx_qy_py = 0; 148 double fi_rx_py = 0; 149 double px_px_ry_ry = 0; 150 double px_px_dy_ry = 0; 151 double qx_px_ry_ry = 0; 152 double qx_px_dy_ry = 0; 153 double fi_px_ry = 0; 154 double px_px_py_py = 0; 155 double px_px_qy_py = 0; 156 double qx_px_py_py = 0; 157 double qx_px_qy_py = 0; 158 double fi_px_py = 0; 157 159 158 160 // generate the sums for the fitting matrix element I,J … … 167 169 168 170 // base coordinate offset for this point (x,y) relative to this map element (n,m) 169 // floatdx = psImageBinningGetRuffX (map->binning, x->data.F32[i]) - (n + 0.5);170 // floatdy = psImageBinningGetRuffY (map->binning, y->data.F32[i]) - (m + 0.5);171 172 floatdx = x[i] * map->dX - ix - 0.5;173 floatdy = y[i] * map->dY - iy - 0.5;171 // double dx = psImageBinningGetRuffX (map->binning, x->data.F32[i]) - (n + 0.5); 172 // double dy = psImageBinningGetRuffY (map->binning, y->data.F32[i]) - (m + 0.5); 173 174 double dx = x[i] * map->dX - ix - 0.5; 175 double dy = y[i] * map->dY - iy - 0.5; 174 176 175 177 // XXX do I need to do something different at the edge or not? I want to allow … … 195 197 196 198 // related offset values 197 floatrx = 1.0 - dx;198 floatry = 1.0 - dy;199 floatpx = 1.0 + dx;200 floatpy = 1.0 + dy;201 floatqx = 0.0 - dx;202 floatqy = 0.0 - dy;199 double rx = 1.0 - dx; 200 double ry = 1.0 - dy; 201 double px = 1.0 + dx; 202 double py = 1.0 + dy; 203 double qx = 0.0 - dx; 204 double qy = 0.0 - dy; 203 205 204 206 // sum the appropriate elements for the different quadrants … … 306 308 } 307 309 308 if ( 0) {310 if (1) { 309 311 FILE *fd = fopen ("matrix.dat", "w"); 310 312 for (i = 0; i < Nx*Ny; i++) { … … 317 319 } 318 320 319 if (! fgaussjordan(A, B, Nx*Ny, 1)) {321 if (!dgaussjordan(A, B, Nx*Ny, 1)) { 320 322 fprintf (stderr, "FAIL\n"); 321 323 exit (1); … … 350 352 } 351 353 354 int dump_map_data (float *x, float *y, float *f, int Npts, char *filename) { 355 356 FILE *fout = fopen (filename, "w"); 357 358 int i; 359 for (i = 0; i < Npts; i++) { 360 fprintf (fout, "%d %f %f %f\n", i, x[i], y[i], f[i]); 361 } 362 fclose (fout); 363 return TRUE; 364 } 365
Note:
See TracChangeset
for help on using the changeset viewer.
